Skip to content

Releases

Semantic Markdown 3.0.0

Choose a tag to compare

@github-actions github-actions released this 05 Nov 12:31
1798942

Downloads

Asset What it is How to install
semantic-markdown-3.0.0.vsix VS Code extension code --install-extension semantic-markdown-3.0.0.vsix, or Extensions → ⋯ → Install from VSIX… (guide)
semantic-markdown-3.0.0.tgz npm package (library + smd CLI), the same file as on npm npm install -g ./semantic-markdown-3.0.0.tgz
semantic-markdown-writer.zip Agent skill: create and edit .smd following the rules Unzip into ~/.claude/skills/ or upload in Claude → Settings → Capabilities → Skills (guide)
semantic-markdown-reader.zip Agent skill: token-efficient reading Same as above
semantic-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_semantic_markdown-3.0.0-py3-none-any.whl MkDocs plugin (Python wheel; needs Node.js 22+) pip install ./mkdocs_semantic_markdown-3.0.0-py3-none-any.whl (guide)
mkdocs_semantic_markdown-3.0.0.tar.gz MkDocs plugin source distribution pip install ./mkdocs_semantic_markdown-3.0.0.tar.gz
semantic-markdown-obsidian-3.0.0.zip Obsidian plugin (a styled-markdown folder, the plugin's ID, with main.js, manifest.json and styles.css) Unzip into your vault's .obsidian/plugins/, then turn it on in Settings → Community plugins (guide)
semantic-markdown-jetbrains-3.0.0.zip JetBrains plugin (IntelliJ IDEA 2025.3+, PyCharm, WebStorm…): highlighting and the language server; needs Node.js 22+ Settings → Plugins → ⚙ → Install Plugin from Disk… (guide)

Styled Markdown is now Semantic Markdown. The name says what the format is for: Markdown whose decisions, risks, tasks and agent instructions tools can read. The format doesn't change. .smd files, the smd command and its flags, smd: 2, the smd.* settings, commands and keybindings, diagnostic codes and the smd-* CSS classes all stay the same, so documents, CI checks and editor setups keep working. What changes are the published names. Each old name gets one last 3.0.0 release that moves you to the new one. See Moving from Styled Markdown.

⚠️ Breaking changes

  • The VS Code extension is bislink360.semantic-markdown (was bislink360.styled-markdown), on the Marketplace and Open VSX. The old ID's 3.0.0 update installs the new extension and offers to uninstall itself. While the full 2.x extension is still enabled, the new one stays idle and asks you to uninstall the old one, because both register the same commands. Migration: nothing for most users. Settings, keybindings and .vscode/extensions.json recommendations that name bislink360.styled-markdown should name bislink360.semantic-markdown.
  • The npm package is semantic-markdown (was styled-markdown). Imports move with it: semantic-markdown, semantic-markdown/markdown-it, /remark, /rehype, /smd.css, /frontmatter.schema.json. The smd and smd-language-server commands are the same, and npx semantic-markdown runs the CLI. styled-markdown@3.0.0 is the same code under the old name (with npx styled-markdown still working) and is deprecated. Migration: npm uninstall styled-markdown && npm install semantic-markdown, then replace styled-markdown with semantic-markdown in imports.
  • The MkDocs plugin is mkdocs-semantic-markdown on PyPI (was mkdocs-styled-markdown), with the module mkdocs_semantic_markdown. The plugin is still registered as styled-markdown next to its new name semantic-markdown, so mkdocs.yml keeps working. mkdocs-styled-markdown==3.0.0 only installs the new package. Migration: pip install mkdocs-semantic-markdown, and rename the plugin in mkdocs.yml when convenient.
  • The agent skills are semantic-markdown-reader and semantic-markdown-writer (were styled-markdown-reader and -writer), and so are their release zips. smd skills install and smd init --agent claude remove the old copies they installed, so an agent never loads both. A folder whose SKILL.md was edited is kept and named in the output. Migration: re-run smd skills install (or --global).
  • Instruction files and markers for other agents are renamed: .cursor/rules/semantic-markdown.mdc, .github/instructions/semantic-markdown.instructions.md, and <!-- semantic-markdown:start --> … <!-- semantic-markdown:end --> in AGENTS.md. smd skills install --target … replaces the old section and removes the old files it generated, and keeps any you edited by hand. Migration: re-run smd skills install --target cursor,copilot,agents (the targets you use).
  • The MCP server is semantic-markdown in .mcp.json, .cursor/mcp.json and .vscode/mcp.json (was styled-markdown), and in the MCP registry (io.github.bislink360/semantic-markdown). smd init --agent … replaces an old styled-markdown entry that runs the bundled CLI. Its tools are now mcp__semantic-markdown__… in Claude Code. Migration: re-run smd init --agent …, and update permission rules that name mcp__styled-markdown__….
  • The Claude Code plugin and its marketplace are semantic-markdown (were styled-markdown). Migration: /plugin marketplace add bislink360/semantic-markdown, then /plugin install semantic-markdown@semantic-markdown, and remove the old one.
  • The repository is github.com/bislink360/semantic-markdown. GitHub redirects the old repository URL, clones and uses: bislink360/styled-markdown/validate@…, but the website moves to bislink360.github.io/semantic-markdown and the old address doesn't redirect. Release files are named semantic-markdown-X.Y.Z.vsix, semantic-markdown-X.Y.Z.tgz, semantic-markdown-playground.zip, mkdocs_semantic_markdown-…, semantic-markdown-obsidian-X.Y.Z.zip and semantic-markdown-jetbrains-X.Y.Z.zip. Migration: update download scripts and uses: lines when convenient.

Changed

  • Semantic Markdown everywhere you read the name: the docs, the spec, the website, the playground, templates, skills, editor commands and messages, and the store listings. The JetBrains plugin (ID com.bislink360.styled-markdown) and the Obsidian plugin (ID styled-markdown) keep their IDs, so they update in place and keep their settings. Only their names change.

Styled Markdown 2.6.0

Choose a tag to compare

@github-actions github-actions released this 31 Oct 20:03
599a16f

Downloads

Asset What it is How to install
styled-markdown-2.6.0.vsix VS Code extension code --install-extension styled-markdown-2.6.0.vsix, or Extensions → ⋯ → Install from VSIX… (guide)
styled-markdown-2.6.0.tgz npm package (library + smd CLI), the same file as on npm npm install -g ./styled-markdown-2.6.0.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.6.0-py3-none-any.whl MkDocs plugin (Python wheel; needs Node.js 22+) pip install ./mkdocs_styled_markdown-2.6.0-py3-none-any.whl (guide)
mkdocs_styled_markdown-2.6.0.tar.gz MkDocs plugin source distribution pip install ./mkdocs_styled_markdown-2.6.0.tar.gz
styled-markdown-obsidian-2.6.0.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)
styled-markdown-jetbrains-2.6.0.zip JetBrains plugin (IntelliJ IDEA 2025.3+, PyCharm, WebStorm…): highlighting and the language server; needs Node.js 22+ Settings → Plugins → ⚙ → Install Plugin from Disk… (guide)

Collaboration, step one: with smd merge set up as a Git merge driver (smd merge --install), two branches that edit different blocks, list items, table rows or front matter keys of one .smd document no longer conflict. Also new: the release workflow can publish the JetBrains plugin, and the README opens with a recording of the playground. No breaking changes: documents, commands, flags, settings, skills and library exports from 2.5.1 keep working.

Added

  • smd merge: a block-aware Git merge driver for .smd files. Git's line merge conflicts when two branches edit neighbouring lines, even in different blocks; smd merge resolves those. Git runs it as smd merge %O %A %B %L %P. It runs git merge-file first and keeps Git's result byte for byte whenever that is clean. Only where Git leaves conflicts does it merge by blocks: a front matter key, list item, table row, container line or other block that only one side changed comes from that side as written, the same change on both sides is taken once, front matter merges key by key (comments and order kept), and an updated: date changed on both sides takes the later date. Where both sides changed one block differently, the conflict markers stay inside that block, in the marker size and merge.conflictStyle Git asks for. Lines neither side changed stay as they were, line breaks (LF, CRLF or mixed) included, and nothing is reformatted: a merged table may need smd fmt. When the block merge is in doubt (different spec versions, text that isn't UTF-8, merged blocks that would read differently), Git's own conflicts are kept. Exit code 0 when merged, 1 when conflicts are left, 2 on errors.
  • smd merge --install [--dir <repo>]: set the driver up in a repository. It writes merge.smd to the repository's local Git config (never the global one) and adds *.smd merge=smd to .gitattributes, keeping that file's line breaks; running it again changes nothing. The driver runs the installing CLI file with node by its absolute path, so it works from the skills bundle or an npm install; --command smd uses the smd on PATH instead. --uninstall removes both. Server-side merges, such as GitHub's merge button, don't run custom drivers. Setup and limits: "Collaborating on .smd" in FEATURES.md.
  • The collaboration RFC is accepted. COLLABORATION-RFC.smd records the maintainer's decisions: async first and live later (smd merge is phase 1; Live Share fixes and :::comment / :::suggestion containers are accepted but not built yet; live sync stays deferred), the command keeps the name smd merge, and merged tables are left for the author to realign.
  • The release workflow publishes the JetBrains plugin. A new publish-jetbrains job uploads the plugin zip attached to each GitHub Release to the JetBrains Marketplace (extension/scripts/release/upload-jetbrains.mjs). Like the other publish jobs it skips with a notice until its secret, JETBRAINS_TOKEN, is set, and on a dry run. JetBrains reviews each upload by hand, so a version is listed once it is approved; wait-for-version.mjs jetbrains X.Y.Z checks that.

Changed

  • The README opens with a short recording of the playground (docs/images/playground.gif, ≈1 MB): a decision, a risk and tasks appearing in the preview as they are typed, the agent view of the same document in about half the tokens, and Diagnostics catching a misspelled status. It links to the hosted playground.

Styled Markdown 2.5.1

Choose a tag to compare

@github-actions github-actions released this 31 Oct 04:33
6d0549e

Downloads

Asset What it is How to install
styled-markdown-2.5.1.vsix VS Code extension code --install-extension styled-markdown-2.5.1.vsix, or Extensions → ⋯ → Install from VSIX… (guide)
styled-markdown-2.5.1.tgz npm package (library + smd CLI), the same file as on npm npm install -g ./styled-markdown-2.5.1.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.5.1-py3-none-any.whl MkDocs plugin (Python wheel; needs Node.js 22+) pip install ./mkdocs_styled_markdown-2.5.1-py3-none-any.whl (guide)
mkdocs_styled_markdown-2.5.1.tar.gz MkDocs plugin source distribution pip install ./mkdocs_styled_markdown-2.5.1.tar.gz
styled-markdown-obsidian-2.5.1.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)
styled-markdown-jetbrains-2.5.1.zip JetBrains plugin (IntelliJ IDEA 2025.3+, PyCharm, WebStorm…): highlighting and the language server; needs Node.js 22+ Settings → Plugins → ⚙ → Install Plugin from Disk… (guide)

Fixed

  • The playground's preview follows edits again when opened from a file. Opened from file:// (as from the release zip) in Chrome or Edge, the preview showed the first render and then ignored every edit until the page was reloaded. The page reports its origin as file:// but its messages arrive with the origin null, so the preview turned down the channel its updates come through. The preview now treats the two as the same for a page opened from a file; a hosted playground still has to match exactly.

Styled Markdown 2.5.0

Choose a tag to compare

@github-actions github-actions released this 31 Oct 02:51
2ff6a0e

Downloads

Asset What it is How to install
styled-markdown-2.5.0.vsix VS Code extension code --install-extension styled-markdown-2.5.0.vsix, or Extensions → ⋯ → Install from VSIX… (guide)
styled-markdown-2.5.0.tgz npm package (library + smd CLI), the same file as on npm npm install -g ./styled-markdown-2.5.0.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.5.0-py3-none-any.whl MkDocs plugin (Python wheel; needs Node.js 22+) pip install ./mkdocs_styled_markdown-2.5.0-py3-none-any.whl (guide)
mkdocs_styled_markdown-2.5.0.tar.gz MkDocs plugin source distribution pip install ./mkdocs_styled_markdown-2.5.0.tar.gz
styled-markdown-obsidian-2.5.0.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)
styled-markdown-jetbrains-2.5.0.zip JetBrains plugin (IntelliJ IDEA 2025.3+, PyCharm, WebStorm…): highlighting and the language server; needs Node.js 22+ Settings → Plugins → ⚙ → Install Plugin from Disk… (guide)

Built for developers who use AI coding agents. One command sets an agent up (smd init --agent, or the new Claude Code plugin); smd read reads a document in one call; and the tools now cost less than they save: the MCP tool list, the reader skill and the agent rules are 63–79% smaller. Also new: opt-in MCP write tools, smd savings, a net-tokens benchmark, spec → plan → tasks templates, a compatibility policy that declares spec v2 stable, and community files. No breaking changes: documents, commands, flags, settings, skills and library exports from 2.4.0 keep working, and the MCP tools outline, section and agent still answer when called.

Added

  • smd read <file>: one call to start reading a document. It prints the whole agent view when it fits 2,000 tokens (--max-tokens <n> sets the budget) and otherwise the outline, so an agent no longer needs smd outline and then smd agent. --section (repeatable) reads only those sections, --outline and --full force one form, and --brief and --no-lines work as on smd agent.

  • MCP read tool. The same as smd read, with sections, mode (auto, outline, full) and brief.

  • smd init --agent claude|cursor|copilot|agents: set up an agent in one command. It installs the skills (claude) or the reading and writing rules (cursor, copilot, agents for AGENTS.md), the CLI, and the MCP server in the agent's own config: .mcp.json (Claude Code), .cursor/mcp.json (Cursor) or .vscode/mcp.json (Copilot in VS Code). Existing config files are merged and other servers kept; a file with comments is left alone and the entry to add is printed. Re-run it to update; --dir <project> picks the project and --no-mcp skips the MCP config. The npm package gets a styled-markdown command for it, so npx styled-markdown init --agent claude works once the package is on npm.

  • Opt-in MCP write tools: smd mcp --allow-write. check_task ticks or unticks one task (by the line tasks prints, optionally checking the line still has the expected text), set_status sets the front matter status (and updated when there is one), and add_decision appends a :::decision block to a section. Each changes only its own lines, keeps line endings, stays inside --root, and writes nothing when the result would have more validation errors than before. Without the flag the server stays read-only.

  • smd savings <files|dirs…>: what the agent view saves across a repository. Tokens per document for the raw file, the agent view and --brief, the total saving and its price in dollars (--price, USD per million input tokens, default 3), and --json for tools. On this repository's examples/ it reports 25% (31% with --brief) for reading every document whole; reading only the needed sections saves more.

  • Net-tokens benchmark. npm run bench:tokens (in extension/) shows how many tokens an agent spends on each example. It covers two tasks, answering about one section and understanding the whole document, and compares a plain read of the file with outline + section, smd read, the agent view and --brief. The count includes the tools' own fixed cost: skill descriptions, the reader SKILL.md, agent rules and the MCP tool list, all read at run time. A key-line coverage check stands in for accuracy. The output ends with break-even document sizes. docs/TOKENS.md explains the method and has the results.

  • Reader skill reference. styled-markdown-reader/references/reading.md holds what the slimmer SKILL.md left out: every marker of the agent view, the commands for many documents, the MCP tools and reading without Node.js. Agents read it only when they need it. smd skills install installs it.

  • Claude Code plugin: the repository is a plugin marketplace. /plugin marketplace add bislink360/styled-markdown, then /plugin install styled-markdown@styled-markdown, installs both agent skills and the smd MCP server (.claude-plugin/marketplace.json and plugin.json; the server is declared in the plugin, so there is no root .mcp.json). The plugin's version is the release's: bump-version.mjs sets it and check-versions.mjs fails a tag whose plugin.json doesn't match. Setup: INSTALL.md.

  • MCP Registry entry: server.json describes the MCP server as the npm package (npx styled-markdown mcp), and npm/package.json has the mcpName (io.github.bislink360/styled-markdown) the registry checks. Its versions follow the release like the plugin's. Publishing is a maintainer step after the npm release: docs/PUBLISHING.md.

  • Spec-driven workflow kit: three new templates, spec (requirements with IDs, acceptance criteria, open questions, rules for implementers), plan (approach, decisions, risks, phases; related: the spec) and tasks (the agent's work queue by phase, with requirement, priority, owner and due date, and how to check tasks off), for one folder per feature. smd init x.smd --template spec and the writer skill have 16 templates now. docs/SPEC-DRIVEN.md walks through spec, plan and tasks with an agent: smd tasks as the work queue, smd validate as the gate, and check_task (with smd mcp --allow-write) or a line edit to tick tasks off.

  • Reading .smd on GitHub: docs/GITHUB.md compares the ways to make documents readable on github.com: Styled Markdown syntax in .md files (what GitHub renders, and which smd commands read .md files), .md copies generated in CI with smd export --to md (a complete workflow that commits the copies on main and checks them on pull requests), and a pull request comment with the changed sections in the agent view (smd diff --since). It also says what *.smd linguist-language=Markdown in .gitattributes does: highlighting and language statistics, not rendering.

  • Compatibility policy: docs/COMPATIBILITY.md declares spec v2 stable (a breaking change needs a spec v3 RFC), versions the spec apart from the tools (spec 2, tools 2.5.0), says what patch, minor and major releases may change, and sets the deprecation policy (deprecate in a minor, remove in the next major at the earliest) and the cadence (a minor roughly monthly, patches as needed). SPEC.md links it from its header.

  • Homepage and hosted playground: a Pages workflow publishes a homepage (site/index.smd, built with smd build) at https://bislink360.github.io/styled-markdown/ and the web playground at /playground/, from main.

  • Community files: issue forms for bug reports and feature requests (with links to Discussions, the docs and private vulnerability reporting), a pull request template for outside contributors, CODE_OF_CONDUCT.md (Contributor Covenant 2.1), SECURITY.md (the latest minor is supported; report through GitHub's private vulnerability reporting), and a "Good first issues" section in CONTRIBUTING.md.

  • Adoption report: node extension/scripts/adoption.mjs [--json] prints stars, forks, issues and pull requests from outside contributors, release asset downloads, npm, VS Code Marketplace, Open VSX and PyPI downloads, and a count of public smd: 2 documents; a registry without the package shows "not listed". The Adoption workflow writes it to the job summary every Monday.

Changed

  • The MCP server lists four tools instead of six, and they cost ≈500 tokens instead of ≈1,320. Every agent session pays for the to...
Read more

Styled Markdown 2.4.0

Choose a tag to compare

@github-actions github-actions released this 28 Oct 15:47
e2b05e0

Downloads

Asset What it is How to install
styled-markdown-2.4.0.vsix VS Code extension code --install-extension styled-markdown-2.4.0.vsix, or Extensions → ⋯ → Install from VSIX… (guide)
styled-markdown-2.4.0.tgz npm package (library + smd CLI), the same file as on npm npm install -g ./styled-markdown-2.4.0.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.4.0-py3-none-any.whl MkDocs plugin (Python wheel; needs Node.js 22+) pip install ./mkdocs_styled_markdown-2.4.0-py3-none-any.whl (guide)
mkdocs_styled_markdown-2.4.0.tar.gz MkDocs plugin source distribution pip install ./mkdocs_styled_markdown-2.4.0.tar.gz
styled-markdown-obsidian-2.4.0.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)
styled-markdown-jetbrains-2.4.0.zip JetBrains plugin (IntelliJ IDEA 2025.3+, PyCharm, WebStorm…): highlighting and the language server; needs Node.js 22+ Settings → Plugins → ⚙ → Install Plugin from Disk… (guide)

Word export everywhere, with nothing to install: smd export --to docx no longer needs Pandoc, and the JetBrains plugin gets an Export to Word (.docx) command beside VS Code's. The files open in Word, LibreOffice, Pages and Google Docs. No breaking changes: documents, commands, flags, settings and library exports from 2.3.0 keep working, and anyone with Pandoc set or on the PATH gets the same .docx as before.

Added

  • smd export --to docx writes Word documents with nothing to install. When Pandoc isn't set (--pandoc, SMD_PANDOC) or on the PATH, a built-in writer makes the .docx itself, so smd still has no dependencies. Word, LibreOffice, Apple Pages and Google Docs open it. Headings (Word's own "Heading 1"…), lists (numbered by Word, each ordered list from 1), tables (with a header row that repeats on each page), footnotes (Word footnotes) and links (web links, and #links to bookmarks on their headings and figures) are Word's own. PNG, JPEG and GIF images beside the document are embedded at their size, up to the page width. Callouts are a bar in their colour with a tint under a bold title; decisions, risks, cards, details and tabs are expanded under their title; code is monospaced on grey; badges and statuses are bold on their colour; text colours and highlights are kept. Mermaid diagrams keep their source and math its TeX. Agent and .no-print blocks are left out, as in print. The style names are Pandoc's, so --reference-doc works with both engines. The message says which wrote it: Wrote plan.docx (written by the built-in writer), and each image it couldn't embed is a warning.
  • --engine builtin|pandoc for smd export --to docx (and smd docx): which engine writes the document. pandoc without Pandoc exits with code 2 and the install link, as a missing Pandoc did before.
  • VS Code: smd.export.docxEngine (auto, builtin or pandoc; default auto) for Export to Word (.docx), which now works without Pandoc.
  • JetBrains plugin: Export Styled Markdown to Word (.docx) (editor right-click menu, or Tools). It saves the file, asks where to write the document, runs the bundled CLI's smd export --to docx in the background and offers to open the result. New settings under Settings → Languages & Frameworks → Styled Markdown → Export to Word: the engine and the Pandoc path.

Changed

  • Without Pandoc, smd export --to docx, smd docx and Export to Word (.docx) in VS Code used to exit 2 (or show Install Pandoc). They now write the document with the built-in writer. With Pandoc set or on the PATH, nothing changes: Pandoc converts it, as before. The message for a missing Pandoc, now only after --engine pandoc, also suggests leaving that out.

Styled Markdown 2.3.0

Choose a tag to compare

@github-actions github-actions released this 28 Oct 02:01
503dbf3

Downloads

Asset What it is How to install
styled-markdown-2.3.0.vsix VS Code extension code --install-extension styled-markdown-2.3.0.vsix, or Extensions → ⋯ → Install from VSIX… (guide)
styled-markdown-2.3.0.tgz npm package (library + smd CLI), the same file as on npm npm install -g ./styled-markdown-2.3.0.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.3.0-py3-none-any.whl MkDocs plugin (Python wheel; needs Node.js 22+) pip install ./mkdocs_styled_markdown-2.3.0-py3-none-any.whl (guide)
mkdocs_styled_markdown-2.3.0.tar.gz MkDocs plugin source distribution pip install ./mkdocs_styled_markdown-2.3.0.tar.gz
styled-markdown-obsidian-2.3.0.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)
styled-markdown-jetbrains-2.3.0.zip JetBrains plugin (IntelliJ IDEA 2025.3+, PyCharm, WebStorm…): highlighting and the language server; needs Node.js 22+ Settings → Plugins → ⚙ → Install Plugin from Disk… (guide)

PDF export everywhere, with the browser you already have: smd export --to pdf no longer needs Playwright or Puppeteer, and the VS Code extension and the JetBrains plugin get an Export to PDF command. No breaking changes: documents, commands, flags, settings and library exports from 2.2.0 keep working, and anyone who prints with Playwright or Puppeteer today gets the same PDF.

Added

  • smd export --to pdf prints with an installed browser. When neither --browser nor Playwright or Puppeteer is there, it uses Google Chrome, Microsoft Edge, Chromium or Brave from where they install (Windows: Program Files and the user's app data; macOS: /Applications and ~/Applications; Linux: google-chrome, chromium, microsoft-edge and brave-browser on the PATH), in that order, and tries the next one when a browser won't start. Edge comes with Windows, so on most machines PDF export now works with nothing to install. The browser runs headless with a throwaway profile and is driven over the DevTools protocol on a pipe, so smd still has no dependencies. The PDF is the same page, waits for diagrams the same way and uses the same paper sizes and margins as with Playwright. The message names the browser: Wrote plan.pdf (printed with Google Chrome).
  • --browser <path> for smd export --to pdf (and smd pdf), and the SMD_BROWSER environment variable: the Chromium-based browser to print with. It is used before Playwright, Puppeteer and the installed browsers, and a path that doesn't exist is a usage error (exit 2).
  • VS Code: Styled Markdown: Export to PDF (Command Palette and the editor's context menu). It prints the page Export to HTML writes, with diagrams as vectors and collapsed blocks expanded, finding a browser as the CLI does (Playwright or Puppeteer are also looked for in the workspace). New settings: smd.export.browserPath (a machine setting, like smd.export.pandocPath), smd.export.pdfFormat (A4 or Letter, default A4) and smd.export.pdfLandscape (default false). Without a browser, it says so and offers the setting or Export to HTML.
  • JetBrains plugin: Export Styled Markdown to PDF (editor right-click menu, or Tools). It saves the file, asks where to write the PDF, runs the bundled CLI's smd export --to pdf in the background and offers to open the result. New settings under Settings → Languages & Frameworks → Styled Markdown → Export to PDF: the browser, the paper size and landscape.

Changed

  • Without --browser, Playwright or Puppeteer, smd export --to pdf used to exit 2. It now prints with an installed browser, and exits 2 only when there is none; the message lists the browsers, --browser and SMD_BROWSER before the Playwright and Puppeteer hints it gave before.

Styled Markdown 2.2.0

Choose a tag to compare

@github-actions github-actions released this 22 Oct 17:57
b18820b

Downloads

Asset What it is How to install
styled-markdown-2.2.0.vsix VS Code extension code --install-extension styled-markdown-2.2.0.vsix, or Extensions → ⋯ → Install from VSIX… (guide)
styled-markdown-2.2.0.tgz npm package (library + smd CLI), the same file as on npm npm install -g ./styled-markdown-2.2.0.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.2.0-py3-none-any.whl MkDocs plugin (Python wheel; needs Node.js 22+) pip install ./mkdocs_styled_markdown-2.2.0-py3-none-any.whl (guide)
mkdocs_styled_markdown-2.2.0.tar.gz MkDocs plugin source distribution pip install ./mkdocs_styled_markdown-2.2.0.tar.gz
styled-markdown-obsidian-2.2.0.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)
styled-markdown-jetbrains-2.2.0.zip JetBrains plugin (IntelliJ IDEA 2025.3+, PyCharm, WebStorm…): highlighting and the language server; needs Node.js 22+ Settings → Plugins → ⚙ → Install Plugin from Disk… (guide)

The JetBrains plugin gets a live preview and full highlighting, and the language server can render a page for any client's preview. The VS Code extension, the CLI and the spec behave exactly as in 2.1.0.

Added

  • JetBrains plugin: a live preview. .smd files open as a split editor, text and rendered page side by side (or either alone, with the editor's layout buttons), like Markdown files. The page renders again shortly after each edit, keeps its scroll position and follows the IDE's light or dark theme; relative images and code embeds resolve from the document's folder, and links open in the system browser. It needs the IDE's embedded browser (JCEF).
  • Language server: smd/renderHtml, a request beyond LSP (announced as experimental.smdRenderHtml) that answers the page smd export --to html writes, from the client's current text, with an optional light/dark theme for documents whose front matter names none. The JetBrains preview uses it; other editors can show the page in a webview (docs/EDITORS.md). renderPage and renderStandaloneHtml take that fallback theme as an optional last argument.

Fixed

  • JetBrains plugin: Open Styled Markdown Preview in Browser opened a broken address on Windows (file:///C:/%5CUsers%5C…, "can't reach this page"). It now opens a proper file: URI.
  • JetBrains plugin: .smd syntax is highlighted. In 2.1.0 only the front matter was. The IDE's TextMate support doesn't apply VS Code's injectTo, which is how the extension's container, directive, span, mark and math rules reach its grammar, and the Markdown around them came from the IDE's own Markdown bundle, which may be turned off. The plugin now ships one grammar with those rules as its own injections (generated from the extension's by integrations/jetbrains/scripts/bundle-grammar.mjs; a test keeps it up to date) and its own copy of VS Code's Markdown grammar (MIT).

Styled Markdown 2.1.0

Choose a tag to compare

@github-actions github-actions released this 22 Oct 03:26
56aad17

Downloads

Asset What it is How to install
styled-markdown-2.1.0.vsix VS Code extension code --install-extension styled-markdown-2.1.0.vsix, or Extensions → ⋯ → Install from VSIX… (guide)
styled-markdown-2.1.0.tgz npm package (library + smd CLI), the same file as on npm npm install -g ./styled-markdown-2.1.0.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.1.0-py3-none-any.whl MkDocs plugin (Python wheel; needs Node.js 22+) pip install ./mkdocs_styled_markdown-2.1.0-py3-none-any.whl (guide)
mkdocs_styled_markdown-2.1.0.tar.gz MkDocs plugin source distribution pip install ./mkdocs_styled_markdown-2.1.0.tar.gz
styled-markdown-obsidian-2.1.0.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)
styled-markdown-jetbrains-2.1.0.zip JetBrains plugin (IntelliJ IDEA 2025.3+, PyCharm, WebStorm…): highlighting and the language server; needs Node.js 22+ Settings → Plugins → ⚙ → Install Plugin from Disk… (guide)

Styled Markdown for JetBrains IDEs, and an RFC on collaborative editing. The extension, the CLI, the library and the spec behave exactly as in 2.0.2.

Added

  • A plugin for JetBrains IDEs (integrations/jetbrains, styled-markdown-jetbrains-X.Y.Z.zip on the GitHub release): .smd highlighting with the VS Code extension's TextMate grammar, and the Styled Markdown language server (problems with quick fixes, completion, hover, go to definition, the outline, symbol search and formatting) through the IDE's LSP support, with the smd CLI shipped in the plugin. Open Styled Markdown Preview in Browser renders the file with smd export --to html. Settings for the Node.js and CLI paths are in Settings → Languages & Frameworks → Styled Markdown. Needs IntelliJ IDEA 2025.3+ (or PyCharm, WebStorm and the other JetBrains IDEs 2025.1+; not Android Studio) and Node.js 22+. The release now has nine assets; CI builds the plugin and checks its zip.
  • Documentation: an exploratory RFC for collaborative editing (docs/COLLABORATION-RFC.smd), for discussion. It recommends async features first, as small additive 2.x releases: a block-aware Git merge driver (smd merge), then :::comment and :::suggestion containers with an opt-in MCP tool for agents to propose edits, and defers live sync to a later prototype outside the core.

Styled Markdown 2.0.2

Choose a tag to compare

@github-actions github-actions released this 21 Oct 22:01
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.

Styled Markdown 2.0.1

Choose a tag to compare

@github-actions github-actions released this 18 Oct 21:11
36bd162

Downloads

Asset What it is How to install
styled-markdown-2.0.1.vsix VS Code extension code --install-extension styled-markdown-2.0.1.vsix, or Extensions → ⋯ → Install from VSIX… (guide)
styled-markdown-2.0.1.tgz npm package (library + smd CLI), the same file as on npm npm install -g ./styled-markdown-2.0.1.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.1-py3-none-any.whl MkDocs plugin (Python wheel; needs Node.js 22+) pip install ./mkdocs_styled_markdown-2.0.1-py3-none-any.whl (guide)
mkdocs_styled_markdown-2.0.1.tar.gz MkDocs plugin source distribution pip install ./mkdocs_styled_markdown-2.0.1.tar.gz
styled-markdown-obsidian-2.0.1.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 documentation patch for 2.0.0: the guides, the Marketplace and npm pages and the agent skills now cover everything 1.7–2.0 added. The extension, the CLI and the library behave exactly as in 2.0.0.

Fixed

  • Documentation for 2.0: an "Upgrading to 2.0" section in the README and INSTALL.md; in FEATURES.md, a Block Editor (Preview) section, a spec versions overview (smd: 1 and smd: 2, typography), the spec v2 closing fence rule, and notes on $$ math in containers, \" escapes, value case, glossary quote matching and code and math in the agent view; the Marketplace page lists Migrate to Spec v2, Preview Migration to Spec v2, Hide Completed Tasks and smd.markdownPreview.enabled; the npm README documents LATEST_SPEC, SpecVersion, the Notion and export types, NOTION_LIMITS, parseSmd(…).math, markdown-it token.meta and the smd migrate flags; stale version pins (the validate@ action in FEATURES.md, the language server tarball in EDITORS.md) and the spec v1 badge are updated. The agent skills describe the 2.0 errors, GitHub alerts and the spec v2 reading rules. No code changes; the CLI bundles are rebuilt for the version number.