pdfmdtools.com

Markdown to HTML

Paste Markdown or choose one file. Inspect the HTML, then copy a fragment or download a complete page.

or drop one .md / .markdown file · UTF-8 · 1 MiB maximumNo file selected

Markdown input

HTML source

Page title and language (complete page only)

This sets HTML language metadata, not translation or a font guarantee.

One file at a time. 1 MiB input and 6 MiB generated HTML limits. Raw HTML is escaped; formulas and Mermaid are not rendered. Images stay as references and are not fetched in the preview. Read support and limits.

Rendered preview

Preview links are inactive and image references are labeled. Downloaded HTML retains links and image paths; opening it may request those external resources.

In your browserNo uploadsNo account

How to convert Markdown to HTML

  1. Add your MarkdownPaste Markdown or choose one UTF-8 .md or .markdown file.
  2. Choose the output formatChoose a fragment for an existing CMS page, or a complete HTML page to open on its own.
  3. Convert and checkSelect Convert to HTML, inspect the generated source and preview, then copy or download. Check the result in its destination too.

HTML fragments, complete pages and preview

Fragments and complete pages

A fragment is body markup for an existing page or CMS. A complete page adds a document wrapper, metadata and styles, so it can open directly in a browser.

Document metadata and styles

The output is a sanitized HTML fragment or complete HTML5 page with UTF-8, viewport, title, language metadata and a built-in stylesheet.

Preview and publishing context

A preview is not a guarantee of the destination's fonts, CSS, email compatibility or permitted tags. A complete download includes a restrictive script-blocking CSP; a fragment needs the destination's own security policy. Sanitization is not a guarantee for every publishing context.

Support and limits

  • Input: pasted text or one local .md / .markdown file encoded in UTF-8, up to 1 MiB (1,048,576 bytes). Invalid UTF-8 files are rejected instead of silently replacing characters. Paste is also checked by UTF-8 byte length. No URL fetching, folder import or batch conversion.
  • Output limit: Generated HTML is limited to 6 MiB (6,291,456 bytes). These are enforced limits, not tested device-memory ceilings.
  • Syntax: headings, paragraphs, emphasis, nested lists, blockquotes, fenced code, links, image references, and GFM tables, tasks and strikethrough. Code is escaped but not syntax-highlighted.
  • Boundaries: raw HTML is displayed as literal text. Unsupported URL schemes are removed by the sanitizer. Math delimiters and Mermaid fences do not become equations or diagrams. Footnote extensions and automatic heading IDs are not implemented. Relative links and images are not bundled or rewritten; supply the referenced files yourself.

Test files and results

Tested on:

Three English samples were selected in the browser file picker, converted with Complete HTML page, English language metadata and the default generated title, then downloaded. Each downloaded file was opened in a browser and independently inspected. These samples do not establish accuracy for all Markdown or publishing environments; HTML has no fixed page count.

Sample 1: English structure · Sample 2: English table and tasks · Sample 3: explicit boundaries

File checkedActual result and reviewSource / output bytes
1 · English structureHeading, emphasis, nested list, quote, link and literal fenced code retained. This checks this English fixture, not every document.246 / 1,144
2 · English GFM tableAll 12 rows and three columns exact; two tasks and strikethrough present. This checks this fixture, not every table.471 / 1,934
3 · BoundariesRaw tags escaped; unsafe URL removed; image remains external file reference; math literal; Mermaid code; footnote unsupported. These unsupported features remain limits, not repaired successes.291 / 1,085

Actual downloaded outputs: Output 1: structure · Output 2: table · Output 3: boundaries

Download the file-by-file check record

Earlier mixed-language checks and timings — October 15, 2026

This is the unchanged historical check, not the current English sample set. Its old timings are not results for the October 25 run.

Original three-file check

These are self-created samples for this converter, not a broad accuracy benchmark. An HTML document has no fixed pages: the records below are checked file by file. Browser printing may paginate it differently.

File checkedActual result and reviewSource / output bytes
1 · Structure and ChineseChinese heading, H1/H2, bold, italic, nested list, quote and link preserved in the downloaded source. HTML inside the code fence is escaped.246 / 1,144
2 · GFM tableROW001–ROW012 checked in order, once each: all 12 rows present. Three header cells, two task checkboxes and strikethrough retained. This checks this fixture, not every table.519 / 1,982
3 · BoundariesRaw div/script tags escaped; unsafe javascript link loses its href. Image remains assets/figure.png, without an image bundle. Math stays text; Mermaid stays code. The footnote is parsed as a reference link, not a footnote: unsupported.291 / 1,085

Actual downloaded outputs: Output 1: structure · Output 2: table · Output 3: boundaries.

Exact settings and additional boundary checks

Checked on 15 October 2026 in the desktop browser on this Windows machine, with Complete HTML page, English language metadata and the default generated title. Each output below is an actual browser download. Language metadata does not translate the Chinese text.

Source sizes include the source files' CRLF line endings; textarea input normalizes line endings. No conversion correction was applied between these source samples and the published downloads. The unsupported outcomes above remain limits, not repaired successes.

Other checks: a 1,048,577-byte file was rejected at the 1 MiB limit; a deliberately invalid UTF-8 file was rejected with a decoding error. The download action was disabled after rejection.

Sample 1: structure and Chinese · Sample 2: numbered table and tasks · Sample 3: explicit boundaries

Measured conversion time and its scope

On this Windows machine, after the local tool page was loaded, sample 1 took 49.0 ms and sample 2 took 9.0 ms to build HTML and assign the preview. These are individual observed runs, not averages, cold-load times or preview-paint times. They exclude file selection and download. Sample 3 timing was not captured reliably, so no time is reported for it. These localhost measurements describe this machine, not a visitor’s network. Physical-phone timing and peak memory have not been measured.

Local processing and privacy

Conversion runs in this browser using components served from this site. Your Markdown and generated HTML are not uploaded to a conversion service or saved as a draft. No account, model or paid API is used.

The preview blocks image requests and disables links. Downloaded HTML keeps image paths and links; opening it may load those images, and following a link contacts its destination. Separate website delivery and analytics requests are described in our privacy policy; document contents are not sent as analytics events.

Frequently asked questions

Why can images work in my original project but not in the downloaded HTML?

Relative image paths resolve from the HTML file’s new location. Keep the referenced images in matching folders, or update their paths before publishing. This tool does not package images with the HTML.

Page updated: