#lsp #markdown #visual-studio-code #language-server #language #server

程序+库 zeta-note

Markdown LSP 服务器,用于轻松记笔记,具有交叉引用和诊断功能

1 个不稳定版本

0.1.8 2022年3月26日

#5 in #vscode

自定义许可

1MB
2K SLoC

Zeta Note

Markdown 中令人愉快的笔记...

Build & Test

免责声明: Zeta Note 是一个 正在进行中的项目。对我来说它运行良好,但测试并不多,因此稳定性不能保证。


Zeta Note 是一个语言服务器,可以帮助你编写和管理笔记。主要重点是支持 类似 Zettelkasten1, 2 的笔记,通过提供一种简单的方式来 交叉引用笔记(有关功能的更多信息请见下文)。

但您不必完全采用 Zettelkasten 方法才能从 Zeta Note 中受益

  1. 用您喜欢的方式写笔记。

  2. 使用 引用 链接交叉引用笔记

    • [:another-note] - 另一篇笔记的引用。
    • [:another-note@##Subsection] - 笔记子部分的引用。
    • [:@##Inner subsection] - 当前笔记子部分的引用。

    Zeta Note 提供的自动完成功能使此过程快速且简单。

  3. 转到定义悬停预览代码透镜诊断简化了笔记的导航和维护。

现有编辑器集成3

如何安装

选项 1:使用预构建的二进制文件

  1. 转到 发行版 页面:每个发行版都为 Linux、MacOS 和 Windows 提供预构建的二进制文件。下载适合您操作系统的二进制文件。
  2. 重命名二进制文件并使其可执行
    • MacOS: mv zeta-note-macos zeta-note && chmod +x zeta-note
    • Linux: mv zeta-note-linux zeta-note && chmod +x zeta-note
    • Windows: 将 zeta-note-windows.exe 重命名为 zeta-note.exe
  3. 将二进制文件放置在您的 PATH 中的某个位置。
    • XDG 推荐使用 $HOME/.local/bin/(确保该文件夹位于您的 PATH 中)。

选项 2:从源码构建

  1. 通过 rustup 安装 Rust 和 Cargo。
  2. 克隆仓库:git clone https://github.com/artempyanykh/zeta-note.git
  3. zeta-note 文件夹内运行 cargo install --path .
  4. 二进制文件将被安装到 $HOME/.cargo/bin(确保该文件夹位于您的 PATH 中)。

屏幕截图

  • 悬停预览:悬停
  • 完成(笔记):笔记的完成
  • 完成(标题):标题的完成
  • "显示引用" 代码透镜:显示引用的代码透镜
  • 对断开引用的项目级诊断:诊断

功能和计划

✅ - 完成;🗓 - 计划。

  • ✅ 引用完成。
  • ✅ 引用定义跳转。
  • ✅ 引用的悬停预览。
  • ✅ 断开引用的诊断。
  • ✅ 标题上的“#引用”代码透镜。
  • ✅ 支持标题中的引用。
  • ✅ 支持多文件夹工作空间。
  • 🗓 重命名重构。
  • 🗓 支持 Jupyter 笔记本。
  • 🗓 更细粒度的笔记结构自定义解析器。
  • 🗓 支持标题别名。
  • 🗓 添加“检查”命令以进行独立工作空间检查。
  • 🗓 添加“构建”命令,将所有交叉引用重写为正确的相对 Markdown 链接,以便进一步嵌入到静态站点生成器(如 Jekyll 或 Hakyll)中。
  • 🗓 添加对 常规 链接的支持(诊断、完成、跳转)。
  • 🗓 添加对图像的支持(诊断、完成、跳转)。

[1]:你可能听说过Roam Research。这是Zettelkasten方法的商业实现,也是Zeta Note的一个参考点。然而,与专有Roam Research不同,Zeta Note是免费的、开源的,并且集成到了你最喜欢的编辑器中(尽管功能不如Roam Research丰富)。

[2]:有一个优秀的VSCode扩展名为Markdown Memo。如果你主要使用VSCode,你绝对需要检查它,因为它有一些Zeta Note和Zeta Note VSCode扩展中缺少的功能。然而,Markdown Memo是针对VSCode的,而Zeta Note是一个通用语言服务器,因此可以与任何具有LSP支持的编辑器一起使用:Emacs、Vim、Neovim等。

[3]:由于Zeta Note是一个常规语言服务器,大多数功能都无需额外操作即可与任何LSP客户端一起使用。唯一需要自定义处理的是“代码透镜”,因为这些在LSP规范中的定义方式。

[4]rust-analyzer是实施Rust中LSP服务器各个部分的巨大灵感来源。谢谢!

依赖项

~14–23MB
~318K SLoC