Apache Cassandra website sources
================================

Prerequisite
------------

The site depends on Jekyll (https://jekyllrb.com/) which should be installed.

Please use Jekyll 3.4.x for compiling the html pages, so we get identical results for everyone.

You may need to add the ruby executable that ends up being installed to your firewall on MacOS otherwise
the web server started by 'make serve' will be unreachable.

Installing Jekyll independently from the version shipped with your OS can be done as follows:

# Use rbenv to use a specific Ruby version with Jekyll:
# See: https://github.com/rbenv/rbenv/#installation
git clone -b v1.1.1 https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$HOME/.rbenv/shims:$HOME/.rbenv/versions/2.4.2/bin:$PATH"' >> ~/.zshrc # change to bashrc if needed
# Install ruby-build plugin
mkdir ~/.rbenv/plugins
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

# Install ruby
# See: https://github.com/rbenv/rbenv/#installing-ruby-versions
rbenv install 2.4.2

# Associate with Cassandra svn directory
cd ~/svn/cassandra-site/src # change as needed
rbenv local 2.4.2
which rbenv # should point to shim
ruby --version

# Install bundler with local rbenv version
gem install bundler

# Install needed gems
bundle install

# Confirm things are working
jekyll --version


Updating the site
-----------------

Updates to the "core" website are done by simply:

1. editing whatever local files needs to be edited (see layout below too)
2. testing the change locally using `make serve`
3. building for real using: `make`
4. committing.

One exception is the documentation which is automatically built and imported from the Cassandra sources. If you need to
update the documentation, you need to:
1. checkout the proper branch (the one for which you want to build and import the doc) in your local checkout of the
   cassandra git sources
2. set the CASSANDRA_DIR environment variable to that git source checkout (pro-tip: it's a good idea to export that
   variable in your bashrc/zshrc/whatev).
3. use `make add-doc` or `make add-latest-doc` from this repository. The `add-latest-doc` target should be used when you
   want the generated doc replace the "default" documentation, the one you get when you click "documentation" on the
   website. This is often the one you want. You should use `add-doc` when you want to rebuild the doc for an old version
   for some reason (such doc is accessible from /doc/<version>).

Layout
------

Outside of the documentation, the website is mostly only a few pages that are at top-level. The `index.html` file is the
landing page, and other pages are markdown processed by Jekyll (the index page isn't markdown because it's layout is
slightly more fancy).

Further, the `_data/` directory contains "data" used by the pages. Mainly, the `_data/releases.yaml` file contains the
versions and release dates of the currently released version. It's the file to edit when a new release is published.

The documentation is in the doc/ directory. It mostly contains sub-directories for each version for which we have a doc,
and those sub-directories are automatically imported by `make add-doc`/`make add-lastest-doc` (so don't edit any file
withing those version sub-directories). The doc/ directory also contains a `lastest` symlink pointing to the last
version, the one the website documentation actually points to (that symlink is automatically updated when you use `make
add-latest-doc`), as well as a few "static" files used by the doc (as of this writing, only links to legacy CQL doc).

The rest of the layout is standard to Jekyll:

* `_layout/` contains the page (full) layouts.
* `_includes/` contains fragments used by the different layouts (that's where the header, navigation and footer are).
* `css/`, `js/` and `img/` are what ones would expect (they are included as-is by Jekyll).
* `_sass/` is to `css/` what `_includes` is to `_layout`; it contains sass fragments imported by the main css files
  (currently only the pygments theme for syntax highligthing in the documentation).
* `_plugins/` contains a tiny plugin that make it easier to input download links in the `download.md` file.

How this work
-------------

Most of the site is a simple Jekyll installation and you should refer to the Jekyll documentation for detail. The site
however includes the in-tree Sphinx documentation and this section attemps to provide more detail on that "integration".

That doc integration is somewhat simplistic, which has both pros and cons. The pros is that there isn't really any
complex mechanism involved, the cons is that it's a bit of a hack. The in-tree doc uses Sphinx, which normally generates
complete (standalone) html files (from the textile source), while Jekyll generates it's pages from Liquid templates
(https://jekyllrb.com/docs/templates/). The intregation between the 2 works by having a special Sphinx theme (that theme
is in doc/source/_theme/cassandra_theme in the Cassandra git repository) which, instead of creating standalone html
files, creates liquid template (that reuse the elements of the website). Note that this means in particular that this
special theme is only ever useful for the website. In other words, the processus of integration of the doc in the
website is:
 1) the in-tree doc is compiled by sphinx using the special theme.
 2) the generated files, which thanks to the theme are Liquid templates (mainly, if you look at the theme files, they
    simply have a proper Jekyll yaml 'Front Matter'), are copied to the website doc.
 3) Jekyl is run normally. It then simply picks up the copied doc file and process them as any normal file.

And there is just a bit of automation to make that process easier:
 - the in-tree sphinx doc Makefile has a 'website' target that simply trigger the use of the special website Sphinx
   theme.
 - the website Makefile has the 'add-doc' and 'add-latest-doc' targets mentioned above to automate the generation and
   copy of the doc files.

And that's mostly what there is to it. I'll note however the following technical gotchas:
 - once copied and processed by Jekyll, the doc files uses the website html header and navigation. Sphinx has a bunch of
   custom css class that can be styled, as well as a few js files, and those are in the website css/ and js/
   directories. In particular, most doc specific styling is in the css/sphinx.css (some of it have been simply copied
   for the css of the default sphinx theme), and the sphinx js files have been manually copied into js/. Those aren't
   updated by the integration process described above, and in particular, the sphinx generation puts a bunch of css/js
   files in a _static/ directory of the generated files (see src/doc/latest/_static for instance) and those are
   completely ignored (they are not even copied by Jekyll due to my next point).
 - sphinx uses underscores at the start of some of the directories that have special meaning, like the _images directory
   where it puts images, but Jekyll have the same convention for its own special directories and won't (by default) copy
   any such directory when generated its result. In practice, this means we have to force manually force the inclusion
   of those sphinx directories we want to include so Jekyll doesn't skip them, which is done in the _config.yml Jekyll
   configuration file (the only sphinx dir we care about so far is _images).

Contributing a Blog Post
------------------------
To contribute a new blog post, create a new Markdown file in /_posts, using
_templates/2018-06-22-blog_post_template.markdown as a template. Follow the YYYY-MM-DD-blog-post-slug.markdown filename
convention, and annotate your post using the yaml frontmatter of the Markdown file (this functionality is provided by
Jekyll).

Follow the instructions above during development -- `make serve` for local development, and `make` to generate the final
product.
