Today, we are releasing Word to markdown converter library. It’s open source and published under Apache 2.0 license. It uses our layout engine, so it can return accurate, per-page markdown blocks (with headers, footers, and image references). We also handle fonts (Google fonts as fallback) or let you pass your font files upfront for accurate content measurement.
To our surprise, Word to per-page Markdown conversion is not a solved problem even in 2026! We initially faced this friction when preprocessing Word documents for agentic workflows. For our use case, it was important to represent per-page content in markdown. Initially, we ended up using LibreOffice sidecar to convert to PDF and then using .pdf -> .md library. This was not ideal given that LibreOffice sidecar that was sitting idle most of the time.
This is great, working on a soon to launch Markdown editor soon so this is especially relevant. I'll play around with it later but I'm curious, how are you deciding pagination boundaries? I've found word and docx and various open source projects vary on philosophy and implementation.
Thanks! Our core product is a Word editor that you can embed in your React / Vue app. So we just repurposed the layout engine to be an accurate converter. You can see how our layout engine "sees" the document in the left tab of the demo.
Today, we are releasing Word to markdown converter library. It’s open source and published under Apache 2.0 license. It uses our layout engine, so it can return accurate, per-page markdown blocks (with headers, footers, and image references). We also handle fonts (Google fonts as fallback) or let you pass your font files upfront for accurate content measurement.
To our surprise, Word to per-page Markdown conversion is not a solved problem even in 2026! We initially faced this friction when preprocessing Word documents for agentic workflows. For our use case, it was important to represent per-page content in markdown. Initially, we ended up using LibreOffice sidecar to convert to PDF and then using .pdf -> .md library. This was not ideal given that LibreOffice sidecar that was sitting idle most of the time.
This issue is addressed with docx-to-markdown library. it can be used directly in your Typescript ingestion pipeline. Try with your docs at https://www.docx-editor.dev/solutions/word-to-markdown.
(if you catch any bugs please let us know in the comments / or file gh issues)
This is great, working on a soon to launch Markdown editor soon so this is especially relevant. I'll play around with it later but I'm curious, how are you deciding pagination boundaries? I've found word and docx and various open source projects vary on philosophy and implementation.
Thanks! Our core product is a Word editor that you can embed in your React / Vue app. So we just repurposed the layout engine to be an accurate converter. You can see how our layout engine "sees" the document in the left tab of the demo.