Hugo Split Gallery is a Hugo theme for building photo-and-map-centric websites, turning a folder of images and GPS track files into a static gallery with an interactive map.
What is Hugo Split Gallery?
Hugo Split Gallery is an open-source Hugo theme created and maintained by Thomas Muguet, hosted on GitLab under the GPLv3 license. It takes a Hugo site whose posts contain an images subfolder and optional GPS track files (GPX, KML, GeoJSON), and outputs a static site with a responsive photo gallery, a map view, and per-page content. The theme supports custom sections and taxonomies, so it works for blogs, portfolios, or any content structure. It is inspired by the Hugo Split Theme, itself a port of the Split design from One Page Love.
Key Features
- Photo gallery — Images placed in a post's
imagessubfolder are rendered as a gallery; each post must define animagesparameter (at least one image) that becomes the thumbnail on the home gallery. - Map integration — GPX, KML, and GeoJSON track files placed alongside a post are parsed and displayed on an interactive map, with multiple tracks per post supported.
- Custom sections and taxonomies — Any Hugo section (e.g.,
posts,blog) works, and Hugo taxonomies are fully supported, giving flexible content organization. - Related posts — The
seealsoparameter links a post to one or more other posts, creating navigation between related content. - Internationalization — Built-in i18n files cover multiple languages; community contributions currently include Czech and German translations.
- Bundled third-party assets — JavaScript, CSS, images, and fonts are copied into the repo, so end users do not need npm or a build step to use the theme.
- Semantic versioning — New minor versions add features without breaking changes, so upgrades via
git pullin the theme folder are safe.
Who is it for?
Hugo Split Gallery is for Hugo users who want a photo-oriented site with map capabilities. Photographers can display their work in a gallery while attaching GPX tracks to each photoshoot. Hikers and outdoor bloggers can document trails with photos and map tracks for readers to explore. Travel bloggers can build a map-centric diary where each post shows where the photos were taken.
Use cases
- Photographers: Showcase a portfolio where each gallery post includes an optional location map from a GPX or KML track.
- Hikers/outdoor enthusiasts: Publish trip reports with route maps alongside photos; multiple track files are supported per post.
- Travel bloggers: Create a visual travel log with an interactive map for every destination, using the
seealsoparameter to link related trips.
How does the theme work?
Install the theme as a git submodule and set theme = "hugo-split-gallery" in your site configuration. Each content post lives in a folder containing an index.md, an images subfolder for photos, and optional track files (.gpx, .kml, .geojson). The theme reads the front matter images parameter to build the gallery and parses track files to render the map, then Hugo builds a static site.
What are the licensing requirements?
The theme itself is GPLv3, but it bundles fancybox 3, which is not free for commercial use. If you plan to use the theme in a commercial application, you must purchase a commercial license from fancybox. Other third-party assets are under permissive licenses (MIT, SIL OFL 1.1, BSD-2-Clause).
FAQ
Is Hugo Split Gallery free?
The theme is free to download and use under GPLv3 for non-commercial purposes. Because it includes fancybox, which has a separate commercial license, using the theme in a commercial application requires buying a fancybox commercial license.
What map formats are supported?
GPX (.gpx), KML (.kml), and GeoJSON (.geojson) track files are supported. Place them at the same level as the post's index.md; multiple tracks per post are allowed.
Does the theme require Node.js or npm?
No. Third-party resources are pre-bundled and committed to the repository, so you only need Hugo to build the site. npm is only used by the theme maintainer to update those resources.
Can I use any Hugo section name?
Yes, the theme works with any section such as posts, blog, or a custom name. The README uses posts for simplicity, but the structure is section-agnostic.
How do I update the theme?
From your Hugo site's themes/hugo-split-gallery folder, run git pull to fetch the latest version. The theme follows semantic versioning, so minor upgrades should not break your site.




