自动化博客的写作流程

昨天给 Typora 配置了 PicGo-Core 作为图床插件,突然感觉写博客的流程明朗了起来。

结合已经完成的自动化构建发布,写博客的体验提升了不少。

优化图片上传

Typora 支持从剪切板直接粘贴图片,以前因为懒也没有做上传图床的配置,所以图片处理起来多少是有些麻烦的,直到配置了 PicGo-Core

正所谓相见恨晚,现在图片只需要粘贴到 Typora,便能自动上传到阿里云 OSS 上,省去了原来我将图片放置为 Hexo assets 资源的麻烦。

PicGo-Core 的配置很容易,npm 安装全局包之后,可以使用它所提供的生成器生成配置,也可以参考文档手写配置。我是先用生成器生成的配置,但是生成后的配置文件有点问题,需要手动把 uploader 字段的值改为正确的服务商标识。

image-20201204211940476

然后再在 Typora 的图片配置中设置上传插件,选择 上传图片,并选择 自定义命令行

image-20201204212142788

填入命令:

1
/path/to/node /path/to/node/lib/node_modules/picgo/bin/picgo upload

测试通过就可以了。

优化创建文章

以前都是通过在终端中切换到 Hexo 所在目录,执行 hexo new post post.md 命令来新建文章,再打开 Typora 打开文件进行编辑。于是就有了一个思路,把这个流程自动化。

这里就依赖另一个我经常使用的神器——Shuttle 了。

image-20201204214404066

Shuttle 是一个只驻留在右上角菜单栏的小工具,它可以通过配置来创建菜单,实现 Shell 命令的执行。

二者一结合,便实现了我的自动化思路:点击状态栏菜单,弹出输入框输入标题,创建并使用 Typora 打开文件。

如上图,点击新建文章,便会执行 Shuttle 中配置的脚本

1
2
3
4
{
"cmd": "sh /path/to/create-post.sh",
"name": "新建文章"
}

create-post.sh 中的代码所做的便是弹出输入框,并创建文件和使用 Typora 打开文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#/usr/bin/env bash

# prompt "Question" "Default value"
function prompt() {
osascript <<EOT
tell app "System Events"
text returned of (display dialog "请输入标题" default answer "" with icon note buttons {"继续"} default button 1 with title "创建 Hexo 文章")
end tell
EOT
}

value="$(prompt)"
cd /path/to/Hexo && /path/to/node /path/to/node_modules/hexo-cli/bin/hexo new post $value
/Applications/Typora.app/Contents/MacOS/Typora /path/to/Hexo/source/_posts/$value.md

为了更友好一些,调用了 AppleScript 来弹出输入框。

优化发布流程

为了取代手动 git add git commit 来发布博客,我也实现了一个发布的脚本,跟创建文章的脚本类似,也是弹出对话框来作为 commit message

image-20201204215616303

图标还需要优化一下

代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#/usr/bin/env bash

# prompt "Question" "Default value"
function prompt() {
osascript <<EOT
tell app "System Events"
text returned of (display dialog "请输入提交信息" default answer "" with icon note buttons {"继续"} default button 1 with title "发布 Hexo 文章")
end tell
EOT
}

value="$(prompt)"
cd /path/to/Hexo/source/_posts && git add .
git commit -m "$value"
git push

小结

现在从写博客到发布博客,形成了一个相对友好的工作流程。

在右上角菜单中点击 新建文章,然后开始正常地写作。写作完毕后点击 发布文章。之后便等 drone 构建并发布了。写博客也就无需关注别的事情了(除了弹出的终端窗口有点不爽)。

希望能对读到这篇文章的朋友有所帮助或启发。

人在追求效率的路上总是永无止境,而这也是生产力的推动力之一吧。