以 Jekyll 为主的 GitHub Pages 博客是有它非常让人充满好感的方面,比如维护成本低、安全、多平台
通过命令行将日常博客使用中的一些繁琐操作半自动化,可以便捷到什么地步,本篇希望能梳理出一个概念还有一条优化的思路来。
快速进入写作环境
日常,一般情况下使用 GitHub Pages 博客都不免是这样的流程:
- Finder 上点点点,打开博客仓库;
- 进入 _posts 目录, 复制一个文档作为新博文文档使用;
- 清理文档,删除博文内容,修改 YAML;
- 开始写作。
或者:
- 打开编辑器,开始写作;
- 保存文档,将文档移动到对应的博客仓库 _posts 目录;
- 打开 Finder,进入仓库 _posts 目录;
- 复制文档 YAML 信息,粘贴到新博文并修改;
如果借助命令行工具创建的脚本,可以让整个步骤变得非常迅捷。像这样:
- 唤出 iTerm,输入短命令.进入命令自动执行状态。自动在仓库中完成附带 YAML 信息的模板文档的创建,同时一并打开 _posts 目录,以及用个人自定义的 Markdown 编辑器打开新创建的模板文档。
- 在自动弹出的编辑器界面,开始写作;
- 修改 YAML 信息和文档标题(只涉及日期字段后的 Title 部分),保存。
命令集(引号中的部分,可作为 alias 短命令添加):
- 使用 Sublime Text 作为默认编辑器:
cd ~/Your_blog_Path/_posts/ ; open . ; cp Template.md ` date +20%y-%m-%d`-Title.md ; sleep 0.3s ; open -a MacDown ` date +20%y-%m-%d`-Title.md
- 使用 MacDown 作为默认编辑器:
cd ~/Your_blog_Path/_posts/ ; open . ; cp Template.md ` date +20%y-%m-%d`-Title.md ; sleep 0.3s ; Sublime ` date +20%y-%m-%d`-Title.md
使用时修改第一条 cd 命令的路径,并为当前 GitHub Pages 博客仓库的 _posts 目录中添加一个 YAML 信息完整的博文文档模板 Template.md
,作为创建新文档的母版。
快速推送博文更新
GitHub 是非常棒的工具,通过 GitHub 的客户端、命令行和网页版版,现在我们能越加方便地使用基于 GitHub 的各种功能。
当然,在追求效率的时候,还是可以对于日常操作进行优化的:
- 使用客户端的方案:
- 打开 GitHub Desktop,切换到对应博客仓库;
- 添加更新描述,而后确认提交(桌面版在操作上简化了添加的动作,只保留了提交);
- 点击同步,推送更新;
- 使用 Git 的方案:
- 打开终端;
- 进入对应的仓库;
- 分步输入 Git 命令:$git add,添加改动;
- $git commit,提交改动;
- $git push,推送更新。
那简化方案是如何的呢?一条短命令(被固化为短命令的命令集),合成「添加-提交和推送」等操作,一步到位。在设定完成后,涉及到的操作只有一个:
- 打开终端,输入短命令,点击 Return 完成所有上述操作。
而实际上,这样一个短命令所能做的操作比另两个方案诸多操作叠加还多。
大致来说是依次完成了这些动作:
- 进入博客仓库目录
- 添加更新
- 提交更新
- 推送更新
- 暂定 0.5s(或其它自定时刻)
- 切换到浏览器,加载博客主页
终端任意目录为博客仓库执行快速更新命令集:
- 添加新博文:
$cd ~/Your_Blog_Path && git add . ; git commit -m "Add a new post" ; git push ; sleep 0.5s ; open Your_blog_Website
添加为 alias 短命令:
# 添加新博文
alias pst="cd ~/Your_Blog_Path && git add . ; git commit -m 'Add a new post' ; git push ; sleep 0.5s ; open 'Your_blog_Website'"
- 更新博客设定:
cd ~/Your_Blog_Path && git add . ; git commit -m "update the files" ; git push
添加为 alias 短命令:
# 更新博客设定
alias blg="cd ~/Your_Blog_Path && git add . ; git commit -m 'update the files' ; git push"
在任意仓库内执行快速更新命令集:
添加为 alias 短命令:
alias nuts="git add . ; git commit -m 'update the files' ; git push"
最终,在设定完成后,使用短命令创建博客文档和推送博客更新的呈现效果:
注释
为方便理解,对于以上的命令集中几个命令做一简要注释。
- cp 基本命令,用于复制文档,可在复制操作的同时更改新文档(被复制出来的文档 file_2)名称:
$cp file_1 file_2
。 - open 用于打开 Finder 和 url。这篇中使用了
open -a Application_name file_name
$open .
和$open url
3 种,分别对应用用某个软件在桌面上打开某个文档,用Finder 打开终端当前所处的目录和用(默认)浏览器打开网址。 - date 命令用于生成时间。
$date +%y%m%d
,在终端中打印出(6 位数)当前日期。稍作修改即可作为 Jekyll 博客专用的年月日加标题格式 Markdown 博文文档。 - sleep 延迟命令,用于推迟后续操作的执行时间。
sleep number(unit)
进行设定,数字后不跟单位,默认时间单位为秒。 - vim 命令的使用,vim 的命令这里不多说了。
- alias 添加 alias 很简单,alias Short_CMD=”Long_CMD”。
- source 让 bash 配置生效的操作。在退出 vim 界面返回终端主界面时,执行
source ~/.bashrc
或source ~/.zshrc
(如果你使用的是 zsh 或 oh my zsh)。

本作品采用CC BY-NC-ND 4.0进行许可。转载,请注明原作者 Azeril 及本文源链接。