A non-linear writing instrument.
  • Rust 91.4%
  • HTML 4.4%
  • CSS 2.7%
  • Shell 1.5%
Find a file
2026-03-21 15:44:17 -03:00
.forgejo/workflows Rename CI user setup step 2026-03-21 10:53:14 -03:00
containers Drop 'latest' tag as a way of finding the newest tag 2026-03-11 02:40:45 -03:00
docs/development Move roadmap to docs graph, minor docs edits 2026-01-07 11:14:32 -03:00
src Add several tests to dev/test, router handlers and syntax tokens 2026-03-21 15:44:17 -03:00
static Strip header from canonical licenses 2026-03-11 02:40:45 -03:00
templates Embed assets into the binary 2026-03-11 02:40:45 -03:00
.clippy.toml Apply lints to all targets 2026-03-16 20:45:30 -03:00
.gitignore Here goes something 2025-12-09 18:28:39 -03:00
.justfile Bump just version and set lazy option 2026-03-21 10:35:21 -03:00
.rustfmt.toml Adopt and apply nightly rustfmt configuration 2026-02-16 16:19:27 -03:00
Cargo.lock Extend test coverage for test and fixed modules 2026-03-21 00:27:58 -03:00
Cargo.toml Extend test coverage for test and fixed modules 2026-03-21 00:27:58 -03:00
LICENSE Here goes something 2025-12-09 18:28:39 -03:00
README.md Update README with expanded long-term goals and a more detailed pitch 2026-03-17 08:38:08 -03:00

en

en is a tool to write non-linear, connected pieces of text and have their references mapped out as a metadata-rich graph of connected information.

It works by ingesting a graph definition that leverages TOML for metadata and a special markup language for prose. en can then serve this textual representation as a website (with other targets planned) that allows nodes to be explored.

Learn more

You can learn more and see what en looks like by visiting the homepage, which is rendered using en itself.

Install and run

See the Documentation page for instructions and how to install and start using en.

Roadmap

On a high-level, here are some things that en intends to achieve at some point:

  1. Separate 'en' the server from 'en' the source-to-source translator. This would allow using en's markup syntax as a standalone compile-to-HTML language, effectively creating an "en cli" that should also have options to make it more practical to manipulate a graph, such as adding new nodes or querying your graph
  2. Multifile graphs, with optional TOML frontmatter
  3. Make en more fitting to the 'note taking' use case
  4. Multigraph, with the server being capable to let the user choose which graph to render and with inter-graph connections
  5. Different rendering modes such as to a static website, to PDF or EPUB (with paper-friendly metadata)
  6. Stateful and stateless online graph editing with 'export to TOML'

For a more detailed outline of what's planned for the future of en, along with what's already been completed, see the roadmap.