Static website built with Hugo. This repo contains two Hugo sites:
- Main site (root) - uses
config.toml - Minutes subsite in
minutes/(published at/minutes/) - usesminutes/config.toml
The build stitches them together into a single static export in public/.
Prereqs
- Install Hugo (extended): https://gohugo.io/installation/
Run
- Main site:
hugo server - Minutes only:
hugo server -s minutes - Visit http://localhost:1313
Notes
- We use
relativeURLs = trueand Hugo’srelURLhelpers so links work at root domains (cclub.cs.wmich.edu) and subpaths (GitHub Pages). - The minutes subsite owns
/minutes/. Do not place content undercontent/minutes/in the main site.
content/– Main site content (Markdown)layouts/– Main site templates and partialsstatic/– Global static assets (CSS, JS, images)minutes/– Standalone Hugo site for meeting minutespublic/– Build output (generated)
- Built separately with its own theme/templates and then published under
/minutes/in the main export. - Breadcrumbs and assets use relative paths, so pages work both at root and subpath hosting.
- RSS is at
index.xml(notrss.xml).
To add new meeting minutes:
-
Add to the minutes repository: https://github.com/ccowmu/minutes
- Create a new file in the
minutes/directory with the naming formatYYYYMMDD.md(e.g.,20250116.md) - Use standard Markdown format (front matter will be generated automatically)
- Create a new file in the
-
Update this site:
# The test-build script automatically pulls latest minutes ./test-build.sh
Note: Minutes content is pulled from the separate ccowmu/minutes repository during build.
Manual build
# From repo root
./build.shThe script:
- Pulls latest minutes from https://github.com/ccowmu/minutes
- Processes minutes content and generates Hugo front matter automatically
- Fails fast if the main site has any files under
content/minutes/(the minutes subsite must own/minutes/) - Builds minutes and main with
--cleanDestinationDirto avoid stale files - Replaces
public/minuteswith the minutes build output
Deploy
- Publish
public/to your web root:rsync -av public/ /var/www/ccowmu/_site/
To deploy the site on the server:
-
Run the pull script to update the repository:
~/server-rebuild/containers$ ./pull-website.sh -
Navigate to the site directory and build:
cd ~/server-rebuild/containers/ccowmu.org ./build.sh
That's it! The site will be built and deployed automatically.
- Edit content:
content/ - Templating/partials:
layouts/ - Styles/JS:
static/andthemes/ccawmu/ - Minutes content is automatically pulled from the ccowmu/minutes repository during build
- Minutes page shows raw front matter (e.g., a page titled “Meeting Minutes” with YAML/TOML text):
- Remove any files under
content/minutes/in the main site; re-run./test-build.sh(it will fail and list offending files).
- Remove any files under
- Broken links to minutes like
/minutes/minutes/...:- Ensure you haven’t hard-coded absolute paths in templates; we use relative links in the minutes templates.
- RSS feed location:
- Use
index.xmlfor feeds (root:/index.xml, minutes:/minutes/index.xml).
- Use