brooklyn-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From henev...@apache.org
Subject [11/11] incubator-brooklyn git commit: wholesale copy of master docs (from #458) with version changed to 0.7.0-M2-incubating
Date Tue, 20 Jan 2015 16:37:28 GMT
wholesale copy of master docs (from #458) with version changed to 0.7.0-M2-incubating

with javadoc-overview version also updated (manually), will be factored back in


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/8560033d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/8560033d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/8560033d

Branch: refs/heads/0.7.0-M2-incubating-docs
Commit: 8560033dceb40765befb1480d0f2a337b83966e5
Parents: 15afabd
Author: Alex Heneveld <alex.heneveld@cloudsoftcorp.com>
Authored: Tue Jan 20 16:19:19 2015 +0000
Committer: Alex Heneveld <alex.heneveld@cloudsoftcorp.com>
Committed: Tue Jan 20 16:36:09 2015 +0000

----------------------------------------------------------------------
 docs/.gitignore                                 |    1 +
 docs/README.md                                  |   33 +-
 docs/_build/build.sh                            |   32 +-
 docs/_build/htmlproof-brooklyn.sh               |   19 +
 docs/_build/javadoc-overview.html               |   22 +
 docs/_build/make-javadoc.sh                     |   14 +-
 docs/_build/tests/jsonball/test_jsonball.md     |    2 +-
 docs/_config.yml                                |    6 +
 .../big_examples/global-web-fabric/index.md     |    2 +-
 docs/_extra/big_examples/index.md               |    2 +-
 docs/_extra/big_examples/messaging/index.md     |    2 +-
 .../big_examples/nosql-cassandra/index.md       |    2 +-
 docs/_extra/big_examples/simple-web-cluster.md  |    2 +-
 docs/_extra/big_examples/webcluster.md          |    2 +-
 docs/_extra/big_examples/webcluster/index.md    |    2 +-
 docs/_extra/brooklyn-gpg-public-key.asc         |   21 +
 docs/_extra/deploying-yaml.md                   |   37 +
 docs/_extra/list-of-blueprints.md               |    2 +-
 docs/_extra/local-artifact-repo.md              |    2 +-
 docs/_extra/meta/brooklyn-gpg-public-key.asc    |   21 -
 docs/_extra/meta/contact.include.md             |    9 -
 docs/_extra/meta/contact.md                     |    7 -
 docs/_extra/meta/irc.md                         |   31 -
 docs/_extra/meta/toc.json                       |    8 -
 docs/_extra/meta/versions.md                    |  110 --
 docs/_extra/release.md                          |    2 +-
 docs/_extra/simple_java_examples/examples.md    |    2 +-
 docs/_extra/standards.md                        |   15 -
 docs/_extra/update-docs.md                      |    2 +-
 docs/_includes/base-head.html                   |    4 +-
 docs/_includes/base-scss.scss                   |   32 +-
 docs/_includes/breadcrumbs.html                 |   71 -
 docs/_includes/feature-image.html               |    4 +
 docs/_includes/feature-item-end.html            |   14 +
 docs/_includes/feature-item.html                |    4 +
 docs/_includes/footer.html                      |    6 +-
 docs/_includes/java_link.html                   |   18 +
 docs/_includes/list-children.html               |    6 +-
 docs/_includes/sidebar.html                     |   77 -
 docs/_includes/sidemenu.html                    |  244 +++
 docs/_includes/sitemap-item.html                |   36 +
 docs/_includes/topbar.html                      |   49 -
 docs/_includes/topmenu.html                     |   20 +-
 docs/_layouts/base.html                         |  156 +-
 docs/_layouts/guide-base.html                   |  183 --
 docs/_layouts/guide-normal.html                 |   23 -
 docs/_layouts/guide-old.html                    |   65 -
 docs/_layouts/website-landing.html              |    9 +-
 docs/_layouts/website-normal.html               |   61 +-
 docs/_plugins/brooklyn_jekyll_util.rb           |  129 ++
 docs/_plugins/brooklyn_metadata.rb              |   19 +-
 docs/_plugins/site_structure.rb                 |   48 +-
 docs/guide/concepts/advanced-concepts.md        |    2 +-
 .../concepts/application-parent-membership.md   |    2 +-
 ...ooklyn-flow-websequencediagrams.com-w400.png |  Bin 0 -> 58518 bytes
 .../brooklyn-flow-websequencediagrams.com.png   |  Bin 0 -> 106928 bytes
 .../concepts/configuration-sensor-effectors.md  |    2 +-
 docs/guide/concepts/dependent-configuration.md  |    2 +-
 docs/guide/concepts/entities.md                 |    2 +-
 docs/guide/concepts/execution.md                |    6 +-
 .../concepts/lifecycle-managementcontext.md     |    4 +-
 docs/guide/concepts/location.md                 |    2 +-
 docs/guide/concepts/policies.md                 |    2 +-
 docs/guide/dev/code/index.md                    |    9 +-
 docs/guide/dev/code/tests.md                    |    2 +-
 docs/guide/dev/env/ide/index.md                 |    5 +-
 docs/guide/dev/env/index.md                     |    2 +-
 docs/guide/dev/env/maven-build.md               |   10 +-
 docs/guide/dev/index.md                         |    7 +
 .../guide/dev/tips/debugging-remote-brooklyn.md |   48 +-
 docs/guide/dev/tips/index.md                    |    6 +-
 docs/guide/java/archetype.md                    |    2 +-
 docs/guide/java/common-usage.md                 |  102 +-
 docs/guide/java/defining-and-deploying.md       |   18 +-
 docs/guide/java/entities.md                     |    2 +-
 docs/guide/java/entity.md                       |    2 +-
 docs/guide/java/policies.md                     |    2 +-
 docs/guide/java/policy.md                       |    2 +-
 docs/guide/java/service-state.md                |    2 +-
 ...topology-dependencies-management-policies.md |    2 +-
 docs/guide/misc/download.md                     |   18 +-
 docs/guide/misc/index.md                        |    2 +-
 docs/guide/misc/javadoc/index.md                |    2 +-
 docs/guide/misc/known-issues.md                 |    2 +-
 docs/guide/misc/release-notes.md                |    4 +-
 docs/guide/ops/brooklyn_properties.md           |  175 ++
 docs/guide/ops/catalog/index.md                 |  174 ++
 .../guide/ops/catalog/mysql-in-catalog-w700.png |  Bin 0 -> 92767 bytes
 docs/guide/ops/catalog/mysql-in-catalog.png     |  Bin 0 -> 168831 bytes
 docs/guide/ops/cli.md                           |  143 ++
 docs/guide/ops/index.md                         |    8 +-
 docs/guide/ops/locations/configuring.md         |  105 --
 docs/guide/ops/locations/index.md               |  269 ++-
 docs/guide/ops/locations/more-locations.md      |   55 +
 docs/guide/ops/locations/ssh-keys.md            |   85 +
 docs/guide/ops/logging.md                       |   46 +
 docs/guide/ops/persistence/index.md             |   25 +-
 docs/guide/ops/webconsole/index.md              |  399 -----
 .../webconsole/webconsole-dashboard-w400.png    |  Bin 137463 -> 0 bytes
 .../ops/webconsole/webconsole-dashboard.png     |  Bin 214723 -> 0 bytes
 .../ops/webconsole/webconsole-detail-w400.png   |  Bin 111993 -> 0 bytes
 docs/guide/ops/webconsole/webconsole-detail.png |  Bin 165359 -> 0 bytes
 docs/guide/start/_my-web-cluster.yaml           |   10 +-
 docs/guide/start/blueprints.md                  |   72 +-
 docs/guide/start/config.md                      |   50 -
 docs/guide/start/index.md                       |    3 +-
 docs/guide/start/managing.md                    |   28 +-
 docs/guide/start/policies.md                    |   21 +-
 docs/guide/start/running.md                     |   84 +-
 ...ooklyn-flow-websequencediagrams.com-w400.png |  Bin 58518 -> 0 bytes
 .../brooklyn-flow-websequencediagrams.com.png   |  Bin 106928 -> 0 bytes
 docs/guide/yaml/catalog-maintenance.md          |  115 --
 docs/guide/yaml/chef/about-chef.md              |    2 +-
 .../yaml/chef/advanced-chef-integration.md      |    6 +-
 docs/guide/yaml/chef/creating-blueprints.md     |    2 +-
 docs/guide/yaml/chef/writing-chef.md            |    2 +-
 docs/guide/yaml/clusters-and-policies.md        |    2 +-
 docs/guide/yaml/clusters.md                     |    2 +-
 docs/guide/yaml/configuring-vms.md              |    4 +-
 docs/guide/yaml/creating-yaml.md                |   17 +-
 docs/guide/yaml/custom-entities.md              |    2 +-
 .../vanilla-bash-netcat-w-client.yaml           |   14 +-
 docs/guide/yaml/index.md                        |    1 -
 docs/guide/yaml/multiple-services.md            |   41 +-
 docs/guide/yaml/mutlitple-services.md           |  100 --
 docs/guide/yaml/mysql-in-catalog-w700.png       |  Bin 92767 -> 0 bytes
 docs/guide/yaml/mysql-in-catalog.png            |  Bin 168831 -> 0 bytes
 docs/guide/yaml/setting-locations.md            |   21 +-
 docs/style/css/_archive_warning.scss            |   31 +
 docs/style/css/_basic.scss                      |   62 +
 docs/style/css/_blueprint_tour.scss             |  181 ++
 docs/style/css/_code_blocks.scss                |   98 +
 docs/style/css/_feature_list.scss               |   60 +
 docs/style/css/_footer.scss                     |   36 +
 docs/style/css/_landing.scss                    |   26 +
 docs/style/css/_main_container.scss             |   84 +
 docs/style/css/_menu.scss                       |  201 +++
 docs/style/css/_search.scss                     |   29 +
 docs/style/css/_tooltips.scss                   |   14 +
 docs/style/css/_util.scss                       |   27 +
 docs/style/css/base.scss                        |  307 ----
 docs/style/css/guide-toc.css                    |   88 -
 docs/style/css/guide.css                        |  119 --
 docs/style/css/javadoc.scss                     |  119 ++
 docs/style/css/website.scss                     |   20 +
 docs/style/deps/font-awesome-4.2.0/_LICENSE     |    1 +
 .../font-awesome-4.2.0/css/font-awesome.css     | 1672 ++++++++++++++++++
 .../font-awesome-4.2.0/css/font-awesome.min.css |    4 +
 .../font-awesome-4.2.0/fonts/FontAwesome.otf    |  Bin 0 -> 85908 bytes
 .../fonts/fontawesome-webfont.eot               |  Bin 0 -> 56006 bytes
 .../fonts/fontawesome-webfont.svg               |  520 ++++++
 .../fonts/fontawesome-webfont.ttf               |  Bin 0 -> 112160 bytes
 .../fonts/fontawesome-webfont.woff              |  Bin 0 -> 65452 bytes
 .../less/bordered-pulled.less                   |   16 +
 .../deps/font-awesome-4.2.0/less/core.less      |   11 +
 .../font-awesome-4.2.0/less/fixed-width.less    |    6 +
 .../font-awesome-4.2.0/less/font-awesome.less   |   17 +
 .../deps/font-awesome-4.2.0/less/icons.less     |  552 ++++++
 .../deps/font-awesome-4.2.0/less/larger.less    |   13 +
 .../deps/font-awesome-4.2.0/less/list.less      |   19 +
 .../deps/font-awesome-4.2.0/less/mixins.less    |   25 +
 .../deps/font-awesome-4.2.0/less/path.less      |   14 +
 .../less/rotated-flipped.less                   |   20 +
 .../deps/font-awesome-4.2.0/less/spinning.less  |   29 +
 .../deps/font-awesome-4.2.0/less/stacked.less   |   20 +
 .../deps/font-awesome-4.2.0/less/variables.less |  561 ++++++
 .../scss/_bordered-pulled.scss                  |   16 +
 .../deps/font-awesome-4.2.0/scss/_core.scss     |   11 +
 .../font-awesome-4.2.0/scss/_fixed-width.scss   |    6 +
 .../deps/font-awesome-4.2.0/scss/_icons.scss    |  552 ++++++
 .../deps/font-awesome-4.2.0/scss/_larger.scss   |   13 +
 .../deps/font-awesome-4.2.0/scss/_list.scss     |   19 +
 .../deps/font-awesome-4.2.0/scss/_mixins.scss   |   25 +
 .../deps/font-awesome-4.2.0/scss/_path.scss     |   14 +
 .../scss/_rotated-flipped.scss                  |   20 +
 .../deps/font-awesome-4.2.0/scss/_spinning.scss |   29 +
 .../deps/font-awesome-4.2.0/scss/_stacked.scss  |   20 +
 .../font-awesome-4.2.0/scss/_variables.scss     |  561 ++++++
 .../font-awesome-4.2.0/scss/font-awesome.scss   |   17 +
 docs/style/deps/octicons/LICENSE.txt            |    9 +
 docs/style/deps/octicons/README.md              |    1 +
 docs/style/deps/octicons/octicons-local.ttf     |  Bin 0 -> 52764 bytes
 docs/style/deps/octicons/octicons.css           |  235 +++
 docs/style/deps/octicons/octicons.eot           |  Bin 0 -> 31440 bytes
 docs/style/deps/octicons/octicons.less          |  233 +++
 docs/style/deps/octicons/octicons.svg           |  198 +++
 docs/style/deps/octicons/octicons.ttf           |  Bin 0 -> 31272 bytes
 docs/style/deps/octicons/octicons.woff          |  Bin 0 -> 17492 bytes
 .../style/deps/octicons/sprockets-octicons.scss |  230 +++
 docs/website/community/committers.md            |  119 --
 docs/website/community/fork-after.png           |  Bin 134377 -> 0 bytes
 docs/website/community/fork-before.png          |  Bin 131674 -> 0 bytes
 docs/website/community/fork-new.png             |  Bin 137626 -> 0 bytes
 docs/website/community/how-to-contribute.md     |   90 -
 docs/website/community/index.md                 |  107 +-
 docs/website/community/irc.md                   |   14 +
 docs/website/community/links.md                 |   22 -
 docs/website/community/mailing-lists.md         |   36 +
 docs/website/community/migrate-to-apache.md     |  117 --
 docs/website/community/pull-request.png         |  Bin 94166 -> 0 bytes
 docs/website/developers/code-standards.md       |   14 +
 docs/website/developers/committers/index.md     |   10 +
 .../committers/merging-contributed-code.md      |  118 ++
 docs/website/developers/fork-after.png          |  Bin 0 -> 134377 bytes
 docs/website/developers/fork-before.png         |  Bin 0 -> 131674 bytes
 docs/website/developers/fork-new.png            |  Bin 0 -> 137626 bytes
 docs/website/developers/how-to-contribute.md    |  109 ++
 docs/website/developers/index.md                |   42 +
 docs/website/developers/links.md                |   22 +
 docs/website/developers/pull-request.png        |  Bin 0 -> 94166 bytes
 docs/website/documentation/increase-entropy.md  |    2 +-
 docs/website/documentation/index.md             |   11 +-
 docs/website/documentation/install-on-server.md |   25 +-
 docs/website/documentation/passwordless-ssh.md  |   29 -
 docs/website/documentation/ssh-key.md           |    9 -
 docs/website/documentation/todo.md              |    7 -
 docs/website/download/index.md                  |   23 +-
 docs/website/download/verify.md                 |   69 +-
 docs/website/index.md                           |    4 +-
 docs/website/learnmore/blueprint-tour.md        |  191 ++
 .../learnmore/features/blueprint-compose.png    |  Bin 0 -> 15299 bytes
 .../features/blueprint-machine-specs.png        |  Bin 0 -> 16214 bytes
 docs/website/learnmore/features/blueprinting.md |   24 +
 docs/website/learnmore/features/index.md        |   18 +
 .../learnmore/features/java-hierarchy.png       |  Bin 0 -> 106962 bytes
 docs/website/learnmore/features/java.md         |   41 +
 docs/website/learnmore/features/operations.md   |   75 +
 docs/website/learnmore/features/ops-console.png |  Bin 0 -> 491417 bytes
 docs/website/learnmore/features/ops-rest.png    |  Bin 0 -> 62894 bytes
 .../learnmore/features/policy-based-mgmt.md     |   28 +
 docs/website/learnmore/index.md                 |   31 +-
 docs/website/learnmore/theory.md                |   26 +-
 docs/website/learnmore/yaml-explained.md        |    8 -
 docs/website/meta/sitemap.md                    |   24 +-
 docs/website/meta/versions.md                   |   10 +-
 235 files changed, 9783 insertions(+), 2951 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/.gitignore
----------------------------------------------------------------------
diff --git a/docs/.gitignore b/docs/.gitignore
index 1311819..3767b72 100644
--- a/docs/.gitignore
+++ b/docs/.gitignore
@@ -1,2 +1,3 @@
 _site
 _config_local.yml
+.sass-cache

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/README.md
----------------------------------------------------------------------
diff --git a/docs/README.md b/docs/README.md
index cfac91c..5d1b386 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -218,6 +218,11 @@ using the instructions in `build.sh` as a guide.)
 A typical update consists of the following commands (or a subset),
 copied to `${BROOKLYN_SITE_DIR-../../incubator-brooklyn-site-public}`:
 
+    # ensure svn repo is up-to-date (very painful otherwise)
+    cd ${BROOKLYN_SITE_DIR-../../incubator-brooklyn-site-public}
+    svn up
+    cd -
+
     # main website, relative to / 
     _build/build.sh website-root --install
     
@@ -262,34 +267,16 @@ We use some custom Jekyll plugins, in the `_plugins` dir:
 
 * include markdown files inside other files (see, for example, the `*.include.md` files 
   which contain text which is used in multiple other files)
-* parse JSON which we can loop over in our markdown docs (to do the TOC in the `guide`)
-* generate the site structure (for the `website`)
+* generate the site structure / menu objects
+* parse JSON which we can loop over in our markdown docs (to build up models; previously used
+  for the TOC in the guide, but now replaced with site_structure)
 * trim whitespace of ends of variables
 
 
-# Guide ToC
-
-In the `guide`, JSON table-of-contents files (toc.json) are our lightweight solution to the 
-problem of making the site structure navigable (the menus at left). 
-If you add a page, simply add the file and a title to the `toc.json` in that directory 
-and it will get included in the menu. 
-
-You can also configure a special toc to show on your page, if you wish, by setting the toc variable in the header. 
-Most pages declare the `guide-normal` layout (in `_layouts/`) which builds a menu in the left side-bar 
-(`_includes/sidebar.html`) using the JSON, automatically detecting which page is active.
-
-
-# Website ToC
-
-The `website` follows a different, simpler pattern, using the `site-structure` plugin
-and front-matter in each page.  When adding a page, simply add the relevant front matter
-in the page(s) which refer to them.
-
-
 # Versions
 
 Archived versions are kept under `/v/` in the website.  New versions should be added with
-the appropriate directory (`guide-version` above will do this).  These versions take their
-own copy of the `style` files so that changes there will not affect future versions.
+the appropriate directory (`_build/build.sh guide-version` above will do this).  
+These versions take their own copy of the `style` files so that changes there will not affect future versions.
 
 A list of available versions is in `website/meta/versions.md`.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_build/build.sh
----------------------------------------------------------------------
diff --git a/docs/_build/build.sh b/docs/_build/build.sh
index eba49dd..7af75cf 100755
--- a/docs/_build/build.sh
+++ b/docs/_build/build.sh
@@ -32,7 +32,8 @@ function help() {
   echo "* --quick-javadoc : to do a quick javadoc build (for testing)"
   echo "* --serve : serve files from _site after building (for testing)"
   echo "* --install : install files from _site to the appropriate place in "'$'"BROOKLYN_SITE_DIR (or ../../incubator-brooklyn-site-public)"
-  echo "* --skip-test : skip the HTML Proof run on _site"
+  echo "* --skip-htmlproof : skip the HTML Proof run on _site"
+  echo "* --quick-htmlproof : do a fast HTML Proof run on _site (not checking external links)"
   echo ""
 }
 
@@ -43,6 +44,7 @@ function parse_mode() {
     exit 0 ;;
   website-root)
     JEKYLL_CONFIG=_config.yml,_build/config-production.yml,_build/config-exclude-guide.yml,_build/config-website-root.yml
+    STYLE_SUBDIR=style
     DIRS_TO_MOVE[0]=website
     DIRS_TO_MOVE_TARGET[0]=""
     SKIP_JAVADOC=true
@@ -55,7 +57,8 @@ function parse_mode() {
     DIRS_TO_MOVE[0]=guide
     DIRS_TO_MOVE_TARGET[0]=v/latest
     DIRS_TO_MOVE[1]=style
-    DIRS_TO_MOVE_TARGET[1]=v/latest/style
+    STYLE_SUBDIR=${DIRS_TO_MOVE_TARGET[0]}/style
+    DIRS_TO_MOVE_TARGET[1]=$STYLE_SUBDIR
     INSTALL_RSYNC_OPTIONS=""
     INSTALL_RSYNC_SUBDIR=${DIRS_TO_MOVE_TARGET[0]}/
     JAVADOC_TARGET=${DIRS_TO_MOVE_TARGET[0]}/$JAVADOC_SUBPATH/
@@ -68,7 +71,8 @@ function parse_mode() {
     # BROOKLYN_VERSION_BELOW
     DIRS_TO_MOVE_TARGET[0]=v/0.7.0-M2-incubating
     DIRS_TO_MOVE[1]=style
-    DIRS_TO_MOVE_TARGET[1]=${DIRS_TO_MOVE_TARGET[0]}/style
+    STYLE_SUBDIR=${DIRS_TO_MOVE_TARGET[0]}/style
+    DIRS_TO_MOVE_TARGET[1]=$STYLE_SUBDIR
     INSTALL_RSYNC_OPTIONS=""
     INSTALL_RSYNC_SUBDIR=${DIRS_TO_MOVE_TARGET[0]}/
     JAVADOC_TARGET=${DIRS_TO_MOVE_TARGET[0]}/$JAVADOC_SUBPATH/
@@ -78,6 +82,7 @@ function parse_mode() {
     JEKYLL_CONFIG=_config.yml,_build/config-production.yml,_build/config-exclude-all-but-guide.yml,_build/config-guide-root.yml
     DIRS_TO_MOVE[0]=guide
     DIRS_TO_MOVE_TARGET[0]=""
+    STYLE_SUBDIR=style
     JAVADOC_TARGET=$JAVADOC_SUBPATH/
     SUMMARY="user guide files in the root"
     ;;
@@ -87,6 +92,7 @@ function parse_mode() {
     DIRS_TO_MOVE_TARGET[0]=v/latest
     DIRS_TO_MOVE[1]=website
     DIRS_TO_MOVE_TARGET[1]=""
+    STYLE_SUBDIR=style
     JAVADOC_TARGET=${DIRS_TO_MOVE_TARGET[0]}/$JAVADOC_SUBPATH/
     SUMMARY="all files, website in root and guide in /${DIRS_TO_MOVE_TARGET[0]}"
     ;;
@@ -97,12 +103,14 @@ function parse_mode() {
     DIRS_TO_MOVE[1]=website
     DIRS_TO_MOVE_TARGET[1]=brooklyn
     DIRS_TO_MOVE[2]=style
-    DIRS_TO_MOVE_TARGET[2]=brooklyn/style
+    STYLE_SUBDIR=${DIRS_TO_MOVE_TARGET[1]}/style
+    DIRS_TO_MOVE_TARGET[2]=$STYLE_SUBDIR
     JAVADOC_TARGET=${DIRS_TO_MOVE_TARGET[0]}/$JAVADOC_SUBPATH/
     SUMMARY="all files in /brooklyn"
     ;;
   original)
     JEKYLL_CONFIG=_config.yml,_build/config-production.yml
+    STYLE_SUBDIR=style
     SUMMARY="all files in their original place"
     ;;
   "")
@@ -134,10 +142,14 @@ function parse_arguments() {
       INSTALL_AFTERWARDS=true
       shift
       ;;
-    "--skip-test")
+    "--skip-htmlproof")
       SKIP_TEST=true
       shift
       ;;
+    "--quick-htmlproof")
+      QUICK_TEST=true
+      shift
+      ;;
     *)
       echo "ERROR: invalid argument '"$1"'"
       exit 1
@@ -153,8 +165,12 @@ function test_site() {
   fi
   echo "Running htmlproof on _site"
   mkdir -p target
-  LOG="target/htmlproof.log"
-  htmlproof _site --href_ignore "https?://127.*" --alt_ignore ".*" 2>&1 | tee $LOG
+  LOG="_build/target/htmlproof.log"
+  HTMLPROOF_OPTS=""
+  if [ "$QUICK_TEST" == "true" ]; then
+    HTMLPROOF_OPTS="$HTMLPROOF_OPTS --disable_external"
+  fi
+  _build/htmlproof-brooklyn.sh $HTMLPROOF_OPTS 2>&1 | tee $LOG
 }
 
 function make_jekyll() {
@@ -192,6 +208,8 @@ function make_javadoc() {
       return 1
     fi
     mv _build/target/$JAVADOC_BUILD_TARGET_SUBPATH/* _site/$JAVADOC_TARGET
+    cat _site/${STYLE_SUBDIR}/css/javadoc.css >> _site/$JAVADOC_TARGET/stylesheet.css || return 1
+    cp _site/${STYLE_SUBDIR}/img/feather.png _site/$JAVADOC_TARGET/ || return 1
   fi
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_build/htmlproof-brooklyn.sh
----------------------------------------------------------------------
diff --git a/docs/_build/htmlproof-brooklyn.sh b/docs/_build/htmlproof-brooklyn.sh
new file mode 100755
index 0000000..ae07065
--- /dev/null
+++ b/docs/_build/htmlproof-brooklyn.sh
@@ -0,0 +1,19 @@
+#!/usr/bin/env ruby_executable_hooks
+
+# supports --disable_external
+
+require 'html/proofer'
+
+HTML::Proofer.new("./_site", {
+  :href_ignore => [
+      /https?:\/\/127.*/,
+      /https?:\/\/github.com\/apache\/incubator-brooklyn\/edit.*/,
+      ],
+  :alt_ignore => [/.*/], 
+  # don't scan javadoc files (too many errors) 
+  # or autogen catalog items (their style files are wrong in some modes; reinstate when cleaner)
+  :disable_external => (ARGV.include? "--disable_external"),
+  :file_ignore => [ /.*\/(javadoc|apidoc|learnmore\/catalog)\/.*/ ]
+  # bug - must do above - see https://github.com/gjtorikian/html-proofer/issues/145 
+#  :file_ignore => [ /.*\/javadoc\/.*/, /.*\/learnmore\/catalog\/.*/ ]
+  }).run

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_build/javadoc-overview.html
----------------------------------------------------------------------
diff --git a/docs/_build/javadoc-overview.html b/docs/_build/javadoc-overview.html
new file mode 100644
index 0000000..a33af64
--- /dev/null
+++ b/docs/_build/javadoc-overview.html
@@ -0,0 +1,22 @@
+<html><body>
+
+<!-- BROOKLYN_VERSION_BELOW -->
+Javadoc for <a href="http://brooklyn.io"> Apache Brooklyn</a> 0.7.0-M2-incubating
+
+<p>
+                Apache Brooklyn is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the 
+                Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the
+                infrastructure, communications, and decision making process have stabilized in a manner consistent with other
+                successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of
+                the code, it does indicate that the project has yet to be fully endorsed by the ASF.
+</p>
+<p>
+                Apache Brooklyn is distributed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License v2.0</a>.
+</p>
+
+<p>
+<!-- BROOKLYN_VERSION_BELOW -->
+This is the Javadoc for v 0.7.0-M2-incubating (git SHA1 hash ${SHA1STAMP}) auto-generated on ${DATESTAMP}.
+</p> 
+
+</body><html>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_build/make-javadoc.sh
----------------------------------------------------------------------
diff --git a/docs/_build/make-javadoc.sh b/docs/_build/make-javadoc.sh
index 4547a2a..4ec96a9 100755
--- a/docs/_build/make-javadoc.sh
+++ b/docs/_build/make-javadoc.sh
@@ -19,7 +19,9 @@ fi
 mkdir -p target
 rm -rf target/$JAVADOC_TARGET1_SUBPATH/
 
+export YEARSTAMP=`date "+%Y"`
 export DATESTAMP=`date "+%Y-%m-%d"`
+export SHA1STAMP=`git rev-parse HEAD`
 
 # BROOKLYN_VERSION_BELOW
 export BROOKLYN_JAVADOC_CLASSPATH=../../usage/all/target/brooklyn-all-0.7.0-M2-incubating-with-dependencies.jar
@@ -40,8 +42,10 @@ javadoc -sourcepath $SOURCE_PATHS \
   -classpath "${BROOKLYN_JAVADOC_CLASSPATH}" \
   -doctitle "Apache Brooklyn" \
   -windowtitle "Apache Brooklyn" \
-  -header "Apache Brooklyn" \
-  -footer '<b>Apache Brooklyn - Multi-Cloud Application Management</b> <br/> <a href="http://brooklyn.io/" target="_top">brooklyn.io</a>. Apache License. &copy; '$DATESTAMP'.' \
+  -notimestamp \
+  -overview javadoc-overview.html \
+  -header '<a href="/" class="brooklyn-header">Apache Brooklyn <div class="img"></div></a>' \
+  -footer '<b>Apache Brooklyn - Multi-Cloud Application Management</b> <br/> <a href="http://brooklyn.io/" target="_top">brooklyn.io</a>. Apache License. &copy; '$YEARSTAMP'.' \
 2>&1 1>/dev/null | tee target/javadoc.log
 
 if ((${PIPESTATUS[0]})) ; then echo ; echo ; echo "ERROR: javadoc process exited non-zero" ; exit 1 ; fi
@@ -51,7 +55,11 @@ if [ ! -f target/$JAVADOC_TARGET1_SUBPATH/brooklyn/entity/Entity.html ]; then ec
 
 if [ ! -z "`grep warnings target/javadoc.log`" ] ; then echo "WARNINGs occurred during javadoc build. See target/javadoc.log for more information." ; fi
 
-if [ -d ../_site/guide/$$JAVADOC_TARGET2_SUBPATH/ ] ; then
+sed -i.bak s/'${DATESTAMP}'/"${DATESTAMP}"/ target/$JAVADOC_TARGET1_SUBPATH/overview-summary.html
+sed -i.bak s/'${SHA1STAMP}'/"${SHA1STAMP}"/ target/$JAVADOC_TARGET1_SUBPATH/overview-summary.html
+rm target/$JAVADOC_TARGET1_SUBPATH/*.bak
+
+if [ -d ../_site/guide/$JAVADOC_TARGET2_SUBPATH/ ] ; then
   echo "API directory detected in test structure _site, copying docs there so they can be served with serve-site.sh"
   cp -r target/$JAVADOC_TARGET1_SUBPATH/* ../_site/guide/$JAVADOC_TARGET2_SUBPATH/
 fi

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_build/tests/jsonball/test_jsonball.md
----------------------------------------------------------------------
diff --git a/docs/_build/tests/jsonball/test_jsonball.md b/docs/_build/tests/jsonball/test_jsonball.md
index ba66858..1dcc572 100644
--- a/docs/_build/tests/jsonball/test_jsonball.md
+++ b/docs/_build/tests/jsonball/test_jsonball.md
@@ -1,5 +1,5 @@
 ---
-layout: guide-normal
+layout: website-normal
 title: Test Jsonball
 ---
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_config.yml
----------------------------------------------------------------------
diff --git a/docs/_config.yml b/docs/_config.yml
index 590ca30..85bc495 100644
--- a/docs/_config.yml
+++ b/docs/_config.yml
@@ -41,6 +41,12 @@ root_menu_page: /website/index.md
 # These files should not be included in the final build (in addition to _* contents)
 exclude: ['/Gemfile*','/README.md']
 
+sass:
+    sass_dir: style/css
+
+# used for the "verify" page
+brooklyn-stable-versions: [ 0.7.0-M2-incubating ]
+
 brooklyn-stable-version: 0.7.0-M2-incubating
 
 brooklyn-version: 0.7.0-M2-incubating # BROOKLYN_VERSION

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_extra/big_examples/global-web-fabric/index.md
----------------------------------------------------------------------
diff --git a/docs/_extra/big_examples/global-web-fabric/index.md b/docs/_extra/big_examples/global-web-fabric/index.md
index b59eae0..37c7bf6 100644
--- a/docs/_extra/big_examples/global-web-fabric/index.md
+++ b/docs/_extra/big_examples/global-web-fabric/index.md
@@ -1,5 +1,5 @@
 ---
-layout: guide-normal
+layout: website-normal
 title: Global Web Fabric
 toc: /guide/toc.json
 ---

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_extra/big_examples/index.md
----------------------------------------------------------------------
diff --git a/docs/_extra/big_examples/index.md b/docs/_extra/big_examples/index.md
index f55643f..b5789a3 100644
--- a/docs/_extra/big_examples/index.md
+++ b/docs/_extra/big_examples/index.md
@@ -1,5 +1,5 @@
 ---
-layout: guide-normal
+layout: website-normal
 title: Examples
 toc: /guide/toc.json
 ---

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_extra/big_examples/messaging/index.md
----------------------------------------------------------------------
diff --git a/docs/_extra/big_examples/messaging/index.md b/docs/_extra/big_examples/messaging/index.md
index c3c2254..f33cecc 100644
--- a/docs/_extra/big_examples/messaging/index.md
+++ b/docs/_extra/big_examples/messaging/index.md
@@ -1,5 +1,5 @@
 ---
-layout: guide-normal
+layout: website-normal
 title: Publish-Subscribe Messagiung
 toc: /guide/toc.json
 ---

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_extra/big_examples/nosql-cassandra/index.md
----------------------------------------------------------------------
diff --git a/docs/_extra/big_examples/nosql-cassandra/index.md b/docs/_extra/big_examples/nosql-cassandra/index.md
index 88c1dce..7e7948e 100644
--- a/docs/_extra/big_examples/nosql-cassandra/index.md
+++ b/docs/_extra/big_examples/nosql-cassandra/index.md
@@ -1,5 +1,5 @@
 ---
-layout: guide-normal
+layout: website-normal
 title: Cassandra Clusters
 toc: /guide/toc.json
 ---

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_extra/big_examples/simple-web-cluster.md
----------------------------------------------------------------------
diff --git a/docs/_extra/big_examples/simple-web-cluster.md b/docs/_extra/big_examples/simple-web-cluster.md
index cd2b659..2b08a37 100644
--- a/docs/_extra/big_examples/simple-web-cluster.md
+++ b/docs/_extra/big_examples/simple-web-cluster.md
@@ -1,5 +1,5 @@
 ---
-layout: guide-normal
+layout: website-normal
 title: Elastic Web Cluster
 toc: /guide/toc.json
 ---

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_extra/big_examples/webcluster.md
----------------------------------------------------------------------
diff --git a/docs/_extra/big_examples/webcluster.md b/docs/_extra/big_examples/webcluster.md
index cd2b659..2b08a37 100644
--- a/docs/_extra/big_examples/webcluster.md
+++ b/docs/_extra/big_examples/webcluster.md
@@ -1,5 +1,5 @@
 ---
-layout: guide-normal
+layout: website-normal
 title: Elastic Web Cluster
 toc: /guide/toc.json
 ---

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_extra/big_examples/webcluster/index.md
----------------------------------------------------------------------
diff --git a/docs/_extra/big_examples/webcluster/index.md b/docs/_extra/big_examples/webcluster/index.md
index 1fd80dd..99c6b36 100644
--- a/docs/_extra/big_examples/webcluster/index.md
+++ b/docs/_extra/big_examples/webcluster/index.md
@@ -1,5 +1,5 @@
 ---
-layout: guide-normal
+layout: website-normal
 title: Elastic Web Cluster
 toc: /guide/toc.json
 ---

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_extra/brooklyn-gpg-public-key.asc
----------------------------------------------------------------------
diff --git a/docs/_extra/brooklyn-gpg-public-key.asc b/docs/_extra/brooklyn-gpg-public-key.asc
new file mode 100644
index 0000000..3b515a4
--- /dev/null
+++ b/docs/_extra/brooklyn-gpg-public-key.asc
@@ -0,0 +1,21 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG/MacGPG2 v2.0.18 (Darwin)
+Comment: GPGTools - http://gpgtools.org
+
+mQENBFDsSLEBCAC2JxQHeXpL3oGN2IickcG9C49gkxIsws4hpasQModVipezrQi0
+9pLq4lkB01GgC2sfPH+XXE8rCpA9EL0e4wVA7JICz5AsLZAAJH91tKksL20tLMeU
+Yrbufaq1ga7ifk3JWhF4iwvkDMBKyCjrF173nI+2TwX2XfNTQpzoQGOL1bNvS4NZ
+AD9JeXGW2D996zHdSK+x3wVdY3cDECvVMuw61+5ytZrGNnyvaaWTl3lJUyydPXHQ
+5TXVtbQH5WgYCLPr4E95axJ0BoY8H+fEaG1Uax1a+xLumVWhiWNp7rMvmgcZXuJO
+fx+wXAIbRNlAHoJcdZ4NCReRxDIBQ+2HsU1zABEBAAG0bUJyb29rbHluIFByb2pl
+Y3QgKGJyb29rbHluLmlvKSAoS2V5IHVzZWQgdG8gYXV0aGVudGljYXRlIEJyb29r
+bHluIGFydGlmYWN0cykgPGJyb29rbHluLWRldkBncm91cHMuZ29vZ2xlLmNvbT6J
+AT8EEwECACkFAlDsSLECGy8FCQeGH4AHCwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIX
+gAAKCRANhinnSRLCsOdIB/4tUVShup2NHXJ9acCah8TuEN4GmN9dBiD9YsGW66SR
+/ptY0Gn9XExl2wbmQW+7TQg3QUGv8uffwYLtnMwnmCp/WwgE+uSnRmcENxa9GuTu
+PLlURKKGK0C9ljTAHwXtPcIYxPNN3BT4VB56ME1DTBRCgEvudaNSANs8/kT88kE2
+eMC7x0Uo3/P38Ob8XSOfR8c6G6nSz6jILcRBXZTPNNK4svyqF5XHIru65d3/0+mr
+bpfcDLcUQYms0MpPmO1RCHLZWwJLsPUIxNwGGnKJc8/RNEvQinK+Ap0cf+PGUQSX
+PhB6Z81ROFIVToEVZslgSiL+u4Tc7zXDfDQDY4HeLY2t
+=w/CG
+-----END PGP PUBLIC KEY BLOCK-----

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_extra/deploying-yaml.md
----------------------------------------------------------------------
diff --git a/docs/_extra/deploying-yaml.md b/docs/_extra/deploying-yaml.md
new file mode 100644
index 0000000..265f496
--- /dev/null
+++ b/docs/_extra/deploying-yaml.md
@@ -0,0 +1,37 @@
+---
+title: Deploying YAML Blueprints
+layout: page
+toc: ../guide_toc.json
+categories: [use, guide, defining-applications]
+---
+
+Once you've [written a YAML blueprint](creating-yaml.md), there are several ways to deploy it.
+These insructions assume you have [installed]({{ site.url }}/use/guide/quickstart/) Brooklyn.
+You can then:
+
+- Supply the YAML blueprint file on the CLI when launching the server:
+
+{% highlight bash %}
+$ brooklyn launch --app ./blueprint.yaml
+{% endhighlight %}
+
+
+Or, assuming you've launched a server already 
+(usually on [http://127.0.0.1/](http://127.0.0.1/) unless you've 
+configured security in [`brooklyn.properties`](/use/guide/quickstart/brooklyn.properties)),
+you can:
+
+- Curl it to the Brooklyn REST API:
+
+{% highlight bash %}
+$ curl -T ./blueprint.yaml -X POST http://localhost:8081/v1/applications
+{% endhighlight %}
+
+
+- In the web-console, select the "YAML" tab in the "Add Application" wizard:
+
+[![Web Console](web-console-yaml-700.png "YAML via Web Console")](web-console-yaml.png)
+
+
+- The web-console also has an interactive "REST API" page,
+  where you can paste the YAML for uploading into the `POST` to `/v1/applications`.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_extra/list-of-blueprints.md
----------------------------------------------------------------------
diff --git a/docs/_extra/list-of-blueprints.md b/docs/_extra/list-of-blueprints.md
index 7136dd1..95a602c 100644
--- a/docs/_extra/list-of-blueprints.md
+++ b/docs/_extra/list-of-blueprints.md
@@ -1,6 +1,6 @@
 ---
 title: Systems Available Out-of-the-Box
-layout: guide-normal
+layout: website-normal
 toc: ../guide_toc.json
 categories: [use, guide]
 ---

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_extra/local-artifact-repo.md
----------------------------------------------------------------------
diff --git a/docs/_extra/local-artifact-repo.md b/docs/_extra/local-artifact-repo.md
index 455a545..2fd777b 100644
--- a/docs/_extra/local-artifact-repo.md
+++ b/docs/_extra/local-artifact-repo.md
@@ -1,5 +1,5 @@
 ---
-layout: guide-normal
+layout: website-normal
 title: Prepopulating a Local Artifact Repository
 toc: /guide/toc.json
 ---

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_extra/meta/brooklyn-gpg-public-key.asc
----------------------------------------------------------------------
diff --git a/docs/_extra/meta/brooklyn-gpg-public-key.asc b/docs/_extra/meta/brooklyn-gpg-public-key.asc
deleted file mode 100644
index 3b515a4..0000000
--- a/docs/_extra/meta/brooklyn-gpg-public-key.asc
+++ /dev/null
@@ -1,21 +0,0 @@
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG/MacGPG2 v2.0.18 (Darwin)
-Comment: GPGTools - http://gpgtools.org
-
-mQENBFDsSLEBCAC2JxQHeXpL3oGN2IickcG9C49gkxIsws4hpasQModVipezrQi0
-9pLq4lkB01GgC2sfPH+XXE8rCpA9EL0e4wVA7JICz5AsLZAAJH91tKksL20tLMeU
-Yrbufaq1ga7ifk3JWhF4iwvkDMBKyCjrF173nI+2TwX2XfNTQpzoQGOL1bNvS4NZ
-AD9JeXGW2D996zHdSK+x3wVdY3cDECvVMuw61+5ytZrGNnyvaaWTl3lJUyydPXHQ
-5TXVtbQH5WgYCLPr4E95axJ0BoY8H+fEaG1Uax1a+xLumVWhiWNp7rMvmgcZXuJO
-fx+wXAIbRNlAHoJcdZ4NCReRxDIBQ+2HsU1zABEBAAG0bUJyb29rbHluIFByb2pl
-Y3QgKGJyb29rbHluLmlvKSAoS2V5IHVzZWQgdG8gYXV0aGVudGljYXRlIEJyb29r
-bHluIGFydGlmYWN0cykgPGJyb29rbHluLWRldkBncm91cHMuZ29vZ2xlLmNvbT6J
-AT8EEwECACkFAlDsSLECGy8FCQeGH4AHCwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIX
-gAAKCRANhinnSRLCsOdIB/4tUVShup2NHXJ9acCah8TuEN4GmN9dBiD9YsGW66SR
-/ptY0Gn9XExl2wbmQW+7TQg3QUGv8uffwYLtnMwnmCp/WwgE+uSnRmcENxa9GuTu
-PLlURKKGK0C9ljTAHwXtPcIYxPNN3BT4VB56ME1DTBRCgEvudaNSANs8/kT88kE2
-eMC7x0Uo3/P38Ob8XSOfR8c6G6nSz6jILcRBXZTPNNK4svyqF5XHIru65d3/0+mr
-bpfcDLcUQYms0MpPmO1RCHLZWwJLsPUIxNwGGnKJc8/RNEvQinK+Ap0cf+PGUQSX
-PhB6Z81ROFIVToEVZslgSiL+u4Tc7zXDfDQDY4HeLY2t
-=w/CG
------END PGP PUBLIC KEY BLOCK-----

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_extra/meta/contact.include.md
----------------------------------------------------------------------
diff --git a/docs/_extra/meta/contact.include.md b/docs/_extra/meta/contact.include.md
deleted file mode 100644
index e0d1e4b..0000000
--- a/docs/_extra/meta/contact.include.md
+++ /dev/null
@@ -1,9 +0,0 @@
-
-Contact us on the [brooklyn mailing list](https://mail-archives.apache.org/mod_mbox/incubator-brooklyn-dev/).
-
-Additionally look for us on:
-
-* **IRC**: #brooklyncentral ([IRC??](/meta/irc.html))
-* **Twitter**: @brooklyncentral #brooklyncentral
-
-We'd love to hear from you!

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_extra/meta/contact.md
----------------------------------------------------------------------
diff --git a/docs/_extra/meta/contact.md b/docs/_extra/meta/contact.md
deleted file mode 100644
index c318a1f..0000000
--- a/docs/_extra/meta/contact.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-layout: guide-normal
-title: Contact
-toc: /guide/toc.json
----
-
-{% readj contact.include.md %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_extra/meta/irc.md
----------------------------------------------------------------------
diff --git a/docs/_extra/meta/irc.md b/docs/_extra/meta/irc.md
deleted file mode 100644
index 9324bd2..0000000
--- a/docs/_extra/meta/irc.md
+++ /dev/null
@@ -1,31 +0,0 @@
----
-layout: guide-normal
-title: IRC
-toc: /guide/toc.json
----
-
-IRC is a basic group chat system used by many open source projects to enable developers to 
-collaborate and to help users communicate and support each other. Brooklyn has an IRC 
-channel where users and developers hang out.
-
-## Getting Help On IRC
-
-When you connect to the Brooklyn IRC channel, say Hi and then ask your question. It may 
-take a little while for someone to see and respond to your question. (Be 
-patient if you don't get an instant answer - unless there's already a conversation 
-happening folk will probably not have their eyes on the channel.) 
-
-You may want to do other things while you wait, like reviewing the [brooklyn mailing list](https://mail-archives.apache.org/mod_mbox/incubator-brooklyn-dev/)
-lists to see if anyone has had the same issue before.
-
-## Brooklyn IRC Channel
-
-* **IRC Server:** irc.freenode.net 
-* **Channel/Room:** #brooklyncentral
-* **Port:** 6667 (Default)
-
-If you are new to IRC, there is a web interface at [webchat.freenode.net](http://webchat.freenode.net/?channels=brooklyncentral) 
-but you may prefer to checkout the [Wikipedia IRC article](http://en.wikipedia.org/wiki/IRC#Client_software) 
-for an IRC application.
-
-You can find more information about using IRC at [irchelp.org](http://www.irchelp.org/).

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_extra/meta/toc.json
----------------------------------------------------------------------
diff --git a/docs/_extra/meta/toc.json b/docs/_extra/meta/toc.json
deleted file mode 100644
index f01fa8e..0000000
--- a/docs/_extra/meta/toc.json
+++ /dev/null
@@ -1,8 +0,0 @@
-[
-{ "title": "Versions",
-  "file":  "{{ site.path.guide }}/meta/versions.html" },
-{ "title": "Verify",
-  "file":  "{{ site.path.guide }}/meta/verify.html" },
-{ "title": "Contact",
-  "file":  "{{ site.path.guide }}/meta/contact.html" }
-]

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_extra/meta/versions.md
----------------------------------------------------------------------
diff --git a/docs/_extra/meta/versions.md b/docs/_extra/meta/versions.md
deleted file mode 100644
index 57e64a4..0000000
--- a/docs/_extra/meta/versions.md
+++ /dev/null
@@ -1,110 +0,0 @@
----
-layout: guide-normal
-title: Versions
-toc: /guide/toc.json
----
-
-<!--- display which version we are using, based on where it is written -->
-
-### Brooklyn v{{ site.brooklyn-stable-version }}
-
-
-{% if site.server %} 
-> **Server (debug) mode detected.**
-
-> *Links to other versions on this page and others will likely not work when running in server/debug mode.
-Files must be copied to the brooklyncentral.github.com repo for these links to resolve correctly.*
-
-> *Debug page generated {{ site.time }}*
-{% endif %}
-
-
-{% if site.brooklyn-version contains 'SNAPSHOT' %}
-<!--- snapshot version -->
-
-  {% if site.path.guide == '' %}
-
-<!--- current version (served off root of site) is snapshot (unusual) -->
-
-This is the documentation for the current snapshot version of Brooklyn,
-generated {{ site.time | date_to_string }}.
-
-  {% else %}
-
-<!--- archive docs -->
-
-This is the documentation for a snapshot version of Brooklyn,
-generated {{ site.time | date_to_string }}.
-
-[View current documentation here.](/meta/versions.html)
-
-
-  {% endif %}
-
-NB: "Snapshot" means it is the code at a point in time,
-and that a reference to this version {{ site.brooklyn-version }}
-may resolve to different code at a different point in time.
-Where possible it is preferable to develop against a GA version
-rather than a shapshot.  
-
-{% else %}
-<!--- not snapshot -->
-
-  {% if site.path.guide == '' %}
-   
-<!--- current version (served off root of site) -->
-
-This is the documentation for the latest stable version of Brooklyn,
-generated {{ site.time | date_to_string }}.
-Other versions with documentation available are listed below.
-
-  {% else %}
-
-<!--- archive version -->
-
-This is the archived documentation for Brooklyn {{ site.brooklyn-version }}
-(generated {{ site.time }}, archived under {{ site.path.guide }}).
-
-[View current documentation here.](/meta/versions.html)
-
-  {% endif %}  
-{% endif %}
-
-
-### Version History
-
-* **[0.7.0-SNAPSHOT (master)](/v/0.7.0-SNAPSHOT)**: since 0.6.0, lots of work on yaml, persistence, policies, and more supported systems
-
-* **[0.7.0](/v/0.7.0-M1/)**: most recent milestone release
-
-* **[0.6.0](/v/0.6.0/)**: use of spec objects, chef and windows support, more clouds (Nov 2013)
-
-* **[0.5.0](/v/0.5.0/)**: includes new JS GUI and REST API, rebind/persistence support, cleaner model and naming conventions, more entities (May 2013)
-
-* **[0.4.0](/v/0.4.0/)**: initial public GA release of Brooklyn to Maven Central, supporting wide range of entities and examples (Jan 2013)
-
-Note: To prevent accidentally referring to out-of-date information,
-a banner is displayed when accessing specific versions from the archive.
-You may 
-<a href="#" onclick="set_user_versions_all();">disable all warnings</a> or
-<a href="#" onclick="clear_user_versions();">re-enable all warnings</a>.
-
-
-### Versioning
-
-Brooklyn uses the [semantic versioning](http://semver.org/) guidelines. Releases will be numbered with the following format:
-
-`Brooklyn <major>.<minor>.<patch>`
-
-Breaking backward compatibility increments the `<major>` version.
-New additions without breaking backward compatibility ups the `<minor>` version.
-Bug fixes and misc changes bumps the `<patch>` version.
-New major and minor releases zero the less significant counters.
-
-Additionally, Brooklyn's release process include Snapshots, Milestones and Release Candidates.
-
-A Snapshot (`-SNAPSHOT`) is the bleeding edge. This will not be stable.
-
-Milestone versions (`-Mn`) are frozen snapshots. Some code features may be stable, but the documentation and examples may not be complete.
-
-A Release Candidate (`-rc.n`) is a just-about-ready version. Release candidates are tested against our acceptance criteria, and qualifying builds are promoted as final.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_extra/release.md
----------------------------------------------------------------------
diff --git a/docs/_extra/release.md b/docs/_extra/release.md
index 66f730b..656412c 100644
--- a/docs/_extra/release.md
+++ b/docs/_extra/release.md
@@ -1,5 +1,5 @@
 ---
-layout: guide-normal
+layout: website-normal
 title: Release Process
 toc: /guide/toc.json
 ---

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_extra/simple_java_examples/examples.md
----------------------------------------------------------------------
diff --git a/docs/_extra/simple_java_examples/examples.md b/docs/_extra/simple_java_examples/examples.md
index 851d12b..1d53ea1 100644
--- a/docs/_extra/simple_java_examples/examples.md
+++ b/docs/_extra/simple_java_examples/examples.md
@@ -1,6 +1,6 @@
 ---
 title: Examples
-layout: guide-normal
+layout: website-normal
 toc: ../guide_toc.json
 categories: [use, guide, defining-applications]
 ---

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_extra/standards.md
----------------------------------------------------------------------
diff --git a/docs/_extra/standards.md b/docs/_extra/standards.md
deleted file mode 100644
index 66b77b0..0000000
--- a/docs/_extra/standards.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-layout: guide-normal
-title: Code Standards
-toc: /guide/toc.json
----
-
-Without being too restrictive about how you have to code as part of Brooklyn,
-there are some style points that really make life easier when sharing code
-among ourselves:
-
-* Use spaces (not tabs!) with 4 spaces indentation
-* Keep line length <=128
-* Don't reformat code or organize imports unless there's very good
-  reason (this makes history and merges much harder)
-

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_extra/update-docs.md
----------------------------------------------------------------------
diff --git a/docs/_extra/update-docs.md b/docs/_extra/update-docs.md
index ccb573e..5abb056 100644
--- a/docs/_extra/update-docs.md
+++ b/docs/_extra/update-docs.md
@@ -1,5 +1,5 @@
 ---
-layout: guide-normal
+layout: website-normal
 title: Updating the Docs
 toc: /guide/toc.json
 ---

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_includes/base-head.html
----------------------------------------------------------------------
diff --git a/docs/_includes/base-head.html b/docs/_includes/base-head.html
index ed15d08..dc1d31f 100644
--- a/docs/_includes/base-head.html
+++ b/docs/_includes/base-head.html
@@ -5,11 +5,13 @@
 <meta name="viewport" content="width=device-width, initial-scale=1">
 
 <link href="{% dependency_url bootstrap.css %}" rel="stylesheet">
+<link href="{{site.path.style}}/deps/octicons/octicons.css" rel="stylesheet">
 <link href="{{site.path.style}}/deps/bootstrap-theme.css" rel="stylesheet">
 
 <link rel="stylesheet" href="{{ site.path.style }}/css/code.css" type="text/css" media="screen" />
 
-<link href="{{site.path.style}}/css/base.css" rel="stylesheet">
+<link href="{{site.path.style}}/css/website.css" rel="stylesheet">
 
 <script src="{% dependency_url jquery.js %}"></script>
 <script src="{% dependency_url bootstrap.js %}"></script>
+<script type="text/javascript" src="{{ site.path.style }}/deps/jquery.cookie.js"></script>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_includes/base-scss.scss
----------------------------------------------------------------------
diff --git a/docs/_includes/base-scss.scss b/docs/_includes/base-scss.scss
index 85ab671..aec3e2f 100644
--- a/docs/_includes/base-scss.scss
+++ b/docs/_includes/base-scss.scss
@@ -1,10 +1,36 @@
 
-$text_color: #393939;
+$fonts: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif;
+$header_fonts: Avenir, $fonts;
+
+// colors
 
 /* this green is approx what is in the logo (taken from image picker) */
 $brooklyn_green: #6db34b;
+$bootstrap_theme_green_gradient_upper: #5cb85c;
+$bootstrap_theme_green_gradient_lower: #48a648;
+$vibrant_bg_green: $bootstrap_theme_green_gradient_lower;
+$vibrant_fg_green: #483;
+
+$white_fa: #fafafa;
+$white_f5: #f5f5f5;
+$white_ee: #eee;
+$white_dd: #ddd;  // for borders and tooltip bg
+$gray_aa: #aaa;
+$gray_88: #888;
+$gray_66: #666;
+
+$blackish: #393939;
+
+$bootstrap_blue_border: #428bca;
 
-$a_color: #483;
+// roles for colors
+
+$text_color: $blackish;
+
+$a_color: $vibrant_fg_green;
 $a_hover_color: $brooklyn_green;
 
-$code_bg_color: #e8eded;
\ No newline at end of file
+//$code_bg_color: #e8eded;
+$code_bg_color: $white_f5;
+
+$footer_icon_gray: $gray_88;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_includes/breadcrumbs.html
----------------------------------------------------------------------
diff --git a/docs/_includes/breadcrumbs.html b/docs/_includes/breadcrumbs.html
deleted file mode 100644
index d3bcbea..0000000
--- a/docs/_includes/breadcrumbs.html
+++ /dev/null
@@ -1,71 +0,0 @@
-
-<!--
-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.
--->
-
-{% if page.toc %}
-  {% assign p = page.toc %}
-{% else %}
-  {% assign p = 'toc.json' %}
-{% endif %}
-{% capture toc_string %}{% readj p %}{% endcapture %}
-{% jsonball toc from var toc_string %}
-
-{% capture pagesiteurl %}{{ page.url }}{% endcapture %}
-
-{% for x in toc %}
-    {% if pagesiteurl == x.file %}
-        {% capture l1name %}{{ x.title }}{% endcapture %}
-        {% capture l1link %}{{ x.file }}{% endcapture %}
-    {% endif %}
-    {% if x.children %}{% for x2 in x.children %}
-        {% if pagesiteurl == x2.file %}
-            {% capture l1name %}{{ x.title }}{% endcapture %}
-            {% capture l1link %}{{ x.file }}{% endcapture %}
-            {% capture l2name %}{{ x2.title }}{% endcapture %}
-            {% capture l2link %}{{ x2.file }}{% endcapture %}
-        {% endif %}
-        {% if x2.children %}{% for x3 in x2.children %}
-            {% if pagesiteurl == x3.file %}
-                {% capture l1name %}{{ x.title }}{% endcapture %}
-                {% capture l1link %}{{ x.file }}{% endcapture %}
-                {% capture l2name %}{{ x2.title }}{% endcapture %}
-                {% capture l2link %}{{ x2.file }}{% endcapture %}
-                {% capture l3name %}{{ x3.title }}{% endcapture %}
-                {% capture l3link %}{{ x3.file }}{% endcapture %}
-            {% endif %}
-        {% endfor %}{% endif %}
-    {% endfor %}{% endif %}
-{% endfor %}
-
-{% if l1name %}{% else %}
-    {% capture l1name %}Home{% endcapture %}
-    {% capture l1link %}{{ site.todo_page }}{% endcapture %}
-    {% capture l2name %}{{ page.title }}{% endcapture %}
-    {% capture l2link %}{{ pagesiteurl }}{% endcapture %}
-{% endif %}
-            
-<p id="breadcrumb">
-    <a href="{{l1link}}">{{ l1name }}</a>
-    {% if l2name %}
-        &raquo; <a href="{{l2link}}">{{l2name}}</a>
-        {% if l3name %}
-            &raquo; <a href="{{l3link}}">{{l3name}}</a>
-        {% endif %}
-    {% endif %}
-</p>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_includes/feature-image.html
----------------------------------------------------------------------
diff --git a/docs/_includes/feature-image.html b/docs/_includes/feature-image.html
new file mode 100644
index 0000000..89bedcd
--- /dev/null
+++ b/docs/_includes/feature-image.html
@@ -0,0 +1,4 @@
+
+<div class="feature-image">
+  <img src="{{ include.src }}"/>
+</div>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_includes/feature-item-end.html
----------------------------------------------------------------------
diff --git a/docs/_includes/feature-item-end.html b/docs/_includes/feature-item-end.html
new file mode 100644
index 0000000..f208df5
--- /dev/null
+++ b/docs/_includes/feature-item-end.html
@@ -0,0 +1,14 @@
+
+{% if include.img %}
+{% comment %}
+  does not work to do: { % include feature-image.html src='{{ include.img }}' % }
+  so we repeat that snippet :(
+{% endcomment %}
+
+<div class="feature-image">
+  <img src="{{ include.img }}"/>
+</div>
+
+{% endif %}
+
+</div></div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_includes/feature-item.html
----------------------------------------------------------------------
diff --git a/docs/_includes/feature-item.html b/docs/_includes/feature-item.html
new file mode 100644
index 0000000..e91d6c2
--- /dev/null
+++ b/docs/_includes/feature-item.html
@@ -0,0 +1,4 @@
+
+<div class="feature-item">
+  <div class="feature-title">{{ include.title }}</div>
+  <div class="feature-body">

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_includes/footer.html
----------------------------------------------------------------------
diff --git a/docs/_includes/footer.html b/docs/_includes/footer.html
index f9121cf..a821b5e 100644
--- a/docs/_includes/footer.html
+++ b/docs/_includes/footer.html
@@ -10,8 +10,10 @@
             </div>
             <div class="col-md-2">
                 <a class="btn btn-sm btn-default" href="https://github.com/apache/incubator-brooklyn/edit/master/docs/{{ page.path }}">Edit This Page</a>
-                <br />
-                <a href="{{ site.url_root }}{{ site.path.website }}/community/how-to-contribute-docs.html">help with editing</a>
+                <a href="{{ site.url_root }}{{ site.path.website }}/community/how-to-contribute-docs.html"
+                    data-toggle="tooltip" data-placement="top" title="How to Edit Documentation" data-delay="400"/>
+                  <span class="octicon octicon-question octicon-footer"></span>
+                </a>
             </div>
         </div>
     </div>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_includes/java_link.html
----------------------------------------------------------------------
diff --git a/docs/_includes/java_link.html b/docs/_includes/java_link.html
new file mode 100644
index 0000000..01ac1d7
--- /dev/null
+++ b/docs/_includes/java_link.html
@@ -0,0 +1,18 @@
+{% comment %}
+
+includes a code-formatted class name with link to its javadoc and optionally its source code
+
+usage:  
+
+{ % include java_link.html class_name="JcloudsLocationConfig" package_path="brooklyn/location/jclouds" project_subpath="location/jclouds" % }
+
+
+{% endcomment %}{% if include.project_subpath %}<code>{{ include.class_name }}</code>
+  (<a href="{{ site.path.guide }}/misc/javadoc/{{ include.package_path }}/{{ include.class_name }}.html">javadoc</a>, 
+   <a href="{{ site.brooklyn.url.git }}/{{ include.project_subpath }}/src/main/java/{{ include.package_path }}/{{ include.class_name }}.java">src</a>){% comment %}
+{% endcomment %}{% else %}<a href="{{ site.path.guide }}/misc/javadoc/{{ include.package_path }}/{{ include.class_name }}.html">
+<code>{{ include.class_name }}</code></a>
+{% endif %}{% comment %}
+
+must NOT have a newline at the end here, as the include is often done inline
+{% endcomment %}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_includes/list-children.html
----------------------------------------------------------------------
diff --git a/docs/_includes/list-children.html b/docs/_includes/list-children.html
index 68f8b5c..0c327f3 100644
--- a/docs/_includes/list-children.html
+++ b/docs/_includes/list-children.html
@@ -2,6 +2,8 @@
 TODO style this much better
 {% endcomment %}
 
+<div class="list-children"><ul>
 {% for item in page.menu %}
-* [{{ item.title }}]({{ item.url }})
-{% endfor %}
\ No newline at end of file
+<li> <a href="{{ item.url }}">{{ item.title }}</a> </li>
+{% endfor %}
+</ul></div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_includes/sidebar.html
----------------------------------------------------------------------
diff --git a/docs/_includes/sidebar.html b/docs/_includes/sidebar.html
deleted file mode 100644
index cea3ba4..0000000
--- a/docs/_includes/sidebar.html
+++ /dev/null
@@ -1,77 +0,0 @@
-
-<!--
-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.
--->
-
-
-{% if page.toc %}
-  {% assign p = page.toc %}
-{% else %}
-  {% assign p = 'toc.json' %}
-{% endif %}
-{% capture toc_string %}{% readj p %}{% endcapture %}
-{% jsonball toc from var toc_string %}
-
-{% capture pagesiteurl %}{{ page.url }}{% endcapture %}
-
-<div id="sidebar_toc">
-{% for x in toc %}
-    {% capture ifactive %}{% if pagesiteurl == x.file %}toc-active
-      {% else %}{% if x.children %}{% for x2 in x.children %}
-        {% if pagesiteurl == x2.file %}toc-active{% else %}{% if x2.children %}{% for x3 in x2.children %}
-            {% if pagesiteurl == x3.file %}toc-active{% endif %}
-          {% endfor %}{% endif %}
-        {% endif %}
-      {% endfor %}{% endif %}
-    {% endif %}{% endcapture %}
-    {% capture ifactive %}{{ ifactive | trim }}{% endcapture %}
-    
-	  <div class="toc-1 {{ ifactive }}">
-  {% if x.children %}
-	    <a href="{{ x.file }}"><div class="toc-1-item toc-1-header {% if pagesiteurl == x.file %}{% if x.exclude %}{% else %} toc-active{% endif %}{% endif %}">{{ x.title }}</div></a>
-        <div class="toc-1-children">
-    {% for x2 in x.children %}
-        {% capture ifactive %}{% if pagesiteurl == x2.file %}toc-active{% else %}{% if x2.children %}{% for x3 in x2.children %}
-            {% if pagesiteurl == x3.file %}toc-active{% endif %}
-          {% endfor %}{% endif %}
-        {% endif %}{% endcapture %}
-        {% capture ifactive %}{{ ifactive | trim }}{% endcapture %}
-	      <div class="toc-2 {{ ifactive }}">
-      {% if x2.children %}
-	        <a href="{{ x2.file }}"><div class="toc-2-item toc-2-header{% if pagesiteurl == x2.file %}{% if x2.exclude %}{% else %} toc-active{% endif %}{% endif %}">{{ x2.title }}</div></a>
-            <div class="toc-2-children-popup"><div class="toc-2-children">
-        {% for x3 in x2.children %}
-            {% capture ifactive %}{% if pagesiteurl == x3.file %}toc-active{% endif %}{% endcapture %}
-              <div class="toc-3 {{ ifactive }}">
-	            <a href="{{ x3.file }}"><div class="toc-3-item{% if pagesiteurl == x3.file %}{% if x3.exclude %}{% else %} toc-active{% endif %}{% endif %}">{{ x3.title }}</div></a>
-              </div>
-        {% endfor %}
-            </div></div>
-      {% else %}
-	        <a href="{{ x2.file }}"><div class="toc-2-item{% if pagesiteurl == x2.file %} toc-active{% endif %}">{{ x2.title }}</div></a>
-      {% endif %}
-          </div>
-    {% endfor %}
-        </div>
-  {% else %}
-	    <a href="{{ x.file }}"><div class="toc-1-item{% if pagesiteurl == x.file %} toc-active{% endif %}">{{ x.title }}</div></a>
-  {% endif %}
-      </div>
-{% endfor %} 
-</div>
-<br/>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_includes/sidemenu.html
----------------------------------------------------------------------
diff --git a/docs/_includes/sidemenu.html b/docs/_includes/sidemenu.html
new file mode 100644
index 0000000..ec3cf1c
--- /dev/null
+++ b/docs/_includes/sidemenu.html
@@ -0,0 +1,244 @@
+<div class="list-group side-menu" id="side-menu">
+{% comment %}
+
+  Case 1) If we're the landing page show nothing.
+  Case 2) If we're contained in the top (landing page) menu, show our menu if we have one.
+  Case 3a) Otherwise if we're contained in a menu, show that menu.
+  Case 3b) And if we have a menu, show our menu nested.
+  
+  Note the breadcrumbs are offset:1. This is because usually breadcrumbs include the root;
+  but also if we're overriding breadcrumbs it gives us a way to set a topmenu item (making it breadcrumb[0])
+  while customizing the side menu (make self breadcrumb[1]).
+{% endcomment %}
+
+{% unless page.landing %}
+  {% if page.menu_parent %}
+    {% if page.menu_parent.landing %} {% comment %} case 2 {% endcomment %}
+              {% for item in page.breadcrumb_pages offset:1 %}
+                  <h4 class="{% if forloop.index0 > 0 %} with_preceding{% endif %}{% if forloop.rindex0 > 0 %} with_following{% endif %}">
+                    <a href="{{item.url}}" class="list-group-item{% if item.path == page.menu_path %} active{% endif %} breadcrumb breadcrumb{{ forloop.index0 }}">
+                      {{ item.title_in_menu }}</a></h4>
+              {% endfor %}
+              
+              {% for item in page.menu %}
+                <a href="{{item.url}}" class="list-group-item{% if page.breadcrumbs contains item %} active{% endif %}">{{ item.title_in_menu }}
+                  {% if item.external %}&nbsp;<span class="octicon octicon-link-external"></span>{% endif %}</a>
+              {% endfor %}
+    
+    {% else %} {% comment %} case 3a {% endcomment %}
+              {% for item in page.menu_parent.breadcrumb_pages offset:1 %}
+                  <h4 class="{% if forloop.index0 > 0 %} with_preceding{% endif %}{% if forloop.rindex0 > 0 %} with_following{% endif %}">
+                    <a href="{{item.url}}" class="list-group-item{% if item.path == page.menu_path %}{% unless item.menu_customization.force_inactive %} active{% endunless %}{% endif %} breadcrumb breadcrumb{{ forloop.index0 }}">
+                      {{ item.title_in_menu }}
+                      {% if item.external %}&nbsp;<span class="octicon octicon-link-external"></span>{% endif %}</a></h4>
+              {% endfor %}
+              {% for item in page.menu_parent.menu %}
+                {% if page.breadcrumb_paths contains item.menu_path %}{% assign in_menu = true %}{% else %}{% assign in_menu = false %}{% endif %} 
+                {% if in_menu and page.menu %}
+                  {% comment %} case 3b {% endcomment %}
+                  <a href="{{item.url}}" class="list-group-item active with-sub-item">{{ item.title_in_menu }}
+                    {% if item.external %}&nbsp;<span class="octicon octicon-link-external"></span>{% endif %}</a>
+                  <div class="sub-item">
+                    {% for item2 in page.menu %}
+                      {% capture item_section_classes %}{% if item2.section %} section{% endif %}{% endcapture %}
+                      <a href="{{item2.url}}" class="list-group-item sub-item {{ item_section_classes }}" {% if item2.section %}section-target="#{{ item2.section }}"{% endif %}>
+                        {{ item2.title_in_menu }}
+                        {% if item2.external %}&nbsp;<span class="octicon octicon-link-external"></span>{% endif %}</a>
+                    {% endfor %}
+                  </div>
+                {% else %}
+                  {% comment %} case 3a side menu item {% endcomment %}
+                  <a href="{{item.url}}" class="list-group-item{% if page.breadcrumb_paths contains item.menu_path %}{% unless item.menu_customization.force_inactive %} active{% endunless %}{% endif %}">{{ item.title_in_menu }}
+                    {% if item.external %}&nbsp;<span class="octicon octicon-link-external"></span>{% endif %}</a>
+                {% endif %}
+              {% endfor %}
+        
+    {% endif %}    
+  {% elsif page.menu %}
+    <!-- no pages have a menu without being in the top menu, won't come here -->
+  {% endif %}
+{% endunless %}
+        
+</div>
+<div id="width_reference"></div>
+
+
+<script language="JavaScript" type="application/javascript">
+
+{% comment %} 
+the menu is css position:fixed so won't scroll; 
+but also it will not obey its parents width.
+set the width on load and on resize.
+{% endcomment %} 
+sidemenu_x_sizer=function(){ $('#side-menu').width($('#side-menu').parent().find('#width_reference').outerWidth()); };
+$(sidemenu_x_sizer);
+$(window).resize(sidemenu_x_sizer);
+
+{% comment %} 
+also ensure the screen is big enough, else revert to non-floating menu:
+check y-height, and check widths (in case it was moved to after the other column)
+{% endcomment %} 
+sidemenu_y_nonfloater=function(){
+  if ($('#side-menu').outerHeight(true) + $('#header').outerHeight(true) + $('#footer').outerHeight(true) > window.innerHeight ||
+      $('#side-menu').width() >= $('#content_container').width()/2) {
+    $('#side-menu').css('position', 'inherit');
+  } else {
+    // restore if screen has grown
+    $('#side-menu').css('position', 'fixed');
+  }
+};
+$(sidemenu_y_nonfloater);
+$(window).resize(sidemenu_y_nonfloater);
+
+{% comment %} 
+auto-advance "sections" in menu on scroll
+{% endcomment %} 
+
+var sideMenu = $("#side-menu"),
+    sideItems = sideMenu.find("a"),
+    // Anchors corresponding to menu items
+    scrollItems = sideItems.map(function(){
+      var item = $(this).attr("section-target");
+      if (item && item.length) { return item; }
+    });
+
+var highlight_section_last_top = -1;
+var highlight_section_completed = false;
+
+var highlight_section = function() {
+   // Get container scroll position
+   var highlight_section_new_top = $(this).scrollTop();
+   if (highlight_section_new_top == highlight_section_last_top) return;
+   var highlight_section_new_bottom = highlight_section_new_top + $(window).height();
+   var scroll_advancing = (highlight_section_new_top > highlight_section_last_top);
+
+   var last_item = null, active_item = $("#side-menu a.section#active");
+   
+   var found_top = false;
+   var displayable_items = scrollItems.map(function(itemI){
+     item = $(scrollItems[itemI]);
+     if (item && item.length) {
+       if (highlight_section_last_top == -1 || !highlight_section_completed) {
+         // just opening page - take item matching hash, or otherwise the first item visible
+         if (item.selector === window.location.hash || (item.offset().top > highlight_section_new_top - 20 && !found_top)) {
+           found_top = true;
+           if (item.selector === window.location.hash && item.offset().top < highlight_section_new_top + 60) {
+             // because of our top header, we need to scroll 64px down from any link
+             $('html, body').animate({scrollTop: item.offset().top - 64}, 0);
+           }
+           return item;
+         }
+       } else if (scroll_advancing) {
+         // if scrolling advance, pick up a section when title starts before 1/3 height 
+         if (item.offset().top < highlight_section_new_top + $(window).height()/3)
+           return item;
+           
+         // or if containing div is finished (usu the whole main content)
+         div_containing_item = item.closest("div");
+         if (div_containing_item.offset().top + div_containing_item.height() < highlight_section_new_bottom + 15)
+           return item;
+         // or when next title is visible
+         if (last_item && item.offset().top < highlight_section_new_bottom + 15)
+           return last_item;
+       } else {
+         // if scrolling back, pick up a section as soon as the title is visible,
+         if (item.offset().top < highlight_section_new_top)
+           return item;
+         // or if title is before the 2/3 point
+         // (not sure about this, probably want also to have 
+         // "AND the id.top is <= displayable_itemsrent_active_it.top" so we don't jump FORWARD a section
+         // when scrolling BACK, with lots of tiny sections) 
+         if ((item.offset().top < highlight_section_new_top + 2*$(window).height()/3)
+             && (!active_item || !active_item.offset() || active_item.offset().top >= item.offset().top))
+           return item;
+         
+       }
+       last_item = item;
+     }
+   });
+   if (!highlight_section_completed && document.readyState === "complete") {
+     highlight_section_completed = true;
+   }
+   if (!displayable_items.length) {
+     $("#side-menu a.section").removeClass("active");
+   } else {
+     displayable_items = displayable_items[displayable_items.length-1];
+     var id = displayable_items && displayable_items.length ? displayable_items[0].id : "";
+   // Set/remove active class
+     new_active = $("#side-menu a.section").filter("[section-target='#"+id+"']");
+     if (new_active.hasClass("active")) {
+       // nothing needed
+     } else {
+       $("#side-menu a.section").removeClass("active");
+       $("#side-menu a.section").filter("[section-target='#"+id+"']").addClass("active");
+     }
+   }
+   
+   highlight_section_last_top = highlight_section_new_top;
+};
+var highlight_new_section = function() {
+  highlight_section_completed = false;
+  highlight_section_last_top = -1;
+  highlight_section();
+}
+
+$(window).scroll(highlight_section);
+$(highlight_new_section);
+
+// detect link change - courtesy http://www.bennadel.com/blog/1520-binding-events-to-non-dom-objects-with-jquery.htm
+    (
+        function( $ ){
+            // Default to the current location.
+            var strLocation = window.location.href;
+            var strHash = window.location.hash;
+            var strPrevLocation = "";
+            var strPrevHash = "";
+
+            // This is how often we will be checkint for
+            // changes on the location.
+            var intIntervalTime = 100;
+
+            // This method removes the pound from the hash.
+            var fnCleanHash = function( strHash ){
+                return(
+                    strHash.substring( 1, strHash.length )
+                    );
+            }
+
+            // This will be the method that we use to check
+            // changes in the window location.
+            var fnCheckLocation = function(){
+                // Check to see if the location has changed.
+                if (strLocation != window.location.href){
+
+                    // Store the new and previous locations.
+                    strPrevLocation = strLocation;
+                    strPrevHash = strHash;
+                    strLocation = window.location.href;
+                    strHash = window.location.hash;
+
+                    // The location has changed. Trigger a
+                    // change event on the location object,
+                    // passing in the current and previous
+                    // location values.
+                    $( window.location ).trigger(
+                        "change",
+                        {
+                            currentHref: strLocation,
+                            currentHash: fnCleanHash( strHash ),
+                            previousHref: strPrevLocation,
+                            previousHash: fnCleanHash( strPrevHash )
+                        }
+                        );
+
+                }
+            }
+
+            // Set an interval to check the location changes.
+            setInterval( fnCheckLocation, intIntervalTime );
+        }
+    )( jQuery );
+// and trigger highlight section on link change
+$(window.location).bind("change", highlight_new_section);
+
+</script>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_includes/sitemap-item.html
----------------------------------------------------------------------
diff --git a/docs/_includes/sitemap-item.html b/docs/_includes/sitemap-item.html
new file mode 100644
index 0000000..e2034f5
--- /dev/null
+++ b/docs/_includes/sitemap-item.html
@@ -0,0 +1,36 @@
+{% pop site_items item %}
+{% set_hash_entry item path item_path %}
+{% set_hash_entry item url item_url %}
+
+{% unless item_path %}
+ {% unless item_url %}
+  {% puts error, null item_url %}
+  {% putp item %}
+  {% putv item_url %}
+  {% fail item missing path and url (jekyll block evaluation order can cause this) %}
+ {% endunless %}
+{% endunless %}
+
+<a id="{{ item_path }}" name="{{ item_path }}" href="javascript:void(0);"></a>
+<li>
+ {% if visited contains item_path %}
+  {{ item['title'] }} &nbsp; <a href="#{{ item_path }}"><span class="octicon octicon-link-external flip"></span></a>
+ {% elsif item['external'] %}
+  {{ item['title'] }} &nbsp; <a href="{{ item['url'] }}"><span class="octicon octicon-link-external"></span></a>
+  
+ {% else %}
+  <a href="{{ item['url'] }}">{{ item['title'] }}</a>
+  {% if item['menu'] %}
+   {% push visited item_path %}
+   <ul>
+    {% push site_items item %}
+    {% assign last_item = site_items[-1] %}
+    {% for item in last_item['menu'] %}
+     {% push site_items item %}
+     {% include sitemap-item.html %}
+    {% endfor %}
+    {% pop site_items item %}
+   </ul>
+  {% endif %}
+ {% endif %}
+</li>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_includes/topbar.html
----------------------------------------------------------------------
diff --git a/docs/_includes/topbar.html b/docs/_includes/topbar.html
deleted file mode 100644
index 3c3cb7d..0000000
--- a/docs/_includes/topbar.html
+++ /dev/null
@@ -1,49 +0,0 @@
-
-<!--
-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.
--->
-
-{% assign p = '/guide/toc-menu.json' %}
-{% capture tocm_string %}{% readj p %}{% endcapture %}
-{% jsonball tocm from var tocm_string %}
-
-{% capture pagesiteurl %}{{ page.url }}{% endcapture %}
-
-<ul id="mainmenu"><!-- INSERT LINKS -->
-            
-{% for x in tocm %}
-  {% capture ifactive %}
-    {% if pagesiteurl == x.file %}toc-active
-      {% else %}{% if x.children %}{% for x2 in x.children %}
-        {% if pagesiteurl == x2.file %}toc-active
-          {% else %}{% if x2.children %}{% for x3 in x2.children %}
-            {% if pagesiteurl == x3.file %}toc-active
-              {% else %}{% if x3.children %}{% for x4 in x3.children %}
-                {% if pagesiteurl == x4.file %}toc-active{% endif %}
-              {% endfor %}{% endif %}
-            {% endif %}
-          {% endfor %}{% endif %}
-        {% endif %}
-      {% endfor %}{% endif %}
-    {% endif %}
-  {% endcapture %}
-  {% capture ifactive %}{{ ifactive | trim }}{% endcapture %}
-  <li class="{{ifactive}}"><a href="{{ x.file }}">{{x.title}}</a></li>
-{% endfor %}
-
-</ul>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_includes/topmenu.html
----------------------------------------------------------------------
diff --git a/docs/_includes/topmenu.html b/docs/_includes/topmenu.html
index b9d8e6f..0275794 100644
--- a/docs/_includes/topmenu.html
+++ b/docs/_includes/topmenu.html
@@ -1,8 +1,10 @@
 <nav class="navbar navbar-default navbar-fixed-top" id="header" role="navigation">
     <div class="container-and-sidebars">
 
-        <div class="container-sidebar-left">
-          <img src="{{ site.path.style }}/img/feather.png" alt="[feather]" width="80" class="flip navbar-feather">
+        <div class="container-sidebar-left feather{% if page.landing %} landing{% endif %}">
+          <a href="http://www.apache.org/">
+            <img src="{{ site.path.style }}/img/feather.png" alt="[Apache]" width="80" class="flip navbar-feather">
+          </a>
         </div>
 
         <div class="container container-between-sidebars top-menu">
@@ -35,7 +37,8 @@
                                 {% if item2.menu_customization.dropdown_new_section %}
                                   <div class="dropdown_new_section"><hr></div>
                                 {% endif %}
-                                <a href="{{item2.url}}">{{item2.title_in_menu}}</a>
+                                <a href="{{item2.url}}">{{item2.title_in_menu}}
+                                  {% if item2.external %}&nbsp;<span class="octicon octicon-link-external"></span>{% endif %}</a>
                                 {% if item2.menu_customization.dropdown_section_header %}
                                   <div class="dropdown_section_header"><hr></div>
                                 {% endif %}
@@ -57,13 +60,14 @@
         <div class="container-sidebar-right">
           <div class="navbar-sidebar-right-icons">
             <a href="https://github.com/apache/incubator-brooklyn" class="navbar-icon navbar-icon-shift icon-github"
-              data-toggle="tooltip" data-placement="bottom" title="GitHub: apache/incubator-brooklyn" data-delay="400"/>
+              data-toggle="tooltip" data-placement="bottom" title="GitHub: apache/incubator-brooklyn"/>
             <a href="https://twitter.com/#!/search?q=brooklyncentral" class="navbar-icon navbar-icon-shift icon-twitter"
-              data-toggle="tooltip" data-placement="bottom" title="Twitter: @brooklyncentral" data-delay="400"/>
+              data-toggle="tooltip" data-placement="bottom" title="Twitter: @brooklyncentral"/>
             <a href="http://webchat.freenode.net/?channels=brooklyncentral" class="navbar-icon icon-irc"
-              data-toggle="tooltip" data-placement="bottom" title="IRC: freenode #brooklyncentral" data-delay="400"/>
-            <!-- extra a element seems needed as landing page seems to copy the last element here (!?) -->
-            <a href="." style="width: 0px; height: 0px;"></a>
+              data-toggle="tooltip" data-placement="bottom" title="IRC: freenode #brooklyncentral"/>
+            <!-- extra a element seems needed as landing page seems to copy the last element here (!?) 
+            -->
+            <a href="/" style="width: 0px; height: 0px;"></a>
          </div>
       </div>
       

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8560033d/docs/_layouts/base.html
----------------------------------------------------------------------
diff --git a/docs/_layouts/base.html b/docs/_layouts/base.html
index c6713b2..b803569 100644
--- a/docs/_layouts/base.html
+++ b/docs/_layouts/base.html
@@ -24,19 +24,161 @@ under the License.
 {{ content }}
 
 
+<script src="//cdnjs.cloudflare.com/ajax/libs/zeroclipboard/1.3.1/ZeroClipboard.min.js"></script>
+
 <script language="JavaScript" type="application/javascript">
-    $(window).resize(function () { 
+    fix_padding_function = function () { 
         $('body').css('padding-top', parseInt($('#header').css("height"))+10);
         $('body').css('padding-bottom', parseInt($('#footer').css("height"))+10);
+    };
+    $(window).resize(fix_padding_function);
+    $(window).load(fix_padding_function);
+    
+    $(function () {
+        $('[data-toggle="tooltip"]').tooltip({ delay: { show: 600, hide: 100 }})
     });
     
-    $(window).load(function () { 
-        $('body').css('padding-top', parseInt($('#header').css("height"))+10);        
-        $('body').css('padding-bottom', parseInt($('#footer').css("height"))+10);
+/* generate anchors for headers, a la github and http://blog.parkermoore.de/2014/08/01/header-anchor-links-in-vanilla-javascript-for-github-pages-and-jekyll/ */
+var anchorForId = function (id, text) {
+  var anchor = document.createElement("a");
+  anchor.className = "header-link";
+  anchor.href      = "#" + id;
+  anchor.innerHTML = "<i class=\"fa fa-link\"></i>";
+  return anchor;
+};
+
+var linkifyAnchors = function (level, containingElement) {
+  var headers = contentBlock.find("h" + level);
+  for (var h = 0; h < headers.length; h++) {
+    var header = headers[h];
+    if (typeof header.id !== "undefined" && header.id !== "") {
+      header.appendChild(anchorForId(header.id, $(header).text()));
+    }
+  }
+};
+
+$(function () {
+    contentBlock = $("#content_container");
+    if (!contentBlock) return;
+    for (var level = 1; level <= 6; level++) {
+      linkifyAnchors(level, contentBlock);
+    }
+});
+
+<!-- Clipboard support -->
+  ZeroClipboard.config({ moviePath: '//cdnjs.cloudflare.com/ajax/libs/zeroclipboard/1.3.1/ZeroClipboard.swf' });
+
+$(function() {
+  $('div.highlight').prepend(
+  $('<div class="clipboard_container" title="Copy to Clipboard">'+
+    '<div class="fa clipboard_button">'+
+    '<div class="on-active"><div>Copied to Clipboard</div></div>'+
+  '</div></div>'));
+  $('div.clipboard_container').each(function(index) {
+    var clipboard = new ZeroClipboard();
+    clipboard.clip( $(this).find(":first")[0], $(this)[0] );
+    var target = $(this).next();
+    var txt = target.text().trim();
+    if (target.find('code.bash')) {
+      // Strip out bash prompts from the start of each line (i.e. '$' or '%' characters
+      // at the very start, or immediately following any newline). Correctly handles continuation
+      // lines, where a leading '$' or '%' is *not* a prompt character.
+      txt = txt.replace(/(^|[^\\]\n)[$%] /g, "$1");
+    }
+    clipboard.on( 'dataRequested', function (client, args) {
+      client.setText( txt );
     });
-    $(function () {
-        $('[data-toggle="tooltip"]').tooltip()
-    })
+  });
+});
+
+<!-- search -->
+    $(function() {
+        $('#simple_google')
+            .submit(function() {
+                $('input[name="q"]').val("site:" + document.location.hostname + " " + $('input[name="brooklyn-search"]').val());
+            return true;
+            });
+        $('input[name="brooklyn-search"]').focus(function() {
+                if ($(this).val() === $(this).attr('placeholder')) {
+                    $(this).val('');
+                }
+            })
+            .blur(function() {
+                if ($(this).val() === '') {
+                    $(this).val($(this).attr('placeholder'));
+                }
+            })
+            .blur();
+    });
+
+
+ <!-- analytics -->
+    var _gaq = _gaq || [];
+    _gaq.push(['_setAccount', 'UA-30530918-1']);
+    _gaq.push(['_trackPageview']);
+    
+    (function() {
+      var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+      ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+      var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+    })();
+
+
+<!-- page warning (for archive pages) -->
+{% comment %}
+TODO insert the warning html at generation-time (jekyll) rather than runtime (JS)
+{% endcomment %}
+{% if page.path contains 'guide/' %} 
+    $(function() {
+        if (document.location.pathname.replace(/^\/([^\/]*).*$/, '$1') === "v"){
+            var thisversion = document.location.pathname.split("/")[2],
+                msg = "";
+            if (thisversion != 'latest' && (!$.cookie('brooklyn_versions') || 
+                    (($.inArray('ALL', $.cookie('brooklyn_versions').split(",")) === -1) &&
+                    ($.inArray(thisversion, $.cookie('brooklyn_versions').split(",")) === -1))) ){
+                msg += "<div class='warning_banner_image'><img src='{{ site.path.style }}/img/warning.png'/></div>";
+                msg += "<p>You are browsing the archive site for version <strong>"+thisversion+"</strong>.</p>";
+                if (thisversion.indexOf("SNAPSHOT") >= 0) {
+                  msg += "<p>Note that SNAPSHOT versions have not been voted on and are not endorsed by the Apache Software Foundation.</p>";
+                  msg += "<p>Do you understand and accept the risks?</p>";
+                } else {
+                  msg += "<p>Is this deliberate?</p>";
+                }
+                msg += "<center><p class='warning_banner_buttons'>";
+                msg += "<a href = 'javascript:void(0);' onclick=\"set_user_version('"+thisversion+"');\">Yes, hide this warning</a>";
+                msg += "<a href = '{{ site.path.guide }}'>No, take me to the latest version guide</a>";
+                msg += "<a href = '{{ site.path.website }}/meta/versions.html'>Show all versions</a>";
+                msg += "</p></center>"
+                            
+                $('#page_notes').html(msg);
+                $('#page_notes').fadeIn('slow');
+            }
+        }
+    });
+{% endif %}
+    function get_user_versions() {
+        return $.cookie("brooklyn_versions") ? $.cookie("brooklyn_versions").split(",") : [];
+    };
+    function set_user_version(version) {
+        var version_cookie = get_user_versions();
+        version_cookie.push(version);
+        $.cookie('brooklyn_versions', version_cookie, { expires: 365, path: '/' });
+        $('#page_notes').fadeOut();
+        event.preventDefault ? event.preventDefault() : event.returnValue = false;
+    };
+    function set_user_versions_all() {
+        var version_cookie = get_user_versions();
+        version_cookie.push("ALL");
+        $.cookie('brooklyn_versions', version_cookie, { expires: 365, path: '/' });
+        $('#page_notes').fadeOut();
+        event.preventDefault ? event.preventDefault() : event.returnValue = false;
+    };
+    function clear_user_versions() {
+        $.removeCookie('brooklyn_versions', { path: '/' });
+        $('#page_notes').fadeIn('slow');
+        event.preventDefault ? event.preventDefault() : event.returnValue = false;
+    };
+
 </script>
 
 </body>


Mime
View raw message