1 前言

自大学起,已经写过好几年的东西,写作工具和流程也反复折腾过好多回. 目前的写作流程已经很流程顺手,所以想分享一下。

2 写作工具

我不倾向任何专用格式的写作软件(如Word), 或者笔记云服务(EverNote,xx笔记等)。

因为前者只能使用专门的软件打开,和该软件绑定,会导致文本内容被专用的软件绑架。 可能过个10年,可能该软件不再流行,你甚至无法打开自己的文章。

对于笔记服务,你的文章数据甚至不掌握在你手里,该服务停用,你的数据就会全部丢失。

所以我倾向于「本地化储存」+「文本格式」 + 「易于同步」的写作方案

最后我选择的写作工具是 Emacs + org-mode,不熟悉org-mode 的读者可能不知道 org-mode 是什么,可能理解成类似是markdown 的标记语言,但是和Emacs 结合后,易用性与扩展性比markdown 提高了一个数量级。

这篇文章就是使用 Emacs + org-mode 写出来的:

3 写作平台

3.1 博客

在大学时期,我使用的是 org-page + org-mode 来自建博客在 Github Pages, 写了大概一年的博客文章。

后来因为 org-page 总是存在各种奇怪的小bug,博客样式也只有那么几种,不能满足折腾欲望很强烈的我 (这种行为和年少时喜欢在QQ空间换皮肤差不多)。

大概是2018年,我当时学习了Rust,打算找个机会来练手,然后就使用Rust搭建了个人的博客,开源在Github上,还有100+的star,就这样,在自己的博客上又写了几年文章。

直到2022年,因为工作太忙碌,没有太多时间来维护博客的代码以及运维博客的服务。 自建博客的初衷只是为了有个地方可以承载我写的内容,只是因为年轻,有精力折腾,就自己写代码,搭建服务。

但总体而言,写作的流程并不顺手: 因为我一直都是使用org-mode 来写作,而我自己的博客只支持markdown 格式,这就意味着我必须每次写作完成后,需要将org-mode 转换成markdown , 然后再在博客后台发布。

如果涉及到图片就更麻烦,需要将图片逐张上传到图床,然后再插入到org-mode中, 而博客使用的markdown 编辑器过了5年后,开发者已经不维护了,所以免不了又会有各种小问题。

我又尝试了Emacs + org-mode + hugo 的博客方案,发现使用起来非常舒心,发布文章几乎无成本。正好碰上博客服务器到期,就干脆切换回Github Pages.

hugo 是使用markdown 来构建网站的框架,而我使用的org-mode,所以还需要一个工具将org-mode 转换为hugo markdown,这个就是Emacs 插件ox-hugo。当然, hugo 原生也支持org-mode, 只是功能支持不完整, 不及ox-hugo.

ox-hugo 只需要将在org-mode 内容的最开始插入标记:

1
2
3
4
5
6
7
8
9
#+HUGO_BASE_DIR: ~/code/org/ramsayleung.github.io
#+HUGO_SECTION: post/2023
#+HUGO_CUSTOM_FRONT_MATTER: :toc true
#+HUGO_AUTO_SET_LASTMOD: t
#+HUGO_DRAFT: false
#+DATE: [2023-01-25 Wed 14:25]
#+TITLE: 我的写作流
#+HUGO_TAGS: writing
#+HUGO_CATEGORIES: writing

Emacs一个快捷键 C-c C-e H h 就可以将org-mode 转换成hugo 格式的markdown:

结合Github Action,就可以自动把导出的markdown 博文部署到Github Pages,称得上是一键部署。

不过,说出来有点心酸,我在博客写的文章,读者大多是我自己。

3.2 公众号

在过新年的时候,闲来无事,新开了一个公众号「宫孙说」,用来「一鱼多吃」,将自己文章也转到公众号。

因为Richard Stallman的影响,我一直是倾向于开放,自由的软件与生态,所以对于公众号这样仅限于「微信」封闭生态的平台不感冒。

另外,关于「公众号」的看法,我是与陈皓一致的,详见他的文章《为什么我不在微信公众号上写文章》

但不可否认的是,「公众号」是国内最完善的创作平台,有完整的分享,阅读生态。

毕竟我不只写技术文章,还会写一些历史,人文类的文章,我希望可以分享给朋友,但Github Pages会间歇性被墙,朋友们大多是在微信阅读文章,虽然博客支持移动端,但是体验终究不及「公众号」。

屈服于现实压力,我最终开了这个公众号。

3.3 知乎

知乎也是国内创作氛围相对自由和蓬勃的平台,本着「一鱼多吃」的心态,我也会把文章转载到知乎上。

3.4 KM

这是公司内部的知识交流创作平台,算是私域流量。有点难以置信的是,在这个读者数量远不如外部的平台,我写的文章有最多的阅读与收藏. 或许是因为我写的内容贴近业务,是同事比较感兴趣的。

3.5 一鱼多吃的问题

将同一篇文章分发到多个平台,就难免会有不同平台格式不通的问题。

上面这些平台,都是不支持 org-mode 这种相对小众的文本格式,所以 markdown 算是比较理想的中间格式,可以先把org-mode 转换成hugo markdown,再将hugo markdown 转换成markdown:

使用 ox-hugo,可以将org-mode 转换成hugo markdown , 至于将hugo markdown 转换成markdown, 我写了个脚本 hugomd2md.sh来处理:

除了将hugo markdown 转换成markdown,使用Github Pages 当作图床,还在最后插入一个公众号广告。

4 写在最后

因为使用Emacs + org-mode 写文章非常顺手,所以我写下了很多的文稿,只是思绪杂乱,不方便都发布出来.

现在正逐步将存稿往公众号平台上迁移,只是公众号有诸多限制,其中一条是一天只能群发一篇文章,只能「小刀锯大树」,慢慢来了。