Expand description
§Nematic
Portable smolweb engine for the mere
browser — renders Gemini, Gopher, static HTML, Markdown, RSS/Atom, and
other lightweight protocols where content can be rendered with minimal
layout cost.
The name nematic is borrowed from liquid-crystal physics: a nematic phase has orientational order without positional order — rod-shaped molecules all point the same way but otherwise flow freely. Light passes through aligned nematic crystals coherently; that’s the basis of LCDs. The metaphor for a smolweb rendering engine: organized-but-flowing, threads aligned, the reader sees through to the meaning without layout-noise getting in the way.
§Engines
Nematic implements concrete inker::Engines. Currently shipped:
MarkdownEngine— CommonMark viapulldown-cmarkGemtextEngine— Gemini’stext/geminiline-oriented formatGopherEngine— RFC 1436 gopher menu parserFeedEngine— RSS 2.0, Atom 1.0, and JSON Feed 1.x syndication feedsTextEngine— plain text with paragraph splittingFileEngine— extension-based dispatch forfile://contentFingerEngine— RFC 1288 finger protocol responsesKnotEngine— Mere’s native note / clip format (frontmatter + markdown)ScrollEngine— Scroll smolweb body (gemtext or markdown)SpartanEngine— Spartan smolweb body (gemtext or markdown)TitanEngine— Titan response body (gemtext; upload is transport-side)MisfinEngine— Misfin gemini-style mail body (gemtext)NexEngine— Nex directory listings + contentGuppyEngine— Guppy UDP-smolweb body (gemtext)
Use engines to get a Vec<Box<dyn Engine>> of all default nematic
engines for one-call registration with inker::EngineRegistry.
§Status
Pre-1.0. All seven smolweb / file / text protocol lanes shipped. Reader- mode HTML simplification (a separate concern from full-web rendering, which Serval owns) is the only major lane still pending.
Re-exports§
pub use feed::ENGINE_ID as ENGINE_FEED;pub use feed::FeedEngine;pub use file::ENGINE_ID as ENGINE_FILE;pub use file::FileEngine;pub use finger::ENGINE_ID as ENGINE_FINGER;pub use finger::FingerEngine;pub use gemtext::ENGINE_ID as ENGINE_GEMTEXT;pub use gemtext::GemtextEngine;pub use gopher::ENGINE_ID as ENGINE_GOPHER;pub use gopher::GopherEngine;pub use guppy::ENGINE_ID as ENGINE_GUPPY;pub use guppy::GuppyEngine;pub use knot::ENGINE_ID as ENGINE_KNOT;pub use knot::KnotEngine;pub use knot::djot::DjotKnotEngine;pub use knot::djot::ENGINE_ID as ENGINE_KNOT_DJOT;pub use markdown::ENGINE_ID as ENGINE_MARKDOWN;pub use markdown::MarkdownEngine;pub use misfin::ENGINE_ID as ENGINE_MISFIN;pub use misfin::MisfinEngine;pub use nex::ENGINE_ID as ENGINE_NEX;pub use nex::NexEngine;pub use scroll::ENGINE_ID as ENGINE_SCROLL;pub use scroll::ScrollEngine;pub use spartan::ENGINE_ID as ENGINE_SPARTAN;pub use spartan::SpartanEngine;pub use text::ENGINE_ID as ENGINE_TEXT;pub use text::TextEngine;pub use titan::ENGINE_ID as ENGINE_TITAN;pub use titan::TitanEngine;
Modules§
- feed
- Feed engine — RSS 2.0, Atom 1.0, and JSON Feed 1.x into a portable document.
- file
- File viewer engine.
- finger
- Finger engine — RFC 1288 finger protocol responses.
- gemtext
- Gemtext engine — Gemini’s
text/geminicontent type. - gopher
- Gopher menu engine — parses RFC 1436 gopher menus into a portable document.
- guppy
- Guppy engine — body-shape parser for Guppy (
guppy://), the UDP-based smolweb protocol (https://guppy.mozz.us). - knot
- Knot — Mere’s native note / clip format.
- markdown
- Markdown engine.
- misfin
- Misfin engine — body-shape parser for Misfin (
misfin://) gemini-style peer-to-peer mail (https://misfin.org). - nex
- Nex engine — parser for Nex (
nex://), the minimal smolweb protocol (https://nex.nightfall.city). - scroll
- Scroll engine — body-shape parser for the Scroll smolweb protocol (https://scroll.mozz.us).
- spartan
- Spartan engine — body-shape parser for Spartan (
spartan://), a deliberately-simpler sibling of Gemini (https://spartan.mozz.us). - text
- Plain text engine.
- titan
- Titan engine — render side of Titan (
titan://), the write/upload companion to Gemini (https://transjovian.org/titan).
Constants§
Functions§
- engines
- All default nematic engines, ready to register with an
inker::EngineRegistry.