ISSUE #186: distributedlog.incubator.apache.org should have same content as bookkeeper.apache.org/distributedlog

Descriptions of the changes in this PR:

- move `docs` to `website/docs/latest`
- change `header.html` to support different logo url, to support both bookkeeper.apache.org/distributedlog and distributedlog.incubator.apache.org
- add docker scripts to build website and javadoc

Author: Sijie Guo <sijie@apache.org>

Reviewers: Jia Zhai <None>

This closes #190 from sijie/automate_building_website, closes #186
diff --git a/docs/_config-apache.yml b/docs/_config-apache.yml
deleted file mode 100644
index bf395a3..0000000
--- a/docs/_config-apache.yml
+++ /dev/null
@@ -1 +0,0 @@
-baseurl: "/distributedlog/docs/latest"
diff --git a/website/.gitignore b/website/.gitignore
index c28a8b0..3155c00 100644
--- a/website/.gitignore
+++ b/website/.gitignore
@@ -3,3 +3,13 @@
 .jekyll-metadata
 _pdf
 .idea/
+content
+local_content
+temp_local_content
+production_content
+temp_production_content
+apache_content
+temp_apache_content
+**/temp_content
+**/.pygments-cache
+vendor
diff --git a/website/Makefile b/website/Makefile
new file mode 100644
index 0000000..99d4486
--- /dev/null
+++ b/website/Makefile
@@ -0,0 +1,30 @@
+BUNDLER_VERSION = 1.15.3
+BUNDLE = bundle _${BUNDLER_VERSION}_
+JEKYLL = ${BUNDLE} exec jekyll
+
+setup:
+	gem install bundler \
+		-v ${BUNDLER_VERSION} \
+		--no-rdoc \
+		--no-ri
+	NOKOGIRI_USE_SYSTEM_LIBRARIES=true ${BUNDLE} install
+	wget https://bootstrap.pypa.io/get-pip.py
+	chmod +x get-pip.py
+	python get-pip.py
+	rm get-pip.py
+	pip install docutils pygments
+
+local:
+	./build.sh local
+
+staging:
+	./build.sh staging
+
+production:
+	./build.sh production
+
+apache:
+	./build.sh apache
+
+serve: 
+	./build.sh local /tmp true
diff --git a/website/_config-apache.yml b/website/_config-apache.yml
index 5746e2a..6f1399e 100644
--- a/website/_config-apache.yml
+++ b/website/_config-apache.yml
@@ -1 +1,2 @@
 baseurl: "/distributedlog"
+logo_url: "/distributedlog"
diff --git a/website/_config-production.yml b/website/_config-production.yml
index 2b9cde5..13c0c99 100644
--- a/website/_config-production.yml
+++ b/website/_config-production.yml
@@ -1 +1,3 @@
+url: "http://distributedlog.incubator.apache.org"
 baseurl: ""
+logo_url: "/"
diff --git a/website/_config-staging.yml b/website/_config-staging.yml
index 428e3c8..67517ef 100644
--- a/website/_config-staging.yml
+++ b/website/_config-staging.yml
@@ -1 +1,2 @@
 baseurl: "/distributedlog-staging-site"
+logo_url: "/distributedlog-staging-site"
diff --git a/website/_config.yml b/website/_config.yml
index c2065cf..b22ae47 100644
--- a/website/_config.yml
+++ b/website/_config.yml
@@ -11,12 +11,13 @@
   Apache DistributedLog is an high performance replicated log.
 
 # versions
-DL_VERSION_STABLE: 0.3.51-RC1
+DL_VERSION_STABLE: 0.4.0-incubating
 DL_VERSION_LATEST: 0.6.0-SNAPSHOT
 stable_doc_version: 0.4.0-incubating
 
 # the subpath of your site, e.g. /blog
 baseurl: ""
+logo_url: "/"
 
 # the base hostname & protocol for your site
 url: "http://bookkeeper.apache.org/distributedlog"
@@ -39,9 +40,6 @@
 - distributedlog_team
 - mentors
 
-# Things to ignore in the build
-exclude: ['README.md', 'Gemfile.lock', 'Gemfile', 'Rakefile', 'docs', 'build.sh']
-
 # Things to keep in the build
 keep_files: ['docs']
 
@@ -54,4 +52,22 @@
   - jekyll-redirect-from
 
 exclude:
+  - Gemfile
+  - Gemfile.lock
+  - Makefile
+  - Rakefile
+  - README.md
+  - apache_content
+  - build.sh
+  - build-javadoc.sh
+  - content
+  - docker
+  - docs
+  - local_content
+  - production_content
   - scripts
+  - temp_content
+  - temp_apache_content
+  - temp_local_content
+  - temp_production_content
+  - vendor
diff --git a/website/_includes/header.html b/website/_includes/header.html
index 9071574..90f07c9 100644
--- a/website/_includes/header.html
+++ b/website/_includes/header.html
@@ -1,7 +1,7 @@
 <nav class="navbar navbar-default navbar-fixed-top">
   <div class="container">
     <div class="navbar-header">
-      <a href="/distributedlog" class="navbar-brand" >
+      <a href="{{ site.logo_url }}" class="navbar-brand" >
         <img alt="Brand" style="height: 28px" src="{{ "/images/distributedlog_logo_navbar.png" | prepend: site.baseurl }}">
       </a>
       <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
diff --git a/website/build-javadoc.sh b/website/build-javadoc.sh
new file mode 100755
index 0000000..3fc7a3d
--- /dev/null
+++ b/website/build-javadoc.sh
@@ -0,0 +1,96 @@
+#!/bin/bash
+################################################################################
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+# limitations under the License.
+################################################################################
+
+usage() {
+  echo "Usage: build <env> [dest]."
+}
+
+if [ $# -lt 1 ]; then
+  usage
+  exit 1
+fi
+
+DLOG_ENV=$1
+
+BINDIR=`dirname "$0"`
+DLOG_HOME=`cd $BINDIR/.. > /dev/null;pwd`
+
+if [ $# -gt 1 ]; then
+  DEST_DIR=$2
+else 
+  DEST_DIR=${DLOG_HOME}/website
+fi
+
+CONTENT_DIR=${DLOG_ENV}_content
+TMP_DEST_DIR=${DEST_DIR}/temp_${CONTENT_DIR}
+TMP_WEBSITE_DIR=${TMP_DEST_DIR}/website
+
+# build the documents
+
+function build_docs() {
+  version=$1
+  tag=$2
+
+  DOC_DEST_HOME="${TMP_DEST_DIR}/docs_${version}"
+
+  echo "Building the javadoc for version ${version} to ${DOC_DEST_HOME} ..."
+
+  # create the api directory
+  mkdir -p ${DOC_DEST_HOME}/api/java
+  if [ "$version" == "latest" ]; then
+    cd ${DLOG_HOME}
+    # build the javadoc
+    mvn -DskipTests clean package javadoc:aggregate \
+        -Ddoctitle="Apache DistributedLog for Java, version ${version}" \
+        -Dwindowtitle="Apache DistributedLog for Java, version ${version}" \
+        -Dmaven.javadoc.failOnError=false
+    # copy the built javadoc
+    cp -r ${DLOG_HOME}/target/site/apidocs/* ${DOC_DEST_HOME}/api/java
+  else
+    rm -rf /tmp/distributedlog-${version}
+    git clone https://github.com/apache/distributedlog.git /tmp/distributedlog-${version}
+    cd /tmp/distributedlog-${version}
+    git checkout $tag
+    # build the javadoc
+    mvn -DskipTests clean package javadoc:aggregate \
+        -Ddoctitle="Apache DistributedLog for Java, version ${version}" \
+        -Dwindowtitle="Apache DistributedLog for Java, version ${version}" \
+        -Dnotimestamp \
+        -Dmaven.javadoc.failOnError=false
+    # copy the built javadoc
+    cp -r /tmp/distributedlog-${version}/target/site/apidocs/* ${DOC_DEST_HOME}/api/java
+  fi
+  echo "Built the javadoc for version ${version} in ${DOC_DEST_HOME}."
+}
+
+copy_docs() {
+  version=$1
+  [[ -d ${DEST_DIR}/${CONTENT_DIR}/docs/${version}/api/java ]] && rm -r ${DEST_DIR}/${CONTENT_DIR}/docs/${version}/api/java
+  mkdir -p ${DEST_DIR}/${CONTENT_DIR}/docs/${version}/api
+  cp -r ${TMP_DEST_DIR}/docs_${version}/api/java ${DEST_DIR}/${CONTENT_DIR}/docs/${version}/api/java 
+}
+
+# build the javadoc API
+
+build_docs "latest"
+build_docs "0.4.0-incubating" "v0.4.0-incubating_2.11"
+build_docs "0.5.0" "v0.5.0"
+copy_docs "latest"
+copy_docs "0.4.0-incubating"
+copy_docs "0.5.0"
diff --git a/website/build.sh b/website/build.sh
index 471ed51..31a1187 100755
--- a/website/build.sh
+++ b/website/build.sh
@@ -36,7 +36,7 @@
 if [ $# -gt 1 ]; then
   DEST_DIR=$2
 else 
-  DEST_DIR=${DLOG_HOME}
+  DEST_DIR=${DLOG_HOME}/website
 fi
 
 SERVE="FALSE"
@@ -44,10 +44,11 @@
   SERVE="TRUE"
 fi
 
-TMP_DEST_DIR=${DEST_DIR}/temp_content
+CONTENT_DIR=${DLOG_ENV}_content
+TMP_DEST_DIR=${DEST_DIR}/temp_${CONTENT_DIR}
 TMP_WEBSITE_DIR=${TMP_DEST_DIR}/website
 
-rm -rf ${DEST_DIR}/content
+rm -rf ${DEST_DIR}/${CONTENT_DIR}
 rm -rf ${TMP_DEST_DIR}
 
 if [ ! -d "${DLOG_HOME}/website/docs" ]; then
@@ -65,45 +66,28 @@
 
 # build the documents
 
-function build_docs() {
+build_docs() {
   version=$1
   tag=$2
 
-  echo "Building the documentation for version ${version} ..."
-
   DOC_SRC_HOME="${DLOG_HOME}/website/docs/${version}"
   DOC_DEST_HOME="${TMP_DEST_DIR}/docs_${version}"
 
   cd ${DOC_SRC_HOME}
+  echo ""
+  echo "@${DOC_SRC_HOME}"
+  echo "Building the documentation for version ${version} to ${DOC_DEST_HOME} ..."
 
   bundle exec jekyll build --destination ${DOC_DEST_HOME} --config _config.yml,${OVERRIDED_CONFIG}
 
-  # create the api directory
-  mkdir -p ${DOC_DEST_HOME}/api/java
-  if [ "$version" == "latest" ]; then
-    cd ${DLOG_HOME}
-    # build the javadoc
-    mvn -DskipTests clean package javadoc:aggregate \
-        -Ddoctitle="Apache DistributedLog for Java, version ${version}" \
-        -Dwindowtitle="Apache DistributedLog for Java, version ${version}" \
-        -Dmaven.javadoc.failOnError=false
-    # copy the built javadoc
-    cp -r ${DLOG_HOME}/target/site/apidocs/* ${DOC_DEST_HOME}/api/java
-  else
-    rm -rf /tmp/distributedlog-${version}
-    git clone https://github.com/apache/distributedlog.git /tmp/distributedlog-${version}
-    cd /tmp/distributedlog-${version}
-    git checkout $tag
-    # build the javadoc
-    mvn -DskipTests clean package javadoc:aggregate \
-        -Ddoctitle="Apache DistributedLog for Java, version ${version}" \
-        -Dwindowtitle="Apache DistributedLog for Java, version ${version}" \
-        -Dnotimestamp \
-        -Dmaven.javadoc.failOnError=false
-    # copy the built javadoc
-    cp -r /tmp/distributedlog-${version}/target/site/apidocs/* ${DOC_DEST_HOME}/api/java
-  fi
-  echo "Built the documentation for version ${version}."
+  echo "Built the documentation for version ${version} in ${DOC_DEST_HOME}."
+}
+
+copy_docs() {
+  version=$1
+
+  [[ -d ${DEST_DIR}/${CONTENT_DIR}/docs/${version} ]] && rm -r ${DEST_DIR}/${CONTENT_DIR}/docs/${version}
+  cp -r ${TMP_DEST_DIR}/docs_${version} ${DEST_DIR}/${CONTENT_DIR}/docs/${version}
 }
 
 # build the javadoc API
@@ -112,22 +96,13 @@
 build_docs "0.4.0-incubating" "v0.4.0-incubating_2.11"
 build_docs "0.5.0" "v0.5.0"
 
-cp -r ${TMP_DEST_DIR}/website ${DEST_DIR}/content
-mkdir -p ${DEST_DIR}/content/docs
-[[ -d ${DEST_DIR}/content/docs/latest ]] && rm -r ${DEST_DIR}/content/docs/latest
-[[ -d ${DEST_DIR}/content/docs/0.4.0-incubating ]] && rm -r ${DEST_DIR}/content/docs/0.4.0-incubating
-[[ -d ${DEST_DIR}/content/docs/0.5.0]] && rm -r ${DEST_DIR}/content/docs/0.5.0
-cp -r ${TMP_DEST_DIR}/docs_latest ${DEST_DIR}/content/docs/latest
-cp -r ${TMP_DEST_DIR}/docs_0.4.0-incubating ${DEST_DIR}/content/docs/0.4.0-incubating
-cp -r ${TMP_DEST_DIR}/docs_0.5.0 ${DEST_DIR}/content/docs/0.5.0
-
-cp -r ${TMP_DEST_DIR}/website ${DEST_DIR}/content
-mkdir -p ${DEST_DIR}/content/docs
-cp -r ${TMP_DEST_DIR}/docs_latest ${DEST_DIR}/content/docs/latest
-cp -r ${TMP_DEST_DIR}/docs_0.4.0-incubating ${DEST_DIR}/content/docs/0.4.0-incubating
-cp -r ${TMP_DEST_DIR}/docs_0.5.0 ${DEST_DIR}/content/docs/0.5.0
+cp -r ${TMP_DEST_DIR}/website ${DEST_DIR}/${CONTENT_DIR}
+mkdir -p ${DEST_DIR}/${CONTENT_DIR}/docs
+copy_docs "latest"
+copy_docs "0.4.0-incubating"
+copy_docs "0.5.0"
 
 if [[ "${SERVE}" == "TRUE" ]]; then
   cd ${DLOG_HOME}/website
-  bundle exec jekyll serve --destination ${DEST_DIR}/content --config _config.yml,${OVERRIDED_CONFIG} --incremental
+  bundle exec jekyll serve --destination ${DEST_DIR}/${CONTENT_DIR} --config _config.yml,${OVERRIDED_CONFIG} --incremental
 fi
diff --git a/website/docker/Dockerfile b/website/docker/Dockerfile
new file mode 100644
index 0000000..32d435a
--- /dev/null
+++ b/website/docker/Dockerfile
@@ -0,0 +1,20 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+FROM ruby:2.3.0
diff --git a/website/docker/ci.sh b/website/docker/ci.sh
new file mode 100755
index 0000000..44c4e23
--- /dev/null
+++ b/website/docker/ci.sh
@@ -0,0 +1,64 @@
+#!/bin/bash
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -e -x -u
+
+SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
+
+export IMAGE_NAME="bookkeeper/docs"
+
+pushd ${SCRIPT_DIR}
+
+docker build --rm=true -t ${IMAGE_NAME} .
+
+popd
+
+if [ "$(uname -s)" == "Linux" ]; then
+  USER_NAME=${SUDO_USER:=$USER}
+  USER_ID=$(id -u "${USER_NAME}")
+  GROUP_ID=$(id -g "${USER_NAME}")
+  LOCAL_HOME="/home/${USER_NAME}"
+else # boot2docker uid and gid
+  USER_NAME=$USER
+  USER_ID=1000
+  GROUP_ID=50
+  LOCAL_HOME="/Users/${USER_NAME}"
+fi
+
+docker build -t "${IMAGE_NAME}-${USER_NAME}" - <<UserSpecificDocker
+FROM ${IMAGE_NAME}
+RUN groupadd --non-unique -g ${GROUP_ID} ${USER_NAME} && \
+  useradd -g ${GROUP_ID} -u ${USER_ID} -k /root -m ${USER_NAME}
+ENV  HOME /home/${USER_NAME}
+UserSpecificDocker
+
+BOOKKEEPER_DOC_ROOT=${SCRIPT_DIR}/..
+
+pushd ${BOOKKEEPER_DOC_ROOT}
+
+docker run \
+  --rm=true \
+  -w ${BOOKKEEPER_DOC_ROOT} \
+  -u "${USER}" \
+  -v "${BOOKKEEPER_DOC_ROOT}:${BOOKKEEPER_DOC_ROOT}" \
+  -v "${LOCAL_HOME}:/home/${USER_NAME}" \
+  -e JEKYLL_ENV='production' \
+  ${IMAGE_NAME}-${USER_NAME} \
+  bash -c "make setup && make apache"
+
+popd
+
diff --git a/website/docker/run.sh b/website/docker/run.sh
new file mode 100755
index 0000000..f6392db
--- /dev/null
+++ b/website/docker/run.sh
@@ -0,0 +1,76 @@
+#!/bin/bash
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -e -x -u
+
+SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
+
+export IMAGE_NAME="distributedlog/docs"
+
+pushd ${SCRIPT_DIR}
+
+docker build --rm=true -t ${IMAGE_NAME} .
+
+popd
+
+if [ "$(uname -s)" == "Linux" ]; then
+  USER_NAME=${SUDO_USER:=$USER}
+  USER_ID=$(id -u "${USER_NAME}")
+  GROUP_ID=$(id -g "${USER_NAME}")
+  LOCAL_HOME="/home/${USER_NAME}"
+else # boot2docker uid and gid
+  USER_NAME=$USER
+  USER_ID=1000
+  GROUP_ID=50
+  LOCAL_HOME="/Users/${USER_NAME}"
+fi
+
+docker build -t "${IMAGE_NAME}-${USER_NAME}" - <<UserSpecificDocker
+FROM ${IMAGE_NAME}
+RUN groupadd --non-unique -g ${GROUP_ID} ${USER_NAME} && \
+  useradd -g ${GROUP_ID} -u ${USER_ID} -k /root -m ${USER_NAME}
+ENV  HOME /home/${USER_NAME}
+UserSpecificDocker
+
+DLOG_DOC_ROOT=${SCRIPT_DIR}/..
+
+CMD="
+echo
+echo 'Welcome to Apache DistributedLog docs'
+echo 'To build, execute'
+echo '  make build'
+echo 'To watch and regenerate automatically'
+echo '  make serve'
+echo 'and access http://localhost:4000'
+echo
+bash
+"
+
+pushd ${DLOG_DOC_ROOT}
+
+docker run -i -t \
+  --rm=true \
+  -w ${DLOG_DOC_ROOT} \
+  -u "${USER}" \
+  -v "${DLOG_DOC_ROOT}:${DLOG_DOC_ROOT}" \
+  -v "${LOCAL_HOME}:/home/${USER_NAME}" \
+  -p 4000:4000 \
+  ${IMAGE_NAME}-${USER_NAME} \
+  bash -c "${CMD}"
+
+popd
+
diff --git a/website/docs/0.4.0-incubating/_config-apache.yml b/website/docs/0.4.0-incubating/_config-apache.yml
index 305c08f..682ea26 100644
--- a/website/docs/0.4.0-incubating/_config-apache.yml
+++ b/website/docs/0.4.0-incubating/_config-apache.yml
@@ -1 +1,2 @@
 baseurl: "/distributedlog/docs/0.4.0-incubating"
+logo_url: "/distributedlog"
diff --git a/website/docs/0.4.0-incubating/_config-production.yml b/website/docs/0.4.0-incubating/_config-production.yml
index 00fdd3c..294bf52 100644
--- a/website/docs/0.4.0-incubating/_config-production.yml
+++ b/website/docs/0.4.0-incubating/_config-production.yml
@@ -1 +1,2 @@
 baseurl: "/docs/0.4.0-incubating"
+logo_url: "/"
diff --git a/website/docs/0.4.0-incubating/_config.yml b/website/docs/0.4.0-incubating/_config.yml
index 5a2eb62..085b224 100644
--- a/website/docs/0.4.0-incubating/_config.yml
+++ b/website/docs/0.4.0-incubating/_config.yml
@@ -12,6 +12,7 @@
 
 # the subpath of your site, e.g. /blog
 baseurl: ""
+logo_url: "/"
 
 distributedlog_version: "0.4.0-incubating"
 distributedlog_version_short: "0.4.0"
diff --git a/website/docs/0.4.0-incubating/_includes/header.html b/website/docs/0.4.0-incubating/_includes/header.html
index b1962db..ab79d22 100644
--- a/website/docs/0.4.0-incubating/_includes/header.html
+++ b/website/docs/0.4.0-incubating/_includes/header.html
@@ -2,7 +2,7 @@
 <nav class="navbar navbar-default navbar-fixed-top">
   <div class="container">
     <div class="navbar-header">
-      <a href="/distributedlog" class="navbar-brand" >
+      <a href="{{ site.logo_url }}" class="navbar-brand" >
         <img alt="Brand" style="height: 28px" src="{{ "/images/distributedlog_logo_navbar.png" | prepend: site.baseurl }}">
       </a>
       <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
diff --git a/website/docs/0.5.0/_config-apache.yml b/website/docs/0.5.0/_config-apache.yml
index bf395a3..a1d7220 100644
--- a/website/docs/0.5.0/_config-apache.yml
+++ b/website/docs/0.5.0/_config-apache.yml
@@ -1 +1,2 @@
-baseurl: "/distributedlog/docs/latest"
+baseurl: "/distributedlog/docs/0.5.0"
+logo_url: "/distributedlog"
diff --git a/website/docs/0.5.0/_config-production.yml b/website/docs/0.5.0/_config-production.yml
index d5c50d4..e438e54 100644
--- a/website/docs/0.5.0/_config-production.yml
+++ b/website/docs/0.5.0/_config-production.yml
@@ -1 +1,2 @@
 baseurl: "/docs/latest"
+logo_url: "/"
diff --git a/website/docs/0.5.0/_config.yml b/website/docs/0.5.0/_config.yml
index 674b806..711689f 100644
--- a/website/docs/0.5.0/_config.yml
+++ b/website/docs/0.5.0/_config.yml
@@ -12,6 +12,7 @@
 
 # the subpath of your site, e.g. /blog
 baseurl: ""
+logo_url: "/"
 
 distributedlog_version: "0.5.0"
 distributedlog_version_short: "0.5.0"
diff --git a/website/docs/0.5.0/_includes/header.html b/website/docs/0.5.0/_includes/header.html
index b1962db..ab79d22 100644
--- a/website/docs/0.5.0/_includes/header.html
+++ b/website/docs/0.5.0/_includes/header.html
@@ -2,7 +2,7 @@
 <nav class="navbar navbar-default navbar-fixed-top">
   <div class="container">
     <div class="navbar-header">
-      <a href="/distributedlog" class="navbar-brand" >
+      <a href="{{ site.logo_url }}" class="navbar-brand" >
         <img alt="Brand" style="height: 28px" src="{{ "/images/distributedlog_logo_navbar.png" | prepend: site.baseurl }}">
       </a>
       <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
diff --git a/website/docs/0.5.0/releaseNotes.md b/website/docs/0.5.0/releaseNotes.md
index 83cfaf4..cd58a67 100644
--- a/website/docs/0.5.0/releaseNotes.md
+++ b/website/docs/0.5.0/releaseNotes.md
@@ -1,5 +1,6 @@
 ---
 title: Apache DistributedLog 0.5.0 Release Notes
+layout: default
 ---
 
 This is the second Apache release of DistributedLog and the first release as a sub-project of Apache BookKeeper!
diff --git a/website/docs/0.5.0/start/download.rst b/website/docs/0.5.0/start/download.rst
index 2a96d5d..61fde56 100644
--- a/website/docs/0.5.0/start/download.rst
+++ b/website/docs/0.5.0/start/download.rst
@@ -18,25 +18,39 @@
 0.5.0
 ~~~~~~~~~~~~~~~~
 
-This is the second Apache release and the first release after graduating from Apache Incubator. Download here_.
+This is the second Apache release and the first release after graduating from Apache Incubator. Download `here`__.
 
-- `Release Notes`_
+.. _Download050: https://dist.apache.org/repos/dist/release/bookkeeper/distributedlog/0.5.0
 
-.. _here: https://dist.apache.org/repos/dist/release/bookkeeper/distributedlog/0.5.0
-.. _Release Notes: ../../releaseNotes
+__ Download050_ 
+
+- `Release Notes`__
+
+.. _ReleaseNotes050: ../../0.5.0/releaseNotes
+
+__ ReleaseNotes050_
 
 
 0.4.0-incubating
 ~~~~~~~~~~~~~~~~
 
-This is the first Apache release. Download here_.
+This is the first Apache release. Download `here`__.
 
-- `Release Notes`_
-- `Announce Blog Post`_
+.. _Download040: https://dist.apache.org/repos/dist/release/bookkeeper/distributedlog/0.4.0-incubating
 
-.. _here: https://dist.apache.org/repos/dist/release/bookkeeper/distributedlog/0.4.0-incubating
-.. _Release Notes: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12320620&version=12337980
-.. _Announce Blog Post: /distributedlog/releases/2017/04/23/the-first-release.html
+__ Download040_
+
+- `Release Notes`__
+
+.. _ReleaseNotes040: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12320620&version=12337980
+
+__ ReleaseNotes040_
+
+- `Announce Blog Post`__
+
+.. _AnnounceBlogPost040: /distributedlog/releases/2017/04/23/the-first-release.html
+
+__ AnnounceBlogPost040_
 
 
 The releases before Apache Incubating are also listed as below:
diff --git a/website/docs/latest b/website/docs/latest
deleted file mode 120000
index 92a7f82..0000000
--- a/website/docs/latest
+++ /dev/null
@@ -1 +0,0 @@
-../../docs
\ No newline at end of file
diff --git a/docs/.gitignore b/website/docs/latest/.gitignore
similarity index 100%
rename from docs/.gitignore
rename to website/docs/latest/.gitignore
diff --git a/docs/Gemfile b/website/docs/latest/Gemfile
similarity index 100%
rename from docs/Gemfile
rename to website/docs/latest/Gemfile
diff --git a/docs/Gemfile.lock b/website/docs/latest/Gemfile.lock
similarity index 100%
rename from docs/Gemfile.lock
rename to website/docs/latest/Gemfile.lock
diff --git a/docs/README.md b/website/docs/latest/README.md
similarity index 100%
rename from docs/README.md
rename to website/docs/latest/README.md
diff --git a/docs/Rakefile b/website/docs/latest/Rakefile
similarity index 100%
rename from docs/Rakefile
rename to website/docs/latest/Rakefile
diff --git a/website/docs/latest/_config-apache.yml b/website/docs/latest/_config-apache.yml
new file mode 100644
index 0000000..5761ca0
--- /dev/null
+++ b/website/docs/latest/_config-apache.yml
@@ -0,0 +1,2 @@
+baseurl: "/distributedlog/docs/latest"
+logo_url: "/distributedlog"
diff --git a/docs/_config-local.yml b/website/docs/latest/_config-local.yml
similarity index 100%
rename from docs/_config-local.yml
rename to website/docs/latest/_config-local.yml
diff --git a/docs/_config-production.yml b/website/docs/latest/_config-production.yml
similarity index 63%
rename from docs/_config-production.yml
rename to website/docs/latest/_config-production.yml
index d5c50d4..e438e54 100644
--- a/docs/_config-production.yml
+++ b/website/docs/latest/_config-production.yml
@@ -1 +1,2 @@
 baseurl: "/docs/latest"
+logo_url: "/"
diff --git a/docs/_config-staging.yml b/website/docs/latest/_config-staging.yml
similarity index 100%
rename from docs/_config-staging.yml
rename to website/docs/latest/_config-staging.yml
diff --git a/docs/_config.yml b/website/docs/latest/_config.yml
similarity index 93%
rename from docs/_config.yml
rename to website/docs/latest/_config.yml
index 0d8a8e3..d8bd8e0 100644
--- a/docs/_config.yml
+++ b/website/docs/latest/_config.yml
@@ -12,9 +12,10 @@
 
 # the subpath of your site, e.g. /blog
 baseurl: ""
+logo_url: "/"
 
-distributedlog_version: "0.5.0-SNAPSHOT"
-distributedlog_version_short: "0.5.0"
+distributedlog_version: "0.6.0-SNAPSHOT"
+distributedlog_version_short: "0.6.0"
 
 # the base hostname & protocol for your site
 url: "http://bookkeeper.apache.org/distributedlog"
diff --git a/docs/_includes/anchors_links.html b/website/docs/latest/_includes/anchors_links.html
similarity index 100%
rename from docs/_includes/anchors_links.html
rename to website/docs/latest/_includes/anchors_links.html
diff --git a/docs/_includes/footer.html b/website/docs/latest/_includes/footer.html
similarity index 100%
rename from docs/_includes/footer.html
rename to website/docs/latest/_includes/footer.html
diff --git a/docs/_includes/head.html b/website/docs/latest/_includes/head.html
similarity index 100%
rename from docs/_includes/head.html
rename to website/docs/latest/_includes/head.html
diff --git a/docs/_includes/header.html b/website/docs/latest/_includes/header.html
similarity index 98%
rename from docs/_includes/header.html
rename to website/docs/latest/_includes/header.html
index b1962db..ab79d22 100644
--- a/docs/_includes/header.html
+++ b/website/docs/latest/_includes/header.html
@@ -2,7 +2,7 @@
 <nav class="navbar navbar-default navbar-fixed-top">
   <div class="container">
     <div class="navbar-header">
-      <a href="/distributedlog" class="navbar-brand" >
+      <a href="{{ site.logo_url }}" class="navbar-brand" >
         <img alt="Brand" style="height: 28px" src="{{ "/images/distributedlog_logo_navbar.png" | prepend: site.baseurl }}">
       </a>
       <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
diff --git a/docs/_layouts/base.html b/website/docs/latest/_layouts/base.html
similarity index 100%
rename from docs/_layouts/base.html
rename to website/docs/latest/_layouts/base.html
diff --git a/docs/_layouts/default.html b/website/docs/latest/_layouts/default.html
similarity index 100%
rename from docs/_layouts/default.html
rename to website/docs/latest/_layouts/default.html
diff --git a/docs/_layouts/guide.html b/website/docs/latest/_layouts/guide.html
similarity index 100%
rename from docs/_layouts/guide.html
rename to website/docs/latest/_layouts/guide.html
diff --git a/docs/_plugins/jekyll-rst/.gitignore b/website/docs/latest/_plugins/jekyll-rst/.gitignore
similarity index 100%
rename from docs/_plugins/jekyll-rst/.gitignore
rename to website/docs/latest/_plugins/jekyll-rst/.gitignore
diff --git a/docs/_plugins/jekyll-rst/LICENSE.txt b/website/docs/latest/_plugins/jekyll-rst/LICENSE.txt
similarity index 100%
rename from docs/_plugins/jekyll-rst/LICENSE.txt
rename to website/docs/latest/_plugins/jekyll-rst/LICENSE.txt
diff --git a/docs/_plugins/jekyll-rst/README.rst b/website/docs/latest/_plugins/jekyll-rst/README.rst
similarity index 100%
rename from docs/_plugins/jekyll-rst/README.rst
rename to website/docs/latest/_plugins/jekyll-rst/README.rst
diff --git a/docs/_plugins/jekyll-rst/converter.rb b/website/docs/latest/_plugins/jekyll-rst/converter.rb
similarity index 100%
rename from docs/_plugins/jekyll-rst/converter.rb
rename to website/docs/latest/_plugins/jekyll-rst/converter.rb
diff --git a/docs/_plugins/jekyll-rst/directives.py b/website/docs/latest/_plugins/jekyll-rst/directives.py
similarity index 100%
rename from docs/_plugins/jekyll-rst/directives.py
rename to website/docs/latest/_plugins/jekyll-rst/directives.py
diff --git a/docs/_plugins/jekyll-rst/rst2html.py b/website/docs/latest/_plugins/jekyll-rst/rst2html.py
similarity index 100%
rename from docs/_plugins/jekyll-rst/rst2html.py
rename to website/docs/latest/_plugins/jekyll-rst/rst2html.py
diff --git a/docs/_plugins/jekyll-rst/transform.py b/website/docs/latest/_plugins/jekyll-rst/transform.py
similarity index 100%
rename from docs/_plugins/jekyll-rst/transform.py
rename to website/docs/latest/_plugins/jekyll-rst/transform.py
diff --git a/docs/_sass/_base.scss b/website/docs/latest/_sass/_base.scss
similarity index 100%
rename from docs/_sass/_base.scss
rename to website/docs/latest/_sass/_base.scss
diff --git a/docs/_sass/_bootstrap.scss b/website/docs/latest/_sass/_bootstrap.scss
similarity index 100%
rename from docs/_sass/_bootstrap.scss
rename to website/docs/latest/_sass/_bootstrap.scss
diff --git a/docs/_sass/_layout.scss b/website/docs/latest/_sass/_layout.scss
similarity index 100%
rename from docs/_sass/_layout.scss
rename to website/docs/latest/_sass/_layout.scss
diff --git a/docs/_sass/_syntax-highlighting.scss b/website/docs/latest/_sass/_syntax-highlighting.scss
similarity index 100%
rename from docs/_sass/_syntax-highlighting.scss
rename to website/docs/latest/_sass/_syntax-highlighting.scss
diff --git a/docs/_sass/bootstrap/_alerts.scss b/website/docs/latest/_sass/bootstrap/_alerts.scss
similarity index 100%
rename from docs/_sass/bootstrap/_alerts.scss
rename to website/docs/latest/_sass/bootstrap/_alerts.scss
diff --git a/docs/_sass/bootstrap/_badges.scss b/website/docs/latest/_sass/bootstrap/_badges.scss
similarity index 100%
rename from docs/_sass/bootstrap/_badges.scss
rename to website/docs/latest/_sass/bootstrap/_badges.scss
diff --git a/docs/_sass/bootstrap/_breadcrumbs.scss b/website/docs/latest/_sass/bootstrap/_breadcrumbs.scss
similarity index 100%
rename from docs/_sass/bootstrap/_breadcrumbs.scss
rename to website/docs/latest/_sass/bootstrap/_breadcrumbs.scss
diff --git a/docs/_sass/bootstrap/_button-groups.scss b/website/docs/latest/_sass/bootstrap/_button-groups.scss
similarity index 100%
rename from docs/_sass/bootstrap/_button-groups.scss
rename to website/docs/latest/_sass/bootstrap/_button-groups.scss
diff --git a/docs/_sass/bootstrap/_buttons.scss b/website/docs/latest/_sass/bootstrap/_buttons.scss
similarity index 100%
rename from docs/_sass/bootstrap/_buttons.scss
rename to website/docs/latest/_sass/bootstrap/_buttons.scss
diff --git a/docs/_sass/bootstrap/_carousel.scss b/website/docs/latest/_sass/bootstrap/_carousel.scss
similarity index 100%
rename from docs/_sass/bootstrap/_carousel.scss
rename to website/docs/latest/_sass/bootstrap/_carousel.scss
diff --git a/docs/_sass/bootstrap/_close.scss b/website/docs/latest/_sass/bootstrap/_close.scss
similarity index 100%
rename from docs/_sass/bootstrap/_close.scss
rename to website/docs/latest/_sass/bootstrap/_close.scss
diff --git a/docs/_sass/bootstrap/_code.scss b/website/docs/latest/_sass/bootstrap/_code.scss
similarity index 100%
rename from docs/_sass/bootstrap/_code.scss
rename to website/docs/latest/_sass/bootstrap/_code.scss
diff --git a/docs/_sass/bootstrap/_component-animations.scss b/website/docs/latest/_sass/bootstrap/_component-animations.scss
similarity index 100%
rename from docs/_sass/bootstrap/_component-animations.scss
rename to website/docs/latest/_sass/bootstrap/_component-animations.scss
diff --git a/docs/_sass/bootstrap/_dropdowns.scss b/website/docs/latest/_sass/bootstrap/_dropdowns.scss
similarity index 100%
rename from docs/_sass/bootstrap/_dropdowns.scss
rename to website/docs/latest/_sass/bootstrap/_dropdowns.scss
diff --git a/docs/_sass/bootstrap/_forms.scss b/website/docs/latest/_sass/bootstrap/_forms.scss
similarity index 100%
rename from docs/_sass/bootstrap/_forms.scss
rename to website/docs/latest/_sass/bootstrap/_forms.scss
diff --git a/docs/_sass/bootstrap/_glyphicons.scss b/website/docs/latest/_sass/bootstrap/_glyphicons.scss
similarity index 100%
rename from docs/_sass/bootstrap/_glyphicons.scss
rename to website/docs/latest/_sass/bootstrap/_glyphicons.scss
diff --git a/docs/_sass/bootstrap/_grid.scss b/website/docs/latest/_sass/bootstrap/_grid.scss
similarity index 100%
rename from docs/_sass/bootstrap/_grid.scss
rename to website/docs/latest/_sass/bootstrap/_grid.scss
diff --git a/docs/_sass/bootstrap/_input-groups.scss b/website/docs/latest/_sass/bootstrap/_input-groups.scss
similarity index 100%
rename from docs/_sass/bootstrap/_input-groups.scss
rename to website/docs/latest/_sass/bootstrap/_input-groups.scss
diff --git a/docs/_sass/bootstrap/_jumbotron.scss b/website/docs/latest/_sass/bootstrap/_jumbotron.scss
similarity index 100%
rename from docs/_sass/bootstrap/_jumbotron.scss
rename to website/docs/latest/_sass/bootstrap/_jumbotron.scss
diff --git a/docs/_sass/bootstrap/_labels.scss b/website/docs/latest/_sass/bootstrap/_labels.scss
similarity index 100%
rename from docs/_sass/bootstrap/_labels.scss
rename to website/docs/latest/_sass/bootstrap/_labels.scss
diff --git a/docs/_sass/bootstrap/_list-group.scss b/website/docs/latest/_sass/bootstrap/_list-group.scss
similarity index 100%
rename from docs/_sass/bootstrap/_list-group.scss
rename to website/docs/latest/_sass/bootstrap/_list-group.scss
diff --git a/docs/_sass/bootstrap/_media.scss b/website/docs/latest/_sass/bootstrap/_media.scss
similarity index 100%
rename from docs/_sass/bootstrap/_media.scss
rename to website/docs/latest/_sass/bootstrap/_media.scss
diff --git a/docs/_sass/bootstrap/_mixins.scss b/website/docs/latest/_sass/bootstrap/_mixins.scss
similarity index 100%
rename from docs/_sass/bootstrap/_mixins.scss
rename to website/docs/latest/_sass/bootstrap/_mixins.scss
diff --git a/docs/_sass/bootstrap/_modals.scss b/website/docs/latest/_sass/bootstrap/_modals.scss
similarity index 100%
rename from docs/_sass/bootstrap/_modals.scss
rename to website/docs/latest/_sass/bootstrap/_modals.scss
diff --git a/docs/_sass/bootstrap/_navbar.scss b/website/docs/latest/_sass/bootstrap/_navbar.scss
similarity index 100%
rename from docs/_sass/bootstrap/_navbar.scss
rename to website/docs/latest/_sass/bootstrap/_navbar.scss
diff --git a/docs/_sass/bootstrap/_navs.scss b/website/docs/latest/_sass/bootstrap/_navs.scss
similarity index 100%
rename from docs/_sass/bootstrap/_navs.scss
rename to website/docs/latest/_sass/bootstrap/_navs.scss
diff --git a/docs/_sass/bootstrap/_normalize.scss b/website/docs/latest/_sass/bootstrap/_normalize.scss
similarity index 100%
rename from docs/_sass/bootstrap/_normalize.scss
rename to website/docs/latest/_sass/bootstrap/_normalize.scss
diff --git a/docs/_sass/bootstrap/_pager.scss b/website/docs/latest/_sass/bootstrap/_pager.scss
similarity index 100%
rename from docs/_sass/bootstrap/_pager.scss
rename to website/docs/latest/_sass/bootstrap/_pager.scss
diff --git a/docs/_sass/bootstrap/_pagination.scss b/website/docs/latest/_sass/bootstrap/_pagination.scss
similarity index 100%
rename from docs/_sass/bootstrap/_pagination.scss
rename to website/docs/latest/_sass/bootstrap/_pagination.scss
diff --git a/docs/_sass/bootstrap/_panels.scss b/website/docs/latest/_sass/bootstrap/_panels.scss
similarity index 100%
rename from docs/_sass/bootstrap/_panels.scss
rename to website/docs/latest/_sass/bootstrap/_panels.scss
diff --git a/docs/_sass/bootstrap/_popovers.scss b/website/docs/latest/_sass/bootstrap/_popovers.scss
similarity index 100%
rename from docs/_sass/bootstrap/_popovers.scss
rename to website/docs/latest/_sass/bootstrap/_popovers.scss
diff --git a/docs/_sass/bootstrap/_print.scss b/website/docs/latest/_sass/bootstrap/_print.scss
similarity index 100%
rename from docs/_sass/bootstrap/_print.scss
rename to website/docs/latest/_sass/bootstrap/_print.scss
diff --git a/docs/_sass/bootstrap/_progress-bars.scss b/website/docs/latest/_sass/bootstrap/_progress-bars.scss
similarity index 100%
rename from docs/_sass/bootstrap/_progress-bars.scss
rename to website/docs/latest/_sass/bootstrap/_progress-bars.scss
diff --git a/docs/_sass/bootstrap/_responsive-embed.scss b/website/docs/latest/_sass/bootstrap/_responsive-embed.scss
similarity index 100%
rename from docs/_sass/bootstrap/_responsive-embed.scss
rename to website/docs/latest/_sass/bootstrap/_responsive-embed.scss
diff --git a/docs/_sass/bootstrap/_responsive-utilities.scss b/website/docs/latest/_sass/bootstrap/_responsive-utilities.scss
similarity index 100%
rename from docs/_sass/bootstrap/_responsive-utilities.scss
rename to website/docs/latest/_sass/bootstrap/_responsive-utilities.scss
diff --git a/docs/_sass/bootstrap/_scaffolding.scss b/website/docs/latest/_sass/bootstrap/_scaffolding.scss
similarity index 100%
rename from docs/_sass/bootstrap/_scaffolding.scss
rename to website/docs/latest/_sass/bootstrap/_scaffolding.scss
diff --git a/docs/_sass/bootstrap/_tables.scss b/website/docs/latest/_sass/bootstrap/_tables.scss
similarity index 100%
rename from docs/_sass/bootstrap/_tables.scss
rename to website/docs/latest/_sass/bootstrap/_tables.scss
diff --git a/docs/_sass/bootstrap/_theme.scss b/website/docs/latest/_sass/bootstrap/_theme.scss
similarity index 100%
rename from docs/_sass/bootstrap/_theme.scss
rename to website/docs/latest/_sass/bootstrap/_theme.scss
diff --git a/docs/_sass/bootstrap/_thumbnails.scss b/website/docs/latest/_sass/bootstrap/_thumbnails.scss
similarity index 100%
rename from docs/_sass/bootstrap/_thumbnails.scss
rename to website/docs/latest/_sass/bootstrap/_thumbnails.scss
diff --git a/docs/_sass/bootstrap/_tooltip.scss b/website/docs/latest/_sass/bootstrap/_tooltip.scss
similarity index 100%
rename from docs/_sass/bootstrap/_tooltip.scss
rename to website/docs/latest/_sass/bootstrap/_tooltip.scss
diff --git a/docs/_sass/bootstrap/_type.scss b/website/docs/latest/_sass/bootstrap/_type.scss
similarity index 100%
rename from docs/_sass/bootstrap/_type.scss
rename to website/docs/latest/_sass/bootstrap/_type.scss
diff --git a/docs/_sass/bootstrap/_utilities.scss b/website/docs/latest/_sass/bootstrap/_utilities.scss
similarity index 100%
rename from docs/_sass/bootstrap/_utilities.scss
rename to website/docs/latest/_sass/bootstrap/_utilities.scss
diff --git a/docs/_sass/bootstrap/_variables.scss b/website/docs/latest/_sass/bootstrap/_variables.scss
similarity index 100%
rename from docs/_sass/bootstrap/_variables.scss
rename to website/docs/latest/_sass/bootstrap/_variables.scss
diff --git a/docs/_sass/bootstrap/_wells.scss b/website/docs/latest/_sass/bootstrap/_wells.scss
similarity index 100%
rename from docs/_sass/bootstrap/_wells.scss
rename to website/docs/latest/_sass/bootstrap/_wells.scss
diff --git a/docs/_sass/bootstrap/mixins/_alerts.scss b/website/docs/latest/_sass/bootstrap/mixins/_alerts.scss
similarity index 100%
rename from docs/_sass/bootstrap/mixins/_alerts.scss
rename to website/docs/latest/_sass/bootstrap/mixins/_alerts.scss
diff --git a/docs/_sass/bootstrap/mixins/_background-variant.scss b/website/docs/latest/_sass/bootstrap/mixins/_background-variant.scss
similarity index 100%
rename from docs/_sass/bootstrap/mixins/_background-variant.scss
rename to website/docs/latest/_sass/bootstrap/mixins/_background-variant.scss
diff --git a/docs/_sass/bootstrap/mixins/_border-radius.scss b/website/docs/latest/_sass/bootstrap/mixins/_border-radius.scss
similarity index 100%
rename from docs/_sass/bootstrap/mixins/_border-radius.scss
rename to website/docs/latest/_sass/bootstrap/mixins/_border-radius.scss
diff --git a/docs/_sass/bootstrap/mixins/_buttons.scss b/website/docs/latest/_sass/bootstrap/mixins/_buttons.scss
similarity index 100%
rename from docs/_sass/bootstrap/mixins/_buttons.scss
rename to website/docs/latest/_sass/bootstrap/mixins/_buttons.scss
diff --git a/docs/_sass/bootstrap/mixins/_center-block.scss b/website/docs/latest/_sass/bootstrap/mixins/_center-block.scss
similarity index 100%
rename from docs/_sass/bootstrap/mixins/_center-block.scss
rename to website/docs/latest/_sass/bootstrap/mixins/_center-block.scss
diff --git a/docs/_sass/bootstrap/mixins/_clearfix.scss b/website/docs/latest/_sass/bootstrap/mixins/_clearfix.scss
similarity index 100%
rename from docs/_sass/bootstrap/mixins/_clearfix.scss
rename to website/docs/latest/_sass/bootstrap/mixins/_clearfix.scss
diff --git a/docs/_sass/bootstrap/mixins/_forms.scss b/website/docs/latest/_sass/bootstrap/mixins/_forms.scss
similarity index 100%
rename from docs/_sass/bootstrap/mixins/_forms.scss
rename to website/docs/latest/_sass/bootstrap/mixins/_forms.scss
diff --git a/docs/_sass/bootstrap/mixins/_gradients.scss b/website/docs/latest/_sass/bootstrap/mixins/_gradients.scss
similarity index 100%
rename from docs/_sass/bootstrap/mixins/_gradients.scss
rename to website/docs/latest/_sass/bootstrap/mixins/_gradients.scss
diff --git a/docs/_sass/bootstrap/mixins/_grid-framework.scss b/website/docs/latest/_sass/bootstrap/mixins/_grid-framework.scss
similarity index 100%
rename from docs/_sass/bootstrap/mixins/_grid-framework.scss
rename to website/docs/latest/_sass/bootstrap/mixins/_grid-framework.scss
diff --git a/docs/_sass/bootstrap/mixins/_grid.scss b/website/docs/latest/_sass/bootstrap/mixins/_grid.scss
similarity index 100%
rename from docs/_sass/bootstrap/mixins/_grid.scss
rename to website/docs/latest/_sass/bootstrap/mixins/_grid.scss
diff --git a/docs/_sass/bootstrap/mixins/_hide-text.scss b/website/docs/latest/_sass/bootstrap/mixins/_hide-text.scss
similarity index 100%
rename from docs/_sass/bootstrap/mixins/_hide-text.scss
rename to website/docs/latest/_sass/bootstrap/mixins/_hide-text.scss
diff --git a/docs/_sass/bootstrap/mixins/_image.scss b/website/docs/latest/_sass/bootstrap/mixins/_image.scss
similarity index 100%
rename from docs/_sass/bootstrap/mixins/_image.scss
rename to website/docs/latest/_sass/bootstrap/mixins/_image.scss
diff --git a/docs/_sass/bootstrap/mixins/_labels.scss b/website/docs/latest/_sass/bootstrap/mixins/_labels.scss
similarity index 100%
rename from docs/_sass/bootstrap/mixins/_labels.scss
rename to website/docs/latest/_sass/bootstrap/mixins/_labels.scss
diff --git a/docs/_sass/bootstrap/mixins/_list-group.scss b/website/docs/latest/_sass/bootstrap/mixins/_list-group.scss
similarity index 100%
rename from docs/_sass/bootstrap/mixins/_list-group.scss
rename to website/docs/latest/_sass/bootstrap/mixins/_list-group.scss
diff --git a/docs/_sass/bootstrap/mixins/_nav-divider.scss b/website/docs/latest/_sass/bootstrap/mixins/_nav-divider.scss
similarity index 100%
rename from docs/_sass/bootstrap/mixins/_nav-divider.scss
rename to website/docs/latest/_sass/bootstrap/mixins/_nav-divider.scss
diff --git a/docs/_sass/bootstrap/mixins/_nav-vertical-align.scss b/website/docs/latest/_sass/bootstrap/mixins/_nav-vertical-align.scss
similarity index 100%
rename from docs/_sass/bootstrap/mixins/_nav-vertical-align.scss
rename to website/docs/latest/_sass/bootstrap/mixins/_nav-vertical-align.scss
diff --git a/docs/_sass/bootstrap/mixins/_opacity.scss b/website/docs/latest/_sass/bootstrap/mixins/_opacity.scss
similarity index 100%
rename from docs/_sass/bootstrap/mixins/_opacity.scss
rename to website/docs/latest/_sass/bootstrap/mixins/_opacity.scss
diff --git a/docs/_sass/bootstrap/mixins/_pagination.scss b/website/docs/latest/_sass/bootstrap/mixins/_pagination.scss
similarity index 100%
rename from docs/_sass/bootstrap/mixins/_pagination.scss
rename to website/docs/latest/_sass/bootstrap/mixins/_pagination.scss
diff --git a/docs/_sass/bootstrap/mixins/_panels.scss b/website/docs/latest/_sass/bootstrap/mixins/_panels.scss
similarity index 100%
rename from docs/_sass/bootstrap/mixins/_panels.scss
rename to website/docs/latest/_sass/bootstrap/mixins/_panels.scss
diff --git a/docs/_sass/bootstrap/mixins/_progress-bar.scss b/website/docs/latest/_sass/bootstrap/mixins/_progress-bar.scss
similarity index 100%
rename from docs/_sass/bootstrap/mixins/_progress-bar.scss
rename to website/docs/latest/_sass/bootstrap/mixins/_progress-bar.scss
diff --git a/docs/_sass/bootstrap/mixins/_reset-filter.scss b/website/docs/latest/_sass/bootstrap/mixins/_reset-filter.scss
similarity index 100%
rename from docs/_sass/bootstrap/mixins/_reset-filter.scss
rename to website/docs/latest/_sass/bootstrap/mixins/_reset-filter.scss
diff --git a/docs/_sass/bootstrap/mixins/_reset-text.scss b/website/docs/latest/_sass/bootstrap/mixins/_reset-text.scss
similarity index 100%
rename from docs/_sass/bootstrap/mixins/_reset-text.scss
rename to website/docs/latest/_sass/bootstrap/mixins/_reset-text.scss
diff --git a/docs/_sass/bootstrap/mixins/_resize.scss b/website/docs/latest/_sass/bootstrap/mixins/_resize.scss
similarity index 100%
rename from docs/_sass/bootstrap/mixins/_resize.scss
rename to website/docs/latest/_sass/bootstrap/mixins/_resize.scss
diff --git a/docs/_sass/bootstrap/mixins/_responsive-visibility.scss b/website/docs/latest/_sass/bootstrap/mixins/_responsive-visibility.scss
similarity index 100%
rename from docs/_sass/bootstrap/mixins/_responsive-visibility.scss
rename to website/docs/latest/_sass/bootstrap/mixins/_responsive-visibility.scss
diff --git a/docs/_sass/bootstrap/mixins/_size.scss b/website/docs/latest/_sass/bootstrap/mixins/_size.scss
similarity index 100%
rename from docs/_sass/bootstrap/mixins/_size.scss
rename to website/docs/latest/_sass/bootstrap/mixins/_size.scss
diff --git a/docs/_sass/bootstrap/mixins/_tab-focus.scss b/website/docs/latest/_sass/bootstrap/mixins/_tab-focus.scss
similarity index 100%
rename from docs/_sass/bootstrap/mixins/_tab-focus.scss
rename to website/docs/latest/_sass/bootstrap/mixins/_tab-focus.scss
diff --git a/docs/_sass/bootstrap/mixins/_table-row.scss b/website/docs/latest/_sass/bootstrap/mixins/_table-row.scss
similarity index 100%
rename from docs/_sass/bootstrap/mixins/_table-row.scss
rename to website/docs/latest/_sass/bootstrap/mixins/_table-row.scss
diff --git a/docs/_sass/bootstrap/mixins/_text-emphasis.scss b/website/docs/latest/_sass/bootstrap/mixins/_text-emphasis.scss
similarity index 100%
rename from docs/_sass/bootstrap/mixins/_text-emphasis.scss
rename to website/docs/latest/_sass/bootstrap/mixins/_text-emphasis.scss
diff --git a/docs/_sass/bootstrap/mixins/_text-overflow.scss b/website/docs/latest/_sass/bootstrap/mixins/_text-overflow.scss
similarity index 100%
rename from docs/_sass/bootstrap/mixins/_text-overflow.scss
rename to website/docs/latest/_sass/bootstrap/mixins/_text-overflow.scss
diff --git a/docs/_sass/bootstrap/mixins/_vendor-prefixes.scss b/website/docs/latest/_sass/bootstrap/mixins/_vendor-prefixes.scss
similarity index 100%
rename from docs/_sass/bootstrap/mixins/_vendor-prefixes.scss
rename to website/docs/latest/_sass/bootstrap/mixins/_vendor-prefixes.scss
diff --git a/docs/admin_guide/bookkeeper.rst b/website/docs/latest/admin_guide/bookkeeper.rst
similarity index 100%
rename from docs/admin_guide/bookkeeper.rst
rename to website/docs/latest/admin_guide/bookkeeper.rst
diff --git a/docs/admin_guide/hardware.rst b/website/docs/latest/admin_guide/hardware.rst
similarity index 100%
rename from docs/admin_guide/hardware.rst
rename to website/docs/latest/admin_guide/hardware.rst
diff --git a/docs/admin_guide/loadtest.rst b/website/docs/latest/admin_guide/loadtest.rst
similarity index 100%
rename from docs/admin_guide/loadtest.rst
rename to website/docs/latest/admin_guide/loadtest.rst
diff --git a/docs/admin_guide/main.rst b/website/docs/latest/admin_guide/main.rst
similarity index 100%
rename from docs/admin_guide/main.rst
rename to website/docs/latest/admin_guide/main.rst
diff --git a/docs/admin_guide/monitoring.rst b/website/docs/latest/admin_guide/monitoring.rst
similarity index 100%
rename from docs/admin_guide/monitoring.rst
rename to website/docs/latest/admin_guide/monitoring.rst
diff --git a/docs/admin_guide/operations.rst b/website/docs/latest/admin_guide/operations.rst
similarity index 100%
rename from docs/admin_guide/operations.rst
rename to website/docs/latest/admin_guide/operations.rst
diff --git a/docs/admin_guide/performance.rst b/website/docs/latest/admin_guide/performance.rst
similarity index 100%
rename from docs/admin_guide/performance.rst
rename to website/docs/latest/admin_guide/performance.rst
diff --git a/docs/admin_guide/vagrant.rst b/website/docs/latest/admin_guide/vagrant.rst
similarity index 100%
rename from docs/admin_guide/vagrant.rst
rename to website/docs/latest/admin_guide/vagrant.rst
diff --git a/docs/admin_guide/zookeeper.rst b/website/docs/latest/admin_guide/zookeeper.rst
similarity index 100%
rename from docs/admin_guide/zookeeper.rst
rename to website/docs/latest/admin_guide/zookeeper.rst
diff --git a/docs/basics/introduction.rst b/website/docs/latest/basics/introduction.rst
similarity index 100%
rename from docs/basics/introduction.rst
rename to website/docs/latest/basics/introduction.rst
diff --git a/docs/css/main.scss b/website/docs/latest/css/main.scss
similarity index 100%
rename from docs/css/main.scss
rename to website/docs/latest/css/main.scss
diff --git a/docs/css/theme.css b/website/docs/latest/css/theme.css
similarity index 100%
rename from docs/css/theme.css
rename to website/docs/latest/css/theme.css
diff --git a/docs/deployment/cluster.rst b/website/docs/latest/deployment/cluster.rst
similarity index 100%
rename from docs/deployment/cluster.rst
rename to website/docs/latest/deployment/cluster.rst
diff --git a/docs/deployment/docker.rst b/website/docs/latest/deployment/docker.rst
similarity index 100%
rename from docs/deployment/docker.rst
rename to website/docs/latest/deployment/docker.rst
diff --git a/docs/deployment/global-cluster.rst b/website/docs/latest/deployment/global-cluster.rst
similarity index 100%
rename from docs/deployment/global-cluster.rst
rename to website/docs/latest/deployment/global-cluster.rst
diff --git a/docs/fonts/bootstrap/glyphicons-halflings-regular.eot b/website/docs/latest/fonts/bootstrap/glyphicons-halflings-regular.eot
similarity index 100%
rename from docs/fonts/bootstrap/glyphicons-halflings-regular.eot
rename to website/docs/latest/fonts/bootstrap/glyphicons-halflings-regular.eot
Binary files differ
diff --git a/docs/fonts/bootstrap/glyphicons-halflings-regular.svg b/website/docs/latest/fonts/bootstrap/glyphicons-halflings-regular.svg
similarity index 100%
rename from docs/fonts/bootstrap/glyphicons-halflings-regular.svg
rename to website/docs/latest/fonts/bootstrap/glyphicons-halflings-regular.svg
diff --git a/docs/fonts/bootstrap/glyphicons-halflings-regular.ttf b/website/docs/latest/fonts/bootstrap/glyphicons-halflings-regular.ttf
similarity index 100%
rename from docs/fonts/bootstrap/glyphicons-halflings-regular.ttf
rename to website/docs/latest/fonts/bootstrap/glyphicons-halflings-regular.ttf
Binary files differ
diff --git a/docs/fonts/bootstrap/glyphicons-halflings-regular.woff b/website/docs/latest/fonts/bootstrap/glyphicons-halflings-regular.woff
similarity index 100%
rename from docs/fonts/bootstrap/glyphicons-halflings-regular.woff
rename to website/docs/latest/fonts/bootstrap/glyphicons-halflings-regular.woff
Binary files differ
diff --git a/docs/fonts/bootstrap/glyphicons-halflings-regular.woff2 b/website/docs/latest/fonts/bootstrap/glyphicons-halflings-regular.woff2
similarity index 100%
rename from docs/fonts/bootstrap/glyphicons-halflings-regular.woff2
rename to website/docs/latest/fonts/bootstrap/glyphicons-halflings-regular.woff2
Binary files differ
diff --git a/docs/images/costmodel.png b/website/docs/latest/images/costmodel.png
similarity index 100%
rename from docs/images/costmodel.png
rename to website/docs/latest/images/costmodel.png
Binary files differ
diff --git a/docs/images/datamodel.png b/website/docs/latest/images/datamodel.png
similarity index 100%
rename from docs/images/datamodel.png
rename to website/docs/latest/images/datamodel.png
Binary files differ
diff --git a/docs/images/distributedlog_logo_l.png b/website/docs/latest/images/distributedlog_logo_l.png
similarity index 100%
rename from docs/images/distributedlog_logo_l.png
rename to website/docs/latest/images/distributedlog_logo_l.png
Binary files differ
diff --git a/docs/images/distributedlog_logo_navbar.png b/website/docs/latest/images/distributedlog_logo_navbar.png
similarity index 100%
rename from docs/images/distributedlog_logo_navbar.png
rename to website/docs/latest/images/distributedlog_logo_navbar.png
Binary files differ
diff --git a/docs/images/distributedlog_logo_s.png b/website/docs/latest/images/distributedlog_logo_s.png
similarity index 100%
rename from docs/images/distributedlog_logo_s.png
rename to website/docs/latest/images/distributedlog_logo_s.png
Binary files differ
diff --git a/docs/images/distribution.png b/website/docs/latest/images/distribution.png
similarity index 100%
rename from docs/images/distribution.png
rename to website/docs/latest/images/distribution.png
Binary files differ
diff --git a/docs/images/favicon.ico b/website/docs/latest/images/favicon.ico
similarity index 100%
rename from docs/images/favicon.ico
rename to website/docs/latest/images/favicon.ico
Binary files differ
diff --git a/docs/images/fencing.png b/website/docs/latest/images/fencing.png
similarity index 100%
rename from docs/images/fencing.png
rename to website/docs/latest/images/fencing.png
Binary files differ
diff --git a/docs/images/globalreplicatedlog.png b/website/docs/latest/images/globalreplicatedlog.png
similarity index 100%
rename from docs/images/globalreplicatedlog.png
rename to website/docs/latest/images/globalreplicatedlog.png
Binary files differ
diff --git a/docs/images/lacprotocol.png b/website/docs/latest/images/lacprotocol.png
similarity index 100%
rename from docs/images/lacprotocol.png
rename to website/docs/latest/images/lacprotocol.png
Binary files differ
diff --git a/docs/images/logsegments.png b/website/docs/latest/images/logsegments.png
similarity index 100%
rename from docs/images/logsegments.png
rename to website/docs/latest/images/logsegments.png
Binary files differ
diff --git a/docs/images/pubsub.png b/website/docs/latest/images/pubsub.png
similarity index 100%
rename from docs/images/pubsub.png
rename to website/docs/latest/images/pubsub.png
Binary files differ
diff --git a/docs/images/readrequests.png b/website/docs/latest/images/readrequests.png
similarity index 100%
rename from docs/images/readrequests.png
rename to website/docs/latest/images/readrequests.png
Binary files differ
diff --git a/docs/images/requestflow.png b/website/docs/latest/images/requestflow.png
similarity index 100%
rename from docs/images/requestflow.png
rename to website/docs/latest/images/requestflow.png
Binary files differ
diff --git a/docs/images/requestrouting.png b/website/docs/latest/images/requestrouting.png
similarity index 100%
rename from docs/images/requestrouting.png
rename to website/docs/latest/images/requestrouting.png
Binary files differ
diff --git a/docs/images/softwarestack.png b/website/docs/latest/images/softwarestack.png
similarity index 100%
rename from docs/images/softwarestack.png
rename to website/docs/latest/images/softwarestack.png
Binary files differ
diff --git a/docs/index.md b/website/docs/latest/index.md
similarity index 100%
rename from docs/index.md
rename to website/docs/latest/index.md
diff --git a/docs/js/bootstrap-sprockets.js b/website/docs/latest/js/bootstrap-sprockets.js
similarity index 100%
rename from docs/js/bootstrap-sprockets.js
rename to website/docs/latest/js/bootstrap-sprockets.js
diff --git a/docs/js/bootstrap.js b/website/docs/latest/js/bootstrap.js
similarity index 100%
rename from docs/js/bootstrap.js
rename to website/docs/latest/js/bootstrap.js
diff --git a/docs/js/bootstrap.min.js b/website/docs/latest/js/bootstrap.min.js
similarity index 100%
rename from docs/js/bootstrap.min.js
rename to website/docs/latest/js/bootstrap.min.js
diff --git a/docs/js/bootstrap/affix.js b/website/docs/latest/js/bootstrap/affix.js
similarity index 100%
rename from docs/js/bootstrap/affix.js
rename to website/docs/latest/js/bootstrap/affix.js
diff --git a/docs/js/bootstrap/alert.js b/website/docs/latest/js/bootstrap/alert.js
similarity index 100%
rename from docs/js/bootstrap/alert.js
rename to website/docs/latest/js/bootstrap/alert.js
diff --git a/docs/js/bootstrap/button.js b/website/docs/latest/js/bootstrap/button.js
similarity index 100%
rename from docs/js/bootstrap/button.js
rename to website/docs/latest/js/bootstrap/button.js
diff --git a/docs/js/bootstrap/carousel.js b/website/docs/latest/js/bootstrap/carousel.js
similarity index 100%
rename from docs/js/bootstrap/carousel.js
rename to website/docs/latest/js/bootstrap/carousel.js
diff --git a/docs/js/bootstrap/collapse.js b/website/docs/latest/js/bootstrap/collapse.js
similarity index 100%
rename from docs/js/bootstrap/collapse.js
rename to website/docs/latest/js/bootstrap/collapse.js
diff --git a/docs/js/bootstrap/dropdown.js b/website/docs/latest/js/bootstrap/dropdown.js
similarity index 100%
rename from docs/js/bootstrap/dropdown.js
rename to website/docs/latest/js/bootstrap/dropdown.js
diff --git a/docs/js/bootstrap/modal.js b/website/docs/latest/js/bootstrap/modal.js
similarity index 100%
rename from docs/js/bootstrap/modal.js
rename to website/docs/latest/js/bootstrap/modal.js
diff --git a/docs/js/bootstrap/popover.js b/website/docs/latest/js/bootstrap/popover.js
similarity index 100%
rename from docs/js/bootstrap/popover.js
rename to website/docs/latest/js/bootstrap/popover.js
diff --git a/docs/js/bootstrap/scrollspy.js b/website/docs/latest/js/bootstrap/scrollspy.js
similarity index 100%
rename from docs/js/bootstrap/scrollspy.js
rename to website/docs/latest/js/bootstrap/scrollspy.js
diff --git a/docs/js/bootstrap/tab.js b/website/docs/latest/js/bootstrap/tab.js
similarity index 100%
rename from docs/js/bootstrap/tab.js
rename to website/docs/latest/js/bootstrap/tab.js
diff --git a/docs/js/bootstrap/tooltip.js b/website/docs/latest/js/bootstrap/tooltip.js
similarity index 100%
rename from docs/js/bootstrap/tooltip.js
rename to website/docs/latest/js/bootstrap/tooltip.js
diff --git a/docs/js/bootstrap/transition.js b/website/docs/latest/js/bootstrap/transition.js
similarity index 100%
rename from docs/js/bootstrap/transition.js
rename to website/docs/latest/js/bootstrap/transition.js
diff --git a/docs/performance/main.rst b/website/docs/latest/performance/main.rst
similarity index 100%
rename from docs/performance/main.rst
rename to website/docs/latest/performance/main.rst
diff --git a/docs/start/building.rst b/website/docs/latest/start/building.rst
similarity index 100%
rename from docs/start/building.rst
rename to website/docs/latest/start/building.rst
diff --git a/docs/start/download.rst b/website/docs/latest/start/download.rst
similarity index 87%
rename from docs/start/download.rst
rename to website/docs/latest/start/download.rst
index 2a96d5d..61fde56 100644
--- a/docs/start/download.rst
+++ b/website/docs/latest/start/download.rst
@@ -18,25 +18,39 @@
 0.5.0
 ~~~~~~~~~~~~~~~~
 
-This is the second Apache release and the first release after graduating from Apache Incubator. Download here_.
+This is the second Apache release and the first release after graduating from Apache Incubator. Download `here`__.
 
-- `Release Notes`_
+.. _Download050: https://dist.apache.org/repos/dist/release/bookkeeper/distributedlog/0.5.0
 
-.. _here: https://dist.apache.org/repos/dist/release/bookkeeper/distributedlog/0.5.0
-.. _Release Notes: ../../releaseNotes
+__ Download050_ 
+
+- `Release Notes`__
+
+.. _ReleaseNotes050: ../../0.5.0/releaseNotes
+
+__ ReleaseNotes050_
 
 
 0.4.0-incubating
 ~~~~~~~~~~~~~~~~
 
-This is the first Apache release. Download here_.
+This is the first Apache release. Download `here`__.
 
-- `Release Notes`_
-- `Announce Blog Post`_
+.. _Download040: https://dist.apache.org/repos/dist/release/bookkeeper/distributedlog/0.4.0-incubating
 
-.. _here: https://dist.apache.org/repos/dist/release/bookkeeper/distributedlog/0.4.0-incubating
-.. _Release Notes: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12320620&version=12337980
-.. _Announce Blog Post: /distributedlog/releases/2017/04/23/the-first-release.html
+__ Download040_
+
+- `Release Notes`__
+
+.. _ReleaseNotes040: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12320620&version=12337980
+
+__ ReleaseNotes040_
+
+- `Announce Blog Post`__
+
+.. _AnnounceBlogPost040: /distributedlog/releases/2017/04/23/the-first-release.html
+
+__ AnnounceBlogPost040_
 
 
 The releases before Apache Incubating are also listed as below:
diff --git a/docs/start/quickstart.rst b/website/docs/latest/start/quickstart.rst
similarity index 100%
rename from docs/start/quickstart.rst
rename to website/docs/latest/start/quickstart.rst
diff --git a/docs/styles/site.scss b/website/docs/latest/styles/site.scss
similarity index 100%
rename from docs/styles/site.scss
rename to website/docs/latest/styles/site.scss
diff --git a/docs/tutorials/analytics-mapreduce.rst b/website/docs/latest/tutorials/analytics-mapreduce.rst
similarity index 100%
rename from docs/tutorials/analytics-mapreduce.rst
rename to website/docs/latest/tutorials/analytics-mapreduce.rst
diff --git a/docs/tutorials/basic-1.rst b/website/docs/latest/tutorials/basic-1.rst
similarity index 100%
rename from docs/tutorials/basic-1.rst
rename to website/docs/latest/tutorials/basic-1.rst
diff --git a/docs/tutorials/basic-2.rst b/website/docs/latest/tutorials/basic-2.rst
similarity index 100%
rename from docs/tutorials/basic-2.rst
rename to website/docs/latest/tutorials/basic-2.rst
diff --git a/docs/tutorials/basic-3.rst b/website/docs/latest/tutorials/basic-3.rst
similarity index 100%
rename from docs/tutorials/basic-3.rst
rename to website/docs/latest/tutorials/basic-3.rst
diff --git a/docs/tutorials/basic-4.rst b/website/docs/latest/tutorials/basic-4.rst
similarity index 100%
rename from docs/tutorials/basic-4.rst
rename to website/docs/latest/tutorials/basic-4.rst
diff --git a/docs/tutorials/basic-5.rst b/website/docs/latest/tutorials/basic-5.rst
similarity index 100%
rename from docs/tutorials/basic-5.rst
rename to website/docs/latest/tutorials/basic-5.rst
diff --git a/docs/tutorials/basic-6.rst b/website/docs/latest/tutorials/basic-6.rst
similarity index 100%
rename from docs/tutorials/basic-6.rst
rename to website/docs/latest/tutorials/basic-6.rst
diff --git a/docs/tutorials/main.rst b/website/docs/latest/tutorials/main.rst
similarity index 100%
rename from docs/tutorials/main.rst
rename to website/docs/latest/tutorials/main.rst
diff --git a/docs/tutorials/messaging-1.rst b/website/docs/latest/tutorials/messaging-1.rst
similarity index 100%
rename from docs/tutorials/messaging-1.rst
rename to website/docs/latest/tutorials/messaging-1.rst
diff --git a/docs/tutorials/messaging-2.rst b/website/docs/latest/tutorials/messaging-2.rst
similarity index 100%
rename from docs/tutorials/messaging-2.rst
rename to website/docs/latest/tutorials/messaging-2.rst
diff --git a/docs/tutorials/messaging-3.rst b/website/docs/latest/tutorials/messaging-3.rst
similarity index 100%
rename from docs/tutorials/messaging-3.rst
rename to website/docs/latest/tutorials/messaging-3.rst
diff --git a/docs/tutorials/messaging-4.rst b/website/docs/latest/tutorials/messaging-4.rst
similarity index 100%
rename from docs/tutorials/messaging-4.rst
rename to website/docs/latest/tutorials/messaging-4.rst
diff --git a/docs/tutorials/messaging-5.rst b/website/docs/latest/tutorials/messaging-5.rst
similarity index 100%
rename from docs/tutorials/messaging-5.rst
rename to website/docs/latest/tutorials/messaging-5.rst
diff --git a/docs/tutorials/replicatedstatemachines.rst b/website/docs/latest/tutorials/replicatedstatemachines.rst
similarity index 100%
rename from docs/tutorials/replicatedstatemachines.rst
rename to website/docs/latest/tutorials/replicatedstatemachines.rst
diff --git a/docs/user_guide/api/core.rst b/website/docs/latest/user_guide/api/core.rst
similarity index 100%
rename from docs/user_guide/api/core.rst
rename to website/docs/latest/user_guide/api/core.rst
diff --git a/docs/user_guide/api/main.rst b/website/docs/latest/user_guide/api/main.rst
similarity index 100%
rename from docs/user_guide/api/main.rst
rename to website/docs/latest/user_guide/api/main.rst
diff --git a/docs/user_guide/api/practice.rst b/website/docs/latest/user_guide/api/practice.rst
similarity index 100%
rename from docs/user_guide/api/practice.rst
rename to website/docs/latest/user_guide/api/practice.rst
diff --git a/docs/user_guide/api/proxy.rst b/website/docs/latest/user_guide/api/proxy.rst
similarity index 100%
rename from docs/user_guide/api/proxy.rst
rename to website/docs/latest/user_guide/api/proxy.rst
diff --git a/docs/user_guide/architecture/main.rst b/website/docs/latest/user_guide/architecture/main.rst
similarity index 100%
rename from docs/user_guide/architecture/main.rst
rename to website/docs/latest/user_guide/architecture/main.rst
diff --git a/docs/user_guide/configuration/client.rst b/website/docs/latest/user_guide/configuration/client.rst
similarity index 100%
rename from docs/user_guide/configuration/client.rst
rename to website/docs/latest/user_guide/configuration/client.rst
diff --git a/docs/user_guide/configuration/core.rst b/website/docs/latest/user_guide/configuration/core.rst
similarity index 100%
rename from docs/user_guide/configuration/core.rst
rename to website/docs/latest/user_guide/configuration/core.rst
diff --git a/docs/user_guide/configuration/main.rst b/website/docs/latest/user_guide/configuration/main.rst
similarity index 100%
rename from docs/user_guide/configuration/main.rst
rename to website/docs/latest/user_guide/configuration/main.rst
diff --git a/docs/user_guide/configuration/perlog.rst b/website/docs/latest/user_guide/configuration/perlog.rst
similarity index 100%
rename from docs/user_guide/configuration/perlog.rst
rename to website/docs/latest/user_guide/configuration/perlog.rst
diff --git a/docs/user_guide/configuration/proxy.rst b/website/docs/latest/user_guide/configuration/proxy.rst
similarity index 100%
rename from docs/user_guide/configuration/proxy.rst
rename to website/docs/latest/user_guide/configuration/proxy.rst
diff --git a/docs/user_guide/considerations/main.rst b/website/docs/latest/user_guide/considerations/main.rst
similarity index 100%
rename from docs/user_guide/considerations/main.rst
rename to website/docs/latest/user_guide/considerations/main.rst
diff --git a/docs/user_guide/design/main.rst b/website/docs/latest/user_guide/design/main.rst
similarity index 100%
rename from docs/user_guide/design/main.rst
rename to website/docs/latest/user_guide/design/main.rst
diff --git a/docs/user_guide/globalreplicatedlog/main.rst b/website/docs/latest/user_guide/globalreplicatedlog/main.rst
similarity index 100%
rename from docs/user_guide/globalreplicatedlog/main.rst
rename to website/docs/latest/user_guide/globalreplicatedlog/main.rst
diff --git a/docs/user_guide/implementation/core.rst b/website/docs/latest/user_guide/implementation/core.rst
similarity index 100%
rename from docs/user_guide/implementation/core.rst
rename to website/docs/latest/user_guide/implementation/core.rst
diff --git a/docs/user_guide/implementation/main.rst b/website/docs/latest/user_guide/implementation/main.rst
similarity index 100%
rename from docs/user_guide/implementation/main.rst
rename to website/docs/latest/user_guide/implementation/main.rst
diff --git a/docs/user_guide/implementation/storage.rst b/website/docs/latest/user_guide/implementation/storage.rst
similarity index 100%
rename from docs/user_guide/implementation/storage.rst
rename to website/docs/latest/user_guide/implementation/storage.rst
diff --git a/docs/user_guide/implementation/writeproxy.rst b/website/docs/latest/user_guide/implementation/writeproxy.rst
similarity index 100%
rename from docs/user_guide/implementation/writeproxy.rst
rename to website/docs/latest/user_guide/implementation/writeproxy.rst
diff --git a/docs/user_guide/main.rst b/website/docs/latest/user_guide/main.rst
similarity index 100%
rename from docs/user_guide/main.rst
rename to website/docs/latest/user_guide/main.rst
diff --git a/docs/user_guide/references/features.rst b/website/docs/latest/user_guide/references/features.rst
similarity index 100%
rename from docs/user_guide/references/features.rst
rename to website/docs/latest/user_guide/references/features.rst
diff --git a/docs/user_guide/references/main.rst b/website/docs/latest/user_guide/references/main.rst
similarity index 100%
rename from docs/user_guide/references/main.rst
rename to website/docs/latest/user_guide/references/main.rst
diff --git a/docs/user_guide/references/metrics.rst b/website/docs/latest/user_guide/references/metrics.rst
similarity index 100%
rename from docs/user_guide/references/metrics.rst
rename to website/docs/latest/user_guide/references/metrics.rst
diff --git a/website/scripts/publish-website.sh b/website/scripts/publish-website.sh
index 2c0a442..6d05504 100755
--- a/website/scripts/publish-website.sh
+++ b/website/scripts/publish-website.sh
@@ -21,16 +21,25 @@
 # NOTE: this is the script used by CI to push to apache. If you are looking for
 #       staging the changes, try the `staging-website.sh` script.
 
-PROD_DIR=$1
-APACHE_DIR=$2
+CONTENT_ROOT_DIR=$1
 TMP_DIR=/tmp/distributedlog-site-tmp
-ORIGIN_REPO=$(git remote show origin | grep 'Push  URL' | awk -F// '{print $NF}')
+ORIGIN_REPO=$(git remote show apache | grep 'Push  URL' | awk -F// '{print $NF}')
+# ORIGIN_REPO=$(git remote show origin | grep 'Push  URL' | awk -F// '{print $NF}')
 echo "ORIGIN_REPO: $ORIGIN_REPO"
 
+copy_javadoc() {
+  root_dir=$1
+  for dir in `ls $root_dir/docs`; do
+    mkdir -p $root_dir/content/docs/$dir/api/java/
+    cp -r $root_dir/docs/$dir/api/java/* $root_dir/content/docs/$dir/api/java/
+  done
+}
+
 (
   rm -rf $TMP_DIR
   mkdir -p $TMP_DIR
   cd $TMP_DIR
+  REVISION=$(git rev-parse --short HEAD)
 
   # clone the remote repo
   git clone "https://$ORIGIN_REPO" .
@@ -38,8 +47,10 @@
   git config user.email "distributedlog-dev@bookkeeper.apache.org"
   git checkout asf-site
   # copy the apache generated dir
-  # cp -r $PROD_DIR/content/* $TMP_DIR/content/
-  cp -r $APACHE_DIR/content/* $TMP_DIR/
+  cp -r $CONTENT_ROOT_DIR/production_content/* $TMP_DIR/content/
+  cp -r $CONTENT_ROOT_DIR/apache_content/* $TMP_DIR/
+  # copy the javadoc to content
+  copy_javadoc $TMP_DIR
 
   git add -A .
   git diff-index --quiet HEAD || (git commit -m "Updated site at revision $REVISION" && git push -q origin HEAD:asf-site)