A non-linear writing instrument.
  • Rust 90.5%
  • HTML 4.4%
  • CSS 2.7%
  • Shell 1.8%
  • Nix 0.6%
Find a file
2026-01-02 14:28:10 -03:00
.forgejo/workflows Fetch CI tooling directly from releases 2025-12-28 06:27:06 -03:00
docs/development Update CI dev docs and tooling versions script 2025-12-28 07:11:14 -03:00
src Extract context-specific parsing to a separate module 2026-01-02 00:53:42 -03:00
static Make oblique text more noticeable 2026-01-01 23:02:01 -03:00
templates Make oblique text more noticeable 2026-01-01 23:02:01 -03:00
tests/mocks Add an empty file to mocks/no_graph so it exists in CI 2025-12-26 00:26:02 -03:00
.clippy.toml Add tests for all but the content syntax parser module 2025-12-25 23:57:22 -03:00
.gitignore Here goes something 2025-12-09 18:28:39 -03:00
.justfile Make justfile assess-run-watch recipe less strict 2026-01-02 14:28:10 -03:00
.rustfmt.toml Setup and apply formatting 2025-12-12 01:59:48 -03:00
Cargo.lock Concentrate configuration content parsing in syntax::serial 2025-12-28 06:27:30 -03:00
Cargo.toml Concentrate configuration content parsing in syntax::serial 2025-12-28 06:27:30 -03:00
LICENSE Here goes something 2025-12-09 18:28:39 -03:00
README.md Minor refactorings, justfile tweaks, roadmap update 2026-01-01 21:58:39 -03:00

en

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

It works by ingesting a TOML file containing your node specification and serving it as a website that allows nodes to be browsed, searched and listed in relation to each other or as a shallow tree of nodes.

Learn more

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

Roadmap

  • Add tests
    • Improve content syntax parser coverage
  • Redirects
  • Richer text formatting
    • Headers
    • Preformatted blocks
    • Inline code
    • Anchor rendering
      • Automatic anchors
      • Plural anchors (|node|s -> node)
      • Conjugation anchors (|will|ed -> will)
      • Spaced node anchor (|red fox| -> redfox -> RedFox)
      • TOML allows only letters, numbers, dashes and underscores in node IDs. This means trailing punctuation such as in panther|Panthera, could be automatically split
      • # syntax for header ID anchors
    • External anchors
    • Bold, italics, underline, strikethrough
    • Lists
    • Checkboxes
      • Move this roadmap to en
  • Connection kinds
    • Mutual
    • Category <-> Membership
    • Opposite <-> Equivalent
    • Contrast <-> Similar
    • Cognate <-> Unrelated
    • Specialization <-> Generalization
    • Custom connection kinds
  • Strip/render some syntax in Tree text preview
  • Begin centralizing state
  • Full-text search
  • Render to filesystem
  • Reduce O(n) calls in the formats module
  • Multi-file graphs
  • Multi-graph
  • Themes
  • Array syntax for lightweight connections
  • Automatic IDs
  • Automatic titles
  • Mismatch between TOML ID and provided ID