Repository navigation
Styled Markdown 2.6.0
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.smdfiles. Git's line merge conflicts when two branches edit neighbouring lines, even in different blocks;smd mergeresolves those. Git runs it assmd merge %O %A %B %L %P. It runsgit merge-filefirst 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 anupdated: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 andmerge.conflictStyleGit 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 needsmd 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 writesmerge.smdto the repository's local Git config (never the global one) and adds*.smd merge=smdto.gitattributes, keeping that file's line breaks; running it again changes nothing. The driver runs the installing CLI file withnodeby its absolute path, so it works from the skills bundle or an npm install;--command smduses thesmdon PATH instead.--uninstallremoves 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 mergeis phase 1; Live Share fixes and:::comment/:::suggestioncontainers are accepted but not built yet; live sync stays deferred), the command keeps the namesmd merge, and merged tables are left for the author to realign. - The release workflow publishes the JetBrains plugin. A new
publish-jetbrainsjob 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.Zchecks 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.