Markdown is a lightweight markup language that lets you format text using simple, readable syntax. Created by John Gruber in 2004, it has become the de facto standard for writing on the web. GitHub README files, documentation platforms, static site generators, note-taking apps, forums, and even email clients support Markdown. Once you learn its simple syntax, you can create beautifully formatted documents anywhere without reaching for heavy word processors. This guide covers everything from basic formatting to advanced techniques.
Before diving into syntax, it is worth understanding why Markdown has achieved such widespread adoption:
Readability. Unlike HTML, where tags obscure the content, Markdown is designed to be readable even in its raw, unformatted state. A Markdown document reads naturally as plain text, making it easy to write, review, and edit without rendering.
Portability. Markdown files are plain text (.md or .markdown extension). They open in any text editor on any operating system. No proprietary software lock-in, no compatibility issues, no format corruption. A Markdown file you write today will be perfectly readable in 50 years.
Versatility. Markdown converts to HTML, PDF, Word documents, slides, ebooks, and more. Write once, publish anywhere. Static site generators like Hugo, Jekyll, and Next.js use Markdown as their primary content format.
Speed. Formatting in Markdown is faster than using a mouse to click toolbar buttons. Your hands never leave the keyboard. For writers who produce large volumes of content, this speed advantage compounds into hours saved per week.
Version control friendly. Because Markdown is plain text, it works perfectly with Git. You can track changes, compare versions, merge contributions, and maintain a complete history of your documents -- something that is impossible with binary formats like .docx.
Headings are created with hash symbols. The number of hashes indicates the heading level:
# Heading 1 creates the largest heading
## Heading 2 creates a second-level heading
### Heading 3 creates a third-level heading
You can go up to six levels deep with ######, though most documents rarely need more than three or four levels.
*italic* or _italic_ renders as italic text**bold** or __bold__ renders as bold text***bold italic*** combines both~~strikethrough~~ renders as strikethrough textParagraphs are separated by a blank line. Simply pressing Enter once does not create a new paragraph in most Markdown renderers -- you need a blank line between blocks of text. For a hard line break within a paragraph, end the line with two or more spaces before pressing Enter.
Use -, *, or + followed by a space:
- First item
- Second item
- Nested item
- Another nested item
- Third item
Use numbers followed by a period:
1. First step
2. Second step
3. Third step
The actual numbers do not matter -- Markdown will number them sequentially regardless. You could write 1, 1, 1 and the output would still show 1, 2, 3. However, using correct numbers makes the raw Markdown more readable.
GitHub-Flavored Markdown (GFM) supports checkboxes:
- [x] Completed task
- [ ] Incomplete task
- [ ] Another task
[Link text](https://example.com) creates a clickable hyperlink.
[Link text](https://example.com "Title") adds a hover title.
For documents with many links, reference-style keeps the text clean:
Check out [Vaxtim Yoxdu][1] for free online tools.
[1]: https://vaxtimyoxdu.com "Free Online Tools"
 embeds an image. The alt text is important for accessibility -- screen readers use it to describe the image to visually impaired users.
Wrap code in single backticks: console.log("hello") renders as inline code.
Use triple backticks with an optional language identifier for syntax highlighting:
```javascript
function greet(name) {
return `Hello, ${name}!`;
}
```
Most Markdown renderers support syntax highlighting for dozens of languages including JavaScript, Python, TypeScript, Go, Rust, SQL, CSS, HTML, Bash, and many more.
Markdown tables use pipes and hyphens:
| Feature | Free Plan | Pro Plan |
|---------|-----------|----------|
| Storage | 5 GB | 100 GB |
| Users | 1 | Unlimited |
| Support | Email | Priority |
Align columns using colons in the separator row: :--- for left, :---: for center, ---: for right alignment.
Use > to create blockquotes:
> The best time to plant a tree was twenty years ago.
> The second best time is now.
Blockquotes can contain other Markdown elements including headings, lists, and code blocks.
Three or more hyphens, asterisks, or underscores on a line create a horizontal rule:
---
***
___
Some Markdown processors support footnotes:
Here is a statement that needs a citation[^1].
[^1]: This is the footnote content.
Term
: Definition of the term
The HTML specification is maintained by the W3C.
*[HTML]: HyperText Markup Language
*[W3C]: World Wide Web Consortium
Many Markdown processors support LaTeX math:
Inline: $E = mc^2$
Block: $$\sum_{i=1}^{n} x_i$$
GitHub extends standard Markdown with task lists, tables, strikethrough, autolinked URLs, emoji shortcodes (:rocket: renders as a rocket emoji), and syntax-highlighted code fences. GFM is the most commonly supported Markdown variant.
Tools like Docusaurus, MkDocs, and GitBook use Markdown as their primary format but add features like admonitions (warning/info/tip boxes), tabbed content, and embedded components.
Next.js, Hugo, Jekyll, Gatsby, and Astro all support Markdown for content. They typically extend Markdown with frontmatter (YAML metadata at the top of the file) for titles, dates, tags, and custom properties.
Use a Markdown preview tool. The Markdown Preview on Vaxtim Yoxdu shows your formatted output in real time as you type, making it easy to verify your formatting without switching between editor and browser.
Count your words. For blog posts, articles, and documentation with length requirements, the Word Counter on Vaxtim Yoxdu tracks words, characters, sentences, and paragraphs as you write.
Generate URL-friendly slugs. When titling Markdown files for a blog or documentation site, the Slug Generator creates clean, SEO-friendly URLs from your titles.
Compare versions. When reviewing changes to Markdown documents, the Text Diff tool highlights exactly what changed between two versions, line by line.
Write in a distraction-free editor. Use a minimal text editor or a dedicated Markdown editor. Avoid the temptation to fuss with formatting -- Markdown's simplicity is its strength.
Establish conventions early. For team projects, decide on formatting conventions upfront: heading levels for different content types, code block languages, list styles, and image alt text standards.
Markdown is one of those rare technologies that is genuinely simple to learn and immediately useful. In 15 minutes, you can master the basics. In an hour, you can handle advanced formatting. And from that point on, you have a portable, version-controllable, future-proof writing format that works everywhere. Start practicing with the Markdown Preview tool on Vaxtim Yoxdu and experience the elegance of writing without the friction of formatting toolbars.
Subscribe to get notified about new blog posts and useful tools.