I write every post on this blog in Markdown. It’s simple, clean, and lets me focus on writing without fussing over formatting buttons or HTML tags.
If you’ve never used Markdown before, it might look weird at first - you’re literally typing asterisks and hash marks into a text file. But after about 10 minutes, it becomes second nature. And once you get it, you’ll find yourself wishing every text box supported Markdown.
What is Markdown?
Markdown is a way to write formatted text using plain text. Instead of clicking “Bold” or selecting “Heading 1” from a dropdown, you just type **bold** or # Heading 1. When your Markdown file gets processed (by Hugo, Jekyll, GitHub, etc.), it converts these markers into proper HTML.
The beauty? You can write Markdown in any text editor - VS Code, Sublime, even Notepad. No special software needed.
Basic Formatting
Headings
Use hash marks for headings. More hashes = smaller heading.
| |
Emphasis
Bold text with double asterisks or underscores:
| |
Italic text with single asterisks or underscores:
| |
Bold and italic together:
| |
Lists
Unordered lists with dashes, asterisks, or plus signs:
| |
Ordered lists with numbers:
| |
Nested lists? Just indent:
| |
Links and Images
Links use brackets and parentheses:
| |
Images are just like links with an exclamation mark in front:
| |
Code
Inline code uses backticks:
| |
Code blocks use triple backticks with optional language:
| |
Blockquotes
Use the greater-than symbol:
| |
Horizontal Rules
Three or more dashes, asterisks, or underscores:
| |
Tables
Tables use pipes and dashes:
| |
Which renders as:
| Column 1 | Column 2 | Column 3 |
|---|---|---|
| Data 1 | Data 2 | Data 3 |
| Data 4 | Data 5 | Data 6 |
Align columns with colons:
| |
What I Actually Use
I don’t use all of Markdown’s features in every post. Here’s what I use most:
- Headings - Structure every article with
##and### - Bold and italic - Emphasis where it matters
- Code blocks - Command examples and code snippets
- Lists - Breaking down steps or options
- Links - Connecting to related articles or references
I rarely use blockquotes or tables unless the content really calls for it.
Hugo-Specific Features
Since this blog runs on Hugo, I also use:
Front Matter
Every post starts with YAML front matter:
| |
Mermaid Diagrams
For diagrams, I use Mermaid with standard markdown code blocks. This is a feature I added to the blog more recently - you can create flowcharts, sequence diagrams, and more right in your Markdown files.
| |
Which renders as:
I wrote a whole post about using Mermaid diagrams in Hugo if you want to see more examples and learn how to add it to your own Hugo site.
Tips for Writing
Use a Markdown-aware editor - VS Code, Typora, or iA Writer all have live preview. You can see formatting as you type.
Keep it simple - Don’t overthink formatting. Focus on writing. Add formatting after.
Preview before publishing - Run hugo server -D locally to see how your post looks before publishing.
Learn as you go - Start with headings, bold, and code blocks. Add more formatting techniques as you need them.
Common Mistakes
Extra spaces in lists - Markdown is picky about indentation. Use consistent spacing.
Forgetting the blank line - Always put a blank line before and after code blocks, lists, and headings. Makes Markdown parsers happy.
Not escaping special characters - If you need a literal asterisk or underscore, escape it with a backslash: \* or \_.
That’s It
Markdown isn’t complicated. It’s just a few symbols that make sense once you use them a few times. Write a couple of posts and you’ll have it down.
The reason I like Markdown is that my content is just text files. No proprietary formats, no databases, no vendor lock-in. Just .md files I can open in any editor, now or 10 years from now.
That’s powerful.