We use Hugo to format and generate our website, the Docsy theme for styling and site structure, and Netlify to manage the deployment of the site. Hugo is an open-source static site generator that provides us with templates, content organization 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.
Types of contributions
If you’d like to contribute an article to the [Community][/community] section of this site, the implementations in the article should exemplify the best practices described in the Learn documentation. Members of the Best Practices SIG review your PR to determine if the content is a good fit for adding to the Community section.
You can also create pull requests to suggest improvements to other parts of the site.
Code of conduct
We expect contributors to read and observe the CD Foundation Code of Conduct.
Writing style
See the style guide for writing style guidance.
Running the site locally
You can use the included Dockerfile to run the site locally.
-
On Mac and Windows, download and install Docker Desktop. On Linux, install Docker engine and Docker compose.
The installation might require you to reboot your computer for the changes to take effect.
-
Build the docker image:
docker-compose build
-
Run the built image:
docker-compose up
-
Open the address
http://localhost:1313
in your web browser to load the docsy-example homepage. You can now make changes to the source files, those changes will be live-reloaded in your browser.
To clean up your system and delete the container image:
-
Stop Docker Compose with Ctrl + C.
-
Remove the produced images
docker-compose rm
Quick start with Netlify
Here’s a quick guide to updating the docs. It assumes you’re familiar with the GitHub workflow and you’re happy to use the automated preview of your doc updates:
- Fork the Best Practices repo on GitHub.
- Make your changes and send a pull request (PR).
- If you’re not yet ready for a review, add “WIP” to the PR name to indicate it’s a work in progress. (Don’t add the Hugo property “draft = true” to the page front matter, because that prevents the auto-deployment of the content preview described in the next point.)
- Wait for the automated PR workflow to do some checks. When it’s ready, you should see a comment like this: deploy/netlify — Deploy preview ready!
- Click Details to the right of “Deploy preview ready” to see a preview of your updates.
- Continue updating your doc and pushing your changes until you’re happy with the content.
- When you’re ready for a review, add a comment to the PR, and remove any “WIP” markers.
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 top right hand corner of the page.
- 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.
- Follow the rest of the Quick start with Netlify process above to make, preview, and propose your changes.
Creating an issue
If you’ve found a problem in the best practices content, but you’re not sure how to fix it yourself, please create an issue in the Best Practices 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.