Skip to content

Styled Markdown 2.6.0

Choose a tag to compare

@github-actions github-actions released this 31 Oct 20:03
· 30 commits to main since this release
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.