Skip to content

Releases: CorvidLabs/3md

v1.0.0 - the format is stable

24 Jun 05:33

Choose a tag to compare

3md is 1.0: the grammar is frozen and stable.

Spec freeze (SPEC.md 1.0)

  • The frontmatter is now a precisely specified, named flat key/value mini-format (it looks like YAML but is not: no nesting, lists, or anchors).
  • Added a "Relation to prior art" section (YAML frontmatter, CommonMark directives, reveal.js, MDX) and a Stability section: the 1.0 grammar is frozen; additive features come in future minor versions; the shared conformance suite is the contract.
  • Format marker is now 3md: 1.0. The parser is version-lenient, so existing 3md: 0.1 documents remain valid; a conformance vector pins both.

Three implementations in lockstep (Swift ThreeMD, TypeScript @corvidlabs/threemd, Rust threemd), proven equivalent by a 43-vector conformance suite. Plus a CLI, an HTML renderer with Markdown + cross-plane links, VS Code syntax highlighting, nine examples, and two live demos.

Verified: swift-format lint clean, 122 Swift tests, 76 TypeScript tests, 43 conformance vectors green in all three languages, spec-sync 7/7.

SwiftPM:

.package(url: "https://github.com/CorvidLabs/3md", from: "1.0.0")

v0.6.0 - Rust implementation + VS Code highlighting

24 Jun 05:00

Choose a tag to compare

Third implementation: Rust

  • A std-only threemd crate (rust/) with parse, serialize, and links, a faithful port of the Swift and TypeScript implementations. It passes the same 42-vector conformance suite, so Swift, TypeScript, and Rust are all provably in sync. cargo fmt + clippy clean; the verify lane now runs all three.

VS Code syntax highlighting

  • A highlighting extension (editor/vscode/): a TextMate grammar for frontmatter, @plane directives, [[z=N]] cross-plane links, and Markdown bodies, with headless grammar tests. Install the packaged .vsix with code --install-extension threemd-0.1.0.vsix.

Tooling

  • The npm publish workflow now derives the package version from the release tag, so @corvidlabs/threemd can no longer lag the git tag.

Verified: swift-format lint clean, 122 Swift tests, 74 TypeScript tests, Rust conformance + clippy + fmt, all 42 conformance vectors green in all three languages, spec-sync 7/7.

SwiftPM:

.package(url: "https://github.com/CorvidLabs/3md", from: "0.6.0")

v0.5.0 - cross-plane links

24 Jun 03:56

Choose a tag to compare

Cross-plane links

  • A plane body can reference another plane by its z with [[z=N]] or [[z=N|link text]].
  • Both parsers expose extraction in lockstep, pinned by 6 shared conformance vectors: Swift Document.links() and TypeScript links(document), each returning { sourceZ, targetZ, text, targetExists } in document order.
  • The HTML renderer resolves links to <a href="#plane-z-N"> and gives each plane <section> a matching id, so threemd html output is navigable.
  • SPEC.md section 8 specifies the syntax, regex, and extraction semantics.
  • The dungeon example now uses real cross-plane links for its room exits.

Verified: swift-format lint clean, 122 Swift tests, 74 TypeScript tests, 42 conformance vectors (including 6 link vectors) green in both languages, spec-sync 7/7.

This release also bumps the npm package to 0.5.0.

SwiftPM:

.package(url: "https://github.com/CorvidLabs/3md", from: "0.5.0")

v0.4.0 - Markdown rendering + npm on GitHub Packages

24 Jun 03:40

Choose a tag to compare

Markdown rendering

  • threemd html now renders each plane's Markdown body (and the preamble) to real HTML via a new dependency-free MarkdownRenderer (a CommonMark subset: headings, ordered/unordered/task lists, fenced code, blockquotes, bold, italic, inline code, links). The CLI is now a true preview, not a raw <pre> dump.

Distribution

  • @corvidlabs/threemd now publishes to GitHub Packages (npm.pkg.github.com), matching the CorvidLabs convention. A release workflow publishes automatically using the built-in token; no manual npm login needed. Consumers add @corvidlabs:registry=https://npm.pkg.github.com to .npmrc, then bun add @corvidlabs/threemd.

Project

  • Added ROADMAP.md.

Verified: swift-format lint clean, 92 Swift tests, 58 TypeScript tests, 36 conformance vectors green in both languages, spec-sync 7/7.

SwiftPM:

.package(url: "https://github.com/CorvidLabs/3md", from: "0.4.0")

v0.3.0 - hardened, conformance-backed, dual-language

24 Jun 03:11

Choose a tag to compare

A hardening release driven by a multi-agent review of the format, both parsers, the conformance suite, the docs, and real-world dogfooding.

Parser correctness (Swift and TypeScript, in lockstep, pinned by shared conformance vectors)

  • Directives are code-block-aware: @plane is a directive only at column 0 and never inside a fenced (``` / ~~~) or indented code block. You can now document 3md in 3md.
  • Quoted values escape and unescape \\ and \", so titles/labels/attributes with quotes and backslashes round-trip exactly. An unterminated quote is now an error.
  • z, x, and y must be finite decimals; hex, inf, and nan are rejected. This also closes the z=nan duplicate-detection bypass.
  • A leading UTF-8 BOM is stripped.

Tooling and DX

  • threemd info now prints x, y, and attributes; a path of - reads stdin; missing-file and non-UTF-8 give distinct errors.
  • HTML renderer uses <pre><code>; serializer escaping aligned with the parser.

Project

  • LICENSE (MIT), js/README.md, and README sections for the CLI, the JavaScript/TypeScript package, and SwiftPM install.
  • Conformance suite grew to 36 shared vectors, run by both the Swift and TypeScript suites.
  • SPEC.md now specifies the numeric grammar, escaping, code-block safety, and BOM handling.

Verified: swift-format lint clean, 53 Swift tests, 58 TypeScript tests, all 36 conformance vectors green in both languages, spec-sync 7/7.

SwiftPM:

.package(url: "https://github.com/CorvidLabs/3md", from: "0.3.0")

TypeScript:

bun add @corvidlabs/threemd

v0.2.0 - renderer, CLI, and a JS twin

24 Jun 02:30

Choose a tag to compare

Tooling and a second implementation for 3md (Markdown with a Z axis).

New

  • HTMLRenderer (Swift): render a Document to a standalone, accessible HTML5 page, one <section> per plane.
  • threemd CLI: validate, info, and html subcommands. The library target stays zero-dependency.
  • @corvidlabs/threemd (js/): a strict-TypeScript parser and serializer that mirrors the Swift implementation.
  • Shared conformance suite (conformance/): 21 JSON vectors (12 valid, 9 invalid) run by BOTH the Swift and TypeScript test suites, so the two parsers are provably in sync.

Verified: swift-format lint clean, 53 Swift tests, spec-sync 7/7, 34 TypeScript tests, all conformance vectors green in both languages.

SwiftPM:

.package(url: "https://github.com/CorvidLabs/3md", from: "0.2.0")

v0.1.0 - first cut

24 Jun 01:32

Choose a tag to compare

The first release of 3md: Markdown with a Z axis.

A .3md file is plain Markdown extended along one free axis you name yourself (time, frame, layer, depth, space, or anything). Frontmatter declares the axis; @plane directives slice the document along Z.

This release

  • The 0.1 format specification (SPEC.md).
  • ThreeMD: a cross-platform Swift parser and serializer (Sendable value types, no force unwrap), 32 tests.
  • Example documents and an interactive web demo (web/).
  • Wired to the CorvidLabs trust toolchain (fledge, spec-sync, augur, attest) with a green CI gate.

Add via SwiftPM:

.package(url: "https://github.com/CorvidLabs/3md", from: "0.1.0")