ARROW-95: Add Jekyll-based website publishing toolchain, migrate existing arrow-site

This also renders the format Markdown documents on the website. Used the Apache Calcite website for guidance about best practices with Jekyll.

See rendered website at https://wesm.github.io/arrow-site-test/

Author: Wes McKinney <wes.mckinney@twosigma.com>

Closes #589 from wesm/ARROW-95 and squashes the following commits:

a6b65cb [Wes McKinney] Fix some incomplete instructions
2806d26 [Wes McKinney] Exclude flatbuffers from C++ API docs. Add C++ docs link to site
512ea71 [Wes McKinney] Migrate website to Jekyll with bootstrap-sass. Add navbar. Render specification Markdown documents with website. Instructions for publishing Java and Python docs
23 files changed
tree: cf6caca5ed00c46701263b686c567f48db424c34
  1. _docs/
  2. _includes/
  3. _layouts/
  4. _sass/
  5. css/
  6. img/
  7. scripts/
  8. .gitignore
  9. _config.yml
  10. Gemfile
  11. index.html
  12. README.md
README.md

Apache Arrow Website

Development instructions

If you are planning to publish the website, you must first clone the arrow-site git repository:

git clone --branch=asf-site https://git-wip-us.apache.org/repos/asf/arrow-site.git asf-site

Now, with Ruby >= 2.1 installed, run:

gem install jekyll bundler
bundle install

# This imports the format Markdown documents so they will be rendered
scripts/sync_format_docs.sh

bundle exec jekyll serve

Publishing

After following the above instructions the base site/ directory, run:

bundle exec jekyll build
rsync -r build/ asf-site/
cd asf-site
git status

Now git add any new files, then commit everything, and push:

git push

Updating Code Documentation

Java

cd ../java
mvn install
mvn site
rsync -r target/site/apidocs/ ../site/asf-site/docs/java/

C++

cd ../cpp/apidoc
doxygen Doxyfile
rsync -r html/ ../../site/asf-site/docs/cpp

Python

First, build PyArrow with all optional extensions (Apache Parquet, jemalloc).

cd ../python
python setup.py build_ext --inplace --with-parquet --with-jemalloc
python setup.py build_sphinx -s doc/source
rsync -r doc/_build/html/ ../site/asf-site/docs/python/

Then add/commit/push from the site/asf-site git checkout.