Markdown LSP server for easy note-taking with cross-references and diagnostics.

Overview

Zeta Note

Delightful note taking in markdown...

Build & Test

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:

  1. Write your notes that way you like.

  2. 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.

  3. Go To Definition, Hover preview, Code Lenses, and Diagnostics simplify navigating and maintaining notes.

Existing editor integrations3:

Screenshots

  • Hover preview: Hover
  • Completion (note): Completion for note
  • Completion (heading): Completion for heading
  • "Show References" Code Lens: Show references code lens
  • Project-wide diagnostics for broken references: Diagnostics

Features and plans

โœ… - done; ๐Ÿ—“ - planned.

  • โœ… 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!

You might also like...
Hot reload static web server for deploying mutiple static web site with version control.

SPA-SERVER It is to provide a static web http server with cache and hot reload. ไธญๆ–‡ README Feature Built with Hyper and Warp, fast and small! SSL with

 An extensible music server written in Rust ๐Ÿš€๐ŸŽตโœจ
An extensible music server written in Rust ๐Ÿš€๐ŸŽตโœจ

Music Player (written in Rust) Note: This is a work in progress. This is a simple music player that I made for my own use. It is written in Rust and u

An adapter to easily allow an Axum server to be run within a Cloudflare worker.

axum-cloudflare-adapter An adapter to easily allow an Axum server to be run within a Cloudflare worker. Usage use worker::*; use axum::{ response

Rust GraphQL server using simple type-only schema

SimpleGQL This library allows a simplified GraphQL schema to be given and will run a server with a backend store (currently only SQLite) and a set of

An async no_std HTTP server suitable for bare-metal environments, heavily inspired by axum

picoserve An async no_std HTTP server suitable for bare-metal environments, heavily inspired by axum. It was designed with embassy on the Raspberry Pi

Rust/Axum server implementation with PCR(Prisma Client Rust)
Rust/Axum server implementation with PCR(Prisma Client Rust)

Realworld Rust Axum Prisma This project utilizes Rust with the Axum v0.7 framework along with the Prisma Client Rust to build a realworld application.

A Google-like web search engine that provides the user with the most relevant websites in accordance to his/her query, using crawled and indexed textual data and PageRank.
A Google-like web search engine that provides the user with the most relevant websites in accordance to his/her query, using crawled and indexed textual data and PageRank.

Mini Google Course project for the Architecture of Computer Systems course. Overview: Architecture: We are working on multiple components of the web c

Ergonomic and modular web framework built with Tokio, Tower, and Hyper

axum axum is a web application framework that focuses on ergonomics and modularity. More information about this crate can be found in the crate docume

A simple authentication flow using Rust and Actix-web, with a PostgreSQL database and a sveltekit frontend.

Rust-auth-example This repository aims to represent a simple authentication flow using Rust and Actix-web, with a PostgreSQL database and a sveltekit

Releases(2022-03-26)
Owner
Artem Pyanykh
Static Analysis Tools @ Facebook
Artem Pyanykh
Trulang is an interpreted language that is designed to be a simple, easy to learn, and easy to use programming language.

Trulang is an interpreted language that is designed to be a simple, easy to learn, and easy to use programming language.

Bunch-of-cells 2 Nov 23, 2022
A super-easy, composable, web server framework for warp speeds.

warp A super-easy, composable, web server framework for warp speeds. The fundamental building block of warp is the Filter: they can be combined and co

Sean McArthur 7.5k Jan 2, 2023
A full-featured and easy-to-use web framework with the Rust programming language.

Poem Framework A program is like a poem, you cannot write a poem without writing it. --- Dijkstra A full-featured and easy-to-use web framework with t

Poem Web 2.2k Jan 6, 2023
A customizable, simple and easy to use json REST API consumer

JACK is a generic JSON API client. It is useful to interact with APIs from multiple services such as Google and Twitter

Mente Binรกria 6 May 22, 2022
Discover GitHub token scope permission and return you an easy interface for checking token permission before querying GitHub.

github-scopes-rs Discover GitHub token scope permission and return you an easy interface for checking token permission before querying GitHub. In many

null 8 Sep 15, 2022
Cross platform community web fingerprint identification tool

ObserverWard_0x727 English | ไธญๆ–‡็ฎ€ไฝ“ category describe author ไธ‰็ฑณๅ‰ๆœ‰่•‰็šฎ team 0x727 Open source tools will be available in the future. what for? Communalizat

0x727 534 Jan 1, 2023
Proxies all incoming connections to a minecraft server of your choosing, while also logging all ping and login requests to a json file and discord webhook.

minecraft-honeypot Proxies all incoming connections to a minecraft server of your choosing, while also logging all ping and login requests to a json f

Cleo 19 Jan 4, 2023
A Rust Boilerplate server with GraphQL API, Diesel, PostgreSQL, session authentication and JWT

Canduma rust Graphql A Rust authentication server with GraphQL API, Diesel, PostgreSQL session authentication and JWT This repository contains a Graph

Julien Lenne 738 Dec 28, 2022
Rust server with Axum, GraphQL and SurrealDb

??๏ธ Article on my web Axum server, Async-GraphQl, SurrealDB template Run without any prior setup, DB is in memory: cargo run To use routes other than

null 15 Jun 26, 2023
REST API server that abstracts the need to write CRUD methods by exposing a standardized API to interact with a Postgres database

Basiliq Exposing a Postgres database via a REST API that follows the JSON:API specs. All in all, a tasty API. What is Basiliq Quickstart Ready to use

Basiliq 54 Apr 21, 2022