0%

Gulp简介

gulp是一个自动化构建工具,能够强化我们的前端工作流。

gulp is an open-source JavaScript toolkit created by Eric Schoffstall used as a streaming build system (similar to a more package-focussed Make) in front-end web development.

It is a task runner built on Node.js and npm, used for automation of time-consuming and repetitive tasks involved in web development like minification, concatenation, cache busting, unit testing, linting, optimization, etc.

gulp uses a code-over-configuration approach to define its tasks and relies on its small, single-purpose plugins to carry them out. The gulp ecosystem includes more than 3500 such plugins.

更多内容,参考wikipedia-gulp.jsGulp官网Gulp中文网
本文中,会使用gulp来压缩hexo生成的静态资源文件,加快站点的访问速度。

阅读全文 »

CI, CD and CD

CI,CONTINUOUS INTEGRATION,持续集成。
在持续集成环境中,开发人员将会频繁的提交代码到主干。这些新提交在最终合并到主线之前,都需要通过编译和自动化测试流进行验证。

CD,CONTINUOUS DELIVERY,持续交付。
持续交付就是应用发布出去的过程。这个过程可以确保我们尽可能快的实现交付。这就意味着除了自动化测试,我们还需要有自动化的发布流,以及通过一个按键就可以随时随地实现应用的部署上线。为了发挥持续交付的优势,一般需要先进行小批量发布,尽快部署到生产线,以便在出现问题时方便进行故障排除。

CD,CONTINUOUS DEPLOYMENT,持续部署。
持续部署是持续集成和持续交付的合并。当开发人员在主分支中合并一个提交时,会触发工作流,包括构建、单元测试、预发布、验收测试、生产发布、冒烟测试等。如果一切顺利,则成功部署到生产环境中。如果某个工作流失败,则不会部署到生产环境。

更多关于CI/CD内容参考详解CI、CD & CD什么是 CI/CD?,关于发布环境的划分参考Deployment environment

在gitlab中,无论是CI、CD还是CD,都可以通过配置gitlab-ci.yml来实现。而github,在2019年8月8日也支持内置的CI/CD了。但是本文中,并不是使用github内置的CI/CD,而是使用Travis CI来实现hexo的自动发布。

《Hexo配置多个git仓库》一文中已经学习了hexo配置多个git仓库的方法,发布项目也很简单。为什么还需要hexo的自动发布?因为发布流程还可以更简单。而且,现在的发布方式,如果想要多台电脑同时使用,那么每台电脑都需要配置hexo环境,很麻烦。如果本地只负责写写markdown文件,而构建发布都放到云端,是不是更加美好?本文要做的,就是这样一件事。

阅读全文 »

吐槽

在经历过域名被封之后,今天又经历了搬瓦工服务器IP被封,我太难了。。。o(╥﹏╥)o
服务器IP被封,带来了三个问题:第一个是不能愉快地科学上网了;第二个是内网穿透不能使用了;第三个是自己的 www.voidking.com 域名无法访问了。

对于问题一,暂时使用免费的公共飞机场。对于问题二,暂时使用百度服务器,但是因为没有备案,所以不能进行域名解析。对于问题三,就是本文要解决的问题之一。

阅读全文 »

m3u8格式

M3U是一种播放多媒体列表的文件格式,它的设计初衷是为了播放音频文件,比如MP3,但是越来越多的软件现在用来播放视频文件列表,M3U也可以指定在线流媒体音频源。很多播放器和软件都支持M3U文件格式。

M3U8是Unicode版本的M3U,用UTF-8编码。”M3U”和”M3U8”文件都是苹果公司使用的HTTP Live Streaming格式的基础,这种格式可以在iPhone和Macbook等设备播放。

HTTP Live Streaming(缩写是HLS)是由苹果公司提出基于HTTP的流媒体网络传输协议。是苹果公司QuickTime X和iPhone软件系统的一部分。它的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。在开始一个流媒体会话时,客户端会下载一个包含元数据的extended M3U (m3u8) playlist文件,用于寻找可用的媒体流。

综上,m3u8是一种文件格式。下载m3u8格式的文件时,会下载一个m3u8文件(文件列表),以及一个包含了很多ts文件(视频片段)的隐藏文件夹。

更多内容参考M3UHTTP Live Streaming

阅读全文 »

前言

紧接着《Django开发微信公众平台管理系统——第0章》,本文学习一下微信公众平台各种消息的接收和回复,主要参考WeRoBot文档

消息类型包括:TextMessage、ImageMessage、LinkMessage、LocationMessage、VoiceMessage、VideoMessage、UnknownMessage;
事件类型包括:SubscribeEvent、UnSubscribeEvent、ScanEvent、ScanCodePushEvent、ScanCodeWaitMsgEvent、PicSysphotoEvent、PicPhotoOrAlbumEvent、PicWeixinEvent、LocationSelectEvent、ClickEvent、ViewEvent、LocationEvent、TemplateSendJobFinishEvent、UserScanProductEvent、UserScanProductEnterSessionEvent、UserScanProductAsyncEvent、UserScanProductVerifyActionEvent、CardPassCheckEvent、CardNotPassCheckEvent、UserGetCardEvent、UserGiftingCardEvent、UserDelCardEvent、UserConsumeCardEvent、UserPayFromPayCellEvent、UserViewCardEvent、UserEnterSessionFromCardEvent、UpdateMemberCardEvent、CardSkuRemindEvent、CardPayOrderEvent、SubmitMembercardUserInfoEvent、UnknownEvent;
回复类型包括:TextReply、ImageReply、VoiceReply、VideoReply、ArticlesReply、MusicReply、TransferCustomerServiceReply、SuccessReply。

阅读全文 »