基于helix和lsp的笔记系统

笔记分类

笔记功能分区

笔记的创建

每天的 journal 可以用以下的 fish 函数来创建:

  hx ~/zettelkasten/(date +%Y-%m-%d).md

另外就是用在daily当中创建链接的方式。

或者,更好的办法是用 zk edit -i 来创建和编辑。如果标题不存在,可以用 Ctrl+E 创建以搜索词为文件名的笔记。

其他的笔记可以在已有笔记中通过双方括号的 wiki 式链接添加,我使用的 markdown-oxide 提供了创建括号内文件的 code action。

笔记的链接

输入 [[ 后,LSP 会自动提示可以插入的文件名和 headings,可以继续输入以便缩小选择范围,也可以用方向键选取。

e.g. 笔记的创建

光标放在链接内,可以用 g d (跳转到定义)功能打开链接。

外部链接可以直接输入 URL。

e.g. https://www.github.com/

然后光标在链接上时,可以用 g f 打开。

反向链接

可以用 g r 来查询链接到本文件或者 heading 的其他笔记。如果当前的 heading 没有对应的笔记或者光标没有放在 heading 上,LSP 会自动 fallback 到文件名来搜索。

标签

添加标签

输入半角的 # 号后,LSP 会提示其他用 # 开头的行的内容。

列出含有某个标签的文件

可以在 zk edit -i 的界面中搜索,或者用 zk list-t 选项。

可以用 <SPC> / 搜索特定的标签,或者用 <SPC> S 来搜索 symbol。

Checklist

同样可以用 <SPC> / 搜索 \-\[\ \] 这类 pattern 来找到,只是需要注意这几个符号都需要 escape。

构建网站和分享

Quartz 来生成 HTML,然后传到 Neocities。

生成网站的命令:

  cd quartz
  npx quartz build

notetaking #helix