📝Developer
Markdown: Everything You Need and Nothing You Don't
The complete practical Markdown reference. Standard syntax, GitHub-flavored extensions, and the patterns that make documentation actually readable.
6 min readFebruary 12, 2026By FreeToolKit TeamFree to read
Markdown is one of those things you learn by writing it, then forget the less-common syntax and re-look it up every time. This is the reference you actually need.
The Core Syntax
- # Headings — use 1-6 # signs for h1-h6. Space after # is required.
- **bold** and *italic* — double asterisks for bold, single for italic. _also works_ for italic.
- - Unordered lists — use -, +, or * as bullets. Indent 2-4 spaces for nested lists.
- 1. Ordered lists — numbers followed by period. Numbers don't need to be sequential (1. 1. 1. renders correctly).
- [link text](url) — links. [text](url 'Optional title') adds a tooltip.
-  — images. Alt text is required for accessibility.
- `inline code` — backticks for inline code. Preserves whitespace and disables Markdown inside.
- --- — horizontal rule. Three or more hyphens, asterisks, or underscores.
- > blockquote — prefix lines with > for blockquotes. Nestable with >>.
Code Blocks
Fenced code blocks use triple backticks with optional language for syntax highlighting:
Example
```javascript const greeting = 'hello'; console.log(greeting); ```
Indented code (4 spaces) also works but is harder to read and doesn't support language syntax highlighting. Always use fenced blocks.
GitHub Flavored Markdown Additions
- Tables: | Col1 | Col2 | / | --- | --- | / | Data | Data |
- Task lists: - [ ] unchecked, - [x] checked. Renders as checkboxes on GitHub.
- Strikethrough: ~~text~~ renders as text with a strikethrough line.
- Autolinks: bare URLs and @mentions auto-link on GitHub.
- Footnotes: text[^1] with [^1]: footnote definition at the bottom.
Documentation Patterns Worth Using
- Start README files with a description, then installation, then quick start example, then full documentation link. The person cloning your repo needs these in order.
- Use admonitions (callout boxes) for warnings: '> **Warning** Be careful of...' Most doc platforms support custom callout styles.
- Code examples should be complete and runnable, not snippets that require context to understand.
- Link to other docs rather than duplicating. A link to the official docs for a dependency is better than a paraphrased version that will become outdated.
Frequently Asked Questions
What is Markdown and why do developers use it?+
Markdown is a lightweight markup language — you write plain text with simple symbols that render as formatted HTML. Created by John Gruber in 2004, it's now the de facto standard for developer documentation, README files, GitHub comments, technical blogs, and wikis. Developers use it because it's version-control-friendly (plain text diffs cleanly in git), readable without rendering (unlike raw HTML), fast to write (no opening/closing tags), and universally supported in development tooling.
What's the difference between Markdown and MDX?+
MDX is Markdown extended with JSX component support. In standard Markdown, you write text with Markdown syntax and it renders to HTML. In MDX (used by Next.js, Docusaurus, and other React-based documentation systems), you can also import and use React components inside your Markdown files. A documentation page can include a live interactive code playground, a custom callout component, or a data visualization alongside regular Markdown content. MDX is for when you need Markdown that does more than display text.
How do I create a table in Markdown?+
Tables use pipe characters | to separate columns and dashes --- for the header separator row. Alignment is controlled by colons in the separator: --- (left, default), :---: (center), ---: (right). GitHub Flavored Markdown (GFM) supports tables; standard Markdown doesn't. Most Markdown renderers that developers use (GitHub, GitLab, Notion, documentation sites) support GFM tables.
Can I use HTML inside Markdown?+
In most implementations, yes — Markdown parsers pass through raw HTML. This is useful for things Markdown doesn't support natively: image sizing (<img width='200' src='..'>), custom classes, subscript (<sub>), superscript (<sup>), or specific alignment. The trade-off: raw HTML reduces portability and readability. Use Markdown syntax first; fall back to HTML only when Markdown can't express what you need.
🔧 Free Tools Used in This Guide
FT
FreeToolKit Team
FreeToolKit Team
We build free browser-based tools and write practical guides without the fluff.
Tags:
markdowndeveloperdocumentationwriting