Markdown Notepad

Write and preview markdown with live rendering and local storage. Free, no registration, and your files never leave your device — all processing happens locally in your browser.

The Complete Guide to Markdown: Syntax, Uses, and Best Practices

Markdown is one of the most successful and widely adopted text formatting systems ever created. Invented by John Gruber in 2004, its original purpose was simple: allow web writers to format text using readable, intuitive symbols that would automatically convert to HTML. Two decades later, Markdown is the standard language for GitHub documentation, Reddit posts, Stack Overflow answers, Notion pages, Slack formatting, Discord messages, technical documentation, and countless blogging platforms. Learning Markdown is a one-time investment that pays returns across virtually every digital writing environment.

Why Markdown Became the Standard

Before Markdown, web writers faced an uncomfortable choice: use a WYSIWYG (What You See Is What You Get) editor that was slow, browser-dependent, and produced bloated HTML; or write raw HTML directly, which required extensive knowledge and produced cluttered, unreadable source text. Markdown solved both problems elegantly. A Markdown document reads as clean, natural plain text. The formatting symbols — asterisks for bold, hashes for headings, hyphens for lists — are intuitively associated with their visual meaning even before rendering.

The philosophical insight behind Markdown's design was that readable formatting symbols should look like what they mean. Using **asterisks around text** to make it bold makes the word visually pop out from surrounding text even in the raw, unrendered version. A line starting with # followed by a space reads naturally as a major heading. A list of items preceded by - or * looks like a list even in plain text. This readability meant that Markdown documents were useful even without a renderer.

Markdown's success also stems from its portability. A .md file is just a text file — it can be opened, read, and edited by any text editor on any operating system. It can be version-controlled with Git, diffed and merged, and stored in any file system. Compare this to Word documents, which are proprietary binary formats that require Microsoft Office to properly render and can produce messy diffs in version control.

Core Syntax: The 90% You Will Use Every Day

Headings are created with hash symbols: # creates an H1 (the largest), ## creates H2, ### creates H3, and so on down to H6. Heading levels create document structure — use them sequentially (don't skip from H1 to H4) and use only one H1 per document, as screen readers and search engines treat H1 as the page's primary title.

Bold and italic emphasis use asterisks or underscores. Single asterisks or underscores create italic (*italic* or _italic_). Double asterisks or underscores create bold (**bold** or __bold__). Triple creates bold italic (***bold italic***). The asterisk and underscore versions are interchangeable, but consistency within a document is recommended.

Links use square brackets for the display text and parentheses for the URL: [Toolzaply](https://toolzaply.com). Images use the same syntax with an exclamation mark prefix: ![Alt text](image-url.jpg). The alt text in square brackets is used by screen readers and search engines — never leave it empty.

Code is formatted with backtick characters. Inline code uses single backticks: `variable_name`. Code blocks use triple backticks, and you can specify the language for syntax highlighting: ```python followed by your code followed by ```. This syntax is supported by GitHub, GitLab, and most modern Markdown renderers and enables automatic syntax highlighting.

Extended Markdown: Tables, Task Lists, and Footnotes

GitHub Flavored Markdown (GFM) extended the original Markdown specification with several widely adopted features. Tables use pipes and hyphens: a row of headers separated by pipes, followed by a row of hyphens indicating the column widths, followed by data rows. Alignment can be specified in the separator row using colons (left :--- center :---: right ---:).

Task lists are GFM's take on to-do lists, rendered as interactive checkboxes in GitHub and many other platforms: - [ ] for an unchecked item, - [x] for a checked item. These are extremely useful in GitHub issue comments and pull request descriptions for tracking work items without leaving the Markdown format.

Footnotes (supported in many but not all Markdown parsers) use [^1] inline references and [^1]: The footnote text at the bottom of the document. This is useful for academic writing and documentation where you want to provide additional context without interrupting the main text flow.

Pro Tips

  • Use a live preview editor (like the one built into Toolzaply) while writing Markdown so you can see formatting errors immediately rather than discovering them after publishing.
  • Keep line lengths at 80 characters or fewer in raw Markdown for better readability in code editors and version control diffs.
  • Add blank lines before and after headings, code blocks, and block quotes — many parsers require this for correct rendering.
  • For GitHub READMEs, start with a brief, compelling description of the project before any headings — this text appears in search results and repository previews.
  • Use reference-style links ([text][ref-name] with [ref-name]: url defined at the bottom) when a URL appears multiple times in a document — it makes the source text cleaner and easier to update.

Common Mistakes to Avoid

  • Inconsistent heading hierarchy: jumping from H1 directly to H4 confuses screen readers, breaks automatic table-of-contents generators, and is flagged as an accessibility violation.
  • Forgetting blank lines before lists: without a blank line before a list, some parsers treat list items as part of the preceding paragraph rather than a separate list.
  • Leaving image alt text empty: [image](url.jpg) with no alt text in brackets makes your content inaccessible to screen readers and degrades SEO.
  • Assuming all Markdown parsers support the same features: footnotes, tables, task lists, and definition lists are extensions not present in the original specification — verify your target platform supports them.

Related Tools