md-to-docx — Markdown to DOCX conversion
Converts a Markdown file to a Word document (.docx) preserving headings, tables, lists, code blocks, links and inline images.
Usage
/md-to-docx <input.md> [output.docx] [--author "Name"] [--title "Title"] [--no-shading] [--justify]
| Parameter | Required | Description |
|---|---|---|
input.md | yes | Path to the source Markdown file |
output.docx | no | Path to the output file (default: alongside source, .md → .docx) |
--author | no | Document author. Written to core properties (dc:creator + cp:lastModifiedBy). Also accepts the --author=Name form |
--title | no | Document title in core properties and in the header. Default: input file name without extension |
--no-shading | no | Disables the grey background for inline code and fenced ``` code blocks. Alias: --shading=off. On by default. Does not affect the table header (it keeps its structural fill) |
--justify | no | Justifies body paragraphs and list items, including block quotes. Alias: --align=justify (also --align justify). Off by default; headings, code blocks, table cells and image captions keep their alignment |
If the path is not provided — ask the user. The --author, --title, --no-shading, --justify flags are optional — pass them only when the user explicitly asks for an author, a custom title, removal of code shading, or justified text.
Dependencies
- Node.js — to run the script
- npm package
docx— pinned by this skill'spackage-lock.json; install locally withnpm ci --prefix "<skill-dir>"
Command
<skill-dir> below is the directory of this skill: content/skills/md-to-docx/ in the 1c-rules source repo, or <tool>/skills/md-to-docx/ after installation (e.g. .cursor/skills/md-to-docx/, .claude/skills/md-to-docx/).
PowerShell (Windows, default for this project):
powershellnpm ci --prefix "<skill-dir>" node "<skill-dir>/scripts/md_to_docx.js" "<input.md>" "[output.docx]" # With author and title node "<skill-dir>/scripts/md_to_docx.js" "<input.md>" "[output.docx]" --author "I. Ivanov" --title "Analytical note" # Without the grey code background node "<skill-dir>/scripts/md_to_docx.js" "<input.md>" "[output.docx]" --no-shading # With justified body text node "<skill-dir>/scripts/md_to_docx.js" "<input.md>" "[output.docx]" --justify
Bash (macOS / Linux):
bashnpm ci --prefix "<skill-dir>" node "<skill-dir>/scripts/md_to_docx.js" "<input.md>" "[output.docx]"
Supported Markdown features
- Headings (H1–H6) with styles and colors; a heading stays with the following paragraph (
keepNext) - Tables with header row
- Code blocks (monospace font, gray background)
- Lists: bulleted and numbered (with nesting); wrapped continuation lines join the same item. Each numbered list, including nested lists and lists inside quotes, starts at its first source ordinal (
4.starts at 4); subsequent markers such as repeated1.continue that list. Blank lines between items keep a list together; a separate paragraph or another block ends it - Block quotes (
>): marker stripped, wrapped lines joined, nested lists kept; left bar + indent - Paragraphs: hard-wrapped lines join until a blank line or the next block (heading, list, table, quote, fence, hr, image)
- Inline formatting: bold, italic,
code, links - Internal anchor links:
<a id="name"></a>before a heading becomes a bookmark;[text](#name)links resolve to it (externalhttp(s)/mailto:links stay external) - Images (
) — resolved relative to the source MD folder; scaled down proportionally to fit the section's printable width and height, with room for paragraph spacing and one caption line (longer captions may continue on the next page) - Horizontal rules (
---) - Headers/footers: title in the top, page number in the bottom
- Core properties: author and title (via
--author/--title)
If an image is not found — a red text placeholder is inserted.
Output example
Created: output.docx (45231 bytes, 42 blocks)


