I only just recently noticed that my blog post links weren't generating nice "cards" in Mastodon. I'd set up my Hugo blog to generate Twitter card metadata years ago, and I thought Mastodon pulled that same data, but either it never did and I missed it, or things have changed. It's easy to fix, you just need to include this line in your theme inside the <head> section:
`{{ template "_internal/opengraph.html" . }}`