Skip to content

Styled Markdown 2.0.2

Choose a tag to compare

@github-actions github-actions released this 21 Oct 22:01
· 41 commits to main since this release
061f1f5

Downloads

Asset What it is How to install
styled-markdown-2.0.2.vsix VS Code extension code --install-extension styled-markdown-2.0.2.vsix, or Extensions → ⋯ → Install from VSIX… (guide)
styled-markdown-2.0.2.tgz npm package (library + smd CLI), the same file as on npm npm install -g ./styled-markdown-2.0.2.tgz
styled-markdown-writer.zip Agent skill: create and edit .smd following the rules Unzip into ~/.claude/skills/ or upload in Claude → Settings → Capabilities → Skills (guide)
styled-markdown-reader.zip Agent skill: token-efficient reading Same as above
styled-markdown-playground.zip Web playground: edit, preview and share .smd in the browser Unzip and open playground/index.html, or serve the folder (guide)
mkdocs_styled_markdown-2.0.2-py3-none-any.whl MkDocs plugin (Python wheel; needs Node.js 22+) pip install ./mkdocs_styled_markdown-2.0.2-py3-none-any.whl (guide)
mkdocs_styled_markdown-2.0.2.tar.gz MkDocs plugin source distribution pip install ./mkdocs_styled_markdown-2.0.2.tar.gz
styled-markdown-obsidian-2.0.2.zip Obsidian plugin (a styled-markdown folder with main.js, manifest.json and styles.css) Unzip into your vault's .obsidian/plugins/, then turn it on in Settings → Community plugins (guide)

A patch for editors that highlight with Tree-sitter, and for CI. The extension, the CLI and the library behave exactly as in 2.0.1.

Fixed

  • The Tree-sitter grammar reads smd: 2 documents with the spec v2 rules (integrations/tree-sitter-smd), so Neovim, Helix, Zed and Emacs highlight them as they render. Until now it read every document with the v1 rules. Its scanner reads the front matter's smd key as specVersion does, then follows the v2 rules: a closing fence closes the innermost container opened with as many colons, and the ones inside it; $$ math opens and closes only on lines that are just $$; directive names in any case; and a heading's trailing {} or {word} is text. Documents without smd: 2 parse exactly as before. Checked against the renderer on every .smd in the repository and 300 fuzz documents, each as written, as smd: 2 and as spec v1. Container and math ranges agree except where the grammar was already simpler: raw HTML blocks, now listed in its README, and front matter the renderer can't read as YAML.
  • CI: the benchmark gate no longer fails on a slow runner. The smdToMarkdown limits (25 / 150 ms for 1k / 10k lines) were set before it parsed the whole document and sat at 90% of what CI measures; they now match renderSmd (100 / 750 ms), and a case over its limit is measured again before it fails. Every limit is still 5–10x a CI runner's median, so an accidentally quadratic pass still fails.