How to export academic markdown to journal-ready word
- Step 1Consolidate the manuscript — If chapters or sections are separate files (intro, methods, results), merge them with md-merger into one manuscript file before converting.
- Step 2Fix the heading outline — Journals expect a specific section order. Use md-heading-shifter if your top section starts at the wrong level so the Word ToC and template map cleanly.
- Step 3Normalize math delimiters (optional) — Run md-math-normalizer to make your
$/$$usage consistent — you'll re-key equations in Word, so a clean source string helps. - Step 4Paste or upload the manuscript — Use Upload for the full
.mdfile. Everything is read locally in your browser. - Step 5Click Run to build the Word file — docx.js writes heading styles, tables, and lists; download the resulting
.docx. - Step 6Apply the journal template and add figures/math — Open in Word, attach the journal template (headings remap automatically), insert figures where the alt text appears, and re-enter equations with Word's equation editor.
What survives the conversion
Every Markdown construct mapped to what md-to-docx actually writes into the .docx. Built with marked (tokenizer) + docx.js (document builder), both running in your browser. There are no conversion options — the mapping below is fixed.
| Markdown | In the .docx | Notes |
|---|---|---|
# H1 … ###### H6 | Word's built-in Heading 1–6 styles | Depths past 6 (#######) clamp to Heading 6 |
**bold**, *italic*, ~~strike~~ | Bold, italic, strikethrough runs | Combine freely in body paragraphs and headings |
inline code | Courier New run at 9pt | No background shading or colour — just the monospace font |
Fenced ``` ``` blocks | One Courier New 9pt paragraph per line | No syntax highlighting (Word has no native code highlighter) |
> blockquote | Italic paragraph indented 0.5" (grey 666666) | Indent is fixed at 720 twips |
[text](url) | Blue (0563C1) underlined hyperlink | Real clickable link, not just styled text |
GFM | table | | Native Word table, bold header row, 1pt borders | Columns share a 9000-twip width evenly; cells are plain text |
- item / 1. item | Word bullet / decimal-numbered list | Top level only — see nesting note below |
--- (horizontal rule) | Paragraph with a bottom border | Acts as a thin grey divider line |
 | The alt text as plain text | No image is embedded — see the images edge case |
Tier limits for the Markdown family
md-to-docx counts as a Markdown-family tool. Two independent limits apply: total file size in bytes AND a character count (charLimit). The converter accepts a single file per run (no batch).
| Plan | Max file size | Max characters | Files per run |
|---|---|---|---|
| Free | 1 MB | 500,000 | 1 |
| Pro | 10 MB | 5,000,000 | 10 (family) — md-to-docx still takes 1 at a time |
| Pro-media | 50 MB | 20,000,000 | 50 (family) — md-to-docx still takes 1 at a time |
| Developer | 500 MB | Unlimited | Unlimited (family) — md-to-docx still takes 1 at a time |
Scholarly constructs: what converts vs. what needs a manual step
Set expectations before submission. Structural elements convert cleanly; math and figures require post-conversion work in Word.
| Element | Converts automatically? | What to do |
|---|---|---|
| Section headings | Yes — Heading 1–6 styles | Attach journal template; styles remap |
| Data tables (GFM) | Yes — native Word tables | Cell text is plain; format in Word if needed |
| Reference list | Yes — Word list at top level | Apply the journal's CSL/citation style in Word |
| Inline emphasis | Yes — bold/italic runs | — |
Equations $…$ / $$…$$ | No — passes as literal text | Re-key in Word's equation editor |
Figures  | No — alt text only | Insert images in Word after conversion |
Footnotes [^1] | No — plain text | Add Word footnotes manually or use md-footnote-linker first |
Cookbook
Manuscript fragments and the literal result in the .docx — including the spots where Word work is still required.
Section structure maps to journal template
Heading levels become Word styles the journal template can restyle in one step.
Markdown: # Title ## Abstract ## 1. Introduction ## 2. Methods ### 2.1 Participants In Word: Heading 1: Title Heading 2: Abstract / 1. Introduction / 2. Methods Heading 3: 2.1 Participants (Attach journal .dotx -> all sections restyle.)
Results table stays an editable Word table
A GFM table of results becomes a real Word table the copyeditor can adjust.
Markdown: | Group | n | Mean | SD | |---------|----|------|-----| | Control | 42 | 3.1 | 0.8 | | Treated | 41 | 4.6 | 0.7 | In the .docx: [ Word table, bold header: Group | n | Mean | SD ] Body cells plain text, 1pt borders.
Equations come through as raw source
Math is NOT rendered — plan to re-enter it with Word's equation editor.
Markdown:
The estimator is $\hat{\beta} = (X^TX)^{-1}X^Ty$.
In the .docx (literal text, dollar signs included):
The estimator is $\hat{\beta} = (X^TX)^{-1}X^Ty$.
Next step: retype in Word -> Insert -> Equation.Figures need manual insertion
Figure references render as alt text; add the actual images in Word.
Markdown:  In the .docx: Figure 1: Study flow diagram <- alt text only, no image Next step: in Word, place cursor here -> Insert -> Pictures.
Clean the outline before converting
Shift headings so the manuscript starts at the level the template expects.
Workflow: 1. md-heading-shifter (delta -1): demote a stray top H1 2. md-to-docx: manuscript.md -> manuscript.docx 3. Word: attach journal template, add figures + equations
Edge cases and what actually happens
Math is written as the raw source text
Plain textInline $x$ and block $$...$$ math are not rendered as equations — the dollar-delimited source passes through as plain text, including the dollar signs. Word's equation editor is not invoked. Normalize delimiters first with md-math-normalizer if you want a consistent source string, then re-key equations in Word's editor after conversion.
Images are not embedded in the .docx
By design does not place a picture in the Word file. An inline image renders its alt text as plain text; a standalone image line renders as text too. No binary image data is fetched or embedded. After converting, insert images in Word via Insert → Pictures, or export your figures separately and add them where the alt text appears.
Footnotes are not turned into Word footnotes
Plain textThere is no footnote engine in this converter. Markdown footnote markers ([^1]) and their definitions are emitted as ordinary text in document order — they do not become Word's native footnotes at the bottom of the page. Convert footnote references to inline notes with md-footnote-linker first if you want predictable placement, then add Word footnotes manually if the recipient requires them.
Deeply nested lists don't get separate Word sub-levels
By designThe converter emits Word list paragraphs for top-level items only — bullets for -/* lists, decimal numbers for 1. lists. A nested list under an item is folded into that item's text run rather than written as an indented Word sub-level. The bullet/number markers still read clearly, but you won't get true multi-level outline numbering automatically. If you need precise sub-level numbering, flatten the list to one level in Markdown first, or apply Word's list styles after opening the file.
Bold/links inside a table cell render as plain text
Preserved as textGFM tables convert to real Word tables with a bold header row and 1pt borders, but cell contents are written as plain text. **bold**, [links](url), and ` code ` inside a cell keep their literal Markdown characters rather than becoming formatted runs. Keep table cells to plain values; put rich formatting in the surrounding body paragraphs, or style the cells in Word afterward.
Only one file converts per run
By designmd-to-docx takes a single Markdown source — paste it or upload one .md/.markdown/.mdx/.txt file. It does not merge multiple files into one Word document. To assemble several Markdown sections into one document, combine them first with md-merger, then run the merged file through md-to-docx.
YAML frontmatter is treated as document content
Watch outA --- delimited YAML frontmatter block at the top of the file is not stripped for this converter — marked sees the opening --- as a horizontal rule and the key/value lines as a paragraph, so your metadata can appear as visible text plus a divider line in the Word output. Remove frontmatter before converting, or build/clean it with md-frontmatter-builder and delete it before export.
Heading depth past level 6
Clamped to Heading 6Markdown allows ####### (seven hashes) but Word only has Heading 1 through Heading 6. Any heading deeper than six maps to Heading 6 rather than being dropped. If your document relies on a seventh level, restructure the outline or shift it up with md-heading-shifter before converting so the hierarchy reads correctly in Word's Navigation Pane.
Citation keys like [@smith2024]
Plain textPandoc-style citation keys ([@smith2024]) are not resolved into formatted citations — they appear verbatim as text. md-to-docx has no bibliography processor. If you need formatted citations, process the bibliography in your Pandoc/CSL pipeline before converting, or apply the journal's citation style in Word afterward.
Frequently asked questions
Will math equations render?
No. Inline $x$ and block $$…$$ math pass through as literal source text, dollar signs included — Word's equation editor is not invoked. Normalize your delimiters first with md-math-normalizer, then re-key equations in Word after conversion.
Can I include figures?
Figures are not embedded —  renders as its alt/caption text only, no image. Insert the actual figures in Word (Insert → Pictures) where the alt text appears.
Do my Markdown tables become real Word tables?
Yes — GFM pipe tables (| col | col |) become native Word table objects with a bold header row and 1pt borders, not images or tab-separated text. Columns share the page width evenly. Cell contents are written as plain text, so put any bold/links in surrounding paragraphs. If your source tables are misaligned, fix them with md-table-repair first.
Will Word's Navigation Pane and outline view work?
Yes. Headings map to Word's built-in Heading 1–6 styles, so the Navigation Pane, outline view, and an inserted Table of Contents all pick them up automatically. After conversion you can add a ToC via References → Table of Contents and it will read the heading levels directly.
How do I apply my journal's reference style?
The exported .docx is fully editable, so apply the journal's CSL/citation style in Word after conversion. A reference list written as a Markdown numbered/bulleted list converts to a Word list at the top level; restyle it to the journal's format in Word.
Does this avoid LaTeX-to-Word formatting bugs?
Yes — it bypasses LaTeX entirely. marked + docx.js produce a clean document built from Word's built-in styles, so you don't inherit the converter artifacts that LaTeX→Word workflows leave behind. Math and figures are the trade-off and need manual steps.
Are numbered and bulleted lists preserved?
Top-level lists are: -/* become Word bullets and 1. lists become decimal-numbered Word lists. Nested sub-lists are folded into the parent item's text rather than getting their own indented Word sub-level. For deep multi-level numbering, flatten the list in Markdown or apply Word's multilevel list style after conversion.
Can I apply my own corporate or template styles afterward?
Yes. Because headings use Word's standard built-in style names (Heading 1, Heading 2, …) rather than ad-hoc formatting, attaching a company template or changing the theme restyles the whole document at once. Open the .docx, then Design → Themes or attach your template via the Developer → Document Template dialog.
Does my document get uploaded to a server?
No. The whole conversion runs in your browser — marked tokenizes the Markdown and docx.js assembles the .docx locally. The file content never leaves your machine, so confidential drafts stay private. The only thing recorded server-side for signed-in users is a usage counter (that a conversion ran, not its contents).
What formatting options can I set before converting?
None — md-to-docx has no options panel. It uses a fixed, opinionated mapping (built-in heading styles, Courier New for code, blue underlined links, bordered tables). To change structure before converting, use the editing tools first: md-prettifier to normalize spacing, md-heading-shifter to fix the outline, or md-table-repair to align tables.
What is the output file named?
The downloaded Word file reuses the source name with the extension swapped to .docx — proposal.md becomes proposal.docx. If you pasted text instead of uploading a file, a default name is used. The document's internal title metadata is set from the filename, and the creator is recorded as "JAD Markdown".
Is there an API or command-line way to run this?
Not for the .docx output. The public API and MCP run the text-output Markdown tools server-side, but binary-output tools (md-to-docx, the md-to-pdf converters, md-splitter) return a 400 that points back to the web tool — Word generation only happens in the browser. For an automatable, text-only export use md-to-html or md-to-github-html and convert HTML to Word in your pipeline.
Privacy first
All Markdown processing runs locally in your browser using JavaScript. No file is ever uploaded to JAD Apps servers — only metadata counters are saved for signed-in dashboard stats.