I converted the report and saved it as .claude/skills/md-to-docx/sample/report.docx (11 KB). The dependencies installed with only an engine warning: nanoid wants Node 22 or later and this machine has v20.19.0. The conversion ran fine anyway. The description below comes from the document XML, not just the script's success message.
What the document contains
- Title page: "Q3 Platform Review" as the title, "Summary for Engineering" as the subtitle, then "Date: 2026-10-01 | Version: 1.2" and "Audience: Engineering, Product". It is followed by a page break.
- Table of contents: It lists Highlights, Key numbers (indented as a sub-entry) and Plan, then a page break.
- Sections:
- Highlights (heading 2) has a paragraph with bold "18%", italic "0.2%",
status.mdin Consolas with a grey background, and "the dashboard" in blue underline. - Key numbers (heading 3) holds the table.
- Plan (heading 2) has the numbered list "1. Migrate the queue" and "2. Add retries", with "exponential backoff" and "jitter" as indented bullets.
- A Python code block follows, in Consolas on a grey background.
- The document ends with the Chinese paragraph (中文段落:延迟下降 18%。), a horizontal rule and "Done."
- Highlights (heading 2) has a paragraph with bold "18%", italic "0.2%",
- Table: It has 3 columns (Metric, Q2, Q3) and 2 data rows, p95 latency (420 → 344) and Error rate (0.3% → 0.19%). The header row is shaded and repeats across pages, and the rows alternate in colour.
- Image:
diagrams/arch.pngis embedded, centred, with the caption "Architecture".
What did not convert cleanly
- Missing image:
diagrams/nope.pngwas not found, so the document has the placeholder text[Image not found: diagrams/nope.png]. - Mermaid diagram: It was not rendered. The document has the placeholder "[Diagram: See source .md file for interactive Mermaid diagram]".
- Tiny image: The embedded architecture image is only about 0.4 × 0.2 inches (381000 × 190500 EMU). The source PNG is probably a tiny placeholder, so it will look very small in Word.
- Dropped H1: The
# Q3 Platform Review — Summary for Engineeringheading does not appear in the body or the table of contents. Its text is only on the title page. - Link has no URL: "the dashboard" is styled as a link, but there is no hyperlink element in the file, so the
https://example.com/dashURL is lost. - Static table of contents: It is plain text with no page numbers and no links, so it won't update in Word.
- Fake lists: The list markers ("1.", "•") are typed characters with indentation, not real Word lists.
- Code language dropped: The code block keeps its text but not the
pythonlanguage tag, and there is no syntax highlighting. - Chinese font: The Chinese text is set in Calibri, which has no CJK glyphs, so Word will substitute a fallback font. I didn't check how it looks.
试用方式:Skill 需要 npm 依赖,我让模型先执行文档里的 npm install,再转换我构造的示例 Markdown(含封面信息、表格、嵌套列表、代码块、PNG 图片、一个故意缺失的图片、Mermaid 代码块、中文段落);Bash 只放行 npm install、转换命令和查看 docx 内部 XML 这三条。我另外手动解压 docx 核对,模型的描述与实际一致。示例中的 PNG 只是 40×20 像素的占位图,所以文中说它在文档里很小。
Was es macht
Führt ein mitgeliefertes Node.js-Skript aus, das mit den npm-Paketen docx und marked aus einer .md-Datei eine .docx erzeugt, ganz ohne Pandoc oder LibreOffice. Es liest YAML-Frontmatter (Titel, Datum, Version, Zielgruppe) für eine Titelseite, erstellt aus H1 bis H3 ein Inhaltsverzeichnis, gestaltet Überschriften, Tabellen mit wechselnden Zeilenfarben und Codeblöcke, verarbeitet Listen, Links und Trennlinien und bettet im Markdown referenzierte PNG-Bilder ein (Pfade relativ zur Datei, auf etwa 6 Zoll Breite skaliert). Mermaid-Blöcke werden zu einer Platzhalterzeile.
So funktioniert es
- Einmalig
npm installim Ordner scripts. node md-to-docx.mjs input.md [output.docx]; ohne Ausgabenamen wird im aktuellen Verzeichnis nach dem Eingabenamen geschrieben.
Geeignet für
In Markdown geschriebene Dokumentation, Spezifikationen und Berichte zum Teilen in Word-Dateien umwandeln.
Mittleres Risiko: Es führt ein Node-Skript aus und braucht `npm install` (lädt `docx` und `marked`). Es schreibt die `.docx` an den Ausgabepfad und ersetzt eine gleichnamige Datei ohne Rückfrage; nutzen Sie einen neuen Namen oder sichern Sie vorher. Bildpfade im Markdown werden relativ zur Eingabedatei aufgelöst, ohne Beschränkung auf diesen Ordner und ohne Prüfung, ob es ein PNG ist; beim Umwandeln von Markdown aus unbekannter Quelle können so andere Dateien von der Festplatte ins Dokument gelangen. Das Skript stellt keine Netzwerkanfragen. Getestet, Ausgabe korrekt. Einschränkungen: Links behalten nur den Text und verlieren die URL, das Inhaltsverzeichnis ist statischer Text ohne Seitenzahlen oder Sprünge, Listen sind getippte Zeichen, und nur PNG wird eingebettet (andere Bildformate werden als PNG geschrieben und werden evtl. nicht angezeigt).