3tej home
← Utilities

What is Markdown Editor / Preview?

A Markdown Editor / Preview computes markdown editor / preview from the inputs you provide. It applies the standard formula to the values you enter and returns the result instantly, without sending any data to a server. Supports GitHub Flavored Markdown (GFM) including tables, task lists, and code blocks.

Markdown Editor / Preview

GitHub-flavored Markdown. Live preview. Export as HTML.

Markdown

Preview

About this tool

The Markdown Editor provides a split-pane editing experience with live preview. Write in GitHub Flavored Markdown (GFM) and see rendered output instantly. Export to clean HTML.

About Markdown

Markdown is a plain-text formatting syntax created by John Gruber and Aaron Swartz in 2004. The goal was to let writers produce structured HTML without learning HTML: a hash sign for a heading, a single asterisk for italic, two for bold, dashes for a list. Twenty years later Markdown is the default writing format for GitHub README files, technical documentation (MkDocs, Docusaurus, GitBook), static-site generators (Hugo, Jekyll, Next.js MDX), note-taking apps (Obsidian, Bear, Notion exports), and messaging platforms (Discord, Slack, Reddit). The CommonMark specification finalised in 2014 standardised parsing rules so every renderer produces the same HTML.

This editor renders GitHub Flavored Markdown (GFM): the CommonMark core plus tables, task list checkboxes, autolinks, and strikethrough. Everything happens client-side in JavaScript; no text is sent to any server. The split-pane layout lets you see formatting decisions in real time and catch syntax mistakes (a missing closing fence, an unbalanced asterisk) before they propagate into a README or blog post.

How the live preview works

Markdown source  --(parser)-->  AST  --(renderer)-->  HTML

Parser:    CommonMark-compatible tokenizer
           (headings, emphasis, lists, code, links, images,
            tables, task lists, blockquotes)

Renderer:  HTML output with semantic tags
           (h1-h6, ul/ol/li, code/pre, blockquote, table,
            input checkbox for task lists)

Each keystroke triggers re-parse and re-render. Time is < 5 ms
for documents under ~100 KB; the AST is regenerated on every
update so partial-edit caching is unnecessary at this size.
  • Fenced code blocks use triple backticks. Add a language hint (js, python, sql) for syntax-highlight tagging.
  • Tables use pipe separators with a dash-only separator row between header and body.
  • Task lists use - [ ] for unchecked and - [x] for checked items.
  • Inline HTML passes through unchanged. Useful for custom callouts or details/summary collapsibles.

Worked example: writing a README in 30 seconds

You want a README with a title, intro paragraph, install command, and feature checklist.

  1. Type # MyProject and press enter. Preview renders an H1 heading.
  2. Add a paragraph: MyProject is a fast static-site generator.
  3. Add an install fenced block: triple backtick, then npm install myproject, then triple backtick close.
  4. Add a feature checklist: - [x] Fast builds, - [x] Live reload, - [ ] Plugin system.
  5. Export the HTML and commit the .md source. GitHub will render the same output.
Result: A clean README in five lines of Markdown that renders consistently on GitHub, GitLab, NPM, this editor, and any GFM-compliant viewer. No HTML, no inline styles, no CSS framework lock-in.

Markdown syntax cheat sheet

ElementMarkdown sourceRendered HTML
Heading H1 to H6# Title to ###### Sub<h1> to <h6>
Bold**bold**<strong>bold</strong>
Italic*italic*<em>italic</em>
Inline code`code`<code>code</code>
Code block```js ... ```<pre><code>
Link[text](url)<a href="url">text</a>
Image![alt](url)<img src="url" alt="alt">
Unordered list- item<ul><li>
Task list (GFM)- [x] done<input type="checkbox" checked>
Table (GFM)pipe-separated rows<table><tr><td>
Blockquote> quote<blockquote>
Horizontal rule---<hr>

Common pitfalls writing Markdown

  • Missing blank lines. Headings, paragraphs, lists, and code blocks need a blank line above and below. Without it, the parser sticks them to the previous block.
  • Tab vs space indentation. Use 2 or 4 spaces consistently for nested lists. Mixed tabs and spaces produce inconsistent indentation across renderers.
  • Unmatched code fences. A triple-backtick block that never closes consumes the rest of the document. Always pair open with close.
  • Raw HTML inside Markdown. GFM allows pass-through HTML but disallows tags like <script> and <style> for security.
  • Pipe characters inside table cells. Escape them with a backslash (\|) or the table parser will split the cell.
  • Bold inside list items. - **item** works; -**item** (no space) does not parse as a list at all.

Related calculators on 3Tej

Frequently asked questions

What Markdown features does the editor support?

The editor supports GitHub Flavored Markdown (GFM): ATX headings, bold and italic, ordered and unordered lists, nested lists, links, images, fenced code blocks with language hints, tables with column alignment, task lists with checkboxes, blockquotes, horizontal rules, inline HTML pass-through, and strikethrough. CommonMark is the underlying spec; GFM adds the table, task list, and strikethrough extensions.

Can I export Markdown as HTML?

Yes. The preview pane renders to clean HTML which you can copy with your browser's view-source or use the export button to download an .html file. The output uses semantic elements (h1, ul, code, blockquote) and no inline styles, so you can paste into a CMS, email template, or website without dragging in editor-specific styling.

What is the difference between CommonMark and GitHub Flavored Markdown?

CommonMark is the unambiguous Markdown specification finalised in 2014 by John MacFarlane, Jeff Atwood, and others. It defines a single rendering for every input. GitHub Flavored Markdown (GFM) builds on CommonMark and adds tables, task list checkboxes, autolinking, strikethrough with double-tildes, and disallowed raw HTML. Most modern editors (this one, Discord, Reddit, Stack Overflow) use a CommonMark base with selective GFM extensions.

Is my Markdown content private?

Yes. Everything you type is rendered locally by JavaScript in your browser. No text is ever sent to a server, logged, or stored by 3Tej. Closing the tab discards your draft. If you want to persist work, copy it to a local file or paste into your note-taking app of choice.

Why does my Markdown render differently in different tools?

Older renderers (the original Gruber 2004 spec) handled edge cases inconsistently: multiple paragraphs inside a list item, nested code fences, table escaping, and HTML inside Markdown all produced divergent output. CommonMark resolved most ambiguities. If you write to the CommonMark plus GFM subset and avoid raw HTML, the same source renders identically across GitHub, GitLab, this editor, Obsidian, VS Code, and most other GFM-compliant viewers.

Last updated 2026-05-28.

IT
India Tools Editorial
Calculators & explainers maintained by the India Tools team.