This article is part of the series Using Techly.

Techly is configured through your site’s hugo.toml, Hugo menus, and content layout. The theme module contributes defaults for markup and several params keys; other settings only work when your site defines them, because Hugo does not merge every table from theme modules.

This post is the umbrella reference. Follow-up articles in the Using Techly series go deeper on individual topics — tagged general for structure and setup, feature for optional theme behavior.

Module import

Pin the theme as a Hugo module (v2):

[module]
  [[module.imports]]
    path = 'github.com/m1rm/techly/v2'
    version = 'v2.0.1'

Run hugo mod get after changing the version. See Getting Started with Techly for a minimal first site.

What your site must define

These blocks are included in the theme’s hugo.toml for documentation, but Hugo replaces rather than merges them when your site defines its own copy. Add them explicitly to your site:

[taxonomies]
  tag = 'tags'
  series = 'series'

[outputs]
  home = ['HTML', 'RSS', 'JSON']
SettingWhy it matters
series taxonomySeries notices, navigation, and /series/ archives
home JSON outputClient-side search index
tag taxonomyTag pages and related-content scoring

If you customize [taxonomies], list every taxonomy you still need — do not drop series or tags by accident.

Defaults merged from the theme

Techly’s module hugo.toml sets the following unless your site overrides them.

Markup

[markup.tableOfContents]
  startLevel = 2
  endLevel = 3

[markup.goldmark.renderer]
  unsafe = true

Table of contents on posts and pages includes headings from level 2 through 3. Goldmark renders raw HTML in Markdown when unsafe = true (common for figures and embedded markup).

Parameters ([params])

ParameterTheme defaultUsed for
mainSections["posts"]Home list, section listings, archive, search index, related posts
showPinnedIndicatorfalsePin icon on cards (per-post pinnedIndicator still required)
showPostImagestrueCover images on listing and related cards
footer.showSocialtrueFooter menus.social block
related.enabledtrueRelated articles section on posts
related.limit3Max related cards
related.heading"More articles"Section title
related.moreLink"best"Tag button strategy
related.moreLabel"More in %s"Tag button text
indexHometrueIndex the home page and include it in sitemap.xml

No defaults are set for banner, description, author, footer.tagline, footer.copyright, footer.since, newsletter, or searchPagePath — you supply those when needed.

Taxonomies in the theme file

The theme lists tag, category, and series. Your site should mirror at least tags and series as shown above. Categories are optional; add category = "categories" only if you use them.

A practical baseline beyond theme defaults:

title = 'My Blog'
locale = 'en-us'

[params]
  description = 'Short site summary for meta tags and footer fallback.'
  mainSections = ['posts']

  [params.banner]
    heading = 'My Blog'
    subheading = 'Technical articles and notes.'

  [params.author]
    name = 'Your Name'

  [params.footer]
    since = 2026
    tagline = 'Built with Hugo and Techly.'
    copyright = 'Your Name'
ParameterDefault if omittedNotes
banner.headingemptyHome hero <h1>; navbar uses title
banner.subheadingfalls back to descriptionHome hero subtitle
footer.copyrightparams.author.nameCopyright line name
footer.sinceomittedStart year; see copyright line below

When footer.since is set and differs from the current year, the footer shows a range (2020 - 2026). When it matches the current year, or when since is omitted, only the current year is shown (© 2026 Your Name). Use an integer in TOML (since = 2026), not a string.

Techly does not define menus.main for you. Typical entries use pageRef:

[[menus.main]]
  name = 'Home'
  pageRef = '/'
  weight = 10

[[menus.main]]
  name = 'Posts'
  pageRef = '/posts/'
  weight = 20

Footer social links use a separate menus.social menu and SVG icons in assets/icons/. See Footer social icons.

Feature-specific parameters

Override theme defaults only where you need different behavior:

[params.related]
  enabled = false

[params.footer]
  showSocial = false
FeatureKey docs
Related articlesRelated articles
Footer socialFooter social icons
Post seriesOrganizing posts into series
Pinned postsPinning posts
CoversFeatured images
Search page pathparams.searchPagePath — default tries /search and /page/search
Search indexingControlling search indexing

Newsletter CTA (no theme default)

Shown on the home page only when params.newsletter is set:

[params.newsletter]
  title = 'Stay up to date'
  text = 'Get notified when new posts are published.'
  url = 'https://example.com/subscribe'
  label = 'Subscribe'
  external = true

Partial defaults inside the template: title"Stay up to date", button label"Subscribe now".

Post and page front matter

Techly does not require custom front matter beyond normal Hugo fields. Commonly used keys:

FieldScopePurpose
descriptionposts, pagesLead text, cards, meta
indexposts, pagesOpt in to search indexing and sitemap.xml
robotsposts, pagesOverride robots meta tag (e.g. noindex, follow)
tagspostsTaxonomy and related content
seriespostsOne series name per post
tocposts, pagesIn-page table of contents
featuredImage / bundle featured.*postsListing and related covers
pinned / pinnedIndicatorpostsSort order and pin icon
layoutpagessearch, archive for special pages

Per-post params.showImage = false hides the cover for that article. Site-wide params.showPostImages = false disables covers everywhere.

Content layout expectations

Techly expects a posts section (or whatever you set in mainSections), optional content/search.md with layout = 'search', and optional series term pages under content/series/. See Content folder structure.

This showcase site

hugo-techly extends the defaults with banner text, author, footer, newsletter CTA, and taxonomies. Compare its hugo.toml with the theme defaults when in doubt about what comes from the module versus your own site.

Reading order

Posts in Using Techly are dated from general to specific:

  1. general — configuration, install, folders, tags, media
  2. feature — series, covers, pinning, related posts, social footer, search indexing

Shared tags within each group help the related-articles box suggest the next doc to read.