Matrix 首页推荐 

Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。

文章代表作者个人观点,少数派仅对标题和排版略作修改。


博客探索

2005 年,我开始用博客记录感想,发布在 MSN space 平台和短命的 Google Sidewiki 上。六年后,MSN space 关闭 ,博客被转移到 WordPress 托管,我改用 Blogger,没多久就暂停了博客。

2018 年,我偶然接触到 Jekyll,被其简洁的界面和便捷性打动,重新恢复了博客记录。博客方向从感想记录转变到知识整理输出。Jekyll 方案需要首先在本地用 Markdown 编辑排版,然后同步到 GitHub 发布,最后以 Markdown 格式手动分发到各个渠道。当文章较少时,这套方案的体验感特别好。

到了 2021 年,随着文章和发布渠道的增多,文章的修改和管理变得愈加困难。慢慢地,我开始习惯本地 Markdown 只做初稿排版,更新则只在外部平台上进行。

我的文章都是工具教程类,要随着工具的更新而修改,有时甚至要对几年前发布的文章进行更新。因此,针对少量平台更新的策略,带来了文章版本混乱,让博客偏离了知识记录的初衷。为了保证文章版本统一,我把博客从 Jekyll 迁移到 WordPress,准备以 WordPress 作为统一版。

然而,WordPress 方案很快就被放弃了。原因除了 WordPress 糟糕的编辑体验,更重要的是,我遇到了 Notion。其界面美观,编辑方便,支持对外展示,能导出为 Markdown、HTML 文件。

可是,没什么平台是完美的。Notion 不支持同步本地 markdown 内容,图床不能在站外使用,国内访问速度成谜。这令 Notion 只适合个人分享,而非博客网站。我用 Notion,纯属垂涎美色。

2022 年,由于疫情被封控在家两个月。时间多了,我继续折腾博客,希望找到一个界面美观,能自动发布且具备本地管理功能的博客方案。

博客方案

最初,我幻想着修改一篇文章同步到多个平台,但找了许久也没有合适的。网上所谓的一键分发软件,实际上是通过网页操作来完成发布,并不能自动修改更新。

剔除掉这类不现实的想法后,新的博客方案以 Markdown 版本为主,自动同步 WordPress,最后手动同步主要分发平台。

最终方案如下:

  1. 初稿:Markdown 本地编辑文章,使用七牛云自建图床。
  2. 发布:同步本地 Markdown 文本,自动发布,保持主要平台内容为最新。
  3. 管理:本地更新修改 Markdown 文件,docsify 页面整合文本内容,博客后台管理文章版本。
  4. 订阅:用户能通过 RSS、邮件或微信来订阅博客更新。

发布工具:WordPressXMLRPCTools

WordPressXMLRPCTools 能用 Markdown 生成博客,推送更新到 Github 后,通过 Github Actions 自动将文章更新到 WordPress,并将 WordPress 网站的文章索引更新到 Github 仓库的README.md,供搜索引擎收录。

基于 WordPressXMLRPCTools,我做了两点修改:

  • 草稿箱:_post路径内新建TEMP文件夹,用于存放文章草稿。WordPress 推送程序会忽略_post子文件夹的内容,换言之,TEMP文件夹不会发布到 WordPress 网站。
  • 文章聚合页:主目录新增.nojekyllindex.html_sidebar.md文件,引入文档生成工具 docsify,将博客文章聚合在一个页面,方便快速定位和位置管理。

示例:https://rockbenben.github.io/Blog_WP/https://docs.newzone.top/

使用流程

  1. 进入项目页面,点击「Use this template」,复制模板文件。
  2. 回到你新建的 repo,删除 _post 文件夹中的所有文件,参照主目录下example_article.md的格式编辑文章。
  3. WordPressXMLRPCTools 安装步骤执行,如遇报错,查看下方使用问题。
  4. 修改主目录下的index.html_sidebar.md文件,调整 docsify 网页设置。
  • index.html修改 docsify 网页标题、描述和关键词。
  • _sidebar.md修改 docsify 网页侧边栏,加入博客文章的标题和位置。

使用问题

文章发布不成功

_post文件夹添加了文档,但同步后,README.md和 WordPress 并没有添加文章。

检查以下两点:

  • 文章后缀必须为「.md」,不支持「.markdown」或其他后缀格式。
  • 进入 repo 页面中的Actions,检查最近一次的 update 是否正确。

Error: git denied to github-actions[bot]

遇到 GitHub Actions 报错:git denied to github-actions[bot]Process completed with exit code 128

依次点击该 repository 的Setting - Code and automation - Actions - General,然后在 Workflow permissions 中开启「Read and write permissions」。

Error: Process completed with exit code 1

遇到 GitHub Actions 报错:Error: Process completed with exit code 1,检查服务器是否开启了防火墙,含代码的文章容易被误认为木马。暂时关闭服务器防火墙,如 Nginx 防火墙、宝塔系统加固,可解决该问题。

无法覆盖更新原文章

修改旧文章并同步后,WordPress 站的文章没同步修改,而是新增了一篇相同的文章。这是 WordPressXMLRPCTools 项目的 bug。项目作者 @zhaoolee 说,「只要不改文件名,就可以通过更新 markdown,更新对应的文章内容。

但我和 @clairyitinggu 在未改文件名的情况下,都没能更新对应文章内容,而是重新发布了篇新文章。如果你也遇到相同的问题,建议手动将新文章内容覆盖旧文章,然后删除新文章。

这个 bug 可以当作是强提醒。当 WordPress 新增了旧文章,你就被提醒要在其他平台修改该文章,让文章版本保持统一。

WordPress 发布时间与实际不符

同步文章后,WordPress 显示的文章发布时间是 GitHub push 时间,而非文章真实的发布时间。

如果你将旧文章转移到 WordPress,文章的发布时间需在 WordPress 后台手动修改,无法在Markdown 文件中指定 WordPress 显示的发布时间。

本地管理 Markdown 文章

如果用 Windows 资源管理器管理 Markdown 文章,会存在 3 个问题:

  • 资源管理器的视觉效果非常难看。
  • Markdown 文件名称不能展示关键信息,较难定位文档。文章越多,管理越困难。
  • 无法对文章内容进行本地检索,只能通过文件名称猜测内容。

为解决这些问题,我借助飞书表格、RunAny 和 docsify 重构本地文章管理方案。

飞书文档管理

飞书文档 功能与 Notion、Airtable 类似,可将文字、链接、图片聚合在同一页面,操作便捷。

打开飞书多维表格,填入本地 Markdown 文章的标题、本地位置、链接、标签和封面,即可聚合本地文章的关键信息。将表格视图切换为「画册视图」,文档管理界面更达到 90% 的 Notion 视觉效果。

RunAny 文档直达

在线文档中,无法像打开超链接一样直接打开本地文件。如果你想节省中间打开时间,可以使用 RunAny。

RunAny 是基于 AutoHotKey 的一键启动软件。按下方配置后,点击飞书表格中的「本地位置」,即可使用默认编辑器打开 md 文件。如果你的默认编辑器是 notepad++,则将下方命令中的Code.exe 替换为notepad++.exe

;将 Runany 主目录下的 RunAny.ini 文件内的「编辑」模块替换为下方命令
-编辑(&Edit)
 --编程|cmd bat md ahk html js css json
 vscode|Code.exe

docsify 全文检索

飞书表格可以搜索关键元素,但不能对检索全文。这时,我们需要使用 docsify,一款能将 markdown 文档自动生成网站的工具,相当于轻量级的 GitBook。

docsify 使用简单,如果使用了前文我修改过的发布工具,则无需配置。在发布工具文件夹内的空白区域,右键打开终端,执行命令 docsify serve 即可生成全文检索网页,默认管理链接为 http://localhost:3000/#/

如果你设置了 Github Pages,项目会默认启动在线 docsify 网页,页面链接取决于 Github 的设置。比如我的用户名是rockbenben,项目名是Blog_WP,所以 docsify 管理页面就是 https://rockbenben.github.io/Blog_WP/

订阅管理:WordPress

40% 的网站基于 WordPress 架构,因此 WordPress 有超多的主题和插件,可以实现你想要的功能,比如 RSS、Newsletter。

如果你不是小白,又拥有较多的粉丝,可以使用 Substack竹白 来分发博客。这两者都支持Newsletter 付费订阅。只针对国内用户的话,竹白可支持微信订阅。

后续

比起原来的 Jekyll,新方案的配置要复杂些,但使用并不难,推荐稿件多的人采用。

折腾新方案的过程中,我发现了篇 2021 年初写的文章。当时,稿子写到 90%,我就去忙其他事,忘了这篇文章。等到这次被发现,而它已经在草稿箱待了一年半。

用了新方案,稿件管理会变得很简单,稿件遗忘、找不到的情况也会减少许多。最近我出稿速度大增,也都跟这有关,都是从草稿箱捡回来的半成品。

写完这篇稿子,疫情封控也正好结束,终于可以出门了,希望永远别给我「免费假期」了。

关联阅读

> 下载 少数派 2.0 客户端、关注 少数派公众号,解锁全新阅读体验 📰

> 实用、好用的 正版软件,少数派为你呈现 🚀