学习的东西越来越多,但是脑子只有那么大,就会边学边忘。为了对抗遗忘,我开始作笔记,记录下一些学习的知识点,以备后面查阅。

市面上已经有很多优秀的笔记应用了,诸如有道云笔记、印象笔记、OneNote等等。如果没有什么特殊要求的话,我其实是很建议使用OneNote的。它伴随了我整个考研过程,作为我的电子笔记本而使用。它各种的支持都非常好,唯一的问题是不能导出成人类可读的格式。至于其他的笔记软件也是同样的道理,都是基于云同步的,都使用自己的私有格式不好导出。我是一个有开源洁癖的人,如果能够使用开源软件的话那当然是不使用商业服务了,所以我之前都是使用Git+Markdown来管理文档。

使用Markdown直接本地文件管理其实还算是一个不错的方案,但是文件一旦多了起来,要找点东西就不好找了。这也就是为什么我决定要迁移的原因。本地的VNote试过很多次,但每一次都被它的界面给吓跑了,它的界面设计实在是一言难尽。我决定选择一个在线的服务,反正我也有NAS可以搭建这个。

我对新的知识库程序的要求真的不算高,只要能够支持Markdown并且能够正确的渲染数学公式就可以了。但,就是这么一个简单的需求,我找了半天也没找到什么合适的。

  • 一开始我想选择的是dokuwiki,但是它对Markdown的支持比较有限,并且编辑器也不是很好用,所以就放弃了;
  • 想着MediaWiki的编辑器其实还挺不错,就想尝试一下它,但是它对Markdown的支持也是很有限,我现有的文档无法直接转换过去;
  • MDWiki这个软件我看了一下是基于本地文件读取的,但是我想着既然都弄成服务器了,还得自己新建文件才能新建页面,感觉有点麻烦;
  • Outline 不能给我试用,装又装不上,就很绝望
  • GROWI 不支持数学公式;还有一堆也不支持数学公式

找了半天,最后发现最多Star的那个 wiki.js 其实是支持数学公式的,只是之前测试的时候写的公式写错了,导致没法渲染,从而以为它不支持数学公式。

Wiki.js的安装非常简单,用docker就可以解决。这里贴出我的 docker-compose.yaml 吧:

version: "3"
services:
  wiki:
    image: requarks/wiki:2
    environment:
      DB_TYPE: sqlite
      DB_FILEPATH: data/wiki.db
    restart: unless-stopped
    ports:
      - "8083:3000"
    volumes:
      - ./data:/wiki/data
      - ./config.yml:/wiki/config.yml

因为我的笔记暂时不是很多,所以我就用了单个的SQLite存数据;之后数据多了的话,可能会尝试其他的存储数据库。其他数据库的方法官网文档写的很详细了,没有什么大问题。

装上去后可能会遇到语言文件下载不下来的问题,这种时候要么挂代理下,要么就设置成离线模式然后把语言文件Sideload进去。为了改成离线模式,我把config.yml映射出来,方便修改;sideload的方法官网教程有写怎么操作,我为了方便更新就直接一个Git库clone放进去了。

Wiki.js用起来很舒服,虽然编辑器功能没有Typora那么强大,但是也算是能用的级别了。不过它的UI有点BUG,还是等他们修复吧。

分类: 折腾

6 条评论

何时夕 · 2021 年 11 月 8 日 下午 8:43

wiki.js 编辑器确实比较弱。
建议用 最强文本编辑器 Vscode 加上 wiki-ws 插件
应该能满足你的需求

    Jim · 2021 年 11 月 9 日 下午 8:14

    VSCode 纯文本还不如用 wiki.js 内置的呢……

vincent · 2021 年 7 月 27 日 上午 9:41

我也是用的docker安装的,是离线模式,可是/wiki/date/sideload下的三个语言文件(locales\en\zh)加进去以后没有被识别到,你遇到过这个问题吗?

    Jim · 2021 年 7 月 27 日 上午 10:05

    这我没遇到过,你检查一下路径是不是错了?

小石头 · 2020 年 8 月 4 日 下午 11:00

wolai,notion这些新型笔记软件了解一下。程序员必备

    Jim · 2020 年 8 月 5 日 上午 8:20

    你说的这些都是在线类型的笔记软件吧,因为数据没法迁移所以我不是很想用。

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用 * 标注