EntwineMenu
On this page

Current state

Version 0.1.0 implements a zero-config compiler for docs/**/*.md and a public showcase built from its own output.

Implemented commands

CommandResult
entwine check [project]Diagnostics and non-zero exit on errors
entwine build [project]Static docs, copied assets, graph in dist/
entwine graph [project]Identical to build; reports the graph page location
entwine context [project]Complete deterministic Markdown context
entwine context [project] --jsonVersioned structured JSON context
entwine dev [project] --port 4173Watched build and loopback HTTP server

Supported content

CommonMark headings, paragraphs, emphasis, lists, links, code, blockquotes, GFM tables, strikethrough, and task lists. Optional YAML title, type, and status metadata are strings; unknown keys are ignored. Titles fall back to first H1, then humanized filename. Repeated headings get suffixes starting at -2.

Document links, extensionless routes, anchors, and local assets are resolved. Repeated links yield one document relationship. Orphans are warnings. Projects without an index document receive an automatically generated landing page.

Reading and graph views

Documentation uses neutral gray surfaces with automatic light/dark support. Mobile navigation and page headings use native collapsible menus. The graph centers the most connected document, distributes other documents in radial rings, and draws directed curved edges between them. The overview fits the viewport; an optional large view allows closer inspection with scrolling. Document and relationship lists remain available as accessible collapsible sections.

Public showcase and distribution

One Cloudflare Pages artifact serves the Astro website at /, Entwine's own documentation at /docs/, and the kitchen-sink example at /demo/. The last two are unmodified entwine build output hosted below a subpath. pnpm build:showcase produces the same deployment/ directory locally and verifies every relative link, asset, and fragment under both mount points. Tagged v* releases publish native binaries for Linux x86_64, macOS arm64, macOS x86_64, and Windows x86_64 on GitHub Releases, with SHA-256 checksums. The same binaries are published to npm as @entwine/cli (a launcher) plus one @entwine/cli-<platform> package per target. Versions, changelog, tags, and publishing are automated from Conventional Commits.

build and graph intentionally do the same work: the graph is always part of a published site, and the graph page is only meaningful beside the pages it links. graph remains as a convenience name; it is not a separate output mode.

Portability checks

Routes that differ only by case are errors, because macOS and Windows file systems would merge their output. Tests cover Unix and Windows separators, nested index routes, traversal, the reserved __entwine path, deep trees, long filenames, repeated and missing headings, README-style Markdown, large code blocks, and graphs of 1, 5, 20, 50, and 100 nodes.

Limits

No search, theme configuration, graph dragging or physics, incremental compilation, or browser reload. Refresh after dev rebuilds. The graph uses a fixed SVG layout with a complete text relationship list; at 100 nodes it is a wide scrollable canvas, not a readable overview. Binaries are unsigned, and Linux builds link the system glibc. A page that links to its own heading counts as referencing itself. Raw HTML is escaped. Symbolic links are rejected. Builds own dist/ entirely. Context schema 0.1 is experimental. API compatibility is not guaranteed before 1.0.

Read the architecture and future roadmap.

Generated by Entwine ยท Markdown remains the source of truth.