Coding Tool

Markdown Editor with Live Preview

Write Markdown and see the formatted HTML side-by-side in real time. Export to .md or .html — nothing leaves your browser.

Words
Chars
No-space
Lines
Read time
Markdown
Preview

Markdown Syntax Reference

Every element supported by this editor — click any token to insert it.

Headings
# H1Largest heading
## H2Section heading
### H3Subsection
#### H4Sub-subsection
H1 alt\n===Setext H1 (underline =)
H2 alt\n---Setext H2 (underline -)
Emphasis
**bold**Bold text
*italic*Italic text
***bold italic***Bold and italic
~~strike~~Strikethrough
__bold__Alternate bold (underscores)
_italic_Alternate italic
Lists
- itemUnordered list (also * or +)
1. itemOrdered list
- nestedNested list (2 spaces)
- [x] doneChecked task item
- [ ] todoUnchecked task item
Code
`code`Inline code
```js … ```Fenced code block with language
```pythonPython syntax label
```bashShell / bash label
indented4-space indented code
Links & Images
[text](url)Hyperlink
![alt](url)Image
[text](url "title")Link with hover title
https://…Auto-linked bare URL
[ref]: urlReference-style link definition
Blocks
> quoteBlockquote
---Horizontal rule (also *** or ___)
\Backslash escapes special chars
Tables (GFM)
| Col 1 | Col 2 | |-------|-------| | a | b | Pipe-separated table. Header row + separator row required.
:---:Centre-aligned column
---:Right-aligned column
Tips
Tab keyInserts 2 spaces in the editor
Blank lineSeparates paragraphs
Two spaces\nLine break inside a paragraph
\*escaped\*Backslash escapes syntax chars

How to Use This Editor

Everything the Markdown editor does and how to get the most out of it.

1
Write Markdown
Type or paste your Markdown in the left pane. The preview updates instantly on every keystroke — no button press needed.
2
Use the Toolbar
Click Bold, Italic, Code, Link, or Quote to wrap selected text in the right syntax — or insert a placeholder if nothing is selected.
3
Switch Views
Use the Editor / Split / Preview toggle to focus on writing, compare side-by-side, or review the rendered output full-width.
4
Check Your Stats
The stats bar shows word count, character count, line count, and estimated reading time — updated live as you write.
5
Export Your Work
Download as .md to keep the raw Markdown source, or as .html to get a complete, styled HTML file ready to publish.
6
Copy HTML
Click Copy HTML to copy just the rendered HTML fragment — useful for pasting into a CMS, email builder, or static site template.

What's Built In

A full Markdown workbench — no extensions, no sign-up, nothing sent to a server.

Instant Preview
HTML preview updates on every keystroke with no debounce delay.
📐
Split / Editor / Preview
Three layout modes — focus on writing, compare side-by-side, or review the final output.
📊
Live Stats
Word count, character count, line count, and reading time updated in real time.
📋
GFM Tables & Tasks
GitHub Flavored Markdown tables, task lists with checkboxes, and strikethrough.
💻
Code Blocks
Fenced code blocks with language labels for JavaScript, Python, bash, and more.
⬇️
Export to .md / .html
Download your raw Markdown or a complete styled HTML file with one click.
🔧
Toolbar Shortcuts
Wrap selected text in bold, italic, code, link, or blockquote with the toolbar buttons.
🔒
100% Private
Runs entirely in your browser. Nothing is sent to any server. Your content stays yours.

Frequently Asked Questions

Common questions about Markdown and this editor.

Markdown is a lightweight text formatting language created by John Gruber in 2004. It lets you write using plain text characters — like # for headings and ** for bold — that are then converted to formatted HTML. It's deliberately designed to be readable even as raw plain text, making it ideal for documentation, README files, blog posts, and notes.

Yes. This editor supports the most widely used GFM extensions: tables (pipe syntax with separator row), task lists (- [x] / - [ ]), strikethrough (~~text~~), fenced code blocks with language labels, and auto-linked bare URLs. Advanced GFM features like footnotes, mathematical expressions, or HTML block-level tags are not rendered to keep the tool lightweight and safe.

No — everything you write stays in the browser's memory only. When you close or refresh the page, your content will be gone. Download your work as a .md or .html file before leaving. For persistent note-taking, consider pasting the output into a local file or a note-taking app.

The .md download saves your raw Markdown source text exactly as you typed it — ideal if you want to edit it again later, commit it to a repository, or use it in a Markdown-aware system like GitHub or a static site generator. The .html download saves a fully self-contained HTML file with inline CSS — ready to open in a browser and share as a formatted document without any additional processing.

Use pipes (|) to separate columns and a separator row of dashes between the header and body rows:

| Name | Age |
|------|-----|
| Alice | 30 |
| Bob | 25 |

The separator row must have at least three dashes per cell. Add colons for alignment: :--- (left), :---: (center), ---: (right).

This editor deliberately strips raw HTML from input before rendering to prevent XSS attacks. Inline HTML tags like <div>, <span>, or <br> typed into the editor will appear as escaped text in the preview. If you need custom HTML, write your Markdown, copy the rendered output with "Copy HTML", and edit the HTML directly.

Wrap your code with triple backticks and add a language name on the opening line:

```javascript
const x = 42;
```

This editor doesn't apply colour syntax highlighting inside code blocks (that would require a large library), but the language label is preserved in the rendered HTML's class attribute, so tools like Prism.js or Highlight.js can pick it up later.

Reading time is estimated at 200 words per minute — the commonly cited average silent reading speed for adults. The minimum displayed is 1 minute. This is a rough estimate and will vary depending on the complexity of your content.

Most Markdown editors either send your text to a server, require a login, or use a heavy library (like marked.js or showdown.js) that adds significant page weight. This tool runs a lightweight custom parser built into a single JS file with no external dependencies beyond Alpine.js for reactivity. It's intentionally simple, fast, and private.

The most common causes are: (1) Missing blank lines — Markdown requires a blank line before block-level elements like lists, headings, and code blocks to separate them from the preceding paragraph. (2) Mixed indentation — use consistent spaces (not tabs) for nested lists. (3) Incomplete table syntax — tables require a header row, a separator row (|---|), and at least one body row. The Tab key in this editor inserts two spaces, which helps with consistent indentation.

Related Tools

View all →

Related Articles

View all →