How to convert HTML to Markdown on iPhone
This is the conversion that goes backwards — from a formatted document to editable plain text. Structure has to be inferred rather than read, and being clear about how that works tells you exactly what to expect.
Why you would want this
HTML is a delivery format. Markdown is a working format. If you have saved an article, exported a note from an app that only writes HTML, or received a formatted document and want to edit it rather than admire it, Markdown is what you want: plain text you can open in any editor, put in version control, paste into a notes app, or feed to anything else.
The alternative — copying rendered text out of a browser — loses every heading and list and gives you a soup of paragraphs. Converting keeps the structure as syntax you can see and edit.
How structure gets recovered (and why that word matters)
Convexy parses the HTML into a styled document, then reads that document back out as Markdown. That second step is a reconstruction, not a lookup: a styled document knows that a run of text is 24-point and bold, but not that it was originally an <h2>. So heading levels are inferred from how much larger the text is than the document's body size, and lists are recovered from their list structure and markers.
In practice this works well, because that inference is exactly what a human reader does. It also means the honest guarantee is a two-part one:
- Text is never lost. Every word in the document comes through.
- Structure may be. Anything the reconstruction cannot recognise degrades to an ordinary paragraph — with its inline formatting intact.
What comes through
- Headings — as
#,##,###, based on their relative size in the document. - Bold and italic — as
**bold**and*italic*, including both together. - Bullet and numbered lists — as
-items and1.items, with numbering preserved. - Links — as
[text](https://example.com), with the target URL intact. - Monospaced text — as
`inline code`. - Paragraph structure — blank lines between paragraphs, as Markdown requires.
Characters that mean something in Markdown are escaped on the way out. A literal asterisk in your prose is written as \*, so it survives as an asterisk instead of accidentally turning half the sentence italic when the file is next rendered. A line that happens to start with # or - is escaped too, so it does not silently become a heading or a bullet.
What does not come through
- Tables. A table flattens into paragraphs of its cell text. The grid is gone.
- Images. Pictures are not written out as Markdown image references; the file has no image in it, and the reference is not recreated.
- Nested lists. Sub-items are flattened to the top level rather than indented.
- Code blocks. Preformatted blocks come back as monospaced text, not as fenced
```blocks — you get the code, but you may want to re-fence it. - Strikethrough, colours, fonts, alignment, and CSS in general. Markdown has no way to express them, so they are dropped rather than faked.
None of that is recoverable by a better setting; it is what happens when you move from a format that can express anything to one that deliberately expresses very little. That constraint is why Markdown is pleasant to edit.
This converts a file, not a web address. Convexy has no network access and cannot fetch a page from a URL. To convert an article you are reading, first save it as an HTML file to your device, then convert that file. If the page depends on a stylesheet or scripts that are not inside the file itself, only what is in the file gets converted.
The whole conversion runs on your device, with no upload and no account. If you are pulling a saved statement, an exported note or a client's document into Markdown, none of it passes through anyone's server — because there is no server.
The other direction
Markdown converts back to a complete standalone page — see Markdown to HTML. Round-tripping HTML to Markdown and back will not reproduce the original file byte for byte, and nothing that works this way ever will: the second file only contains what Markdown was able to express.
How to do it
-
Get the HTML onto your device
It has to be a file. Save the page as HTML, export it from the app that holds it, or use one you already have in Files.
-
Bring it into Convexy
Tap Browse files and pick the .html, or share it into Convexy from wherever it lives.
-
Choose Markdown
The app offers only what an HTML file can become: PDF, TXT, RTF and Markdown. Tap Markdown.
-
Convert
Tap Convert. There is nothing to configure — the structure is recovered automatically.
-
Read it before you rely on it
Open the .md and check the headings and lists landed where you expected. Tables and code blocks are the two places you may want to tidy up by hand.
Common questions
Can I convert a web page URL to Markdown?
No. Convexy converts files that are on your device and makes no network requests at all. Save the page as an HTML file first, then convert the file. This is a direct consequence of the app having no server and no network access — the same property that means nothing you convert is ever uploaded.
Do HTML tables become Markdown tables?
No. A table flattens into paragraphs containing the cell text. The row and column structure is not reconstructed. If the document is mostly tables, expect to rebuild them by hand.
What happens to images?
They are not carried over. Markdown references an image, it does not contain one, and the output is a single text file with no accompanying picture. Text and links survive; pictures do not.
Will the Markdown match the original HTML exactly?
No, and it cannot. HTML can express anything; Markdown deliberately expresses very little. Headings, lists, bold, italic, links and inline code come through. Layout, colours, fonts, nesting depth and tables do not. The guarantee worth having is the one that holds: the text always survives, even when its structure does not.
Why are there backslashes in my Markdown?
Because the source contained characters that Markdown treats as syntax — asterisks, underscores, brackets, a leading hash or hyphen. They are escaped with a backslash so they stay literal characters instead of turning into formatting the next time the file is rendered. It is the correct behaviour; a converter that skips this step produces files that quietly corrupt themselves.
Is anything uploaded?
No. There is no backend, no account and no analytics. Conversion is done by frameworks already on your iPhone and works in Airplane Mode.