新年的第一篇周报,聊聊自己最近折腾的一些成果:Xuanwo's Note


其实一直以来我都有一个 Wiki 梦:想把自己学到的东西,踩过的坑都记录下来,以后就不用再反复搜索关键词,更进一步的,我的这个 Wiki 能够帮助到更多的同学。

但是这个梦想一直没有实现,主要是两个问题:

  • 首先是之前的工作相关知识无法直接公开,我需要对工作中记录下来的知识进行二次加工
  • 其次是没有合适的工具,我需要一个本地的应用,能够快速记录,不需要费心思来思考内容的结构,然后这些内容还能够直接输出成网页。

现在这些问题都得到了解决:

  • 我换了一份开源的工作,这使得我能够公开的跟踪所有的工作及其相关的背景知识,不需要对内容进行二次的审核和过滤
  • 随着双向链接笔记的不断发展,市面上已经出现了初步符合我需求的工具: Logseq@pengx17 开发的 logseq-publish

基于 Logseq 来部署一个 Notes 非常容易,初始化一个 repo,并配置 Github Actions 即可:

steps:
  - uses: actions/checkout@v2
  - name: Logseq Publish 🚩
    uses: pengx17/logseq-publish@0.1.0
  - name: add a nojekyll file # to make sure asset paths are correctly identified
    run: touch $GITHUB_WORKSPACE/www/.nojekyll
  - name: Deploy 🚀
    uses: JamesIves/github-pages-deploy-action@4.1.9
    with:
      branch: gh-pages # The branch the action should deploy to.
      folder: www # The folder the action should deploy.
      clean: true

现在 Logseq 还没有办法直接运行并导出数据,所以需要在容器中运行 Playwrite 跑一个 headless logseq 来执行导出。这使得 Vercel 没法直接支持部署一个 logseq 项目,只能先将静态文件部署到 gh-pages,然后再通过 vercel 来 serve。这个问题记录在了 How to run logseq-publish inside vercel?,希望未来可以解决。


在有了 Xuanwo's Note 之后,我的工作流变的更加简单透明:

我对这个工作流特别满意的地方在于读者(包括未来的我)获取的不再是片面的信息,而是一个完整的网络:当他们阅读我跟 SQL 相关的笔记时,他们能同时读到我关于 MySQL 和 ClickHouse 的相关笔记。更进一步的,假如未来 Logseq 支持某种形式的 Federation,读者可以同时读到多位作者关于同一个主题的思考。

不仅如此,由于 Note 项目本身完全开源,它也能享受到开源项目的一切便利:

  • 通过 Issues 反馈问题
  • 通过 Discussion 公开地进行问题讨论
  • 通过 Release 定期发布归档版本

现在 Xuanwo's Note 刚刚起步,过一段时间再来这个项目会想着怎么样的方向发展吧~