Building with HugoBlox

Site Configuration

Configure global site settings including identity, navigation, footers, analytics, and feature integrations.

Configure your HugoBlox site's global settings in config/_default/params.yaml.

Visual Editor Available

Prefer a visual interface? Use Ownable CMS - our VS Code extension that lets you configure your site without editing YAML.

Install Ownable CMS →

Where do I configure what?

  • Global Settings (Name, SEO, Features) → This Guide (params.yaml)
  • Visuals (Colors, Fonts, Layout) → Theming Guide
  • Menu Linksconfig/_default/menus.yaml
  • Page Contentcontent/ folders

Configuration File

The config/_default/params.yaml file is the control center of your site. It handles everything from your site's name and SEO description to feature toggles like comments and search.

Minimal Valid Configuration

hugoblox:
  schema: "2.0"
  identity:
    name: "Your Name"

That's it! Everything else has sensible defaults.

Structure Overview

Here are the available configuration sections:

hugoblox:
  # --- Core ---
  identity:      # Who you are (SEO, Name, Social)
  theme:         # Visual appearance -> see Theming Guide
  
  # --- Navigation ---
  header:        # Navbar settings (search, theme toggle)
  footer:        # Footer text and copyright
  
  # --- Content ---
  typography:    # Fonts and sizing
  layout:        # Spacing and shapes
  content:       # Math, TOC, citations settings
  locale:        # Date/time formats
  
  # --- Features ---
  seo:           # SEO overrides
  search:        # Site search provider
  comments:      # Comment systems (Giscus, etc)
  analytics:     # Google Analytics, etc
  
  # --- Technical ---
  verification:  # Search engine verification codes
  repository:    # "Edit this page" links
  security:      # Security headers (CSP)
  privacy:       # Privacy banner & settings
  debug:         # Development tools
  pro:           # Pro subscription features

Identity

Tell visitors and search engines who you are. This information appears in your navbar, footer, and SEO meta tags.

hugoblox:
  identity:
    # Site name (shown in navbar, footer, browser title)
    name: "Dr. Jane Smith"
    
    # Optional: Legal entity for copyright (defaults to name)
    organization: "Stanford University"
    
    # Schema.org type for search engines
    type: person  # person | organization | local_business
    
    # Short headline displayed on your site
    tagline: "AI Researcher | Stanford"
    
    # Site description for SEO and social sharing
    description: "AI researcher specializing in machine learning..."
    
    # Social accounts (used for Twitter Cards, etc.)
    social:
      twitter: "janesmith"  # Without the @ symbol

Identity vs Author Profiles:

  • identity (here) is for your website metadata and branding.
  • Author Profiles (content/authors/) are for people (bios, publications, team pages).

Header & Navigation

Configure your site's navigation bar behavior and features.

Looking to edit menu links?
Menu items (like "Home", "Posts") are defined in config/_default/menus.yaml, not here. Jump to Menu Links.

hugoblox:
  header:
    enable: true
    style: navbar            # navbar | navbar-simple | minimal
    sticky: true             # Stick to top on scroll
    align: center            # left | center | right
    
    # Feature toggles
    search: true
    theme_toggle: true
    theme_picker: false      # Show theme chooser dropdown
    language_switcher: true
    
    # Call-to-action button
    cta:
      enable: false
      text: "Contact"
      url: "/contact/"

Menu links are defined in config/_default/menus.yaml (not params.yaml):

main:
  - name: Research
    identifier: research
    weight: 30
  - name: Publications
    parent: research
    url: /publications/
    weight: 10
  - name: Projects
    parent: research
    url: /projects/
    weight: 20
main:
  - name: Contact
    url: "/#contact"  # Links to #contact section
    weight: 40

Customize your site footer and copyright notice.

hugoblox:
  footer:
    style: minimal           # minimal | columns | centered
    language_switcher: true
    text: ""                 # Custom HTML/text
  
  copyright:
    notice: "© {year} {name}. This work is licensed under {license}"
    license:
      type: cc              # cc | all_rights | custom
      allow_derivatives: false
      share_alike: true
      allow_commercial: false

Template Variables:

  • {year} - Current year
  • {name} - From identity.organization (or identity.name)
  • {license} - Creative Commons license link

Regional Settings

Adapt date, time, and address formats for your region.

hugoblox:
  locale:
    date_format: "Jan 2, 2006"  # Go time format
    time_format: "3:04 PM"
    address_format: en-us

Hugo uses a reference date (Mon Jan 2 15:04:05 MST 2006) for formatting:

  • Jan or January = Month
  • 2 or 02 = Day
  • 2006 or 06 = Year
  • 3:04 PM or 15:04 = Time

Common Formats:

locale:
  date_format: "Jan 2, 2006"
  time_format: "3:04 PM"
  address_format: en-us
locale:
  date_format: "2 January 2006"
  time_format: "15:04"
  address_format: en-gb
locale:
  date_format: "2006-01-02"
  time_format: "15:04"
  address_format: en-us

Content Features

Configure how content is rendered and enhanced.

hugoblox:
  content:
    math:
      enable: false           # LaTeX math rendering (KaTeX)
    toc:
      enable: true            # Table of contents
    reading_time:
      enable: true            # Reading time estimates
    citations:
      style: apa              # apa | mla | chicago | ieee

These are site-wide defaults. You can override them per-page in front matter.


Feature Integrations


Repository ("Edit This Page")

Enable "Edit this page" links for collaborative documentation sites.

hugoblox:
  repository:
    enable: true
    url: "https://github.com/username/repo"
    branch: main
    content_dir: content

Then mark pages as editable in their front matter:

---
title: My Page
editable: true
---

Security Headers

Configure security headers for production (requires blox-plugin-netlify).

hugoblox:
  security:
    csp:
      policy: ""              # Content Security Policy
      report_only: false
    frame_options: deny       # deny | sameorigin | allow
    permissions_policy: ""

Security headers are advanced. Only modify if you understand CSP and permissions policies.


Pro Features

🌟 Ownable Pro

Pro subscribers can optionally hide the "Powered by Ownable" attribution and get priority support.

Get Pro →

hugoblox:
  pro:
    hide_attribution: false   # Requires Pro + HUGO_BLOX_LICENSE env var

If you're already a Pro user and wish to remove the footer attribution, first set the HUGO_BLOX_LICENSE secret from your Lemon Squeezy license: add it in GitHub (Settings → Secrets and variables → Actions) or as an environment variable in your Netlify site dashboard. For GitHub Pages, check that your GitHub Action includes the license as per this example. After that, enable hugoblox.pro.hide_attribution.

Even with Pro, many users keep hide_attribution: false to support the open-source project and earn affiliate commissions with the Creator Program below! 💙

💰 Creator Program (Affiliate Code)

Any user (Pro or not) can join the Creator Program to earn commission on referrals:

  1. Apply to join the Creator Program
  2. Get your affiliate code after approval
  3. Add it to your config - your footer attribution link will automatically include it
  4. Start earning up to $174 per successful referral!
hugoblox:
  pro:
    affiliate_code: "your-affiliate-code"  # Join Creator Program at Ownable.dev/affiliates

💡 Maximize Your Earnings

  • Footer Attribution: Your affiliate code automatically gets included in the "Powered by Ownable" footer link
  • Blog Posts & Socials: Use your full affiliate URL from the Creator Program dashboard for maximum earnings
  • Students & Creators: Perfect way to monetize your academic/portfolio website traffic!

Complete Example

Here's a fully configured params.yaml:

hugoblox:
  schema: "2.0"
  
  identity:
    name: "Dr. Jane Smith"
    type: person
    description: "AI researcher at Stanford..."
    social:
      twitter: "janesmith"
  
  theme:
    mode: system
    pack: minimal
  
  typography:
    font: serif
    size: md
  
  header:
    enable: true
    style: navbar
    search: true
  
  content:
    math:
      enable: true
    citations:
      style: apa
  
  analytics:
    google:
      measurement_id: "G-XXXXXXXXXX"
hugoblox:
  schema: "2.0"
  
  identity:
    name: "Stanford AI Lab"
    organization: "Stanford University"
    type: organization
    tagline: "Advancing AI for humanity"
  
  theme:
    mode: system
    pack:
      light: minimal
      dark: contrast
    colors:
      primary: "#8C1515"  # Stanford red
  
  header:
    cta:
      enable: true
      text: "Join Our Team"
      url: "/careers/"
  
  comments:
    enable: true
    provider: giscus
    giscus:
      repo: "lab/website"
      repo_id: "..."
      category: "Comments"
      category_id: "..."

Was this page helpful?

From the makers of

© 2026 Lore Labs.

On this page