This repo contains all of the code and content for the Nuevo Foundation Workshop website.
- Workshops website - The live site students use (production).
- Workshops GitHub IO test site - Staging site for content validation. Updates are pushed automatically when the master branch changes.
Before you begin, install the following:
| Tool | Purpose | Install link |
|---|---|---|
| Git | Version control | git-scm.com/downloads |
| Hugo (Extended) | Static site generator that builds the workshop site | gohugo.io/installation |
| VS Code (recommended) | Text editor for writing content | code.visualstudio.com |
Windows (winget):
winget install Hugo.Hugo.Extended
macOS (Homebrew):
brew install hugo
Linux (snap):
snap install hugo
Verify the install:
hugo version
You should see output like hugo v0.1XX.X ... extended. The extended version is required.
Click Fork in the top right corner of the workshops repo on GitHub. This creates your own copy to work from.
Replace [your-username] with your GitHub username:
git clone https://github.com/[your-username]/workshops.git
cd workshopsThis lets you pull in the latest changes from the main repo:
git remote add upstream https://github.com/NuevoFoundation/workshops.git
git remote set-url --push upstream no_pushVerify with git remote -v. You should see:
origin https://github.com/[your-username]/workshops.git (fetch)
origin https://github.com/[your-username]/workshops.git (push)
upstream https://github.com/NuevoFoundation/workshops.git (fetch)
upstream no_push (push)
From the workshops directory, run:
hugo server -D-Dincludes draft content so you can preview work in progress.- The site builds in a few seconds and is available at http://localhost:1313/.
- Hugo watches for file changes and live-reloads your browser automatically.
To stop the server, press Ctrl+C.
Some translated content files have a duplicate hidden: true key in their front matter (for example content/espanol/security-phishing/answer-key.md). If you see a build error like:
mapping key "hidden" already defined
Open the file shown in the error and remove the duplicate line.
Before starting new work, sync with upstream:
git fetch --all --prune
git checkout master
git merge upstream/master
git push origin mastergit checkout master
git checkout -b my-feature-branch
git push --set-upstream origin my-feature-branchgit add .
git commit -m "Description of what changed"
git pushGo to your fork on GitHub. You will usually see a prompt to create a pull request from your recent push. If not, go to Pull Requests > New pull request, select your branch, add a title and description, and submit.
workshops/
config.toml # Hugo site configuration
content/ # All workshop content (markdown)
english/ # English content (primary)
espanol/ # Spanish translations
brazilian-portuguese/
francais/
german/
korean/
simplified-chinese/
traditional-chinese/
kyrgyz/
layouts/ # Custom page templates and partials
static/ # Images, CSS, JS, and other static files
themes/docdock/ # The DocDock Hugo theme
workshopcode/ # Source code files used within workshops
- Each workshop lives in its own folder under
content/english/(or the equivalent language directory). - Pages are Markdown files with YAML front matter at the top (title, description, weight for ordering).
- Hugo automatically builds the left nav and workshop listing from the folder structure.
- Custom shortcodes are available for alerts, buttons, expandable sections, and more. See the formatting guide.
| Guide | Description |
|---|---|
| Site architecture | How the Hugo site is structured |
| Getting started | Full setup walkthrough with screenshots |
| Formatting | Markdown and custom shortcode reference |
| New workshop guidelines | How to create a new workshop from scratch |
| Web developer guidelines | For developers working on the site itself |
| What you want to do | Where to look |
|---|---|
| Fix a typo or bug | Edit the .md file under content/english/ and submit a PR |
| Add a new workshop | Follow the new workshop guidelines |
| Improve the website | See the web developer guide |
| Report an issue | Open a GitHub issue |
| Find something to work on | Check help wanted issues |
This project has adopted a code of conduct adapted from the Contributor Covenant to clarify expected behavior in our community.