Wit

Changelog

Release history for Wit. The format follows Keep a Changelog and is driven by Changesets; pre-1.0, the version stays in the 0.x range and breaking changes are allowed with notes.

0.2.1

A bug-fix release. wit --version reports 0.2.1.

Fixed

  • Collection index access now resolves. Reaching into a collection by number — @findings.0.claim, @list.1, and nested @r.items.1 — previously rendered as an unresolved marker. Numeric indexing now works in prose, conditionals, and iteration access; an out-of-range or non-numeric index degrades gracefully instead of throwing.

Changed

  • Package repository / homepage / bugs URLs now point at github.com/PurpleReverie/witlang (repo renamed; the @witlang/* npm names are unchanged).

0.2.0

wit --version

reports 0.2.0, matching the published packages.

Language features

  • Literal and frozen raw nodes (@@name … @@, @@@name … @@@) with {{path}} interpolation inside raw-node bodies.
  • A styled render target and a Word/Docs-style default theme.
  • External data: the @load node pulls a JSON/CSV/TSV/lines/text result from a configured program (wit.sources.json) into a def.
  • @table |rows @data| — build a table from a referenced data collection.
  • Image sizing and placement (, ) plus invisible @row / @col layout containers.
  • Core vocabulary grew to 52 names (adds div, span, cite, row, col).
  • Typed parameters and iterable captures; emphasis and escape fixes — a backslash now escapes @, #, |, and the emphasis marks in prose.

Tooling

  • wit fmt — re-indents a document to match its nesting without changing structure.
  • HTML-like indentation and PDF output (with a <base href> so relative assets resolve).

0.1.0 — initial public release

The first public release, which reported 0.1.0.

Packages

  • parser — lexer and parser producing a typed AST.
  • runtime — resolver and expander.
  • render-html — the HTML renderer.
  • render-markdown — the Markdown renderer.
  • cli — the wit command: parse, check, fmt, build, and tour.

Language features

  • Nodes, definitions, additive partials, records, and collections.
  • Data access, conditionals, iteration, and the script bridge.
  • The reserved core vocabulary — headings, inline marks, lists, links and media, tables, blocks, and sectioning; see the core vocabulary reference for the full list.
  • Tables in inline, schema-array, and schema-record forms.
  • The opaque @node pass-through.
  • The form-fill body shape and record-argument invocation.

See also

Roadmap

covers what is planned next; Install includes the version smoke test.