added interactive tour of a brooklyn blueprint

in docs under "learn more".  lots of snazzy css/js.  needs testing in more 
browsers though.


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

Branch: refs/heads/master
Commit: 24f079940c7905bd4bef45467b35396c737ead52
Parents: 640a980
Author: Alex Heneveld <[email protected]>
Authored: Wed Jan 14 09:25:30 2015 +0000
Committer: Alex Heneveld <[email protected]>
Committed: Thu Jan 15 16:33:00 2015 +0000

----------------------------------------------------------------------
 docs/_includes/base-scss.scss            |  29 ++-
 docs/style/css/base.scss                 | 249 +++++++++++++++++++++-----
 docs/website/learnmore/blueprint-tour.md | 192 ++++++++++++++++++++
 docs/website/learnmore/index.md          |  30 ++--
 docs/website/learnmore/theory.md         |  10 +-
 docs/website/learnmore/yaml-explained.md |   8 -
 6 files changed, 447 insertions(+), 71 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/24f07994/docs/_includes/base-scss.scss
----------------------------------------------------------------------
diff --git a/docs/_includes/base-scss.scss b/docs/_includes/base-scss.scss
index f6d850f..d102394 100644
--- a/docs/_includes/base-scss.scss
+++ b/docs/_includes/base-scss.scss
@@ -1,12 +1,35 @@
 
 $fonts: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif;
 
-$text_color: #393939;
+// 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;
 
-$a_color: #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;
+
+// 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/24f07994/docs/style/css/base.scss
----------------------------------------------------------------------
diff --git a/docs/style/css/base.scss b/docs/style/css/base.scss
index 9034e20..01a7122 100644
--- a/docs/style/css/base.scss
+++ b/docs/style/css/base.scss
@@ -11,7 +11,7 @@ body {
     font-family: $fonts;
     font-weight: 300;
     font-size: 17px; 
-    background-color: #ffffff; 
+    background-color: white; 
     color: $text_color; 
 }
 h1, h2, h3, h4, h5, h6 { font-family: Avenir, $fonts; }
@@ -39,7 +39,7 @@ a[id]:empty, a[name]:empty {
     font-weight: 300;
 }
 .btn-default {
-    color: #666;
+    color: $gray_66;
 }
 .panel-heading {
   h4 {
@@ -50,9 +50,9 @@ a[id]:empty, a[name]:empty {
 .panel-body {
     margin: 0px;
     font-size: 95%;
-    color: #606060;
+    color: $gray_66;
     padding: 15px;
-    background-color: #fafafa;
+    background-color: $white_fa;
     border-radius: 5px;
     p:first-child {
       margin-top: 0px;
@@ -95,13 +95,14 @@ a[id]:empty, a[name]:empty {
   margin-top: -16px;
   padding-bottom: 6px;
   margin-bottom: 24px;
-  border-bottom: 1px dotted #aaa;
+  border-bottom: 1px dotted $gray_aa;
   font-weight: 300;
   font-size: 36px;
   text-transform: uppercase;
 }
 
 /* headings get a tooltip showing the permalink URL, a la github jekyll */
+/* install subset of font-awesome */
 @font-face {
   font-family: 'FontAwesome';
   src: url('{{ site.path.style 
}}/deps/font-awesome-4.2.0/fonts/fontawesome-webfont.eot');
@@ -121,6 +122,9 @@ a[id]:empty, a[name]:empty {
 .fa-link:before {
   content: "\f0c1";
 }
+.fa-play-circle-o:before {
+  content: "\f01d";
+}
 /*
  * This code is courtesy Ben Balter, modified by Parker Moore for jekyllrb.com
  * http://ben.balter.com/2014/03/13/pages-anchor-links/
@@ -149,14 +153,14 @@ a.header-literal-anchor { display: inline !important; }
    
 .tooltip .tooltip-inner {
     color: $text_color;
-    background-color: #ccc;
+    background-color: $white_dd;
     font-weight: 500;
 }
 .tooltip.top .tooltip-arrow { 
-    border-top-color: #ccc;
+    border-top-color: $white_dd;
 }
 .tooltip.bottom .tooltip-arrow { 
-    border-bottom-color: #ccc;
+    border-bottom-color: $white_dd;
 }
 
 /* WEBSITE MENUS
@@ -252,12 +256,12 @@ a.header-literal-anchor { display: inline !important; }
 
 .navbar div.dropdown_section_header hr {
   margin: 4px 12px;
-  border-color: #ddd;
+  border-color: $white_dd;
 }
 
 .navbar div.dropdown_new_section hr {
   margin: 6px 0px;
-  border-color: #ddd;
+  border-color: $white_dd;
 }
 
 /* pop-up top-menu */
@@ -265,14 +269,14 @@ a.header-literal-anchor { display: inline !important; }
 .navbar-default .navbar-nav > li > a:focus,
 .navbar-default .navbar-nav > .active > a:hover,
 .navbar-default .navbar-nav > .active > a:focus {
-  background-color: #f5f5f5;
+  background-color: $white_f5;
   color: $brooklyn_green;
 }
 .top-menu {
   font-size: 14px;
   font-weight: 400;
   .dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus {
-    background-color: #f5f5f5;
+    background-color: $white_f5;
     background-image: none;
     color: $brooklyn_green;
   }
@@ -311,20 +315,11 @@ a.header-literal-anchor { display: inline !important; }
   a.breadcrumb { padding-left: 70px; }
   
   div.sub-item {
-    background-color: #48a648;
-    border-left: 1px solid #428bca;
-    /*
-    border-bottom: 1px solid #428bca;
-    border-top: 1px solid #428bca;
-    border-right: 1px solid #428bca;
-    */
-    /*
-    padding-bottom: 6px;
-    padding-right: 6px;
-    */
+    background-color: $bootstrap_theme_green_gradient_lower;
+    border-left: 1px solid $bootstrap_blue_border;
   } 
   div.sub-item:last-child {
-    border-bottom: 1px solid #ddd;
+    border-bottom: 1px solid $white_dd;
     border-bottom-left-radius: 4px;
     border-bottom-right-radius: 4px;
   }
@@ -332,7 +327,7 @@ a.header-literal-anchor { display: inline !important; }
     border-bottom-right-radius: 4px !important;
   }
   a.with-sub-item {
-    /* border-bottom: 1px solid #ddd; */
+    /* border-bottom: 1px solid $white_dd; */
     border-bottom: 0;
   }
   a.sub-item { 
@@ -344,18 +339,12 @@ a.header-literal-anchor { display: inline !important; }
     padding-bottom: 8px; 
   }
   a.sub-item.list-group-item.active {
-//    background-image: -webkit-linear-gradient(top, #5cb85c 0%, #48a648 100%);
-//    background-image: linear-gradient(to bottom, #5cb85c 0%, #48a648 100%);
-
-//    background-image: -webkit-linear-gradient(top, #ff0000 0%, #0000ff 100%);
-//    background-image: linear-gradient(to bottom, #6ca06c 0%, #589058 100%);
-
-    background-color: #f5f5f5;
+    background-color: $white_f5;
     // the below is needed to achieve the above, since bg-image is already set
-    background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #f5f5f5 100%);
-    background-image: linear-gradient(to bottom, #f5f5f5 0%, #f5f5f5 100%);
+    background-image: -webkit-linear-gradient(top, $white_f5 0%, $white_f5 
100%);
+    background-image: linear-gradient(to bottom, $white_f5 0%, $white_f5 100%);
     
-    border-color: #ddd;
+    border-color: $white_dd;
     color: $text_color;
     text-shadow: none;
     // not sure why the bottom border is visible at all, and stays on hover, 
but vanishes on 'active';
@@ -390,12 +379,12 @@ div#footer {
     width: 100%;
     padding-top: 1em;
     padding-bottom: 1em;
-    background-color: #f5f5f5;
+    background-color: $white_f5;
     text-align: center;
     font-size: 80%;
 }
 .octicon-footer {
-    color: #777;
+    color: $footer_icon_gray;
     font-size: 130%;
     position: relative;
     top: 2px;
@@ -417,23 +406,28 @@ a:hover .octicon-footer {
 @mixin code() {
     font-family: Consolas, Lucida Console, Monaco, monospace;
     @include nowrap();
-    font-size: 85%;
+    font-size: 14px;
     /* override color and bg-color on 'code' from bootstrap, and a touch more 
padding on top since font-size is smaller */
     color: $text_color;
     background-color: $code_bg_color;
 }
 
-pre {
+@mixin pre() {
     @include code();
     padding: 0.4em 0.8em;
     overflow-x: scroll;
     /* override border and line-height on 'pre' from bootstrap */
     border: none;
     border-radius: 2px;
-    line-height: 1;
+    line-height: 1.4;
+    font-size: 13px;
+}
+
+pre {
+    @include pre();
     code {
         /* override settings on 'pre code' from bootstrap */
-        @include code();
+        @include pre();
         line-height: 1;
         /** and no padding since pre already has some */ 
         padding: 0px; 
@@ -484,3 +478,176 @@ div.feather.landing {
     max-width: 100%;
   }
 }
+
+/* YAML EXPLAINED
+   ----------------------------------------------------------------------- */
+
+$explained_code_bg_color: $gray_66;
+$explained_code_fg_color: $white_dd;
+$explained_code_highlight_bg_color: $vibrant_bg_green; 
+$explained_code_highlight_fg_color: $white_fa;
+$explained_text_highlight_fg_color: $text_color;
+$explained_text_highlight_bg_color: $white_fa;
+
+$code_width: 57%;
+$annotation_width: 41%;
+
+div.annotated_blueprint {
+  margin-top: 60px;
+  div.code_scroller {
+    background-color: $code_bg_color;
+    border: 0.4em solid $explained_code_bg_color;
+    border-left: 0;
+    border-right: 0;
+    border-radius: 3px;
+    width: $code_width;
+    margin-right: 0px;
+    margin-left: auto;
+    background-color: $explained_code_bg_color;
+    color: $explained_code_fg_color;
+    overflow-x: scroll;
+    div { 
+      overflow-x: visible !important; 
+      overflow-y: visible !important; 
+    }  
+    div.code_viewer {
+      width: auto;
+      height: 100%;
+      div.block {
+        display: flex;
+        align-items: center;
+        z-index: -10;
+      }
+      div.block > div:last-child {
+          @include pre();
+          border: 0;
+          border-radius: 0;
+          padding: 0px 0.6em;
+          background-color: $explained_code_bg_color;
+          color: $explained_code_fg_color;
+          min-width: 100%;
+          margin-top: 3px;
+          margin-bottom: 3px;
+      }
+      div.block > div.annotations_wrapper1 {
+        font-family: $fonts;
+        div.annotations_wrapper2 {
+          // seems we have to use abs positioning because other techniques
+          // (translation, negative margins, etc) don't show up outside the 
scroll-x
+          position: absolute;
+          transform: translateX(-100%) translateY(-50%);
+          width: $annotation_width;
+          
+          display: flex;
+          align-items: center;
+          div.annotations {
+            // positioning and sizing
+            height: auto;
+            width: 100%;
+            padding: 8px 8px;
+            color: $explained_text_highlight_fg_color;
+
+            div.short {
+              font-size: 125%;
+              text-align: right;
+            }
+            div.long {
+              display: none;
+              
+              font-size: 85%;
+              p { margin: 8px 0 8px 0; }
+              p:first-child { margin-top: 0; }
+              p:last-child { margin-bottom: 0; }
+            }
+          }
+          div.connector {
+            height: 7px;
+            width: 24px;
+          }
+        }
+      }
+      div.block:hover > div:last-child {
+          background-color: $explained_code_highlight_bg_color;
+          color: $explained_code_highlight_fg_color;
+          // TODO the bg color doesn't apply to regions which are only visible 
after a scroll-right :(
+          // to fix this i think we can us JS to set width of div.block to the 
width of this, the code last-child
+      }
+      div.block:hover {
+        z-index: 30 !important;
+        div.annotations_wrapper1 {
+          z-index: 30 !important;
+        }
+        div.annotations {
+          background-color: $explained_text_highlight_bg_color;
+          border: 4px solid $explained_code_highlight_bg_color;
+          border-radius: 8px;
+          text-align: center; 
+          div.short {
+            font-size: 100% !important;
+            text-align: center !important;
+            color: $text_color;
+            margin-bottom: 8px;
+            font-weight: bold; 
+            z-index: 10;
+          }
+          div.long { display: inherit !important; }
+        }
+        div.connector {
+          background-color: $explained_code_highlight_bg_color;
+        }
+      }
+      // highlighting of key code segments
+      div.block > div:last-child .ann_highlight { 
+        font-weight: bold; 
+        color: #e8f0e0; 
+      }
+      div.block:hover > div:last-child .ann_highlight { 
+        color: #f8fff8; 
+      }
+    }
+  }
+  div.code_viewer:hover {
+    div.annotations div.short {
+      color: $gray_aa;
+    }
+  }
+  
+  // have an initial notice
+  div.code_scroller {
+    div.initial_notice {
+      height: 0;
+      width: 0;
+      overflow-x: visible;
+      overflow-y: visible;
+    }
+    div.initial_notice > div {
+      z-index: 10;
+      background-color: transparentize($gray_aa, 0.1);
+      position: relative;
+      width: 0;
+      height: 0;
+      display: flex;
+      align-items: top;
+    }
+    div.initial_notice > div > div {
+      padding-top: 24px;
+      font-size: 125%;
+      font-weight: bold;
+      text-align: center;
+      width: 100%;
+      .ann_light {
+        padding-top: 12px;
+        font-weight: 300;
+      }
+      .ann_play {
+        display: block;
+        padding-top: 24px;
+        padding-bottom: 24px;
+        font-size: 600%;
+      }
+    }
+  }
+  div.code_scroller:hover div.initial_notice {
+    display: none;
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/24f07994/docs/website/learnmore/blueprint-tour.md
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/blueprint-tour.md 
b/docs/website/learnmore/blueprint-tour.md
new file mode 100644
index 0000000..c202d19
--- /dev/null
+++ b/docs/website/learnmore/blueprint-tour.md
@@ -0,0 +1,192 @@
+---
+layout: website-normal
+title: A Quick Tour of a Brooklyn Blueprint
+title_in_menu: Blueprint Tour
+---
+
+
+<div class="jumobotron annotated_blueprint" markdown="1">
+  <div class="code_scroller">
+    <div class="initial_notice"><div><div>
+      Hover over an element to learn more
+      <div class="ann_light">This message will self-destruct in <span 
id="countdown">3s</span></div>
+      <div class="ann_play fa fa-play-circle-o"></div>
+    </div></div></div>
+    <div class="code_viewer">
+  
+<div class="block">
+      <div class="annotations_wrapper1"><div class="annotations_wrapper2"><div 
class="annotations">
+        <div class="short">
+          Describe your application
+        </div>
+        <div class="long"><p>
+            Start by giving it a name, 
+            optionally adding a version and other metadata.
+            The format is YAML -- a human-friendly extension to JSON --
+            following the  
+            <a href="{{ site.path.guide }}/learnmore/theory.html">CAMP</a> 
standard.
+          </p><p>
+            Treat it like source code: use comments, version control it, test 
it with CI.
+        </p></div>
+      </div><div class="connector"><div>&nbsp;</div></div></div></div>
+<div><span class="ann_highlight"># java chatroom with ruby chatbot and 
couchbase backend (example)</span>    
+name: Chatroom with Chatbot
+services:</div></div>
+    
+<div class="block">
+      <div class="annotations_wrapper1"><div class="annotations_wrapper2"><div 
class="annotations">
+        <div class="short">
+          Compose blueprints
+        </div>
+        <div class="long"><p>
+            Choose your building blocks from a large curated catalog,  
+            and compose them together to form new blueprints
+            you can deploy and share.
+          </p><p>
+            Customize with config keys, such as the initial size
+            and, for Couchbase, the data buckets required.
+        </p></div>
+      </div><div class="connector"><div>&nbsp;</div></div></div></div>
+<div><span class="ann_highlight">- type: couchbase-cluster</span>
+  initialSize: 3
+  createBuckets: [{ bucket: chatroom }]
+  id: chat-couchbase</div></div>
+
+<div class="block">
+      <div class="annotations_wrapper1"><div class="annotations_wrapper2"><div 
class="annotations">
+        <div class="short">
+          Run scripts and recipes
+        </div>
+        <div class="long"><p>
+            Use bash, with variables supplied by Brooklyn;
+            or Chef recipes, with attributes passed from config;
+            or package managers, dockerfiles, etc.
+        </p></div>
+      </div><div class="connector"><div>&nbsp;</div></div></div></div>
+<div>- type: bash-server
+  launch.command: |
+<span class="ann_highlight">    wget 
http://example.com/couchbase-chat/chat-bot/{server.rb,Gemfile,install_ruby_and_libs.sh}
+    bash install_ruby_and_libs.sh
+    ruby ./server.rb $COUCHBASE_URL</span></div></div>
+
+<div class="block">
+      <div class="annotations_wrapper1"><div class="annotations_wrapper2"><div 
class="annotations">
+        <div class="short">
+          Configure locations
+        </div>
+        <div class="long"><p>
+            Give generic VM properties or specific images and flavors.
+            Networking topologies and geographic constraints are also 
supported.
+        </p></div>
+      </div><div class="connector"><div>&nbsp;</div></div></div></div>
+<div>  provisioning.properties:
+<span class="ann_highlight">    osFamily: ubuntu
+    minRam: 4gb</span>
+</div></div>
+
+<div class="block">
+      <div class="annotations_wrapper1"><div class="annotations_wrapper2"><div 
class="annotations">
+        <div class="short">
+          Inject dependencies
+        </div>
+        <div class="long"><p>
+            Connect entities with each other using 
+            <i>sensors</i> published at runtime to give
+            just-in-time resolution for
+            shell variables, template expansion, REST calls,
+            and any other "happens-before" or "on-change" behaviour.
+        </p></div>
+      </div><div class="connector"><div>&nbsp;</div></div></div></div>
+<div>  shell.env:
+    COUCHBASE_URL:
+<span class="ann_highlight">      $brooklyn:entity("chat-couchbase").
+        
attributeWhenReady("couchbase.cluster.connection.url")</span></div></div>
+
+<div class="block">
+      <div class="annotations_wrapper1"><div class="annotations_wrapper2"><div 
class="annotations">
+        <div class="short">
+          Extend using Java
+        </div>
+        <div class="long"><p>
+            Create new entities, policies, and "effector" operations
+            using Java or JVM bridges to many languages, workflow systems,
+            or PaaSes.
+          </p><p>
+            Add new blueprints to the catalog, dynamically,
+            with versions and libraries handled 
+            under the covers automatically with OSGi.
+        </p></div>
+      </div><div class="connector"><div>&nbsp;</div></div></div></div>
+<div>- type: <span 
class="ann_highlight">brooklyn.entity.webapp.ControlledDynamicWebAppCluster:1.1.0</span>
+  war: http://example.com/couchbase-chat/chatroom.war
+  java.sysprops:
+    chat.db.url: 
$brooklyn:entity("couchbase").attributeWhenReady("couchbase.cluster.connection.url")</div></div>
+
+<div class="block">
+      <div class="annotations_wrapper1"><div class="annotations_wrapper2"><div 
class="annotations">
+        <div class="short">
+          Attach management logic
+        </div>
+        <div class="long"><p>
+          Set up policies which subscribe to real-time metric sensors
+          to scale, throttle, failover, or follow-the-{sun,moon,action,etc}.
+          Cloud should be something that <i>applications</i> consume, not 
people!
+        </p></div>
+      </div><div class="connector"><div>&nbsp;</div></div></div></div>
+<div>  brooklyn.policies:
+  - type: <span 
class="ann_highlight">brooklyn.policy.autoscaling.AutoScalerPolicy</span>
+    brooklyn.config:
+      metric: $brooklyn:sensor("brooklyn.entity.webapp.DynamicWebAppCluster", 
"webapp.reqs.perSec.windowed.perNode")
+      metricLowerBound: 400
+      metricUpperBound: 600</div></div>
+
+<div class="block">
+      <div class="annotations_wrapper1"><div class="annotations_wrapper2"><div 
class="annotations">
+        <div class="short">
+          Run across many locations
+        </div>
+        <div class="long"><p>
+          Blueprints are designed for portability.
+          Pick from dozens of clouds in hundreds of datacenters. 
+          Or machines with fixed IP addresses, localhost, 
+          Docker on <a href="http://clocker.io";>Clocker</a>, etc.
+        </p><p>
+          And you're not limited to servers:
+          services, PaaS, even networks can be locations.
+        </p></div>
+      </div><div class="connector"><div>&nbsp;</div></div></div></div>
+<div>location:
+  <span class="ann_highlight">jclouds:aws-ec2</span>:
+    region: us-east-1
+    identity: <i>AKA_YOUR_ACCESS_KEY_ID</i>
+    credential: <i>[access-key-hex-digits]</i></div></div>
+
+  </div></div>
+</div>
+
+<script language="JavaScript" type="application/javascript">
+
+{% comment %}
+I've done all I could manage with pure CSS. Just one thing, the bg color
+on hover doesn't apply full width to the row if it extends the code_scroller.
+Fix it with JS. 
+
+Also resize the warning to be full size, and after first hover get rid of it.
+{% endcomment %} 
+
+$(function() {
+  maxCodeWidth = Math.max.apply(Math, $(".annotated_blueprint div.block > 
div:last-child").map(function(){ return this.scrollWidth; }).get());
+  $(".annotated_blueprint div.block").width(maxCodeWidth);
+})
+
+$(".annotated_blueprint .code_scroller .initial_notice > 
div").height($(".annotated_blueprint .code_scroller .code_viewer").height());
+$(".annotated_blueprint .code_scroller .initial_notice > 
div").width($(".annotated_blueprint .code_scroller").width());
+$(".annotated_blueprint .code_scroller").hover(function() {
+  $(".annotated_blueprint .initial_notice").css("display", "none");
+});
+$(function() {
+  setTimeout(function() { $(".annotated_blueprint .initial_notice").hide(400); 
}, 3000);
+  setTimeout(function() { $(".annotated_blueprint #countdown").text("2s"); }, 
1000);
+  setTimeout(function() { $(".annotated_blueprint #countdown").text("1s"); }, 
2000);
+});
+</script>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/24f07994/docs/website/learnmore/index.md
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/index.md b/docs/website/learnmore/index.md
index 8035e07..a2e1c6f 100644
--- a/docs/website/learnmore/index.md
+++ b/docs/website/learnmore/index.md
@@ -2,27 +2,27 @@
 layout: website-normal
 title: Learn More
 children:
-# - yaml-explained.md
+- blueprint-tour.md
 - { path: theory.md, title_in_menu: Theory }
-- catalog/
+- { path: catalog/, title_in_menu: Browse Catalog }
 ---
 
 <!--
 TODO have a list of resources here?  or start w yaml explained?
 
-What's a blueprint (image showing yaml with hovers for detail)
-Intro video (2m video)
-Features list (cf 
http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.platform.doc.user%2FwhatsNew%2Fplatform_whatsnew.html
  -- though maybe with smaller screenshots at left and bigger text for summary!)
-Supported software, clouds, and policies
-The Theory 
-(based on existing top-level content;
-introduction, core entities, glossary (maybe))
-News
-infoq - http://www.infoq.com/news/2014/06/clocker
-Adam Davis: The case for application-driven cloud computing (Gluecon keynote) 
http://www.cloudsoftcorp.com/blog/2014/06/adam-davis-case-application-driven-cloud-computing/
-[showing video at min 14]
-FAQ (in time)
-
+Got a minute?  blueprint-tour
+Got two minutes?  watch the video
+Four minutes?  read the features list
+  cf 
http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.platform.doc.user%2FwhatsNew%2Fplatform_whatsnew.html
  -- though maybe with smaller screenshots at left and bigger text for summary!)
+More time?
+  Browse the catalog of Supported software, clouds, and policies
+  Read on the Theory behing brooklyn
+  Read the Brooklyn News
+    infoq - http://www.infoq.com/news/2014/06/clocker
+    Adam Davis: The case for application-driven cloud computing (Gluecon 
keynote) 
http://www.cloudsoftcorp.com/blog/2014/06/adam-davis-case-application-driven-cloud-computing/
+    [showing video at min 14]
+    twitter feed
+    selected blog posts
 -->
 
 {% include list-children.html %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/24f07994/docs/website/learnmore/theory.md
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/theory.md b/docs/website/learnmore/theory.md
index 8175494..5f8d97f 100644
--- a/docs/website/learnmore/theory.md
+++ b/docs/website/learnmore/theory.md
@@ -173,10 +173,12 @@ model.
 
 ### Standards
 
-Finally we note some emerging standards in this area. OASIS CAMP (Cloud
-Application Management for Platforms) and TOSCA (Topology and Orchestration
-Specification for Cloud Applications) both define YAML application models
-similar to Brooklyn's. CAMP focuses on the REST API for interacting with such a
+Finally we note some emerging standards in this area. OASIS CAMP 
+(<a 
href="https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=camp#technical";>Cloud
 Application Management for Platforms</a>) 
+and TOSCA 
+(<a href="https://www.oasis-open.org/committees/tosca/";>Topology and 
Orchestration Specification for Cloud Applications</a>) 
+both define YAML application models similar to Brooklyn's. 
+CAMP focuses on the REST API for interacting with such a
 management layer, and TOSCA focuses on declarative support for more
 sophisticated orchestration. Currently Brooklyn uses a YAML which complies with
 CAMP's syntax and exposes many of the CAMP REST API endpoints. We would like to

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/24f07994/docs/website/learnmore/yaml-explained.md
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/yaml-explained.md 
b/docs/website/learnmore/yaml-explained.md
deleted file mode 100644
index 6ada16c..0000000
--- a/docs/website/learnmore/yaml-explained.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-layout: website-normal
-title: YAML Explained
----
-
-<div class="jumobotron" markdown="1">
-
-TODO

Reply via email to