Table of Contents

Adding/Editing Pages

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

Modifying the Menu

  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)

Common Commands

hugo server -D    # Local preview (includes drafts)
hugo              # Build site to /public/

Homepage

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.

Adding Images

  static/
    images/
      my-photo.jpg    → referenced as /images/my-photo.jpg
      hero.svg

Controlling Placement

Hugo uses standard markdown, so placement options are limited without HTML.
  <!-- 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" >}}

Organization

Workflow

  1. Edit files in /content/ or /static/
  2. Run hugo (or hugo server -D for live preview)
  3. Hugo builds everything into /public/

Overriding defaults