Theme Parameters (Site-wide)

This page lists the theme’s built-in site-wide parameters that control the homepage, global UI, SEO, and more.
October 4, 2025 Translations: 

Tip

The theme works out of the box with sensible defaults. You can ignore these settings at first and add them later when needed.

About the site-wide config

This theme’s site‑wide parameters are grouped under the params.neso namespace. In your project’s root hugo.toml, it should look like this:

[params]
  [params.neso]                  # table header
    support_theme_author = true  # key / value
    [params.neso.home]
      display_mode = "profile"
      # omitted...

You may also split the configuration into multiple files as needed; see the Hugo documentation.

Note

Hugo also accepts YAML or JSON config files. Use any converter if you need to switch formats.


Top-level settings

Table header: [params.neso].

KeyTypeDescription
time_formatStringThe format used to display a post’s publish time. See the Hugo docs
disable_responsive_menuBooleanDisable the responsive site menu
show_breadcrumbsBooleanShow the breadcrumb trail at the top of pages (can be turned off per page via Front Matter)
ext_link_indicatorBooleanAdd an indicator icon to external links
ext_link_no_opener_referrerBooleanAdd noopener, noreferrer, etc. to the rel attribute of external link <a> elements
ext_link_new_windowBooleanOpen external links in a new tab/window
show_full_content_in_rssBooleanInclude full content in RSS output (by default, the post Summary from Front Matter is used)
archive_includes_all_sectionsBooleanInclude posts from all sections on the Archives page. (Default false: only include posts from mainSections)
disable_scroll_to_topBooleanHide and disable the “Back to top” button
footer_textStringCustom text appended after the copyright line in the footer
hide_copyrightBooleanHide the copyright line in the footer
support_theme_authorBooleanShow a “Powered by” line in the footer to credit the theme author (thank you 🥹)
hide_footerBooleanHide the entire footer block (copyright, custom text, and the “Powered by” line)
force_color_schemefalse
String
When set to false, display a color‑scheme switcher UI in the footer. If set to the string "system" (follow the user’s OS), "light", or "dark", hide the switcher and force that scheme site‑wide
display_short_lang_nameBooleanWhen multiple languages are enabled, show short codes like “EN” / “ZH” in the top nav instead of full names like “English” / “中文”

Branding

Table header: [params.neso.branding].

Important

There are many possible image slots here, but in practice og_image + favicon_ico + favicon_svg already provide solid on‑site display and rich link previews. The rest are for pixel‑perfect support in specific environments and can usually be skipped.

KeyTypeDescription
logo_textStringCustom text logo in the top navigation bar (This string is only used as the visual logo in the nav; elsewhere the site name comes from the site’s title setting)
hide_logo_textBooleanHide the text logo in the top navigation bar
logo_imageStringLogo image URL for the top navigation bar
logo_image_darkStringDark‑mode variant logo image URL for the top nav (used only when the site is in dark color scheme)
logo_image_widthIntegerWidth of the logo image in the top nav (unit is px; enter a plain integer without the unit)
logo_image_heightIntegerHeight of the logo image in the top nav (unit is px; enter a plain integer without the unit)
og_imageStringDefault site‑wide og:image URL. Recommended size: 1200×630 px
favicon_icoStringFavicon image URL (ICO). For compatibility and SEO, unless you have special needs, it’s strongly recommended to name the file favicon.ico, place it at the top level of the site’s static/ directory, and leave this setting empty
favicon_svgStringFavicon image URL (SVG). Modern browsers support SVG favicons and they usually render crisper
apple_touch_iconStringapple-touch-icon image URL (PNG)
pwa_short_titleStringShort name shown when users add the site to the home screen on mobile; keep it brief for better fit
pwa_theme_color_lightStringHex theme color (e.g. #bada55). Supported browsers may tint UI surfaces to provide a more immersive feel; choose a value that matches your light background
pwa_theme_color_darkStringHex theme color for dark mode. Pick a value that matches your dark background
pwa_icon_svgStringPWA icon URL (SVG)
pwa_icon_192StringPWA icon URL (PNG, 192×192 px)
pwa_icon_512StringPWA icon URL (PNG, 512×512 px)
pwa_icon_maskable_svgStringMaskable PWA icon URL (SVG)
pwa_icon_maskable_192StringMaskable PWA icon URL (PNG, 192×192 px)
pwa_icon_maskable_512StringMaskable PWA icon URL (PNG, 512×512 px)

Note

For settings prefixed with pwa_, the theme generates a manifest.json for you according to the W3C Web App Manifest spec spec. See also web.dev and MDN.

For recommended icon variants, usage scenarios, and sizing details, refer to web.dev.


Table header: [params.neso.social].

These settings control the social links shown on the homepage. In TOML, write them as an “Array of Tables”. Example:

[params]
  [params.neso]
    # other settings omitted...
    [params.neso.social]
      [[params.neso.social.links]]
        name = "Github"
        url  = "https://github.com/babeneso"
      [[params.neso.social.links]]
        name = "X"
        url  = "https://x.com/babeneso"
    [params.neso.home]
    # other settings omitted...
KeyTypeDescription
nameStringPlatform name; case-insensitive, but spelling must be correct (English) to display the correct icon
urlStringYour profile URL on that platform

Homepage

The following explains the homepage settings in detail.

  1. Prepare the Index file

    At the top level under content/ in your Hugo project root, create an _index.md file (note the leading underscore), and put the following in it:

    ---
    # The Front Matter for the homepage only needs the two fields below:
    title       : "Kitty Home"
    description : "I love cooking and making small treats. My dream is to cuddle cats every day and sleep in!"
    ---
    
    # The main content area is only used when `display_mode` is NOT set to "profile".
    # If the file is "_index.md", you can write Markdown here to enrich the content;
    # If the file is "_index.html", you can write HTML here to implement more complex content.
  2. Choose the layout

    In the site-wide config file (hugo.toml), set the layout mode under the [params.neso.home] table header:

    [params]
      [params.neso]
        # other settings omitted...
        [params.neso.home]
          display_mode = "profile"
        # other settings omitted...
    display_mode = "profile"

    Show avatar, title, bio text, plus social links and custom link buttons, with a centered layout. This mode is simpler and does not use the Index file's main content.

    display_mode = "intro"

    Show the title, social links, and the Index file's main content, laid out according to the language's writing direction.

    display_mode = "<any other string>"

    Highly customizable mode; only the Index file's main content is shown.

    In this mode, it is recommended to name the file _index.html and write HTML directly inside it. The HTML will be wrapped in a responsive-width container, so you do not need to write <html> or <body> tags, just write the content.

    The theme already wires up a Tailwind CSS pipeline, so you can use utility classes freely.

Detailed settings: "profile" mode

Table header: [params.neso.home.profile].

KeyTypeDescription
avatar_imageStringAvatar image URL
avatar_image_alt_textStringAlt text for the avatar image
avatar_image_sizeIntegerAvatar image size; provide a positive integer; width and height are equal (unit is px; do not include the unit)
avatar_image_size_smIntegerAvatar image size on small screens (mobile); provide a positive integer; width and height are equal (unit is px; do not include the unit)

You can also add extra link buttons shown under the bio. In TOML, write them as an Array of Tables. Example:

[params]
  [params.neso]
    # other settings omitted...
    [params.neso.home.profile]
      avatar_image = "img/profile-photo.jpg"
      # other settings omitted...
      [[params.neso.home.profile.link_btns]]
        label = "Download My Resume"
        url   = "https://example.com/resume"
      [[params.neso.home.profile.link_btns]]
        label = "Top Repos"
        url   = "https://github.com/babeneso"
    [params.neso.home.list]
    # other settings omitted...
KeyTypeDescription
labelStringButton text
urlStringButton link URL

Detailed settings: Recent posts

Table header: [params.neso.home.list].

Regardless of the homepage layout you choose, you can additionally append a recent posts list below.

KeyTypeDescription
featured_entries_limitIntegerNumber of recent posts to show on the homepage; set to 0 to hide
includes_all_sectionsBooleanInclude posts from all sections. (Default false: only include posts from mainSections)
hide_view_archives_ctaBooleanHide the “View Archives” button below the list (the button links to the archives page)

Post list pages

Table header: [params.neso.list].

Post list pages appear throughout the site, such as a Section’s post list or the list of posts under a specific Tag. The following parameters control how these lists are displayed.

KeyTypeDescription
prominent_first_entryBooleanVisually emphasize the first entry in the list (styling only)
provide_rss_for_each_listBooleanShow an RSS button on every list page (in addition to the homepage), pointing to that list’s own feed
hide_page_numsBooleanWhen pagination is present, hide page numbers
hide_summaryBooleanHide post summaries in lists
hide_cover_imageBooleanHide cover images in lists
disable_responsive_cover_imageBooleanBy default, list cover images are processed via Hugo Pipes into multiple sizes at build time so the browser can choose an appropriate src for the viewport. Enable this to disable that mechanism (faster builds, potentially lower UX).

Single post pages

Table header: [params.neso.page].

These parameters control the site‑wide defaults for individual post pages. Some settings can be overridden per page via Front Matter.

Tip

For example, if you turn off the Table of Contents here with show_toc = "false", you can still re‑enable the ToC for a specific post via that page’s Front Matter. Notes like this are provided where applicable below.

General settings

KeyTypeDescription
ext_link_indicatorBooleanAdd an indicator icon to external links inside the article
ext_link_no_opener_referrerBooleanAdd noopener, noreferrer to the rel attribute of external link <a> elements in the article
ext_link_new_windowBooleanOpen external links in a new tab/window
hide_description_in_singleBooleanIf a post’s Front Matter provides description, the value is used for SEO (e.g., <meta> tags) and also displayed at the top of the article as an introduction. Enable this to hide that introduction block so the value is only used as SEO metadata.
full_size_cover_image_linkBooleanIf a cover image is set in Front Matter, add a link to the full‑size original
show_tocBooleanShow the in‑content table of contents (can be overridden per page via Front Matter)
toc_expandedBooleanExpand the table of contents by default (can be overridden per page via Front Matter)
disable_heading_linksBooleanDo not add anchor <a> elements to Markdown headings (like ##); similar to GitHub’s Section links; see the Hugo docs
enable_commentsBooleanEnable the comments block; see the comments configuration section (can be disabled per page via Front Matter)
hide_copy_code_buttonBooleanHide the “Copy” button on code blocks

Header metadata

The header block shows post metadata such as publish date, author(s), word count, and more. Some settings can be overridden per page via Front Matter.

KeyTypeDescription
show_reading_timeBooleanShow the estimated reading time
show_word_countBooleanShow the word count
show_authorBooleanShow author(s) (author info can be set in site‑wide params or per post in Front Matter)
show_canonical_linkBooleanIf the post’s Front Matter provides canonical_url, display a link to it
canonical_link_textStringWhen showing the canonical_url link, prefix it with this default text; e.g., Originally published on (can be overridden in the page’s Front Matter)
hide_metadataBooleanHide the entire header block (can be overridden per page via Front Matter)

The footer block shows post tags, share buttons, and the previous/next links for further reading. Some settings can be overridden per page via Front Matter.

KeyTypeDescription
show_content_footerBooleanShow the footer block (can be turned off per page via Front Matter)
show_shareBooleanShow share buttons (can be turned off per page via Front Matter)
share_providersString[]Choose share targets; if set, only the selected providers are shown, e.g. ["facebook", "line"]; if not set, all providers are shown by default: ["facebook", "line", "linkedin", "messenger", "reddit", "telegram", "whatsapp", "x"]
show_prev_nextBooleanShow “Previous / Next” links for further reading (can be overridden per page via Front Matter)

Note

“Single post page” here refers to the HTML page rendered by Hugo. Most settings in this section target pages whose page kind is page — in typical use this is a blog post. Hugo’s terminology is somewhat abstract, so we call it a single post page here for simplicity.


SEO

Table header: [params.neso.seo].

KeyTypeDescription
block_indexingBooleanSet the <meta name="robots"> of all pages to noindex, nofollow (can be overridden per page via Front Matter)
site_descriptionStringSite‑wide description/summary
site_keywordsString[]Site‑wide list of keywords, e.g. ["cats", "cute"]
site_authorString String[]Site owner/author name. For a single person, provide a string (e.g., "Ada Lovelace"); for multiple people, provide an array of strings (e.g., ["Alice", "Bob", "Carol"]).

Detailed settings: Structured data

Table header: [params.neso.seo.schema].

The theme automatically generates structured data in JSON‑LD format to improve SEO. The following fields let you provide additional information.

KeyTypeDescription
publisher_typeStringPublisher type; allowed values are Person or Organization. See Google Search Central (Article structured data) and Schema.org. [docs] [schema]
same_asString[]Other URLs that represent you (e.g., social profile pages). See Google Search Central (Profile page) and Schema.org. [docs] [schema]

Detailed settings: Search engine verification

Table header: [params.neso.seo.verification].

When managing SEO for your site, you may need to verify ownership with search engines.

Most engines offer multiple verification methods. Inserting a <meta> tag in your HTML is one of them. For example, Google provides code like this:

<meta name="google-site-verification" content="...">

Other engines provide similar mechanisms. In short: after you obtain the verification snippet, find the token inside the content attribute and paste that token into the fields below. The theme will then insert the verification <meta> tag for you in the document head.

The following search engines are supported:

KeyTypeDescription
googleStringGoogle
bingStringBing
yandexStringYandex
naverStringNaver

Table header: [params.neso.search].

These settings assume you have already set up the search page. If you don’t need on‑site search, you can ignore this section.

KeyTypeDescription
input_placeholderStringPlaceholder text shown in the search input

Hugo Pipes asset pipeline

Table header: [params.neso.assets].

Some assets used by the theme are processed by Hugo Pipes, such as CSS, JavaScript, and certain images — sometimes for minification/transpilation, sometimes to add a fingerprint for cache busting. The options below control this behavior.

KeyTypeDescription
output_dirStringChoose the subdirectory (name) under the publish directory where Hugo Pipes should place its output. Default: "assets"
disable_fingerprintingBooleanTurn off fingerprinting

Additional notes

Image locations and URLs

The settings above that take an image URL follow these rules:

Absolute path
Use the URL as-is; it may be root‑relative within the site or a fully qualified external URL.
For example: "/special/stuff.png", "https://example.com/image.png".
Relative path
Place images under the project’s assets/ or static/ folder (choose one). In both cases, write the path relative to the top of that folder.
For example, if the file is at assets/img/example.png or static/img/example.png, set it as "img/example.png". The theme will locate the correct place. Do not start with a leading slash; otherwise it becomes a root‑relative absolute path.
Files placed under assets/ support fingerprinting.