Markdown to HTML — Source & Preview
Turn a Markdown draft into HTML for an existing page or publishing system. Convert explicitly, inspect the complete source and use a formatting preview that does not load images or open links. Copy and download contain the same HTML fragment.
Convert one draft and export its source
- Paste or type Markdown, or import one UTF-8 Markdown/text file. CRLF and CR become LF; content is not trimmed or Unicode-normalized. An imported file waits for Convert, and changing the draft removes the previous result.
- Press Convert to parse and check the supported profile. Raw HTML stays text, and prohibited link or image destinations stop conversion rather than being silently removed. Use Source to inspect complete HTML or Preview for inert formatting when its separate limits allow it.
- Copy source or download converted.html. Both use the exact same UTF-8 fragment, without an added page wrapper, CSS or byte-order mark. The preview is not exported, and downloaded HTML is not automatically opened.
Understand the format and the preview
The profile is markdown-it 15.0.3 default with tables and strikethrough, plus the tool's explicit input, nesting and URL restrictions. It supports ordinary headings, lists, quotes, emphasis and escaped code, but is not full GitHub-flavored Markdown. There are no task-list, math, diagram, footnote or highlighter plugins.
Raw HTML is rendered as text rather than enabled. For example, a script tag in the draft is not a script running in the preview. This behavior is not a general-purpose sanitizer for arbitrary HTML, and malformed Markdown can remain ordinary text instead of causing a syntax error.
Approved links and image references remain in the source fragment. Preview links are noninteractive spans and images are labelled placeholders; no resources are fetched there. A large preview can be omitted completely while the full source, Copy and download remain available. The preview is not a pixel-faithful hosted page.
Relative references are not resolved against this site or your imported file's location. Your publishing page chooses their eventual base. Opening or rehosting an exported fragment can therefore load its approved images or follow links, unlike the inert preview inside this tool.
Examples of structure, references and empty output
Use example fills a heading A, a blank line and Hello with world in bold, without converting automatically. Conversion should produce an h1 heading and a paragraph containing strong emphasis. The result's details explain the active profile, byte counts and separate preview behavior.
A relative link such as ../guide?q=x#part can stay a relative HTML reference. An HTTPS image can stay in source but appears only as an alt placeholder in Preview. A mailto address is permitted for a link, not an image; data images, script schemes and protocol-relative references are rejected.
A nonblank document containing only unused reference definitions can legitimately produce a zero-byte HTML fragment. That is different from incomplete blank input. The result explains the empty output and can still copy or download those exact zero bytes without inventing a paragraph.
Explicit syntax, resource and export boundaries
The received draft fits 200000 UTF-16 units; canonical UTF-8 and any imported file fit 512 KiB, with at most 20000 lines. NUL, malformed UTF-8 and unpaired surrogates are rejected. Exactly one initial UTF-8 file BOM is removed; a later U+FEFF is preserved. Oversize edits are rejected rather than partially truncated.
Nesting guards, 100000 parsed tokens, bounded destination/fence strings, a 4 MiB source-output cap and a 15-second operation deadline limit the job. Preview additionally fits 256 KiB, 20000 tokens and 10000 emitted elements. These are product controls, not speed, heap or device guarantees; there is no partial-success artifact on a failed conversion.
Links permit the explicit HTTP(S), mailto and relative-reference profile; images need an HTTP(S) or relative path. Unsupported schemes, credentials, ambiguous authorities and prohibited control/backslash encodings stop conversion. Allowed destinations are not a claim that a linked site or downloaded fragment is trustworthy.
There is no complete-page export, user CSS, raw-HTML mode, live editor, cloud/URL import, persistence or batch conversion. Copy and Download always use the stored current fragment, not the preview. Changing the input or cancelling retires old actions; a clipboard write or download already handed to the operating system cannot be retracted.
Local draft processing and current results
Parsing and rendering run in a local worker. This tool adds no draft/file upload, URL fetching, input-bearing address, stored history or content telemetry. Its isolated preview does not load images or activate links. Existing site services remain; local processing is not a certification of analytics vendors or deployed behavior.
Markdown conversion questions
Sources and format references
- spec.commonmark.orgCommonMark 0.31.2CommonMark describes the underlying Markdown syntax; this tool uses the specified markdown-it profile and additional restrictions.
- github.github.comGitHub Flavored MarkdownGitHub Flavored Markdown describes extensions; this tool does not implement the complete GFM profile.
- github.commarkdown-it 15.0.3The pinned parser supplies the default profile, including tables and strikethrough, with raw HTML disabled.
- html.spec.whatwg.orgHTML StandardThe HTML Standard describes iframe sandbox capabilities; sandboxing alone does not prohibit all network requests or navigation.
- w3c.github.ioContent Security PolicyContent Security Policy describes restrictions used alongside isolation for the inert preview.
- encoding.spec.whatwg.orgEncoding StandardThe Encoding Standard describes UTF-8 decoding and byte-order marks.
Related tools
JSON to YAML
Convert JSON to YAML locally while preserving number text and quoted strings; copy or download the complete result.
Open tool — JSON to YAMLYAML to JSON
Convert one YAML document locally to JSON with exact number text and bounded aliases, then copy or download the complete result.
Open tool — YAML to JSONHTML to Markdown
Convert pasted or local HTML into Markdown, review conversion notes, and copy or download the result.
Open tool — HTML to MarkdownJavaScript Regex Tester
Test a JavaScript pattern locally and inspect matches, captures, and UTF-16 positions.
Open tool — JavaScript Regex TesterText Sorter
Sort lines alphabetically by a chosen language or by Unicode code point, keeping duplicates, blank rows and complete line contents.
Open tool — Text SorterRemove Duplicate Lines
Keep the first copy of each exact text line, preserving order, significant spaces and blank rows, then copy or download the result.
Open tool — Remove Duplicate LinesText Diff Checker
Compare two drafts locally, with exact whole-line changes, visible whitespace rules and clear final-newline handling.
Open tool — Text Diff CheckerCase Converter
Convert text to uppercase, lowercase, capitalized words or sentence case with explicit letter rules.
Open tool — Case ConverterHTML Entity Encoder/Decoder
Encode or decode literal HTML references with explicit context, Unicode options and LF output, without parsing or rendering markup.
Open tool — HTML Entity Encoder/DecoderMarkdown Table Generator
Edit a small literal-text table, set alignment and copy GFM Markdown or import tab-separated text.
Open tool — Markdown Table GeneratorQuery String Parser & Builder
Edit ordered URL parameters, retain repeated names and copy a normalized query or HTTP(S) URL.
Open tool — Query String Parser & BuilderURL Encoder & Decoder
Convert a UTF-8 URL component or form value with explicit space and plus rules, then copy or download the result.
Open tool — URL Encoder & DecoderBase64 Encoder & Decoder
Encode UTF-8 text as standard or URL-safe Base64, or decode either format with clear errors and complete text output.
Open tool — Base64 Encoder & DecoderXML Formatter
Check namespace-aware XML 1.0, format or compact locally, and copy or download UTF-8 output.
Open tool — XML FormatterJSON Formatter & Validator
Check JSON syntax, format or minify locally, and copy or download output while preserving original data tokens.
Open tool — JSON Formatter & ValidatorSMS Character Counter & Segment Calculator
See how your message is encoded, where its segments end and what it may cost. Your text stays in your browser.
Open tool — SMS Character Counter & Segment CalculatorSocial Media Character Counter
Check platform-specific limits and split posts without losing text.
Open tool — Social Media Character CounterCharacter Counter
Count characters, words, sentences and paragraphs. Check word density, reading time and UTF-8 size, all in your browser.
Open tool — Character CounterText Size Calculator
Compare text encodings and payload sizes in your browser.
Open tool — Text Size CalculatorPDF Text Cleaner
Fix line breaks and spacing in text copied from a PDF. Preserve your original and review ambiguous hyphens before copying the cleaned text.
Open tool — PDF Text CleanerFancy Text Converter
Convert supported fancy Unicode letters to normal text locally. Keep case, accents, emoji and your original text.
Open tool — Fancy Text ConverterGarbled Text Fixer
Fix garbled text and repair broken accents with a browser-based mojibake fixer. Review each possible UTF-8 reversal before applying it.
Open tool — Garbled Text FixerGmail Clipping Checker
Measure email HTML bytes in UTF-8, compare them with an advisory 102,000-byte Gmail reference, and inspect size contributors locally.
Open tool — Gmail Clipping Checker