📝

Markdown Editor

Write and preview Markdown with live rendering

Text Tools
Loading tool...

How to Use Markdown Editor

What is Markdown?

Markdown is a lightweight markup language that uses plain text formatting syntax to create rich text documents. Created by John Gruber in 2004, Markdown is now the standard for writing documentation, README files, blog posts, and notes.

Why use Markdown?

  • Simple: Easy to learn, read, and write
  • Portable: Plain text works everywhere
  • Powerful: Create headings, lists, links, code blocks, tables, and more
  • Universal: Supported by GitHub, Reddit, Stack Overflow, Notion, Obsidian, and thousands of apps
  • Future-proof: Plain text files never go out of style

Common uses:

  • Documentation: README files, technical docs, API guides
  • Blogging: Write blog posts in Markdown, publish to WordPress, Medium, Ghost
  • Note-taking: Obsidian, Notion, Bear, Joplin all use Markdown
  • Communication: GitHub issues, Reddit posts, Slack messages
  • Books & articles: Draft manuscripts, essays, academic papers

What is a Markdown Editor?

A Markdown editor is a tool that helps you write Markdown with live preview and formatting helpers. This tool provides:

  • Two-pane interface: Write Markdown on the left, see live preview on the right
  • Toolbar helpers: Quick buttons for bold, italic, headings, lists, and code blocks
  • Live rendering: Preview updates as you type
  • Word & line count: Track document length
  • Sample content: Load demo Markdown to learn syntax
  • Copy to clipboard: Export formatted Markdown

How to Use This Markdown Editor

Step 1: Start Writing or Load Sample

Option A: Start from Scratch

Click into the left pane (editor) and start typing Markdown syntax.

Example:

# My First Markdown Document

This is a paragraph with **bold** and *italic* text.

Option B: Load Sample Content

Click the "Sample" button in the top-right to load a demo Markdown document with:

  • Headings
  • Lists
  • Bold and italic text
  • Code blocks
  • Blockquotes
  • Tables

Use case: Learn Markdown syntax by exploring the sample, then edit it to create your own document.


Step 2: Use the Toolbar for Formatting

The toolbar provides quick formatting helpers that insert or wrap Markdown syntax at your cursor position.

Bold

  • Button: Click "Bold" in toolbar
  • What it does: Wraps selected text in **double asterisks**
  • If no selection: Inserts **bold text**
  • Keyboard alternative: Manually type **your text**

Example:

  • Before: This is important
  • Select "important" → Click Bold
  • After: This is **important**

Italic

  • Button: Click "Italic" in toolbar
  • What it does: Wraps selected text in *single asterisks*
  • If no selection: Inserts *italic text*
  • Keyboard alternative: Manually type *your text* or _your text_

Example:

  • Before: This is emphasized
  • Select "emphasized" → Click Italic
  • After: This is *emphasized*

Heading

  • Button: Click "Heading" in toolbar
  • What it does: Prefixes selected line(s) with #
  • If no selection: Inserts # Heading
  • Markdown levels: # (h1), ## (h2), ### (h3), #### (h4), ##### (h5), ###### (h6)

Example:

  • Before: Introduction
  • Select "Introduction" → Click Heading
  • After: # Introduction

Tip: Manually add more # symbols for smaller headings (e.g., ## Subheading, ### Sub-subheading).


List

  • Button: Click "List" in toolbar
  • What it does: Prefixes selected line(s) with - (unordered list)
  • If no selection: Inserts - List item
  • Ordered lists: Manually type 1. Item, 2. Item, etc.

Example:

  • Before:
    Apples
    Oranges
    Bananas
    
  • Select all → Click List
  • After:
    - Apples
    - Oranges
    - Bananas
    

Code

  • Button: Click "Code" in toolbar
  • What it does:
    • Single line: Wraps in backticks: `code`
    • Multiple lines: Wraps in fenced code block:
      ```
      code
      ```
      
  • If no selection: Inserts `code block`

Example (inline code):

  • Before: The function getName returns a string
  • Select "getName" → Click Code
  • After: The function `getName` returns a string

Example (code block):

  • Before:
    function hello() {
      return "Hi";
    }
    
  • Select all → Click Code
  • After:
    ```
    function hello() {
      return "Hi";
    }
    ```
    

Tip: Add language identifier for syntax highlighting: ```javascript


Step 3: View Live Preview

The right pane shows a live-rendered preview of your Markdown.

What you see:

  • Headings styled with hierarchy (h1 largest, h6 smallest)
  • Bold and italic text formatted
  • Lists rendered as bullet points or numbered items
  • Code blocks with monospace font and background
  • Blockquotes with left border and indentation
  • Tables with borders and alignment

Preview updates:

  • Instantly: As you type, the preview refreshes automatically
  • No reload needed: Changes appear in real-time

Use case: Write on the left, verify formatting on the right, iterate until perfect.


Step 4: Track Word & Line Count

The toolbar displays real-time statistics:

  • Words: Total word count (useful for blog posts, essays, meeting length targets)
  • Lines: Number of lines in the editor

Example:

  • Editor content:
    # Hello World
    
    This is a test.
    
  • Stats: 4 words · 3 lines

Use case: Track progress toward word count goals (e.g., 500-word blog post, 1,000-word article).


Step 5: Copy Markdown to Clipboard

Click "Copy Markdown" in the top-right of the preview pane to copy the raw Markdown text to your clipboard.

When to use:

  • Export to other apps: Paste into Notion, Obsidian, GitHub, etc.
  • Save locally: Paste into a .md file in your text editor
  • Share with others: Send Markdown via email or Slack

Confirmation: After clicking, you''ll see "Markdown copied to clipboard" below the preview.

Note: This copies the raw Markdown (not HTML). To convert Markdown to HTML, use a separate converter tool.


Step 6: Clear or Reset

Click "Clear" to erase all content and start fresh.

What it does:

  • Empties the editor
  • Clears the preview
  • Resets word/line count to 0 words · 0 lines

Use case: Start a new document without reloading the page.


Markdown Syntax Quick Reference

Headings

# Heading 1 (largest)
## Heading 2
### Heading 3
#### Heading 4
##### Heading 5
###### Heading 6 (smallest)

Rendered:

Heading 1

Heading 2

Heading 3

Tip: Use # for document titles, ## for sections, ### for subsections.


Bold and Italic

**Bold text**
*Italic text*
***Bold and italic***

Rendered:

  • Bold text
  • Italic text
  • Bold and italic

Alternative syntax:

  • Bold: __double underscores__
  • Italic: _single underscores_

Lists

Unordered Lists

- Item 1
- Item 2
  - Nested item 2.1
  - Nested item 2.2
- Item 3

Rendered:

  • Item 1
  • Item 2
    • Nested item 2.1
    • Nested item 2.2
  • Item 3

Ordered Lists

1. First item
2. Second item
3. Third item
   1. Nested item 3.1
   2. Nested item 3.2

Rendered:

  1. First item
  2. Second item
  3. Third item
    1. Nested item 3.1
    2. Nested item 3.2

Tip: Numbers auto-increment in most Markdown renderers, so you can use 1. for all items.


Links and Images

Links

[Link text](https://example.com)
[Link with title](https://example.com "Hover text")

Rendered: Link text

Images

![Alt text](https://example.com/image.jpg)
![Alt text](https://example.com/image.jpg "Image title")

Rendered: (Image would appear here)


Code

Inline Code

Use the `console.log()` function to print output.

Rendered: Use the console.log() function to print output.

Code Blocks

```javascript
function greet(name) {
  return `Hello, ${name}!`;
}
```

Rendered:

function greet(name) {
  return `Hello, ${name}!`;
}

Tip: Specify language (javascript, python, bash, etc.) for syntax highlighting in most renderers.


Blockquotes

> "Good design is as little design as possible."
> — Dieter Rams

Rendered:

"Good design is as little design as possible." — Dieter Rams

Nested blockquotes:

> Level 1
>> Level 2
>>> Level 3

Horizontal Rules

---
***
___

Rendered:


Use case: Separate sections in long documents.


Tables

| Header 1 | Header 2 | Header 3 |
|----------|----------|----------|
| Row 1    | Data     | Content  |
| Row 2    | Data     | Content  |

Rendered:

Header 1Header 2Header 3
Row 1DataContent
Row 2DataContent

Alignment:

| Left | Center | Right |
|:-----|:------:|------:|
| A    | B      | C     |
  • :--- = left-aligned
  • :---: = center-aligned
  • ---: = right-aligned

Task Lists (GitHub Flavored Markdown)

- [x] Completed task
- [ ] Incomplete task
- [ ] Another task

Rendered (in GitHub, Obsidian, etc.):

  • Completed task
  • Incomplete task
  • Another task

Note: Not all Markdown renderers support task lists. Check your target platform.


Common Use Cases

Case 1: Writing a README for GitHub

Goal: Create a professional README.md for your GitHub repository.

Steps:

  1. Click "Sample" to see Markdown examples

  2. Clear the editor

  3. Structure your README:

    # Project Name
    
    Short description of what your project does.
    
    ## Installation
    
    ```bash
    npm install project-name
    

    Usage

    import { feature } from "project-name";
    

    Contributing

    Pull requests are welcome!

    License

    MIT

  4. Click "Copy Markdown"

  5. Create README.md in your repo and paste

Result: Professional, well-formatted README visible on GitHub.


Case 2: Drafting a Blog Post

Goal: Write a blog post in Markdown, then export to WordPress or Medium.

Steps:

  1. Write your post using headings, lists, and bold/italic for emphasis
  2. Use the word count to track progress (e.g., aim for 800 words)
  3. Preview formatting in the right pane
  4. Copy Markdown and paste into your blogging platform

Example structure:

# How to Build a Todo App

Building a todo app is a great way to learn web development. Here''s how to get started.

## Step 1: Set Up Your Project

Install dependencies:
- React
- TypeScript
- Tailwind CSS

## Step 2: Create Components

...

Result: Polished blog post ready for publishing.


Case 3: Taking Meeting Notes

Goal: Document meeting discussions with action items.

Steps:

  1. Use headings for meeting title and sections:
    # Team Standup — 2025-01-15
    
    ## Attendees
    - Alice, Bob, Charlie
    
    ## Discussion
    - Reviewed sprint progress
    - Identified blockers
    
    ## Action Items
    - [ ] Alice: Fix login bug
    - [ ] Bob: Review PR #123
    - [ ] Charlie: Update docs
    
  2. Copy Markdown and save to Notion, Obsidian, or a .md file

Result: Organized, actionable meeting notes.


Case 4: Creating Documentation

Goal: Write API documentation or user guides.

Steps:

  1. Use headings for sections and subsections
  2. Use code blocks for examples:
    ## API Reference
    
    ### `getUserById(id: string)`
    
    Fetches user by ID.
    
    **Example**:
    ```typescript
    const user = await getUserById("12345");
    console.log(user.name);
    ```
    
    **Returns**: `User` object
    
  3. Preview to ensure formatting is clear
  4. Copy and paste into your documentation platform

Result: Clear, professional documentation.


Case 5: Writing Academic Papers (Draft)

Goal: Draft an essay or research paper outline.

Steps:

  1. Use headings for sections:
    # The Impact of AI on Education
    
    ## Abstract
    ...
    
    ## Introduction
    ...
    
    ## Literature Review
    ...
    
    ## Methodology
    ...
    
    ## Conclusion
    ...
    
    ## References
    - Author, A. (2024). *Title*. Publisher.
    
  2. Use blockquotes for citations
  3. Track word count to meet assignment requirements

Result: Well-structured academic draft ready for further editing.


Best Practices

Do''s

  • Use headings hierarchically: Start with #, then ##, ### — don''t skip levels
  • Leave blank lines: Add blank lines between paragraphs, headings, and lists for readability
  • Use code blocks for code: Wrap code in backticks or fenced blocks, not inline text
  • Preview before copying: Check the right pane to verify formatting
  • Use task lists for todos: - [ ] Task creates checkboxes in GitHub, Obsidian
  • Keep it simple: Markdown is meant to be readable as plain text

Don''ts

  • Don''t mix HTML and Markdown unnecessarily: Markdown is cleaner and more portable
  • Don''t nest too deeply: More than 3 levels of lists or headings becomes hard to read
  • Don''t forget alt text for images: Always use ![Alt text](url) for accessibility
  • Don''t use Markdown for complex layouts: Use HTML or a document editor instead
  • Don''t rely on custom syntax: Stick to standard Markdown for maximum compatibility

Keyboard Shortcuts (Manual)

This tool doesn''t have built-in keyboard shortcuts, but you can manually type Markdown syntax:

SyntaxShortcut (manual typing)
BoldType **text**
ItalicType *text*
HeadingType # Text
ListType - Item or 1. Item
LinkType [text](url)
CodeType `code` or ```code```
BlockquoteType > Quote
Horizontal ruleType ---

Tip: Most Markdown editors (VS Code, Obsidian, Typora) support keyboard shortcuts like Ctrl+B for bold. This web tool uses toolbar buttons for simplicity.


Exporting and Compatibility

Where to Use Your Markdown

Direct paste (Markdown supported):

  • GitHub: README.md, issues, pull requests, discussions
  • Reddit: Posts and comments
  • Stack Overflow: Questions and answers
  • Discord / Slack: Messages (limited support)
  • Notion: Import or paste Markdown blocks
  • Obsidian / Joplin / Bear: Native Markdown note-taking apps

Convert to HTML (for blogs, emails):

  • Use a Markdown-to-HTML converter (many available online)
  • Paste HTML into WordPress, Medium, email newsletters

Save as file:

  • Copy Markdown → Paste into text editor → Save as .md file
  • Open in VS Code, Sublime Text, or any Markdown editor

Markdown Flavors

Different platforms use slightly different Markdown syntax:

FlavorPlatformsUnique Features
CommonMarkStandard specPure Markdown, no extensions
GitHub Flavored Markdown (GFM)GitHub, GitLabTask lists, tables, strikethrough
Markdown ExtraPHP-basedFootnotes, definition lists
MultiMarkdownAcademic writingCitations, cross-references

This tool uses standard Markdown rendering. Most syntax works across all flavors, but test platform-specific features (e.g., task lists) in your target environment.


Troubleshooting

Preview Doesn''t Match Expected Output

Cause: You may be using syntax specific to GitHub or another Markdown flavor.

Solution:

  • Stick to standard Markdown (headings, lists, bold, italic, links, code)
  • Test platform-specific syntax (task lists, tables) in the actual target platform
  • Check for typos (e.g., missing closing ** for bold)

Toolbar Buttons Don''t Work

Cause: JavaScript error or browser compatibility issue.

Solution:

  • Refresh the page
  • Try a different browser (Chrome, Firefox, Safari, Edge all supported)
  • Manually type Markdown syntax instead of using toolbar

Copy Button Doesn''t Copy

Cause: Clipboard API blocked by browser settings.

Solution:

  • Manually select all text in the editor (Ctrl+A or Cmd+A)
  • Copy with Ctrl+C or Cmd+C
  • Grant clipboard permissions in your browser settings

Formatting Looks Wrong in Preview

Cause: Markdown syntax error (e.g., unclosed bold, missing blank lines).

Solution:

  • Check for matching pairs: **bold**, *italic*, `code`
  • Add blank lines between paragraphs, headings, and lists
  • Refer to syntax examples in this guide

Privacy and Security

Browser-Based Rendering

This Markdown editor runs 100% in your browser:

  • ✅ No data sent to servers
  • ✅ No tracking or analytics on your content
  • ✅ No cookies or storage
  • ✅ Works offline (once page loads)

Your documents are private. All editing and rendering happens locally using JavaScript.


No Auto-Save

Important: This tool does not auto-save your work.

Recommendations:

  • Copy Markdown frequently and save to a local file
  • Use Ctrl+S to save the page (some browsers allow this)
  • For longer documents, use a dedicated Markdown editor with auto-save (Obsidian, Typora, VS Code)

Advanced Tips

Combining Markdown with HTML

You can mix Markdown and HTML for advanced formatting:

# My Heading

<div style="color: red;">
This text is red.
</div>

Regular **Markdown** still works.

Note: Not all Markdown renderers support HTML. GitHub allows limited HTML; Obsidian and others may strip it.


Using Markdown for Presentations

Tools like Marp and reveal.js let you create slides from Markdown:

---
# Slide 1

Content here

---

# Slide 2

More content

Use case: Create presentations in plain text, export to PDF or HTML.


Markdown for Ebooks

Convert Markdown to ePub or PDF using tools like Pandoc:

pandoc book.md -o book.epub
pandoc book.md -o book.pdf

Use case: Write novels, technical books, or guides in Markdown, publish in multiple formats.


External Resources

Frequently Asked Questions

Related Utility Tools

Share Your Feedback

Help us improve this tool by sharing your experience

We will only use this to follow up on your feedback