Skip to main content

Crate illume

Crate illume 

Source
Expand description

illume: a portable text lexer and syntax highlighter for the Mere browser.

The editor pipe, host-agnostic and toolkit-free. It reads .knot source text and produces the (range, kind) highlight channel the edit surface paints, plus the inner-language injection registry. This is the editor pipe in the plan’s two-parser split: it colors and (later) navigates the source. It is separate from the meaning pipe (nematic’s DjotKnotEngine: text → Block), and both read the same bytes. The source text is always the single source of truth; nothing here mutates it.

Pure Rust and wasm-clean by construction (jotdown plus, later, logos inner lexers), so native and the browser build the same way. See design_docs/mere_docs/implementation_strategy/2026-06-24_djot_editor_knot_nodes_plan.md.

Re-exports§

pub use entity::entities;
pub use highlight::Span;
pub use highlight::SyntaxKind;
pub use highlight::highlight;
pub use highlight::highlight_djot;
pub use injection::InjectionLexer;
pub use injection::InjectionRegistry;
pub use pack::default_pack;
pub use tree::Fold;
pub use tree::NodeKind;
pub use tree::OutlineItem;
pub use tree::TreeNode;
pub use tree::container_tree;
pub use tree::expand_selection;
pub use tree::folds;
pub use tree::outline;

Modules§

entity
Inline prose-entity highlighting: URLs, @mentions, #tags, and emails found amid ordinary text.
highlight
Djot syntax highlighting for the edit surface.
injection
Inner-language injection: the pluggable lexer registry.
pack
The curated logos pack: built-in injection lexers for the common languages a note carries.
tree
The container tree: folds, outline, and structural selection.