Contributing
Table of contents
Contributing about documentation
Our documentation lives in the docs/
folder. It is generated and hosted on Github Pages.
Only the gh-pages
branch generates the online documentation. (it’s our default branch)
It uses Jekyll behind the wheel, and just-the-docs
theme for Jekyll.
Installing Jekyll locally
In order to contribute to the docs, you may need to install Jekyll locally (especially for non-trivial changes). Jekyll needs Ruby binary.
- Install and configure Jekyll on your computer, follow https://jekyllrb.com/docs/
- Once Jekyll is installed, you can install all Ruby gems using
yarn doc:gem:install
- Once gems are installed, you can run the local Jekyll server by using
yarn doc:start
which will start the server at localhost:4000
Configuring Jekyll properly
Jekyll configuration uses 2 different files.
-
docs/_config.yml
used by Github Pages -
docs/_config-development.yml
used by your local installation
There are a few, but important differences between both. The custom configuration must be written at the top of each config file. The shared configuration must be written below.
Tip: If you add custom/shared configuration, don’t forget to update both config files, as needed.
Reference
Jekyll theme used: just-the-docs
How to build a custom TOC
See just-the-docs documentation
How to write comments in Markdown files
[//]: # (Some markdown comment)
Known issues
- Using
yarn doc:start
will rebuild the whole documentation, but it’s slower. Usingyarn doc:start:fast
won’t rebuild the whole thing, and it’s faster. If you’re working on the navigation menu, be warned the fast mode won’t apply changes, and your menu links won’t update.
Contributing about the source code
If you mean to contribute on any preset by adding a new feature, or update existing ones, etc. please see our open RFC about contributing.
Please open an issue first before contributing, so that we may discuss your contribution beforehand. This isn’t necessary for small changes, but non-trivial changes should be agreed upon first.
Also, if you provide a PR, please configure CI on your GitHub repository first, otherwise we’ll need to “fork” your PR into NRN to test it first, and that takes time.
Additionally, please allow us to update your PR’s code for easier collaboration.
Requesting a new Preset
If you need a preset that isn’t supported yet, you can request one through Github issues.
- Please check first if there isn’t an existing request, you can use the Github label
"request preset"
to filter them out. - Please check first which presets won’t be worked on by the NRN team and must come from contributions.