| archetypes | ||
| assets/img | ||
| config/_default | ||
| content | ||
| themes | ||
| .gitmodules | ||
| README.md | ||
| TODO.md | ||
meshnet.lu
Hugo website for the MeshNet project. Uses the Blowfish theme, added as a git submodule (not the Hugo module approach).
Setup
You need Hugo extended installed. Then:
git clone --recurse-submodules <repo-url>
hugo server
If you already cloned without --recurse-submodules, run git submodule update --init to pull the theme.
Structure
Config lives in config/_default/ (Blowfish's multi-file config style, not a single hugo.toml at the root). Content is organized as:
content/
projects/
meshcore/
meshtastic/
freifunk/
posts/
about/
Projects are under a dropdown in the nav. Blog posts go in posts/.
All pages should be Hugo page bundles: that means an index.md inside its own folder rather than a standalone .md file. This lets each page carry its own images and other resources alongside it.
Some config choices
- Theme is a Git submodule: sits at
themes/blowfishand is pinned to themainbranch. Update it withgit submodule update --remote. This allows for forking and modifying the theme, if really necessary. - Homepage uses the "hero" layout: custom SVG background (
assets/img/mesh-hero.svg). The SVG usescurrentColorand low opacity so it works in both light and dark mode without readability issues.disableHeroImageFilteris set totruebecause the default Blowfish color overlay doesn't play well with a transparent SVG. SVG is merely temporary example!! - Header is "fixed": sticky on scroll, not the default "basic".
- Search is enabled: outputs JSON (
home = ["HTML", "RSS", "JSON"]in hugo.toml). - Sharing links: set to Mastodon, Bluesky, WhatsApp, LinkedIn, and email. No Twitter/X.
Deployment
hugo builds the site into public/. Point web server to that folder, or a copy of it. The baseURL is already set to https://meshnet.lu/.