The docmd 0.7.3 release delivers significant new authoring capabilities, a production-grade migration engine for users switching from competing platforms, and a complete overhaul of the Mermaid diagram rendering pipeline. We have also unified the icon rendering logic across all interactive containers and introduced deeply contextual pagination logic.
✨ Highlights
🚀 Multi-Service Migration Engine
We have replaced the legacy internal config migration tool with a full-featured migration engine that can move your entire documentation project from a competing platform to docmd in a single command.
Supported Sources
| Source | Command | Config Detected |
|---|---|---|
| Docusaurus | npx @docmd/core migrate --docusaurus |
docusaurus.config.js / .ts |
| MkDocs | npx @docmd/core migrate --mkdocs |
mkdocs.yml |
| VitePress | npx @docmd/core migrate --vitepress |
.vitepress/config.[js|ts|mjs] |
| Astro Starlight | npx @docmd/core migrate --starlight |
astro.config.mjs / .ts |
Each migration will:
- Detect the source project’s configuration file and extract the site title.
- Safely move all existing files into a
<source>-backup/directory. - Copy the documentation source files (
docs/,src/content/docs/, etc.) intodocmd’s standarddocs/structure. - Generate a ready-to-use
docmd.config.jswith sensible defaults.
cd my-docusaurus-site
npx @docmd/core migrate --docusaurus
npx @docmd/core dev
Note: Because every documentation platform handles complex logic like sidebars, versioning, and internationalization (i18n) via proprietary code or APIs,
docmddoes not attempt to auto-translate these configurations to avoid breaking your build. The migration engine focuses purely on safely moving your Markdown content and assets, while leaving the setup ofnavigation.jsonandlocalisationto you viadocmd’s simple native APIs.
Read our new comprehensive Migration Guides to see exactly what gets migrated and the easy steps required to map your previous tool’s configuration to docmd.
📝 Code Block Titles
You can now add a descriptive filename or title to any fenced code block by placing a quoted string after the language identifier. This renders a clean, Mintlify-style header bar above the code.
```javascript "config.js"
export default {
title: "My Site"
};
```
The title is rendered as a semantic label (not a heading), so it will never appear in the Table of Contents or interfere with your page structure.
📊 Interactive Mermaid Diagrams
We have completely overhauled how docmd renders Mermaid diagrams, turning static SVGs into deeply interactive visual elements.
- Smart Scaling: Diagrams are rendered at full Mermaid quality and then intelligently scaled to fit the content width using CSS transforms, preserving all label and edge positioning.
- Pan & Drag: Click and drag to pan across large diagrams.
- Zoom Controls: Dedicated zoom in/out buttons appear on hover for precise inspection.
- Fullscreen Mode: A native fullscreen toggle allows users to expand complex charts for distraction-free viewing.
- Lucide Icon Integration: The Lucide icon pack is registered directly into the Mermaid engine (
icon:icon-name), enabling rich architecture diagrams with the same icons used in your sidebar and tabs. - Dark Mode: Diagrams and their containers now render correctly in dark mode with properly themed borders and backgrounds.
✨ Isomorphic Container Icons
We have refactored the core parser to use a shared Container Integrity Engine. This ensures that all interactive elements—Callouts, Cards, Collapsibles, and now Tabs—support a unified icon:name syntax.
Icons in Tabs
You can now add any Lucide icon directly to your tab labels, providing immediate visual context to your users. This is particularly useful for differentiating between package managers, operating systems, or programming languages.
::: tabs
== tab "npm" icon:box
npx @docmd/core dev
== tab "Bun" icon:zap
bunx docmd dev
:::
All icons are rendered as optimised inline SVGs, maintaining docmd’s commitment to zero-layout-shift and sub-100ms navigation performance.
⚡ First-Class Bun Support
Following the rapid adoption of the Bun runtime, we have updated all core documentation and “Getting Started” guides to include native Bun examples.
bunxsupport: All one-off commands now includebunxalternatives alongsidenpx.- Dependency management: Installation guides now cover
bun addworkflows for project-level integration. - Documentation Parity: English, Chinese, and German guides have been synchronised to ensure a consistent experience regardless of your preferred runtime or language.
🧭 Contextual Pagination Navigation
The Next and Previous page pagination links at the bottom of articles have received a major intelligence upgrade.
Previously, these links defaulted to generating URLs for the primary locale and latest version, which disrupted the user experience when browsing translated docs or archived versions. The Core Engine now natively understands the outputPrefix context, ensuring that your readers stay perfectly within their current language and version silo as they navigate sequentially through your documentation.
🎨 Visual Refinements
- Softer Code Blocks: All code blocks now feature softer
border-radiuscorners and subtle box shadows for a more premium aesthetic. - Dark Mode Code Borders: Added a dedicated
--border-color-codeblockvariable for dark mode, fixing invisible borders on code blocks and diagram containers. - Mermaid Container Chrome: Diagrams are now wrapped in a bordered, padded container with consistent styling across light and dark themes.
🛠️ Internal Refactoring
This release includes a significant architectural cleanup of the docmd/parser package:
- Refactored Utility Layer: Moved
parseTitleAndIconinto a centralcontainer-helperutility. This eliminates logic duplication between thetabsandcommon-containersmodules. - Custom Fence Renderer: Code block titles are implemented via a markdown-it fence renderer override, ensuring titles are never misinterpreted as content headings.
- Performance Optimisation: The shared helper uses optimised regex patterns to reduce the overhead of parsing large documents with many interactive containers.
📝 Complete Changelog
🚀 Features & Enhancements
- Migration Engine: New
docmd migratecommand supporting Docusaurus, MkDocs, VitePress, and Astro Starlight. - Code Block Titles: Added
language "title"syntax for filename headers on fenced code blocks. - Tabs Icons: Added support for
icon:namesyntax in the== tabsub-delimiter. - Shared Parser Logic: Created a unified
container-helperutility for parsing titles and icons across all containers. - Mermaid Interactive Controls: Diagrams now feature native pan, zoom, and fullscreen capabilities with smart transform-based scaling.
- Mermaid Icons: Registered the Lucide icon pack within the Mermaid rendering engine.
- Context-Aware Pagination: Next/Previous links now automatically respect the active locale and version silos.
- Bun Ecosystem: Comprehensive update to all Getting Started and Installation guides to include Bun/bunx examples.
- Dark Mode Code Borders: Added
--border-color-codeblockdark mode variable for proper border visibility. - Visual Consistency: Standardized icon sizes and alignment within tab navigation bars.
🐛 Bug Fixes
- Navigation Sync: Fixed an inconsistency in the Chinese (
zh) navigation where a legacy “Recipes” section was incorrectly visible. - Code Block Title Rendering: Fixed a critical bug where titles after the language identifier were being parsed as markdown headings instead of being captured as code block labels.
- Mermaid Scroll Hijacking: Fixed an issue where mouse wheel scrolling was blocked when hovering over Mermaid diagrams.
- Mermaid Dark Mode: Fixed invisible diagram container borders in dark mode.
- Parser Robustness: Fixed an edge case where nested containers within tabs could occasionally fail to render if they contained specific Markdown-it fence markers.
- Locale Consistency: Corrected several technical translation inaccuracies in the German
content-uxguides.
Migration Guide
For end users: No changes required. npm update @docmd/core is sufficient.
For plugin authors: If you were manually parsing tab headers, we recommend switching to the exported parseTitleAndIcon utility from @docmd/parser to maintain compatibility with future icon enhancements.
For users of other documentation platforms: Run npx @docmd/core migrate --help to see all available migration sources and get started in seconds.