Markdown editor
A toolbar, a live preview, and five ready-made templates. Everything renders in this page — there is no fetch, no upload, and your draft is kept only in this browser's local storage.
Your draft is kept only in this browser's local storage — it is not sent anywhere, and clearing it or your site data removes it for good.
About this tool
Type in the left pane and the right pane renders it as you go. The toolbar wraps a selection — or inserts placeholder text if nothing is selected — and headings, quotes and list markers apply to whichever lines the cursor or selection touches. Pressing Enter inside a list continues it; pressing Enter on an empty list item ends it; Tab indents a list item one level while the cursor is on one.
Five templates are built in — README, changelog, bug report, meeting notes and pull request description — plus five smaller snippets that insert at the cursor rather than replacing the draft.
How it works
The renderer is hand-written — headings, bold, italic, strikethrough, inline and fenced code, blockquotes (including nested ones), ordered, unordered and task lists with nesting, GitHub-style pipe tables with column alignment, links, images and horizontal rules. It is a practical subset rather than a full CommonMark implementation, and it deliberately does not pass through raw HTML — anything that looks like a tag is escaped and shown as text. That keeps the same promise as every other tool here: nothing you paste can execute.
The draft is written to localStorage on every change and read back when the page loads, so a refresh or an accidental tab close does not lose it. Nothing about that touches a network — it never leaves this browser.
Common questions
Is my Markdown uploaded anywhere?
No. It is rendered in your browser and the only place it is stored is your own browser's local storage. This page makes no network requests after it loads.
Does it support GitHub-flavoured tables and task lists?
Yes — pipe tables with left, right or centre alignment from the delimiter row, and - [ ] / - [x] task list items with a disabled checkbox in the preview.
Can I save my own templates?
Not yet. The five above are fixed. Copy the Markdown out, keep your own version somewhere, and paste it back in when you need it.
Why doesn't a pasted <div> or embed show up?
By design. Raw HTML in the source is escaped rather than rendered, so nothing pasted here — including from a document you don't fully trust — can run on the page.
Will my draft survive a refresh?
Yes, until you press Clear or clear your browser's site data for pantechnicon.dev. It is not backed up anywhere else, so copy it out if it matters.
When the preview doesn't look right
A table shows as a plain paragraph
The header row needs a delimiter row directly under it with the same number of columns, made of dashes — | --- | --- |. Without that second row it is not recognised as a table at all.
A table's columns don't line up with the header
Each data row is matched to the header by position, not by width — extra or missing cells shift everything after them. Count the pipes rather than trusting how it looks in the source.
A nested list doesn't nest
Indent a sub-item by at least as many spaces as the parent marker plus one — two spaces is safe for a single level, four for two levels. A single space is not enough and the item stays at the same level.
**bold** or *italic* doesn't apply
There cannot be a space immediately inside the markers — ** bold ** is read literally rather than as emphasis. Move the marker to sit directly against the first and last letter.
A code block loses its fence
A fenced block needs a blank line before the opening ``` and after the closing one, or the fence can merge into the paragraph above or below it.
Something pasted from elsewhere shows as literal tags
That is the raw-HTML rule above working as intended, not a bug — see "Why doesn't a pasted <div>… show up?" in the questions above.
The same job at the command line
This page is for a quick look and a quick edit. For a build pipeline or a full CommonMark implementation, these are the right tools.
pandoc input.md -o output.htmlFull CommonMark plus most extensions — the most complete converter generally available.markdownlint input.mdLints for style issues this page does not check — heading levels, line length, list consistency.glow input.mdRenders Markdown straight in the terminal, no browser needed.npx serve .Most static-site generators (Jekyll, Hugo, Eleventy) already render Markdown at build time — this page is for before it gets there.
More tools
See the whole toolbox — twenty-six free tools planned, all running in your browser.