/rook.github.io

Primary LanguageSCSSApache License 2.0Apache-2.0

Home

This is the GitHub Pages repository that currently powers rook.io using the Jekyll static site generator.

Contributing

If you would like to contribute to Rook's documentation, please open a PR on the main rook repository. Any changes will automatically be mirrored here to be hosted.

You may preview any changes locally by following the test section below.

The homepage is index.html in the root.

Docs

Docs live in /docs/{ project }/{ version }. Simply copy a directory full of markdown files with front matter and place them in the relevant project / version. After the docs are copied, a build is required for the frontend to pick up the new version for cross linking between versions of the same project.

Build

To run the build you must be running a Docker host. Run make build which will build a container with all required dependencies and then run the script to preprocess the project versions and store them statically.

Publish

Simply commit your changes and do a git push. There is also make publish which integrates with the rook Makefile nicely, and is meant to be run in conjunction with Jenkins CI -- and expects environment variable DOCS_VERSION.

Test

To test your changes to the Rook website locally before committing to the Rook repo, you can generate the docs locally and start a local web server.

To generate and view the docs:

# Remove the old master docs and copy your updated docs from your rook repo
rm -fr docs/rook/master
mkdir docs/rook/master
cp -r ../rook/Documentation/* docs/rook/master/

# Start a live-reloading server that serves the docs at [http://0.0.0.0:4000/docs/rook/master](http://0.0.0.0:4000/docs/rook/master). This requires Docker to be installed on your machine.
make run

When you are done, revert the changes to this repo:

rm docs/rook/master
git checkout -- docs/rook/master

Github Pages & Jekyll

To avoid additional pre-processing work, we push a project to rook.github.io which recognizes the project is a Jekyll project and processes the static site after the code is pushed. While this saves us time processing the Jekyll site manually, it does limit our ability to run custom code such as custom Jekyll plugins. Github only allows for public popular whitelisted gems.

Improvements in the future may include setting up our own build step to process the static site and test before pushing.

Licensing

The source code in this repository is licensed under the Apache 2.0 license.

The documentation is distributed under CC-BY-4.0.