Back to Chawso Markdown

Words first.
Clear limits.

What this tool does

Read UTF-8 Markdown, prepare a sandboxed preview and download a self-contained HTML reading copy with a print stylesheet. Download a Markdown text copy separately, with LF line endings and no UTF-8 BOM. Original uploaded bytes are not preserved. Every source/title edit invalidates the preview. The app does not autosave, rewrite the Markdown syntax in your source or publish a website.

Maximum input is 256 KiB of UTF-8 text. Rendering runs in a worker with a ten-second deadline and nesting limit of 40. Large/complex input can still be slow on some devices. Pasted text and file uploads use the same byte limit. Invalid UTF-8 uploads, NUL and replacement characters are refused. A rejected upload retains the source text, but requires a new preview.

Deliberate rendering policy

All parsed Markdown images are replaced with escaped alt-text placeholders, including remote, local, reference and data images. None are fetched. Counts cover parsed images and parsed links transformed by our renderer rules. Parser-refused image/link syntax stays literal and is not counted. These counts are not an exhaustive source audit. Those counts appear before export; when those omissions exist, you must acknowledge them before HTML download. The Markdown text source still contains its original image/link destinations.

Raw HTML is shown as text, never executed. Relative, fragment, protocol-relative and unsupported-scheme link destinations are removed in the reading copy. The parser already rejects dangerous link schemes. Ordinary HTTP, HTTPS and mailto links remain live in the downloaded HTML with noreferrer/noopener and a new-window target. Following a link is your choice and can contact another site or app. Preview links cannot open new windows because the preview sandbox grants no popup/navigation permissions.

The HTML includes its stylesheet and restrictive resource policy. It has no scripts, embedded images, remote CSS or fonts. The preview uses the same document in an iframe sandbox without script, same-origin, form, popup or download grants. These are bounded app policies, not a malware verdict about your source. Other software, extensions and the content of pages you choose to visit are outside this tool's control.

Formatting boundaries

Markdown rendering uses the markdown-it default syntax: headings, lists, quotes, fenced/indented code, tables and strikethrough. Automatic bare-URL linking and typographic substitutions are off. Code is escaped but not syntax-highlighted. There are no custom HTML blocks, heading IDs/anchor navigation, task checkboxes, footnotes, math, diagrams, slide decks or media embeds. This is not a pixel-identical GitHub renderer or a claim of full CommonMark conformance under our restricted policy. Source word count is whitespace-based, not language-aware.

The HTML reading copy is not a PDF. Open it in your browser to print; pagination and print-to-PDF availability depend on that browser. There is no in-app PDF export. HTML export is intentionally different from your source where images/links are omitted. Keep the Markdown for future editing. Source downloads preserve text content, not file bytes: the textarea normalizes line endings to LF, and text decoding removes a UTF-8 BOM. The original file remains on your device.

Privacy

This build has no upload feature, analytics, tracking cookie or persistent draft storage. Source is held in the page; worker copies are released after rendering or cancellation. Clear empties the visible source and preview. Downloads/clipboard history or browser recovery behavior are outside this app. Hosting serves the app files; no claim is made about infrastructure access logs. No third-party runtime requests are needed to render or read the exported HTML. Following exported links is a separate user action.

Open-source attribution

Parser: markdown-it15.0.3, revision a8c00d474ec9b304fad9b71c16d6fa8b4909279e, copyright2014 Vitaly Puzrin and Alex Kocharin, MIT. Full licence. The parser source is unmodified; new renderer rules and app code implement the policies above.

Bundled dependencies: entities8.1.0 (BSD-2-Clause), linkify-it6.1.0, mdurl2.1.0, punycode.js2.3.1 and uc.micro3.0.0 (MIT). Component notice. Full texts: entities, linkify-it, mdurl, punycode.js, uc.micro. No plugins or webfonts included. New Chawso code uses MIT terms.

Download app source and licences. Revised November 13, 2026. Contact: contact@chawso.com.