Skip to content

Markdown Editor

Edits Markdown with a live preview and exports the rendered HTML, with GFM tables and task lists.

A Markdown editor with the rendered result beside it, the HTML behind that, and an outline of the headings. The parser is this repo’s own CommonMark implementation, which scores 99.8% on the specification’s 652-example test corpus.

🔒 Runs entirely in your browsermarkdownprevieweditorhtml

Markdown

Preview

View

About the project

A Markdown editor with a live preview. Bold, italic, code and links.

Getting set up

  1. Clone the repository
  2. Run the installer
  3. Open the app
Item Qty Amount
Laptop 2 2,400,000
Monitor 3 900,000

A quote, for emphasis.

const total = items.reduce((sum, item) => sum + item.price, 0);
  • [x] Task lists work
  • [ ] Even the unchecked ones

Options

Document

words

61

characters

456

links

1

images

0

code blocks

1

tables

1

Outline

  • About the project #about-the-project
  • Getting set up #getting-set-up

Anchors are romanised rather than percent-encoded, so a Korean heading gets a link that survives being pasted into chat.

The parser here is the repo’s own CommonMark implementation — the same one the DOCX converter uses, which scores 99.8% on the specification’s 652-example test corpus. GFM pipe tables are an addition on top of it.

How to use it

  1. Write or paste the Markdown

    The preview updates as you type. A YAML front-matter block at the top is recognised and left out of the preview rather than rendered as a horizontal rule.

  2. Switch to HTML when you need the output

    The same document as HTML, ready to copy into a CMS or a mail template. The download gives you a complete file.

  3. Use the outline to check the heading structure

    Each heading with the anchor it will get. A jump from h2 to h4 shows up here immediately, and so does a duplicate anchor.

Common questions

Why is raw HTML dropped by default?

CommonMark says to pass it through, which is right for a document you wrote and a cross-site-scripting hole for one you pasted. The toggle is there, with a warning, for your own documents.

My tables do not render

Pipe tables are a GitHub extension, not part of CommonMark. The toggle is on by default; if it is off you are seeing strict specification behaviour, which renders the pipes as text.

Why are the anchors romanised?

So a link to a Korean heading survives being pasted into a chat window. A percent-encoded anchor is correct and unreadable, and several systems break it on the way through.

Feed it from

Next

These accept what this tool produces, so the result can go straight in.