docmd@0.8.0 ⚡ (The Parallel Engine Era)
docmd v0.8.0 introduces a new parallel build engine, first-class multi-project support, and major improvements to indexing performance. Large documentation sites can now build significantly faster while maintaining low incremental rebuild latency during development.
✨ Highlights
- Native multi-threaded build engine with WorkerPool support
- First-class multi-project documentation builds
- Persistent Git indexing cache with parallel I/O
- Worker-thread APIs for plugins
- TypeScript and JSON configuration support
- Improved Mermaid diagram controls and fullscreen support
⚡ Benchmarks
This release introduces a new parallel build pipeline, persistent worker pools, and AST caching. Large documentation sites now rebuild significantly faster, with incremental performance continuing to improve across subsequent builds.
|
docmd < 0.7.9
|
docmd 0.8.0+
|
🚀 New Features
Parallel Build Engine
docmd now processes pages in parallel using a native WorkerPool architecture. Markdown parsing and processor hooks can run across multiple CPU cores, significantly reducing build times for large documentation sites.
- Up to 10x faster builds on large sites
- Persistent workers during development
- Automatic CPU-aware thread allocation
- Reduced incremental rebuild latency
Multi-Project Support
You can now build multiple independent documentation projects into a single site output. This is ideal for monorepos and large documentation ecosystems.
- Shared output directory across projects
- Independent versioning and i18n contexts
- Separate plugin configurations per project
- Supports unified documentation domains
Plugin Worker API
Plugins can now offload expensive tasks to background threads using the new ctx.runWorkerTask() API.
- Background processing for indexing and parsing
- Better main-thread responsiveness
- Shared WorkerPool support across plugins
- Available across plugin lifecycle hooks
Persistent Git Indexing
The Git plugin has been redesigned with persistent disk caching and parallel I/O processing.
- Subsequent indexing reduced from ~18s to ~3.5s on large repositories
- Automatic pruning for deleted or renamed files
- Parallel Git metadata syncing
- Reduced redundant
git logoperations
SEO-Friendly README Routes
README.md files are now automatically treated as directory indexes.
/guide/README.mdresolves to/guide/#117index.mdremains the primary priority- Clean URL generation for README and index routes
Modern Configuration Support
docmd configuration can now be written in TypeScript or JSON.
docmd.config.tswith type-safedefineConfig#115- Lightweight
docmd.config.jsonsupport - Improved configuration discovery
- Fully serialisable resolved config output
Note: We will soon migrate all default configs to .json file type with .ts and .js as fallback.
Better Mermaid Diagrams
The Mermaid plugin now provides a cleaner experience for large diagrams.
- Zoom and pan controls moved to the bottom-left
- Improved fullscreen navigation #120
- Better interaction for oversized diagrams
🛠 Developer & Architecture Changes
Worker Pipeline
- Added dynamic markdown processor hydration inside worker threads
- Added MD5-based AST caching for unchanged files
- Added persistent development worker pools
- Added CPU-aware worker throttling
- Added dynamic EventEmitter listener scaling for large builds
Plugin System
- Added
onBeforeBuildlifecycle hook - Added
ctx.runWorkerTask()across plugin contexts - Added worker-thread search indexing support
- Added persistent Git cache infrastructure
- Added parallel Git metadata processing
Terminal Interface
- Added stable in-place TUI progress bars
- Added plugin-level progress rendering support
- Improved indexing visibility during builds
Infrastructure
- Added
docmd.config.tsanddocmd.config.jsondiscovery - Added direct utility exports from
@docmd/utils - Improved config serialisability across worker boundaries
- Centralised Git root and branch utilities
⚠️ Breaking Changes
Utility Imports
Custom plugins relying on internal core imports must migrate to @docmd/utils.
Serialisable Hooks
markdownSetup hooks must now be serialisable to support worker-thread execution.
🔄 Migration Guide
Most projects can upgrade without configuration changes.
If you maintain custom plugins:
- migrate internal imports to
@docmd/utils - ensure
markdownSetuphooks are serialisable
See Building Plugins for a full api walkthrough.
📥 Upgrade
npm install -g @docmd/coreFull Changelog: 0.7.9...0.8.0


