Child pages
  • WebSiteSetup
Skip to end of metadata
Go to start of metadata

The ZooKeeper website is built using Jekyll formatted in Markdown. The production website is updated using gitpubsub via the zookeeper.git/asf-site branch. Basic workflow is: modify the site source on the "website" branch and commit it once you are happy with the results, then update the "asf-site" branch with the generated content. Once asf-site is pushed the updates will be reflected on the ZooKeeper production website.

The content source to generate the ZooKeeper website can be found here:;a=shortlog;h=refs/heads/website

The live website is whatever is committed to asf-site, here:;a=shortlog;h=refs/heads/asf-site . Any changed committed to this branch are immediately replicated to the live production website at

Information on running the website generation process can be found in the file on the website branch, similar for managing the asf-site.


The ZooKeeper website build uses a number of tools.

You need to have Ruby and Python installed. Also install the following libraries:

$ sudo gem install jekyll jekyll-redirect-from pygments.rb
$ sudo pip install Pygments

(Note: If you are on a system with both Ruby 1.9 and Ruby 2.0 you may need to replace gem with gem2.0)

Steps to update the site:

  1. git clone -b website
  2. update the appropriate pages, typically a markdown file e.g., etc...
  3. jekyll build
  4. cp -RP _released_docs _site/doc # these are the static release docs, they are not generated
  5. # at this point verify that the generated files render properly - open _site/index.html in the browser
    # if you are happy with the results move on to the next step..., otherwise goto step 2 above.
  6. git add <the changed files>
  7. git commit -m "<appropriate commit message>"
  8. git push origin website
  9. # the source for the site is committed, now we need to push the generated files to the live site...
  10. git checkout asf-site
  11. rm -fr content
  12. mv _site content
  13. git add content
  14. # verify that content/index.html and other generated files are proper, open in a browser
    "git status" should show modified files for the markdown that you changed
  15. git commit -m "<appropriate commit message>"
  16. git push origin asf-site
  • No labels