Repository navigation
v0.9.0
Release Notes - Version 0.9.0
Release Date: August 31, 2026
Summary
This release introduces comprehensive directive completion and hover support across both the VS Code extension and Obsidian plugin, adds a versatile new divider standard component, and centralizes layout attributes as data within @markii/stdlib. It also fixes an issue where prose colons were incorrectly parsed as text directives, ensuring clean text handling for times, ratios, and key-value pairs.
Added
- Directive completion and hover in both hosts: VS Code extension and Obsidian plugin; shared logic in the private host package. Typing an opener suggests component names in the forms the component's kind allows; inside the braces it suggests the component's attributes plus the reserved
widthandalign, and enumerated values for attributes that have them. Accepting a name inserts the same skeleton the Insert command builds. VS Code also shows hover documentation for a directive name. Pack components complete by name and description; declaringkindinpack.jsonnarrows which forms offer them. - A
dividerstandard component (@markii/stdlib,@markii/react,@markii/html): a leaf directive for a section break that carries a label or a chosen look:::divider,::divider{label="Part 2" variant="dots"}.variantis one ofline,dots, orornament, defaulting tolinewhen absent or unrecognized;labelis optional and, when present, is centered in the break and also carried as the separator'saria-label. Both renderers emit the samemk-dividerseparator markup, sodoc.csscovers both, and the insert catalog, directive completion, and hover documentation pick it up fromSTANDARD_COMPONENTSautomatically. A plain---thematic break keeps its own CommonMark meaning and is untouched. - **
@markii/stdlib: a neutrallayout.ts**: exporting the docs/format.md layout system as data —LAYOUT_ATTRIBUTE_KEYS(width,align),WIDTH_PRESETS(normal,narrow,wide,full),ALIGN_PRESETS(left,center,right), andLAYOUT_ATTRIBUTES, the same two attributes expressed asAttributeSchemas so a tool that documents or completes attributes reads them exactly like a component's own. This is the one source both renderers'layout.tsnow build their class maps from, replacing two independently hand-copied literals.
Changed
- **
@markii/reactand@markii/html: the reserved layout-attribute keys and preset values now come from@markii/stdlib**: instead of a hand-copied literal in each renderer's ownlayout.ts. Each renderer'swidth/alignclass map is now derived mechanically from@markii/stdlib's preset lists (mk-width-<preset>for every width preset butnormal,mk-align-<preset>for every align preset). No behavior change: the produced classes, thenormal-is-classless rule, and the null-prototype defense against a hostile value are exactly as before.
Fixed
@markii/core: a prose colon no longer parses as a text directive: Previously any single colon could open a text directive, so a clock time (12:34), a Bible verse (John 3:16), a ratio (a:b), or akey:valuepair was misread as a directive and every renderer showed an "unknown component" fallback box in the middle of an ordinary sentence. A text directive is now recognized only when its name starts with an ASCII letter and the colon sits at a word start (the start of the document, or preceded by anything other than an ASCII letter or digit). A colon that fails this rule is left as plain text, byte-identical to the source. Leaf (::) and container (:::) directives are unaffected, since they only ever occur at the start of a line.
Install
The renderer pulls the rest in as dependencies:
npm install @markii/react@0.9.0
All eight packages, if you want them explicitly:
npm install @markii/core@0.9.0
npm install @markii/stdlib@0.9.0
npm install @markii/bundle@0.9.0
npm install @markii/pack@0.9.0
npm install @markii/runtime@0.9.0
npm install @markii/lua@0.9.0
npm install @markii/react@0.9.0
npm install @markii/html@0.9.0
Downloads
The attached tarballs are the packed npm packages. The names are stable across releases, so the latest of each is always at a fixed URL:
https://github.com/markii-org/markii/releases/latest/download/markii-core.tgz
https://github.com/markii-org/markii/releases/latest/download/markii-stdlib.tgz
https://github.com/markii-org/markii/releases/latest/download/markii-bundle.tgz
https://github.com/markii-org/markii/releases/latest/download/markii-pack.tgz
https://github.com/markii-org/markii/releases/latest/download/markii-runtime.tgz
https://github.com/markii-org/markii/releases/latest/download/markii-lua.tgz
https://github.com/markii-org/markii/releases/latest/download/markii-react.tgz
https://github.com/markii-org/markii/releases/latest/download/markii-html.tgz