Right, let’s talk about the fun stuff—the little syntactic sugar cubes that Hugo’s default Markdown engine, Goldmark, lets you drop into your content to make it less of a plain-text snoozefest. We’re talking tables, checkboxes, redacted thoughts, and the academic’s favorite: footnotes. These aren’t part of core CommonMark, so thank the Hugo and Goldmark teams for not leaving us in the 2014-era of Markdown.

Tables: Where Alignment Goes to Die

Let’s be honest: writing tables in Markdown is a bit like assembling IKEA furniture with vague pictograms. It’s functional, but you’ll never feel good about it. The syntax is downright silly, relying on colons and dashes to define alignment.

| Language       | Hype Level | Is It Just JavaScript? | Recommended |
| :------------- | :--------: | ---------------------: | :---------: |
| Go             | High       |                     No | Yes         |
| Rust           | Very High  |                     No | Yes         |
| TypeScript     | Peak       |                  Sadly | Sometimes   |
| COBOL          | Ancient    |                     No | Please No   |

The second row, the one with all the dashes, is the header separator. The colons on that line are what control alignment:

  • :--- or :------ for left-aligned. (The left side has a colon).
  • :--: or :----: for center-aligned. (It’s got colons on both sides, just like a proper sentence).
  • ---: or ------: for right-aligned. (You get the idea by now).

The biggest pitfall? The pipes at the ends of each row are technically optional, but always use them. Your text editor’s preview might handle the omission, but Hugo’s build process might not. It’s a classic “works on my machine” trap. Also, if you need a pipe character inside a cell, you need to escape it like \| or the parser will have an existential crisis, thinking it’s a new column.

Task Lists: The Illusion of Productivity

Nothing makes you feel more organized than a list of checkboxes you can’t actually check in your rendered HTML. Oh wait, you can. They’re interactive. It’s the little things.

- [x] Write a brilliant blog post about Goldmark
- [ ] Actually write the post
- [ ] Panic about the typo in the published post
- [ ] Fix the typo and act like it never happened

The syntax is stupidly simple: a regular unordered list item that starts with [ ] for incomplete or [x] for complete. The x is case-insensitive, because the designers weren’t complete monsters.

The main gotcha is that this must be an unordered list (- or *). Ordered task lists (1. [ ] Nope) are a bridge too far for Goldmark. It’s a trade-off I’m willing to accept for the sheer joy of publicly ticking off “Procrastinate on important project.”

Strikethrough: For Your Past Mistakes

Sometimes you need to publicly recant your previous opinions. ~~Like this~~. The syntax is two tilde characters (~~) wrapping the text you’d like to pretend you never wrote.

My favorite framework is ~~AngularJS~~ ~~Ember~~ ~~Svelte~~ Solid.js, probably.

It’s straightforward, hard to mess up, and universally understood. Use it for gentle sarcasm or documenting the inevitable churn of tech trends. There’s no hidden depth here, just a handy tool for editorializing.

Footnotes: The Academic’s Aside

Footnotes are where Markdown starts to feel a bit like a proper typesetting system. The syntax is clever but feels a bit backwards until you’ve done it twice.

Here’s the deal: you place a marker in your text[^1] and then later, usually at the bottom of your document, you define what that marker means.

Hugo's build speed is famously fast[^1], which is a relief because who has time to wait?

[^1]: This is mostly true, unless you're using a truly astronomical number of shortcodes, in which case all bets are off.

The beauty is in the output: Goldmark will automatically number them correctly and generate the proper HTML links, even if you use descriptive labels instead of numbers[^buildnote]. The rendered output will still be sequentially numbered. It’s magic.

Now, the critical best practice: put your footnote definitions at the very bottom of your .md file. If you leave them floating in the middle of a paragraph, Goldmark will happily place the entire footnote text right there in the middle of your sentence during rendering, completely bricking your layout. I’ve done it. It’s not pretty. Just train yourself to write the footnote marker and then immediately jump to the bottom of the file to define it. Your future self, and your readers, will thank you.

Together, these features let you write content that’s more than just a wall of words. They’re the difference between a rough draft and a polished, professional piece. Use them wisely. Or at least, use them.