content/
about.md → /about/
artists.md → /artists/
how-it-works.md → /how-it-works/
--- title: "My New Page" date: 2026-01-17 draft: false --- Your markdown content here...
hugo new pagename.mdconfig.yaml under Menus.main. Example: Menus:
main:
- identifier: howitworks
name: How It Works # Display text
title: How Open Studios Works
url: /how-it-works # Must match content filename
weight: 1 # Order (lower = first)
hugo server -D # Local preview (includes drafts) hugo # Build site to /public/
The homepage is typically special: it might pull from config.yaml params (hero section, etc.), not from a markdown file. To change homepage content, edit the params.hero section in config.yaml.
/static/ folder. Example: static/
images/
my-photo.jpg → referenced as /images/my-photo.jpg
hero.svg
Hugo uses standard markdown, so placement options are limited without HTML.
unsafe: true for this to work): <!-- Centered -->
<div style="text-align: center;">
<img src="/images/artist.jpg" alt="Artist at work" width="500">
</div>
<!-- Floated left with text wrap -->
<img src="/images/artist.jpg" alt="Artist" style="float: left; margin-right: 20px; width: 300px;">
Text wraps around the image here...
<div style="clear: both;"></div>
<!-- Side by side -->
<div style="display: flex; gap: 20px;">
<img src="/images/photo1.jpg" style="width: 50%;">
<img src="/images/photo2.jpg" style="width: 50%;">
</div>
Figure with caption:
{{< figure src="/images/artist.jpg" caption="Local artist in their studio" >}}
/public/ - Don't touch. Hugo regenerates this every time you build. Any manual edits get overwritten./content/ - Your markdown pages. Edit these./static/ - Images, files, etc. that get copied as-is to public./config.yaml - Site settings, menus, homepage content.themes/<theme name>/layouts/partialsthemes/hugo-profile/layouts/partials/footer.html/static/fav.png