Interactive documents — rich content, links, input
Lingenic HyperMedia is a full implementation of the Compose standard, currently in development. It renders .compose documents as interactive hypermedia — rich typography, mathematics, graphics, with navigation and input.
Documents as the interface. Rich typography, mathematics, graphics. Interactive forms and navigation. Same source renders to screen, PDF, and print.
| Aspect | Capability |
|---|---|
| Rendering | Full typesetting — fonts, math, tables, graphics |
| Navigation | Links between documents, history, bookmarks |
| Interaction | .when-click, .when-hover for responsive UI |
| Input | .read with pattern matching for forms |
| Output parity | Terminal, PDF, HTML — same document |
| System | Similarity | Difference |
|---|---|---|
| HyperCard | Documents as applications | Compose is text-native, not card-based |
| Web Browser | Navigation, links, forms | Document-centric, no DOM/CSS/JS complexity |
| PDF Viewer | Rich typography, portable | Compose is truly interactive, not static |
| Lynx | Text-mode, lightweight | Compose supports rich media too |
┌─────────────────────────────────────────────────────────┐ │ Lingenic HyperMedia │ ├─────────────────────────────────────────────────────────┤ │ │ │ .compose ──→ Processor ──→ .composed ──→ Renderer │ │ │ │ │ │ │ ┌─────┴─────┐ ┌────┴────┐ ┌───┴────┐ │ │ │ Variables │ │ Static │ │Terminal│ │ │ │ Conditns │ │ Content │ │ PDF │ │ │ │ Includes │ │ + Links │ │ HTML │ │ │ └───────────┘ └─────────┘ └────────┘ │ │ │ │ Input ←── .read ←── Pattern Matching │ │ Events ←── .when-click, .when-hover │ │ Navigation ←── links, history, .go-to │ │ │ └─────────────────────────────────────────────────────────┘
Reads .compose syntax — commands, variables, patterns, content.
Resolves dynamic elements: variables, conditionals, loops, includes, patterns. Outputs .composed (static content, active links).
Typesets content to output: terminal (text or GUI), PDF, HTML. Handles fonts, math layout, graphics, tables.
Processes .read commands with pattern matching. Validates input, captures to variables.
Responds to .when-click and .when-hover. Updates state, triggers navigation, modifies display.
Manages document links, history stack, bookmarks. Handles internal refs and external URLs.
| Mode | Output | Use Case |
|---|---|---|
| Interactive | Terminal (text or GUI) | Browsing, forms, navigation |
| Export | PDF / HTML | Print, distribution, archival |
Document Networks — Personal wikis, documentation systems, knowledge bases linked together.
Interactive Manuals — Software documentation with working examples, validated input, guided tutorials.
Forms and Wizards — Data collection with pattern validation, branching logic, immediate feedback.
Educational Materials — Language learning with parsed input, math tutoring with rendered equations.
Lingenic HyperMedia is in early development. Core components:
| Component | Status |
|---|---|
| Parser | Implemented (Rust) |
| Processor | Partial |
| PDF Renderer | Implemented (Rust) |
| Terminal Renderer | Planned |
| Input Handler | Planned |
| Event Handler | Planned |
| Navigator | Planned |
Compose started as typesetting. Through orthogonal design it became text processing, then interactive documents, then HyperMedia.
HyperMedia is the natural endpoint: a document-centric environment where content, computation, and interaction unify.
Not an app platform. Not a web page. HyperMedia — where the document is the application.