Contribution Guidelines
We use:
- Hugo to format and generate our website,
- the Docsy theme for styling and site structure,
- Netlify for PR previews, and
- GitHub Actions to manage the deployment of the site to GitHub Pages.
Hugo is an open-source static site generator that provides us with templates, content organisation in a standard directory structure, and a website generation engine. You write the pages in Markdown (or HTML if you want), and Hugo wraps them up into a website.
All submissions, including submissions by project members, require review. We use GitHub pull requests for this purpose. Consult GitHub Help for more information on using pull requests.
Updating a single page
If you’ve just spotted something you’d like to change while using the docs, Docsy has a shortcut for you:
- Click Edit this page in the right (second) sidebar.
- If you don’t already have an up-to-date fork of the project repo, you are prompted to get one - click Fork this repository and propose changes or Update your Fork to get an up-to-date version of the project to edit. The appropriate page in your fork is displayed in edit mode.
- Make your changes and open a Pull Request. The maintainers will review, provide feedback, and merge.
Previewing your changes locally
If you want to run your own local Hugo server to preview your changes as you work:
- Follow the instructions in Getting started to install Hugo and any other tools you need.
- Fork the
yusaopeny_docs repo into your own project, then create a local copy using
git clone
. - Run
hugo server
in the site root directory. By default, your site will be available athttp://localhost:1313/
. Now that you’re serving your site locally, Hugo will watch for changes to the content and automatically refresh your site. - Continue with the usual GitHub workflow to edit files, commit them, push the changes up to your fork, and create a pull request.
Common options
Hugo has a number of flags you can use to change local server behavior, here are a few we like:
--tlsAuto
generate and use locally-trusted certificates to run the site overhttps
--buildDrafts
include content marked as draft--buildFuture
include content with publishdate in the future
With all of these, you might end up with something like:
hugo serve --tlsAuto --buildDrafts --buildFuture
Creating an issue
If you’ve found a problem in the docs, but you’re not sure how to fix it yourself, please create an issue in the yusaopeny_docs repo. You can also create an issue about a specific page by clicking the Create Issue button in the top right hand corner of the page.
Useful resources
- Docsy user guide: All about Docsy, including how it manages navigation, look and feel, and multi-language support.
- Hugo documentation: Comprehensive reference for Hugo.
- GitHub Hello World!: A basic introduction to GitHub concepts and workflow.
Linting
As with code, it’s good practice to run automated checks on our docs too.