Package Exports
- @m2d/core
- @m2d/core/dist/index.js
- @m2d/core/dist/index.mjs
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@m2d/core) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@m2d/core 
The core engine that powers
mdast2docx— convert Markdown Abstract Syntax Trees (MDAST) into DOCX effortlessly.
✨ Features
- ✅ Lightweight and fast MDAST to DOCX conversion
- ✅ Works on both client-side and server-side environments
- ✅ Built-in support for section-based rendering
- ✅ Plugin-friendly architecture
Note: With a lean core, functionality can be extended via plugins such as
@m2d/html,@m2d/image,@m2d/table, etc.
📦 Installation
pnpm install @m2d/coreor
yarn add @m2d/coreor
npm add @m2d/core🚀 Usage
import { toDocx } from "@m2d/core";
const docxBlob = await toDocx(mdast, docxProps, sectionProps);🔌 Plugins
@m2d/core supports both official and community plugins to extend its capabilities. For example:
import { toDocx } from "@m2d/core";
import { imagePlugin } from "@m2d/image";
await toDocx(mdast, docxProps, {
plugins: [imagePlugin()],
});🔍 Use only the plugins you need for better performance and bundle size. 🧠 You can use official plugins, or build your own custom ones to keep the bundle size minimal and functionality scoped.
@m2d/core official plugins:
| Plugin | Package | Purpose |
|---|---|---|
| HTML | @m2d/html |
Handle raw HTML nodes |
| Image | @m2d/image |
Embed images in DOCX |
| Math | @m2d/math |
Render LaTeX math |
| Table | @m2d/table |
Markdown tables |
| List | @m2d/list |
Advanced list formatting |
| Extended MDAST | @m2d/mdast |
Extended mdast types |
📜 API
toDocx(astInputs, docxProps, defaultSectionProps, outputType?)
| Param | Type | Description |
|---|---|---|
astInputs |
Root or { ast: Root; props?: ISectionProps }[] |
The parsed Markdown AST |
docxProps (optional) |
IDocxProps |
Document metadata and style |
defaultSectionProps (optional) |
ISectionProps |
Default layout configuration for sections |
outputType (optional) |
OutputType |
(defaults to 'blob') |
Returns a Promise resolving to a DOCX Blob, Buffer, or Base64 string.
🤖 Generative AI Use-case
AI tools often generate Markdown — @m2d/core helps convert them into rich DOCX reports or presentations. This is useful in:
- AI-generated blogs, documentation, and research reports
- Client-side and server-side rendering of AI-generated content
- Integrating in GenAI pipelines with format export capabilities
💡 Inspiration & Relevance
This library is especially useful in:
- Generative AI — Convert Markdown outputs (e.g., from ChatGPT, LLMs) to downloadable DOCX reports
- Developer Tools — Export Markdown-based documentation or changelogs as DOCX
- Education — Convert notes, quizzes, or assignments authored in Markdown
✅ Works both on client side and server side — offload to browser or use high-performance Node.js.
🛠️ Development
git clone https://github.com/tiny-md/mdast2docx
cd mdast2docx/m2d/core
pnpm install
pnpm dev📄 License
Licensed under the MPL-2.0 License.
⭐ Support Us
If you find this useful:
- ⭐ Star mdast2docx on GitHub
- ❤️ Consider sponsoring
Made with 💖 by Mayank Kumar Chaudhari
with
@m2d/core, bring structure, style, and extensibility to your Markdown-to-DOCX pipeline.