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>
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.