What is preserved
- Heading levels from explicit outline levels
- Nested ordered and unordered lists
- Tables with merged cells
- Bold, italic and strikethrough
- Hyperlinks and bookmarks
- Footnotes and endnotes
Convert LibreOffice and OpenOffice .odt documents to Markdown in your browser. Headings, lists and tables come through cleanly.
ODT is what you get when a word processor format is designed as a document model first. Like .docx it is a zip of XML, but its markup says what things are instead of only how they were styled: a heading is a text:h element carrying its own outline level, a list is a real nested list element, and a table is a table. That is why heading detection is more reliable here than in Word documents, where a level 2 heading is really just a paragraph that happens to reference a style named "Heading 2".
The practical consequence is that ODT round-trips into Markdown with fewer surprises than any other word processor format on this site. Structure that the author gave the document survives as structure, and the converter has to guess much less.
Two ODT details are worth knowing before you read the output. Numbered lists keep counting across an interrupting paragraph, because OpenDocument records the continuation rather than restarting the list, so a document whose items run 1, 2, 3, prose, 4 comes out that way instead of starting again at one. And a text box is a frame anchored to a paragraph rather than part of the flow: its text is kept, but it lands after the paragraph it was anchored to instead of beside it, which is the one place an .odt can read out of order.
Password-protected ODT files are encrypted at the zip level and cannot be opened — remove the password in LibreOffice first. A document with pathologically deep XML nesting (past 256 levels) is refused as a resource limit.