letsblaze

Configuration

On this page

All letsblaze configuration lives in hugo.toml. Below is a complete reference for every supported parameter.

Top-level settings

KeyRecommended valueNotes
languageCodeen-USUse BCP 47 format with uppercase region subtag
enableEmojitrueEnables :shortcode: emoji syntax in content
enableGitInfotrueSets lastmod in sitemap from git commit dates
disableHugoGeneratorInjectfalseletsblaze keeps the Hugo generator tag intentionally

Pagination

[pagination]
  pagerSize = 10

Taxonomies

[taxonomies]
  tag = "tags"

letsblaze ships layouts for tags only. Listing just tags stops Hugo generating the default categories pages and feed that nothing links to.

Front matter

[frontmatter]
  date = [":filename", ":default"]

A blog post named YYYY-MM-DD-my-post.md takes its date from the filename and its slug from the rest, so make new_post NAME=2026-09-17-my-post publishes at /blog/my-post/ with a clean title. A file without the prefix falls back to the date in its front matter.

Markup

[markup.goldmark.parser]
  wrapStandAloneImageWithinParagraph = false  # lets a standalone image render as a <figure>

[markup.goldmark.renderer]
  unsafe = true  # required for shortcodes like <kbd>, <del>, <mark>

[markup.highlight]
  noClasses = true   # required, letsblaze has no external CSS
  style = "monochrome"

Images (optional)

In the default embed mode a standalone image renders as a <figure>, with its title as the <figcaption>. Goldmark wraps a standalone image in a paragraph unless told otherwise, and a <figure> inside a <p> is invalid HTML, so the render hook only emits one when your site sets wrapStandAloneImageWithinParagraph = false above. Hugo does not merge a theme’s markup configuration, so this has to live in your own hugo.toml. Without it every image renders as a bare <img> inside its paragraph and the title becomes a title attribute. See the Images reference for the three imageMode values.

Math (optional)

To render LaTeX math, enable Goldmark’s passthrough extension so the theme’s render hook can turn it into MathML at build time. This is opt-in because Hugo does not merge a theme’s markup configuration, so it must live in your site’s hugo.toml:

[markup.goldmark.extensions.passthrough]
  enable = true
  [markup.goldmark.extensions.passthrough.delimiters]
    block  = [['$$', '$$'], ['\[', '\]']]
    inline = [['\(', '\)']]

With this in place, $$...$$ and \[...\] render as display math and \(...\) as inline math. No JavaScript or external stylesheet is added: the browser renders the MathML natively. See the Math reference for examples. Single $ is intentionally left out of the delimiters so prices and shell variables in prose are never misparsed.

Theme params

[params]
  author = "Your Name"
  copyright = "Your Name"          # falls back to site title if not set
  description = "Site description" # used in meta tags and homepage
  dateFormat = "2006-01-02"        # Go reference time format
  homepagePostCount = 5            # recent posts shown on homepage
  showThemeCredit = true           # set false to hide "Theme: letsblaze" in footer
  imageMode = "embed"              # embed | link-same-tab | link-new-tab
  # ogImage = "/og-image.png"      # path to default OG image in static/

Navigation items are defined in hugo.toml:

[[menus.main]]
  name = "Blog"
  url = "/blog/"
  weight = 1

Add as many items as needed. weight controls order, with lower numbers appearing first.

Logo (optional)

To use a custom logo instead of the plaintext site title, create layouts/partials/logo.html in your site (not in the theme). Inline SVG is recommended, as it requires no extra HTTP request and stays consistent with the theme’s no-external-resources philosophy.

Example layouts/partials/logo.html:

<a href="{{ .Site.Home.RelPermalink }}">
  <svg xmlns="http://www.w3.org/2000/svg" width="120" height="32" aria-label="{{ .Site.Title }}">
    <!-- your SVG content here -->
  </svg>
</a>