title: Updating the Website nav: nav_website_updates

Pirk's web site is developed using Jekyll. The Jekyll source is contained in the gh-pages branch and the asf-site branch contains the HTML content.

Website development is performed by editing the contents of the gh-pages branch, either directly by a committer, with a pull request to GitHub, or a patch submitted to JIRA. The rendered site can be previewed locally or on GitHub, and the rendered site (in the _site directory) will be merged into the asf-site branch to update the official site after being built with the _config-asf.yml configuration.

To manage any Gem dependencies, it is highly recommended to use Bundler. To start using Bundler, install it and then install the dependencies for the website:

gem install bundler
bundle install

To get help with jekyll:

jekyll help

To test the site locally (usually on http://localhost:4000):

bundle exec jekyll serve --config _config-asf.yml --safe --baseurl=""

To build for updating the asf-site branch:

bundle exec jekyll build --config _config-asf.yml --safe

A post-commit hook is available (Thanks Apache Accumulo!) for you to automatically create a commit in the asf-site branch locally each time you commit to the gh-pages branch. You can also run this command manually:

./_devtools/git-hooks/post-commit

To automatically run this post-commit hook in your local repository, copy the given file into your .git/hooks directory, and ensure the file is executable:

cp ./_devtools/git-hooks/post-commit .git/hooks/
chmod +x .git/hooks/post-commit

Finally, ensure you have pushed the changes in both the asf-site and gh-pages branches. The gh-pages branch contains the source used by the post-commit script to generate the static HTML which lives in the asf-site branch and is actually served.