danielandClaude Sonnet 5 071ee344a3 Support one level of dropdown menus in the navbar
A `main` menu entry with child entries (others with `parent:` set) is
now rendered as a Bootstrap dropdown; flat entries are unchanged.
Active-state highlighting is trailing-slash tolerant and marks the
dropdown parent active when one of its children is the current page.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-02 17:26:39 +02:00
2026-06-15 21:07:15 +02:00
2026-06-16 16:45:32 +02:00

hugo_bootstrap_theme

Simple Bootstrap-based theme for Hugo.

Shortcodes

lead

Wraps its content in a Bootstrap .lead paragraph (the Markdown attribute syntax {.lead} cannot target a paragraph):

{{< lead >}}
An introductory paragraph that stands out.
{{< /lead >}}

Pass extra classes with class, e.g. {{< lead class="mb-5" >}}.

banner

A full-bleed banner / hero image: it spans the entire viewport width while the rest of the page stays within .container. Put it on the first line of a page's content to get a hero flush against the navbar.

{{< banner src="hero.png" alt="…" >}}

src is resolved as a page resource first, then a global resource (assets/), then as a plain link respecting the site's base URL. Optional params: title, height (a CSS length such as 60vh, which crops the image with object-fit: cover) and class.

Navigation

The navbar renders the main menu. A top-level entry that has child entries (other entries pointing at it with parent:) is rendered as a Bootstrap dropdown; entries without children stay as plain links. Only one level of nesting is supported (Bootstrap 5 has no nested submenus).

# hugo.yaml / menus.yaml
menu:
  main:
    - name: Home
      pageRef: /
      weight: 1
    - name: Research
      weight: 2
    - name: Proposals
      parent: Research
      pageRef: /proposals
      weight: 1
    - name: History
      parent: Research
      pageRef: /history
      weight: 2

The entry matching the current page (and its parent, for a dropdown child) gets Bootstrap's active class. A parent entry acts only as the dropdown toggle, so it does not need its own url/pageRef.

Custom error page

The theme has a custom 404 error page.

If the site has an SVG image in assets/svg/404.svg, this image will be displayed instead of a generic 404 code. Regardless of whether an SVG assets exists or not, English and German explanations of what's going on will be included on the page.

S
Description
Simple Bootstrap-based theme for Hugo.
Readme MIT
179 KiB
Languages
SCSS 95.6%
HTML 4.4%