Zeta Note
Delightful note taking in markdown...
OBLIGATORY DISCLAIMER: Zeta Note is a work-in-progress. For me it works fine, but there wasn't much testing and stability in general isn't guaranteed.
Zeta Note is a language server that helps you write and manage notes. The primary focus is to support Zettelkasten-like1, 2 note taking by providing an easy way to cross-reference notes (see more about features below).
But you don't have to go all-in on Zettelkasten method to benefit from Zeta Note:
-
Write your notes that way you like.
-
Cross-reference notes using reference links:
[:another-note]
- a reference to another note.[:another-note@##Subsection]
- a reference to a subsection of a note.[:@##Inner subsection]
- a reference to a subsection of the current note.
Auto-completion provided by Zeta Note makes this process quick and easy.
-
Go To Definition, Hover preview, Code Lenses, and Diagnostics simplify navigating and maintaining notes.
3:
Existing editor integrations- VSCode via Zeta Note VSCode.
Screenshots
- Hover preview:
- Completion (note):
- Completion (heading):
- "Show References" Code Lens:
- Project-wide diagnostics for broken references:
Features and plans
-
โ Completion for references. -
โ Go to Definition for references. -
โ Hover prevew for references. -
โ Diagnostics about broken references. -
โ Code Lens with "# references" on headings. -
โ Support references in titles. -
๐ Rename refactor. -
๐ Support for Jupyter notebooks. -
๐ Custom parser for more fine-grained note structure. -
๐ Support heading slugs. -
๐ Add "check" command for standalone workspace checking. -
๐ Add "build" command that rewrites all cross-references into proper relative markdown links for further embedding into a static site generator such as Jekyll or Hakyll. -
๐ Add support for regular links (diagnostics, completion, goto). -
๐ Add support for images (diagnostics, completion, goto).
[1]: You may have heard about Roam Research. This is a commercial implementation of the Zettelkasten method and another point of reference for what Zeta Note is about. However, unlike a proprietary Roam Research, Zeta Note is free, open-source and integrated into your favourite editor (albeit for not not as feature rich as Roam Research).
[2]: There is an excellent VSCode extension called Markdown Memo. You definitely need to check it out if you're primarily using VSCode as it has some features that are missing in Zeta Note and Zeta Note VSCode extension. However, Markdown Memo is VSCode specific while Zeta Note is a generic language server, so can be used with any editor that has LSP support: Emacs, Vim, Neovim, etc.
[3]: Since Zeta Note is a regular Language Server most of the functionality works out of the box with any LSP client. The only thing that requires custom handling is "Code Lenses" due to how these are defined in LSP spec.
[4]: rust-analyzer was a huge source of inspiration for how to implement various parts of an LSP server in Rust. Thank you!