Skip to content

Latest commit

 

History

History
110 lines (76 loc) · 2.77 KB

File metadata and controls

110 lines (76 loc) · 2.77 KB

Markdown to DOCX

Maintenance Made with TypeScript Downloads per week License: MIT

This project converts Markdown files into Microsoft Word (.docx) documents.

It preserves common block and inline-level elements (headings, lists, links, images, code blocks, emphasis, tables) and provides a small CLI to control input, output and templates.

Features

  • Fast: Processes large Markdown files quickly and efficiently.
  • 🧩 Accurate: Preserves formatting for headings, lists, links, images, code blocks, emphasis, and tables.
  • 🪜 CLI Tool: Simple command-line interface for easy integration into workflows.
  • 🤝 Cross-platform: Works on Windows, macOS, and Linux.

Installation

Install globally from npm:

npm install -g @thebestdev/md-to-docx

Then run:

md-to-docx

Or run without a global install:

npx @thebestdev/md-to-docx

Local Development

npm install
npm run build
npm link
md-to-docx

Usage (CLI)

When you run the program you will be prompted to provide:

  • Input file: path to the Markdown file to convert (required).
  • Or, you can provide the clipboard option to read Markdown from clipboard.

You can also use non-interactive CLI flags:

md-to-docx README.md
md-to-docx --watch docs/**/*.md
md-to-docx --batch --pattern "docs/**/*.md"
md-to-docx README.md --outdir exports
md-to-docx --help

By default, output is written next to the source Markdown file. Use --outdir to force all generated DOCX files into a specific folder.

Watch mode

You can watch one file or a glob pattern and automatically reconvert on changes:

md-to-docx --watch docs/**/*.md

Or watch a single file:

md-to-docx --watch README.md

watch mode runs an initial conversion, then listens for file changes until you stop it with Ctrl+C.

Usage (Library)

You can also import the package in Node.js projects:

import {
  convertMarkdownFile,
  convertMarkdownStringToFile,
  convertMarkdownToDocxBuffer,
} from "@thebestdev/md-to-docx";

await convertMarkdownFile("docs/guide.md", "exports");

await convertMarkdownStringToFile("# Hello", "exports/hello.docx");

const buffer = await convertMarkdownToDocxBuffer("# Buffer output");

License

This project is licensed under the MIT License. See the LICENSE file for more info.