Hexo博客的奇技淫巧

分享一些个人使用Hexo写博客的一些心得与技巧

CI - 博客自动发布

先说下我目前的方案:

Coding 托管 + DaoCloudCI 持续集成。

DaoCloud监控博客源码的分支,每当Push改动(一般都是博客MD文件,偶尔Hexo配置),自动执行hexo g & hexo d 等自定义好的脚本系列命令,自动发布博文。目前从Push到发布完成的总共耗时大概是2分半钟左右。

关于博客持续集成、自动发布这块,前前后后研究了很久,参考过很多套方案。

先总结下各种姿势:

  1. 本机手动发布:

    • 优点

      简单,省心,不用折腾。适合入门小白。

    • 缺点

      依赖于Hexo的环境,换电脑的话就要重新搭建环境。不能随时随地想发就发。

  2. Travis-CI:

    • 优点

      免费,无缝集成GitHub。

    • 缺点

      只能集成GitHub,不支持Coding。

      GitHub的仓库大家一般都是用公开的(私有库的CI费用略贵),而且Hexo博客源文件里有不少密钥等东西,不适合公开。Coding支持私有仓库且免费。GitHub的pages服务访问速度不稳定且不会被百度收录。

  3. DaoCloud:

    • 优点

      免费,支持Coding、GitHub等。

    • 缺点

      流程有点繁琐,使用不够简单。

总的来说,看个人需求,适合自己的才是最重要。我的习惯和追求是懒到极致,即使在追求偷懒的过程中,付出了大量时间和精力,都会觉得是有意义和值得的,乐此不疲。

可能我的价值观是:懒才是人类进步的动力。

DaoCloud做CI的教程和方案的话,网上还是有很多的,我先就不写重复的了。

附DaoCloud的核心文件daocloud.yml配置,供参考(建议自定义个性化):

version: 3
image: daocloud.io/liutf/liutf-hexo-blog
stages:
- hexo-ci
- build
构建任务:
stage: build
job_type: image_build
only:
branches:
- dev
build_dir: /
cache: true
dockerfile_path: /Dockerfile
测试任务:
stage: hexo-ci
job_type: test
only:
branches:
- dev
pull_request: true
before_script:
- mkdir ~/.ssh
- mv .daocloud/id_rsa ~/.ssh/id_rsa
- mv .daocloud/ssh_config ~/.ssh/config
- chmod 600 ~/.ssh/id_rsa
- chmod 600 ~/.ssh/config
- eval $(ssh-agent)
- ssh-add ~/.ssh/id_rsa
- rm -rf .daocloud
- git config --global user.name "your-git-name"
- git config --global user.email "your-git-email"
image: daocloud.io/liutf/liutf-hexo-blog
install:
- npm install --registry=https://registry.npm.taobao.org
- npm install hexo-abbrlink --save --registry=https://registry.npm.taobao.org
- npm install hexo-autonofollow --save --registry=https://registry.npm.taobao.org
- npm install hexo-generator-feed --save --registry=https://registry.npm.taobao.org
- npm install hexo-generator-baidu-sitemap --save --registry=https://registry.npm.taobao.org
- npm install hexo-baidu-url-submit --save --save --registry=https://registry.npm.taobao.org
- npm install hexo-deployer-git --save --registry=https://registry.npm.taobao.org
- npm uninstall hexo-generator-index --save --registry=https://registry.npm.taobao.org
- npm install hexo-generator-index-pin-top --save --registry=https://registry.npm.taobao.org
- npm i --save hexo-wordcount --registry=https://registry.npm.taobao.org
script:
# - hexo cl
- hexo g
- gulp
- hexo d
- rm -rf ~/.ssh/

Markdown写作姿势

个人写博客的一些小技巧。

MD编辑器 - typora

作为一个工具癖,推荐使用typora 。清爽、简洁、所见即所得,以及很多作为编辑器提供的快捷功能、导出等。

详细可看官网介绍 ,官网的展示很炫酷。

快捷输入 - 自定义短语

通常我们在写hexo的博客的时候,开头要填写Front-matter ,定义博客标题、时间等属性。前半篇内会加<!-- more --> 来做阅读全文 的分割。

作为懒人,Front-matter 内一大段我也是懒得复制的。直接在搜狗输入法 内打ifm 就能输入Front-matter 的内容,并且创建日期字段自动填入当前时间。

示例:

输入法版本

百度输入法 的参考这个:使用输入法自定义短语一步创建Hexo front-matter

自定义短语设置方法

设置步骤

  1. 打开搜狗输入法的属性设置

  2. 添加新定义

  3. 填入要定义的缩写以及短语内容

    这个缩写的话,我定义的以i 开头,避免日常词库冲突、好记等。候选位置的话,看个人喜欢吧,一般我们既然自定义的话,就候选项放在第一位更方便。

    • ifm 模板配置

      #---
      title:
      date: $year-$month_mm-$day_dd $fullhour:$minute:$second
      updated_at:
      comments: true
      categories:
      tags: []
      ---

    • imore 配置

      <!-- more -->
  4. 保存配置点确定。

自定义配置文件语法

点击直接编辑配置文件

可以看到对应的配置文件 PhraseEdit.txt ,路径在C:\Users\LAU\AppData\LocalLow\SogouPY.users\00000001 。要从这里点进去才看得到,正常状态下看不到这个文件,而且编辑完保存后,并无效果。不知道为什么。

那就看重点吧:里面注释说明了语法,以及已经定义的配置。

PhraseEdit.txt

;  搜狗拼音输入法--自定义短语配置文件

; 自定义短语说明:
; 1、自定义短语支持多行、空格、指定位置。
; 2、每条自定义短语最多支持30000个汉字,总共支持100000条自定义短语。
; 3、自定义短语的格式如下:

; 单行的格式:
; 字符串+英文逗号+数字(指定排序位置)=短语

; 多行的格式:
; 字符串+英文逗号+数字(指定排序位置)=
; 多行短语

; 具体格式可以参考下面的实例。
; 自定义短语文件名为phrases.ini,存放在用户文件夹的根目录下。
; 4、最多支持100000行自定义短语。
; 5、自定义短语的用途有:快捷输入手机号、邮箱、诗词、小短文等,大家可以自由发挥。
; 6、时间函数功能。具体定义格式如下:; 字符串+英文逗号+数字(指定排序位置)=#表达式
; 注意:表达式以英文#开头,后面的表达式中的每一个函数的前面都包含有英文$。
; 函数表如下:
; 函数 含义 举例
; $year 年(4位) 2006、2008
; $year_yy 年(2位) 06、08
; $month 月 12、8、3
; $month_mm 月 12、08、03 //此函数在输入法3.1版之后(含)有效
; $day 日 3、13、22
; $day_dd 日 03、13、22 //此函数在输入法3.1版之后(含)有效
; $weekday 星期 0、1、2、5、6
; $fullhour 时(24小时制) 02、08、13、23
; $halfhour 时(12小时制) 02、08、01、11
; $ampm AM、PM(英) AM、PM(大写)
; $minute 分 02、08、15、28
; $second 秒 02、08、15、28
; $year_cn 年(中文4位) 二〇〇六
; $year_yy_cn 年(中文2位) 〇六
; $month_cn 月(中文) 十二、八、三
; $day_cn 日(中文) 三、十三、二十二
; $weekday_cn 星期(中文) 日、一、二、五、六
; $fullhour_cn 时(中文24时制) 二、八、十三、二十三
; $halfhour_cn 时(中文12时制) 二、八、一、十一
; $ampm_cn 上午下午(中文) 上午、下午
; $minute_cn 分(中文) 零二、零八、十五、二十八
; $second_cn 秒(中文) 零二、零八、十五、二十八
; 具体你可以参考这个文件最下面的例子,实际体验一下就明白了。
; 你可以用自定义短语来做一个带动态时间的多行回信落款。

ifm,1=
#---
title:
date: $year-$month_mm-$day_dd $fullhour:$minute:$second
updated_at:
comments: true
categories:
tags: []
---
imore,1=<!-- more -->

最新Front-matter配置

#---
title:
date: $year-$month_mm-$day_dd $fullhour:$minute:$second
updated_at:
comments: true
categories:
tags: []
abbrlink:
top: false
---
字段名说明
title博客标题
date博客发表日期
updated_at博客更新日期
comments是否允许评论
categories分类
tags标签
abbrlink永久链接值
top是否置顶

快捷输入 - 时间

这个小技巧也是我近期才知道的,相见恨晚,白敲多年的键盘。

作为码农,很多时候,我们需要输入格式化的时间,yyyy-MM-dd HH:mm:ss 你懂的。Hexo里Front-matter 里也是这个格式,我们需要填入我们的文章创建时间等。

搜狗输入法,输入sj 即可。

图床

图床就是我们图片托管和存储的地方,要重点考虑到托管方的访问速度以及稳定可靠性。

目前我的图床解决方案是七牛 + 微博图床 两个一起用。七牛为主,微博为辅。

理论上七牛 一个就够了。但是我希望我的博客首页上能维持一把HTTPS小绿锁 ,但是七牛的https是收费的,而且比较麻烦。所以最终决定用微博图床来解决https图片的问题。

七牛的http的图片实名认证后,会送10G用就存储空间。每月20G的下载流量,100万次请求。

对于个人博客小站来说,基本都是够了。

如果你也打算用七牛的话,希望你能走我的这个邀请链接注册注册邀请链接 。因为作为推荐,这样我能得到5G/月的下载流量的邀请奖励,谢谢。

目前我的贴图姿势是

使用 snipaste 截图 + PicGo 一键贴图。

  • snipaste

    之前不写博客之前,都是用QQ自带的截图快捷键来截图。写博客后,发现QQ自带的不是那么好用了,然后就尝试了下这个大名鼎鼎的神器,果然还是不错的。

  • PicGo

  • 颜值高
  • 支持微博 七牛云 腾讯云 又拍云 上传。

    配置好对应图床后,就可以一键上传,生成对应图片链接了,方便。

另外一种图床工具姿势介绍:qiniu-image-tool + 微博图床-Chrome插件

  • qiniu-image-tool

    qiniu-image-tool 这个工具用起来比较爽,神器,大大的感谢作者。绑定自己的七牛应用,配置完成后 ctrl+alt+v ,稍等1s左右,便可以看到图片链接自动粘贴到当前编辑器的光标处。具体看原作者博客介绍

分 享