You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@openwhisk.apache.org by GitBox <gi...@apache.org> on 2018/11/27 18:58:12 UTC

[GitHub] pritidesai closed pull request #348: Update Action documentation sections and prioritize Developer role

pritidesai closed pull request #348: Update Action documentation sections and prioritize Developer role
URL: https://github.com/apache/incubator-openwhisk-website/pull/348
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/_includes/index/index.js b/_includes/index/index.js
index 41fdae7..1864aef 100644
--- a/_includes/index/index.js
+++ b/_includes/index/index.js
@@ -4,6 +4,25 @@ function applyCollapsible() {
   addListenersToSections();
 }
 
+function toggleReferencedSection( parentId, expand )
+{
+  console.log( "toggleReferencedSection(): parentId=" + parentId + " expand=" + expand);
+  if (parentId !== ""){
+    sectionName = parentId.replace("index", "section");
+    console.log( "toggleReferencedSection(): sectionName=" + sectionName);
+    sectionHeader = document.getElementById(sectionName);
+    section = sectionHeader.nextElementSibling;
+    if(expand){
+          sectionHeader.style.backgroundImage = "url('../images/elements/circle-minus.png')";
+          section.style.display = "block";
+    }
+    else{
+          sectionHeader.style.backgroundImage = "url('../images/elements/circle-plus.png')";
+          section.style.display = "none";
+    }
+  }
+}
+
 function addListenersToIndex()
 {
   var coll = document.getElementsByClassName("index-menu-toggle");
@@ -18,6 +37,11 @@ function addListenersToIndex()
         // (top right bottom left)
         // make room on left for image/icon
         sibling.style.padding = "0px 0px 0px 20px";
+
+        if(sibling.classList.contains('index-menu-start-open')){
+          coll[i].style.listStyleImage = "url('../images/elements/arrow-down-12px.png')";
+          sibling.style.display = "block";
+        }
     }
 
     // Set "click" event listener on all menuitems
@@ -28,9 +52,17 @@ function addListenersToIndex()
         if (sibling.style.display === "block") {
           this.style.listStyleImage = "url('../images/elements/arrow-right-12px.png')";
           sibling.style.display = "none";
+
+          if (this.id !== ""){
+            toggleReferencedSection(this.id, false )
+          }
         } else {
           this.style.listStyleImage = "url('../images/elements/arrow-down-12px.png')";
           sibling.style.display = "block";
+
+          if (this.id !== ""){
+            toggleReferencedSection(this.id, true )
+          }
         }
       }
 
@@ -48,11 +80,16 @@ function addListenersToSections()
     var sibling = coll[i].nextElementSibling;
 
     if(sibling!==null){
-      sibling.setAttribute('data-display', sibling.style.display);
-      if(coll[i].classList.contains("section-toggle-start-open")){
+      if(sibling.classList.contains("section-toggle-start-open")){
         coll[i].style.backgroundImage = "url('../images/elements/circle-minus.png')";
-      } else {
+        sibling.style.display = "block";
+      } else if (sibling.classList.contains("section-toggle-start-closed")){
         coll[i].style.backgroundImage = "url('../images/elements/circle-plus.png')";
+        sibling.style.display = "none";
+      } else {
+        console.log( "addListenersToSections(): No Toggle style foun; default to open");
+        coll[i].style.backgroundImage = "url('../images/elements/circle-minus.png')";
+        sibling.style.display = "block";
       }
     }
 
@@ -72,14 +109,15 @@ function addListenersToSections()
           this.style.backgroundImage = "url('../images/elements/circle-minus.png')";
         }
       }
-
+      
     });
   }
 }
 
 /*
- *  Debug
+ *  Debug:
  */
+// Use: console.log(dumpCSSText(this));
 // function dumpCSSText(element){
 //   var s = '';
 //   var o = getComputedStyle(element);
diff --git a/_layouts/documentation.html b/_layouts/documentation.html
index 1382be9..42a705a 100644
--- a/_layouts/documentation.html
+++ b/_layouts/documentation.html
@@ -7,1912 +7,1693 @@
 -->
 
 <div id="whiskIndexedLayout">
-    <!-- Documentation Index -->
-    <div id="whiskIndex">
-        <ul>
-            <li><a href="#documentation">Documentation</a></li>
-            <li><a href="#project-structure">Project Structure</a></li>
-
-            <!-- Operators -->
-            <li class="index-menu-toggle"><a href="#operators">Operators</a></li>
+  <!-- Documentation Index -->
+  <div id="whiskIndex">
+    <ul>
+      <li><a href="#documentation">Documentation</a></li>
+
+      <!-- Programming Model -->
+      <li class="index-menu-toggle"><a href="#programming-model">Programming Model</a></li>
+      <ul class="index-menuitems">
+        <li><a href="#programming-model-actions">Actions</a></li>
+        <li><a href="#programming-model-triggers">Triggers & Rules</a></li>
+      </ul>
+      <!-- Developers -->
+      <li class="index-menu-toggle"><a href="#developers">Developers</a></li>
+      <ul class="index-menuitems index-menu-start-open">
+          <li><a href="#pre-requisites">Pre-requisites</a></li>
+          <li><a href="#using-openwhisk">Using OpenWhisk</a></li>
+          <li class="index-menu-toggle"><a href="#getting-started">Getting Started</a></li>
+          <ul class="index-menuitems">
+              <li><a href="#wsk-cli">Whisk CLI (wsk)</a></li>
+              <li><a href="#wskdeploy">Whisk Deploy (wskdeploy)</a></li>
+              <li><a href="#rest-api">OpenWhisk REST API</a></li>
+              <li><a href="#openwhisk-clients">OpenWhisk Clients</a></li>
+          </ul>
+
+          <!-- WARNING: Index anchors have style="white-space: pre-wrap;"
+          DO NOT CHANGE THE SPACING OF THE ANCHOR TEXT -->
+          <li class="index-menu-toggle"><a href="#actions-creating-and-invoking">Creating and
+      Invoking Actions</a></li>
+          <ul class="index-menuitems">
+            <li id="index-nodejs" class="index-menu-toggle"><a href="#nodejs">using NodeJS</a></li>
             <ul class="index-menuitems">
-                <li><a href="#openwhisk_architecture">OpenWhisk Architecture</a></li>
-                <li class="index-menu-toggle"><a href="#openwhisk_deployment">OpenWhisk Deployment</a></li>
-                <ul class="index-menuitems">
-                    <li><a href="#deploy_kubernetes">Kubernetes</a></li>
-                    <li><a href="#deploy_docker_compose">Docker Compose</a></li>
-                    <li><a href="#deploy_mesos">Mesos</a></li>
-                    <li><a href="#deploy_openshift">OpenShift</a></li>
-                    <li><a href="#deploy_ansible">Ansible</a></li>
-                    <li><a href="#deploy_vagrant">Vagrant</a></li>
-                </ul>
-                <li><a href="#deployment_admin">Administrative Operations</a></li>
-                <li><a href="#operators_resources">Operators Resources</a></li>
+              <li><a href="#actions-nodejs">Creating and Invoking Sample Action</a></li>
+              <li><a href="#nodejs-runtime">NodeJS Runtime</a></li>
+              <li><a href="#nodejs-additional-resources">Additional Resources</a></li>
             </ul>
-
-            <!-- Developers -->
-            <li class="index-menu-toggle"><a href="#developers">Developers</a></li>
+            <li id="index-python" class="index-menu-toggle"><a href="#python">using Python</a></li>
             <ul class="index-menuitems">
-                <li><a href="#pre-requisites">Pre-requisites</a></li>
-                <li class="index-menu-toggle"><a href="#using-openwhisk">Using OpenWhisk</a></li>
-                <ul class="index-menuitems">
-                    <li class="index-menu-toggle"><a href="#wsk-cli">OpenWhisk CLI (wsk)</a></li>
-                    <ul class="index-menuitems">
-                        <li><a href="#wsk-cli-install">Installing</a></li>
-                        <li><a href="#wsk-cli-configure">Configuring</a></li>
-                    </ul>
-                    <li><a href="#wskdeploy">Whisk Deploy (wskdeploy)</a></li>
-                    <li><a href="#rest-api">OpenWhisk REST API</a></li>
-                    <li><a href="#openwhisk-clients">OpenWhisk Clients</a></li>
-                </ul>
-                <li class="index-menu-toggle"><a href="#actions">Actions</a></li>
-                <ul class="index-menuitems">
-                    <li class="index-menu-toggle"><a href="#nodejs">NodeJS</a></li>
-                    <ul class="index-menuitems">
-                        <li><a href="#nodejs-actions">Creating and Invoking Sample Action</a></li>
-                        <li><a href="#nodejs-runtime">NodeJS Runtime</a></li>
-                        <li><a href="#nodejs-additional-resources">Additional Resources</a></li>
-                    </ul>
-                    <li class="index-menu-toggle"><a href="#python">Python</a></li>
-                    <ul class="index-menuitems">
-                        <li><a href="#python-actions">Creating and Invoking Sample Action</a></li>
-                        <li><a href="#python-runtime">Python Runtime</a></li>
-                        <li><a href="#python-additional-resources">Additional Resources</a></li>
-                    </ul>
-                    <!--li><a href="#docker">Docker</a></li>
-                    <ul>
-                        <li>Zip Action</li>
-                        <li>SDK (Writing Your Own Runtime)</li>
-                        <li>Other Resources</li>
-                    </ul-->
-                    <li class="index-menu-toggle"><a href="#go">Go</a></li>
-                    <ul class="index-menuitems">
-                        <li><a href="#go-actions">Creating and Invoking Action</a></li>
-                        <li><a href="#go-runtime">Go Runtime</a></li>
-                        <li><a href="#go-additional-resources">Additional Resources</a></li>
-                    </ul>
-                    <li class="index-menu-toggle"><a href="#java">Java</a></li>
-                    <ul class="index-menuitems">
-                        <li><a href="#java-actions">Creating and Invoking Action</a></li>
-                        <li><a href="#java-runtime">Java Runtime</a></li>
-                        <li><a href="#java-additional-resources">Additional Resources</a></li>
-                    </ul>
-                    <li class="index-menu-toggle"><a href="#php">PHP</a></li>
-                    <ul class="index-menuitems">
-                        <li><a href="#php-actions">Creating and Invoking Action</a></li>
-                        <li><a href="#php-runtime">PHP Runtime</a></li>
-                        <li><a href="#php-additional-resources">Additional Resources</a></li>
-                    </ul>
-                    <li class="index-menu-toggle"><a href="#ruby">Ruby</a></li>
-                    <ul class="index-menuitems">
-                        <li><a href="#ruby-actions">Creating and Invoking Action</a></li>
-                        <li><a href="#ruby-runtime">Ruby Runtime</a></li>
-                        <li><a href="#ruby-additional-resources">Additional Resources</a></li>
-                    </ul>
-                    <!--li class="index-menu-toggle"><a href="#swift">Swift</a></li>
-                    <ul class="index-menuitems">
-                        <li><a href="#swift-actions">Creating and Invoking Action</a></li>
-                        <li><a href="#swift-runtime">Swift Runtime</a></li>
-                        <li><a href="#swift-additional-resources">Additional Resources</a></li>
-                    </ul-->
-                </ul>
-                <li><a href="#managing_actions_with_openwhisk_packages">Managing Actions with OpenWhisk Packages</a></li>
-                <li><a href="#connecting_actions_to_event_sources">Connecting Actions to Event Sources</a></li>
-                <li><a href="#using_openwhisk_enabled_services">Using OpenWhisk Enabled Services</a></li>
-                <!--li><a href="#exposing_apis_from_actions">Exposing APIs from Actions</a></li-->
-                <li><a href="#sample_openwhisk_applications">Sample OpenWhisk Applications</a></li>
-                <li><a href="#tutorial_and_workshop">Tutorial And Workshop</a></li>
-                <li><a href="#development_tools">Development Tools</a></li>
+                <li><a href="#actions-python">Creating and Invoking Sample Action</a></li>
+                <li><a href="#python-runtime">Python Runtime</a></li>
+                <li><a href="#python-additional-resources">Additional Resources</a></li>
             </ul>
-
-            <!-- Contributors -->
-            <li class="index-menu-toggle"><a href="#contributors">Contributors</a></li>
+            <li id="index-go" class="index-menu-toggle"><a href="#go">using Go</a></li>
             <ul class="index-menuitems">
-                <li><a href="#contributor-resources">Resources</a></li>
-                <li><a href="#contributing-runtimes">Adding Runtimes</a></li>
+                <li><a href="#actions-go">Creating and Invoking Action</a></li>
+                <li><a href="#go-runtime">Go Runtime</a></li>
+                <li><a href="#go-additional-resources">Additional Resources</a></li>
             </ul>
-
-            <!-- Other Resources -->
-            <li><a href="#other-resources">Other Resources</a></li>
-
-            <!-- FAQ -->
-            <li><a href="#faq">FAQ</a></li>
-
+            <li id="index-java" class="index-menu-toggle"><a href="#java">using Java</a></li>
+            <ul class="index-menuitems">
+                <li><a href="#actions-java">Creating and Invoking Action</a></li>
+                <li><a href="#java-runtime">Java Runtime</a></li>
+                <li><a href="#java-additional-resources">Additional Resources</a></li>
+            </ul>
+            <li id="index-php" class="index-menu-toggle"><a href="#php">using PHP</a></li>
+            <ul class="index-menuitems">
+                <li><a href="#actions-php">Creating and Invoking Action</a></li>
+                <li><a href="#php-runtime">PHP Runtime</a></li>
+                <li><a href="#php-additional-resources">Additional Resources</a></li>
+            </ul>
+            <li id="index-ruby" class="index-menu-toggle"><a href="#ruby">using Ruby</a></li>
+            <ul class="index-menuitems">
+                <li><a href="#actions-ruby">Creating and Invoking Action</a></li>
+                <li><a href="#ruby-runtime">Ruby Runtime</a></li>
+                <li><a href="#ruby-additional-resources">Additional Resources</a></li>
+            </ul>
+            <!--li id="index-swift" class="index-menu-toggle"><a href="#swift">Swift</a></li>
+            <ul class="index-menuitems">
+                <li><a href="#swift-actions">Creating and Invoking Action</a></li>
+                <li><a href="#swift-runtime">Swift Runtime</a></li>
+                <li><a href="#swift-additional-resources">Additional Resources</a></li>
+            </ul-->
+            <!--li id="index-docker" ><a href="#docker">Docker</a></li>
+            <ul>
+                <li>Zip Action</li>
+                <li>SDK (Writing Your Own Runtime)</li>
+                <li>Other Resources</li>
+            </ul-->
+          </ul>
+          <li><a href="#managing_actions_with_openwhisk_packages">Managing Actions with OpenWhisk Packages</a></li>
+          <li><a href="#automating_actions_from_event_sources">Automating Actions from Event Sources</a></li>
+          <li><a href="#using_openwhisk_enabled_services">Using OpenWhisk Enabled Services</a></li>
+          <!--li><a href="#exposing_apis_from_actions">Exposing APIs from Actions</a></li-->
+          <li><a href="#sample_openwhisk_applications">Sample OpenWhisk Applications</a></li>
+          <li><a href="#tutorial_and_workshop">Tutorial And Workshop</a></li>
+          <li><a href="#development_tools">Development Tools</a></li>
+      </ul>
+
+      <!-- Operators -->
+      <li class="index-menu-toggle"><a href="#operators">Operators</a></li>
+      <ul class="index-menuitems">
+        <li><a href="#openwhisk_architecture">OpenWhisk Architecture</a></li>
+        <li class="index-menu-toggle"><a href="#openwhisk_deployment">Deployment Options</a></li>
+        <ul class="index-menuitems">
+            <li><a href="#deploy_kubernetes">Kubernetes</a></li>
+            <li><a href="#deploy_docker_compose">Docker Compose</a></li>
+            <li><a href="#deploy_mesos">Mesos</a></li>
+            <li><a href="#deploy_openshift">OpenShift</a></li>
+            <li><a href="#deploy_ansible">Ansible</a></li>
+            <li><a href="#deploy_vagrant">Vagrant</a></li>
         </ul>
-    </div>
-
-    <section id="whiskNodes">
-      <main class="doc">
-          <div class="content">
-              <a class="indexable" id="documentation"></a>
-              <h2>Documentation</h2>
-              <div>
-                 <p>There are many resources for learning about OpenWhisk; this page attempts to organize, describe, index and link to the essential information, wherever it resides, to help users in getting started.  In general, much of the best information is in the actual project repositories and we encourage you to seek detailed and in-depth information there.</p>
-              </div>
-          </div>
-      </main>
-
-      <main class="doc">
-          <div class="content">
-              <a class="indexable" id="project-structure"></a>
-              <h2>Project Structure</h2>
-              <p>OpenWhisk is comprised of multiple repositories that can be found in Apache GitHub (using a name query by repository):</p>
-              <p><a href="https://github.com/apache?q=openwhisk">https://github.com/apache?q=openwhisk</a></p>
-              <p>For convenience, here is a listing of current Apache OpenWhisk project repositories (by category).</p>
-              <p><strong>Note:</strong> OpenWhisk repositories follow a naming convention where all repo starts with <i>incubator</i>, for example, <i>openwhisk-cli</i> GitHub repository is named <i>incubator-openwhisk-cli</i>.</p>
-              <div class="flow-columns">
-                  <div class="project-structure-repo theme-deeper-sea-green">
-                      <h4>Platform</h4>
-                      <p>Primary source code repositories including platform code, run books, tests and more.</p>
-                      <p class="repo-title border-deeper-sea-green">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk"
-                              title="Core OpenWhisk repository including controller, invoker, run books, and more.">
-                                  openwhisk
-                          </a>
-                      </p>
-                      <p class="repo-title border-deeper-sea-green">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-cli"
-                              title="Pluggable Command Line Interface (CLI) for wsk command using the Cobra framework.">
-                                  openwhisk-cli
-                          </a>
-                      </p>
-                      <p class="repo-title border-deeper-sea-green">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-apigateway"
-                              title="A performant API Gateway based on Openresty and NGINX.">
-                                  openwhisk-apigateway
-                          </a>
-                      </p>
-                      <p class="repo-title border-deeper-sea-green">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-catalog"
-                              title="Catalog of built-in system, utility, test and sample Actions, Feeds and provider integration services and catalog packaging tooling.">
-                                  openwhisk-catalog
-                          </a>
-                      </p>
-                  </div>
-                  <div class="project-structure-repo theme-deeper-sky-blue">
-                      <h4>Runtimes</h4>
-                      <p>OpenWhisk supports several languages via Docker runtime containers.</p>
-                      <p class="repo-title border-deeper-sky-blue">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-runtime-nodejs"
-                              title="Apache openwhisk nodejs runtime">
-                                  openwhisk-runtime-nodejs
-                          </a>
-                      </p>
-                      <p class="repo-title border-deeper-sky-blue">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-runtime-docker"
-                              title="Apache openwhisk docker runtime">
-                                  openwhisk-runtime-docker
-                          </a>
-                      </p>
-                      <p class="repo-title border-deeper-sky-blue">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-runtime-python"
-                              title="Apache openwhisk python runtime">
-                                  openwhisk-runtime-python
-                          </a>
-                      </p>
-                      <p class="repo-title border-deeper-sky-blue">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-runtime-go"
-                              title="Apache openwhisk go runtime">
-                                  openwhisk-runtime-go
-                          </a>
-                      </p>
-                      <p class="repo-title border-deeper-sky-blue">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-runtime-swift"
-                              title="Apache openwhisk swift runtime">
-                                  openwhisk-runtime-swift
-                          </a>
-                      </p>
-                      <p class="repo-title border-deeper-sky-blue">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-runtime-php"
-                              title="Apache openwhisk php runtime">
-                                  openwhisk-runtime-php
-                          </a>
-                      </p>
-                      <p class="repo-title border-deeper-sky-blue">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-runtime-java"
-                              title="Apache openwhisk java runtime">
-                                  openwhisk-runtime-java
-                          </a>
-                      </p>
-                      <p class="repo-title border-deeper-sky-blue">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-runtime-ruby"
-                              title="Apache openwhisk ruby runtime">
-                                  openwhisk-runtime-ruby
-                          </a>
-                      </p>
-                  </div>
-                  <div class="project-structure-repo theme-darkgoldenrod">
-                      <h4>Deployments</h4>
-                      <p>OpenWhisk can be deployed and configured on variety of platforms.</p>
-                      <p class="repo-title border-darkgoldenrod">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-deploy-kube"
-                              title="This project can be used to deploy Apache OpenWhisk to a Kubernetes cluster">
-                                  openwhisk-deploy-kube
-                          </a>
-                      </p>
-                      <p class="repo-title border-darkgoldenrod">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-devtools/blob/master/docker-compose/README.md"
-                              title="An easy way to try OpenWhisk locally is to use Docker Compose.">
-                                  openwhisk-devtools/docker-compose
-                          </a>
-                      </p>
-                      <p class="repo-title border-darkgoldenrod">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-deploy-mesos"
-                              title="Apache OpenWhisk deployment scripts and configuration files for running under Apache Mesos.">
-                                  openwhisk-deploy-mesos
-                          </a>
-                      </p>
-                      <p class="repo-title border-darkgoldenrod">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-deploy-openshift"
-                              title="This project can be used to deploy Apache OpenWhisk to the OpenShift platform">
-                                  openwhisk-deploy-openshift
-                          </a>
-                      </p>
-                      <p class="repo-title border-darkgoldenrod">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk/blob/master/ansible/README.md#deploying-openwhisk-using-ansible"
-                              title="Deploy OpenWhisk locally using Ansible">
-                                  openwhisk/ansible
-                          </a>
-                      </p>
-                      <p class="repo-title border-darkgoldenrod">
-                          <a href="https://github.com/apache/incubator-openwhisk#vagrant-setup" title="Deploy OpenWhisk locally using Vagrant">
-                              openwhisk/vagrant-setup
-                          </a>
-                      </p>
-                  </div>
-                  <div class="project-structure-repo theme-deeper-aquamarine">
-                      <h4>Tooling</h4>
-                      <p>OpenWhisk provides variety of tools around deployment and development.</p>
-                      <p class="repo-title border-deeper-aquamarine">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-wskdeploy"
-                              title="Utility to deploy all your OpenWhisk Packages, Actions, Triggers, and Rules using a single command!">
-                                  openwhisk-wskdeploy
-                          </a>
-                      </p>
-                      <p class="repo-title border-deeper-aquamarine">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-devtools"
-                              title="This repository provides developer tools that help with local development, testing and operation of OpenWhisk.">
-                                  openwhisk-devtools
-                          </a>
-                      </p>
-                      <p class="repo-title border-deeper-aquamarine">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-debugger"
-                              title="This repository provides wskdb, the OpenWhisk debugger">
-                                  openwhisk-debugger
-                          </a>
-                      </p>
-                      <p class="repo-title border-deeper-aquamarine">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-playground"
-                              title="This library provides functionality of executing a snippet of source code as OpenWhisk action for OpenWhisk Xcode Source Editor Extension in order to test Swift OpenWhisk functions quickly.">
-                                  openwhisk-playground
-                          </a>
-                      </p>
-                      <p class="repo-title border-deeper-aquamarine">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-vscode"
-                              title="This is a prototype extension for Visual Studio Code that enables complete round trip cycles for authoring OpenWhisk actions inside the editor. ">
-                                  openwhisk-vscode
-                          </a>
-                      </p>
-                      <p class="repo-title border-deeper-aquamarine">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-xcode"
-                              title="This repository has three projects, OpenWhisk Xcode Extension, WhiskBot - OpenWhisk Watson Conversation Chatbot, and wskTools">
-                                  openwhisk-xcode
-                          </a>
-                      </p>
-                  </div>
-                  <div class="project-structure-repo theme-darksalmon">
-                      <h4>Packages</h4>
-                      <p>Several common service integrations are made available as packages. By default they are registered in the OpenWHisk catalog, under the <em>/whisk.system/</em> namespace, and include:</p>
-                      <p class="repo-title border-darksalmon">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-package-alarms"
-                              title="Apache OpenWhisk package that can be used to create periodic, time-based alarms">
-                                  openwhisk-package-alarms
-                          </a>
-                      </p>
-                      <p class="repo-title border-darksalmon">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-package-cloudant"
-                              title="The /whisk.system/cloudant package enables you to work with a Cloudant database">
-                                  openwhisk-package-cloudant
-                          </a>
-                      </p>
-                      <p class="repo-title border-darksalmon">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-package-kafka"
-                              title="Apache OpenWhisk package for communicating with Kafka or Message Hub">
-                                  openwhisk-package-kafka
-                          </a>
-                      </p>
-                      <p class="repo-title border-darksalmon">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-package-deploy"
-                              title="The /whisk.system/deploy package offers a convenient way for you to describe and deploy any part of the OpenWhisk programming model using a Manifest file written in YAML.">
-                                  openwhisk-package-deploy
-                          </a>
-                      </p>
-                      <p class="repo-title border-darksalmon">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-package-pushnotifications"
-                              title="The /whisk.system/pushnotifications package enables you to work with a push service.">
-                                  openwhisk-package-pushnotifications
-                          </a>
-                      </p>
-                      <p class="repo-title border-darksalmon">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-package-rss"
-                              title="This package allows users to subscribe to RSS/ATOM feeds and receive events when a new feed item is available.">
-                                  openwhisk-package-rss
-                          </a>
-                      </p>
-                      <p class="repo-title border-darksalmon">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-package-jira"
-                              title="This package includes actions that interact with JIRA software software development tool used for issue tracking, and project management functions.">
-                                  openwhisk-package-jira
-                          </a>
-                      </p>
-                      <p class="repo-title border-darksalmon">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-package-template"
-                              title="This package is a template for Openwhisk Packages, it can be used to build, test and integrate new packages.">
-                                  openwhisk-package-template
-                          </a>
-                      </p>
-                  </div>
-                  <div class="project-structure-repo theme-deeper-aquamarine">
-                      <h4>Clients and SDK</h4>
-                      <p>Here are the clients to access to OpenWhisk API:</p>
-                      <p class="repo-title  border-deeper-aquamarine">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-client-go"
-                              title="This project openwhisk-client-go is a Go client library to access Openwhisk API">
-                                  openwhisk-client-go
-                          </a>
-                      </p>
-                      <p class="repo-title  border-deeper-aquamarine">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-client-js"
-                              title="JavaScript client library for the OpenWhisk platform">
-                                  openwhisk-client-js
-                          </a>
-                      </p>
-                      <p class="repo-title  border-deeper-aquamarine">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-client-swift"
-                              title="Swift client SDK for OpenWhisk with support for iOS, WatchOS2, and Darwin CLI apps">
-                                  openwhisk-client-swift
-                          </a>
-                      </p>
-                      <p class="repo-title  border-deeper-aquamarine">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-client-python"
-                              title="REST API of OpenWhisk can be used directly from Python">
-                                  openwhisk-client-python
-                          </a>
-                      </p>
-                  </div>
-                  <div class="project-structure-repo theme-darkorange">
-                      <h4>Samples</h4>
-                      <p>Few example applications to demonstrate OpenWhisk features and functionalities:</p>
-                      <p class="repo-title border-darkorange">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-sample-slackbot"
-                              title="This repository contains proof-of-concept-quality code to deploy a Slackbot with the capability to run OpenWhisk actions.">
-                                  openwhisk-sample-slackbot
-                          </a>
-                      </p>
-                      <p class="repo-title border-darkorange">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-slackinvite"
-                              title="Invite for Apache OpenWhisk Team on Slack">
-                                  openwhisk-slackinvite
-                          </a>
-                      </p>
-                      <p class="repo-title border-darkorange">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-GitHubSlackBot"
-                              title="This bot is designed to post updates to Slack when a GitHub pull request is ready to merge or a list of pull requests are under review for certain days and haven't merged.">
-                                  openwhisk-GitHubSlackBot
-                          </a>
-                      </p>
-                      <p class="repo-title border-darkorange">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-sample-matos"
-                              title="Sample application with Message Hub and Object Store">
-                                  openwhisk-sample-matos
-                          </a>
-                      </p>
-                      <p class="repo-title border-darkorange">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-tutorial"
-                              title="An interactive learning environment for the Apache OpenWhisk command line">
-                                  openwhisk-tutorial
-                          </a>
-                      </p>
-                      <p class="repo-title border-darkorange">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-workshop"
-                              title="OpenWhisk workshop to help developers learn how to build serverless applications using the platform.">
-                                  openwhisk-workshop
-                          </a>
-                      </p>
-                  </div>
-                  <div class="project-structure-repo theme-darkred">
-                      <h4>Others</h4>
-                      <p>Few other misc. but crucial repositories.</p>
-                      <p class="repo-title border-darkred">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-release"
-                              title="This repository provides Release Management of all designated Apache OpenWhisk project repositories">
-                                  openwhisk-release
-                          </a>
-                      </p>
-                      <p class="repo-title border-darkred">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-website"
-                              title="This repository contains source of this website (openwhisk.incubator.apache.org) which is built using Jekyll">
-                                  openwhisk-website
-                          </a>
-                      </p>
-                      <p class="repo-title border-darkred">
-                          <a
-                              href="https://github.com/apache/incubator-openwhisk-external-resources"
-                              title="Curated list of awesome OpenWhisk things">
-                                  openwhisk-external-resources
-                          </a>
-                      </p>
-                  </div>
-              </div>
-          </div>
-      </main>
+          <li><a href="#deployment_admin">Administrative Operations</a></li>
+          <li><a href="#operators_resources">Operators Resources</a></li>
+      </ul>
+
+      <!-- Contributors -->
+      <li class="index-menu-toggle"><a href="#contributors">Contributors</a></li>
+      <ul class="index-menuitems">
+          <li><a href="#project-structure">Project Structure</a></li>
+          <li><a href="#contributor-resources">Resources</a></li>
+          <li><a href="#contributing-runtimes">Adding Runtimes</a></li>
+      </ul>
+
+      <!-- Other Resources -->
+      <li><a href="#other-resources">Other Resources</a></li>
+
+      <!-- FAQ -->
+      <li><a href="#faq">FAQ</a></li>
+    </ul>
+  </div>
+
+  <section id="whiskNodes">
+    <main class="doc">
+      <div class="content">
+          <a class="indexable" id="documentation"></a>
+          <h2>Documentation</h2>
+          <p>There are many resources for learning about OpenWhisk;
+            this page attempts to organize, describe, index and link
+            to the essential information, wherever it resides, to help
+            users in getting started.  In general, much of the best
+            information is in the actual project repositories and we
+            encourage you to seek detailed and in-depth information
+            there.
+          </p>
+          <h5>OpenWhisk documentation is organized by the following
+            roles:</h5>
+          <ul>
+              <li><a href="#developers">Developers</a>: users
+              developing functions/actions, creating packages, feeds,
+              and feed provider services using project APIs, clients
+              and tooling.
+            </li>
+            <li><a href="#contributors">Contributors</a>: developers
+              designing and coding backend architectural components
+              and tooling that comprise the OpenWhisk platform and its
+              project ecosystem.
+            </li>
+            <li><a href="#operators">Operators</a>: users who deploy,
+              configure, and host the Apache OpenWhisk
+              Function-as-a-Service platform for development, testing
+              and/or production.
+            </li>
+          </ul>
+      </div>
+    </main>
 
-      <main class="doc">
-          <div class="content">
-              <h5>OpenWhisk documentation is organized by the following roles:</h5>
-              <ul>
-                  <li><a href="#operators">Operators</a>: users who deploy, configure, and host the Apache OpenWhisk Function-as-a-Service platform
-                  for development, testing and/or production.</li>
-                  <li><a href="#developers">Developers</a>: end users
-                  developing functions/actions, creating packages, feeds, and feed provider services using project APIs, clients and tooling.</li>
-                  <li><a href="#contributors">Contributors</a>: developers designing and developing backend architectural components and tooling that comprise the OpenWhisk platform and its project ecosystem.</li>
-              </ul>
-          </div>
-      </main>
+    <!-- *************************************************************** -->
+    <!-- Programming Model                                               -->
+    <!-- *************************************************************** -->
+    <main class="doc">
+      <div class="content">
+        <a class="indexable" id="programming-model"></a>
+        <h2>OpenWhisk Programming Model</h2>
+        <p>
+          <img style="display:block; width:80%; margin: auto"
+          src="{{ site.github.url }}/images/illustrations/OW-Programming-Model-Horz.png"
+          alt="OpenWhisk Programming Model">
+        </p>
+        <p>The OpenWhisk programming model is...</p>
+        <h5>Event-Driven</h5>
+        <p>In the OpenWhisk programming model, Events drive the
+          Serverless execution of functional code called Actions.
+          Events can come from any Event Source or Feed service
+          including:
+        </p>
+        <!-- TODO: Add links here -->
+        <ul>
+          <li>Datastores, Message Queues, Mobile and Web
+        Applications, Sensors, Chatbots, Scheduled tasks (via Alarms),
+        etc.
+          </li>
+        </ul>
+        <h5>Supports any functional programming language</h5>
+        <p>The OpenWhisk platform supports Action code written for any
+          of its ever-growing, built-in <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/actions.md#languages-and-runtimes">language runtimes</a>:
+        </p>
+        <ul>
+          <!-- TODO Fix Go Runtime README so title matches other runtimes; bury "other exec. -->
+          <li><a href="https://github.com/apache/incubator-openwhisk-runtime-go#apache-openwhisk-runtimes-for-go">Go</a> - OpenWhisk runtime for Go lang</li>
+          <li><a href="https://github.com/apache/incubator-openwhisk-runtime-java#apache-openwhisk-runtimes-for-java">Java</a> - OpenWhisk runtime for Java 8</li>
+          <li><a href="https://github.com/apache/incubator-openwhisk-runtime-nodejs#apache-openwhisk-runtimes-for-nodejs">JavaScript</a> - OpenWhisk runtime for Node.js v6 and v8</li>
+          <li><a href="https://github.com/apache/incubator-openwhisk-runtime-php#apache-openwhisk-runtimes-for-php">PHP</a> - OpenWhisk runtime for PHP 7.2 and 7.1</li>
+          <li><a href="https://github.com/apache/incubator-openwhisk-runtime-python#apache-openwhisk-runtimes-for-python">Python</a> - OpenWhisk runtime for Python 2.7 and 3</li>
+          <li><a href="https://github.com/apache/incubator-openwhisk-runtime-ruby#apache-openwhisk-runtimes-for-ruby">Ruby</a> - OpenWhisk runtime for Ruby 2.5</li>
+          <li><a href="https://github.com/apache/incubator-openwhisk-runtime-swift#apache-openwhisk-runtimes-for-swift">Swift</a> - OpenWhisk runtime for Swift 3 and 4</li>
+        </ul>
+        <!-- TODO: fix the Docker SDK header/title to say "Docker SDK" NOT "Blackbox Actions"-->
+        <p>If you need languages or libraries the current
+          "out-of-the-box" runtimes do not support, you can create
+          and customize your own executable that run "black box"
+          <a href="https://github.com/apache/incubator-openwhisk-runtime-docker/blob/master/sdk/docker/README.md">Docker Actions</a>
+          using the Docker SDK which are run on the
+          <a href="https://github.com/apache/incubator-openwhisk-runtime-docker/blob/master/README.md">Docker Runtime</a>.
+          <!-- TODO: cover later and link -->
+        </p>
+
+        <a class="indexable" id="programming-model-actions"></a>
+        <h4>Actions</h4>
+        <p>This section will answer some of the essential questions about
+          OpenWhisk Actions relative to the to the programming model.
+          If you want to more detailed information,
+          please read the project documentation on
+        <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/actions.md#openwhisk-actions">
+          OpenWhisk Actions</a>.
+        </p>
+        <img width="90%"
+        src="{{ site.github.url }}/images/illustrations/OW-Programming-Model-Horz-Action.png"
+        alt="OpenWhisk Programming Model: Actions">
+        <p>
+          <strong>What is an Action?</strong>
+          Actions are stateless functions (code snippets) that run on
+          the OpenWhisk platform. Actions encapsulate application logic
+          to be executed in response to events. Actions can be invoked
+          manually by the OpenWhisk REST API, OpenWhisk CLI,
+          simple and user-created APIs or automated via Triggers
+          which we will discuss later.
+        </p>
+        <p>
+          <strong>Does the function's language matter?</strong>
+          No, OpenWhisk is agnostic to a function's implementation language.
+          This means that OpenWhisk operations used to create, invoke and
+          manage Actions are the same regardless of implementation choice.
+          You decide what languages are best for you!
+        </p>
+        <p>
+          <strong>What if your preferred language/runtime is not supported
+          by OpenWhisk?</strong>
+          If your favorite language is not listed above, you may find the
+          Docker action or native binary path more suitable.
+          The OpenWhisk platform is extensible and you can add new languages
+          or runtimes (with custom packages and third-party dependencies)
+          following the guide described
+          <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/actions-new.md">here</a>.
+          Please reach out to other whiskers on dev mailing list at
+          <a href="mailto:dev@openwhisk.incubator.apache.org">dev@openwhisk.incubator.apache.org</a>.
+          once you have followed the guide on creating a new language/runtimes.
+          Here are some examples of runtimes added by community:
+        </p>
 
-      <!-- Operators Section -->
-      <main class="doc">
-          <div class="content">
-              <a class="indexable" id="operators"></a>
-              <h2>Operators</h2>
-          </div>
-      </main>
-
-      <!-- Deployment section under Operator -->
-      <main class="doc">
-          <div class="content">
-              <a class="indexable" id="openwhisk_architecture"></a>
-              <h3>OpenWhisk Architecture</h3>
-              <img style="padding-top:20px; width: 400px;" src="https://raw.githubusercontent.com/apache/incubator-openwhisk/master/docs/images/OpenWhisk_flow_of_processing.png" alt="OpenWhisk Architecture"/>
-              <p>
-                  The above diagram depicts the high-level architecture of OpenWhisk. From Nginx to Kafka to Docker,
-                  multiple technologies are powering Apache OpenWhisk - Open Source Serverless Cloud Platform.
-                  You can read about the list of OpenWhisk components and its internal flow of processing
-                  <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/about.md#the-internal-flow-of-processing">here</a>.
-              </p>
-              <a class="indexable" id="openwhisk_deployment"></a>
-              <h3>OpenWhisk Deployment</h3>
-              <p>
-                  OpenWhisk supports different installation methods for core OpenWhisk platform components. You can choose one of the following deployment methods based on your platform:
-              </p>
-              <a class="indexable" id="deploy_kubernetes"></a>
-              <h4>Kubernetes</h4>
-              <p>
-                  OpenWhisk can be deployed using <a href="https://helm.sh/">Helm</a> charts on
-                  Kubernetes provisioned locally or from a public cloud provider.
-                </p>
-                  <p>Please refer to:
-                  <a href="https://github.com/apache/incubator-openwhisk-deploy-kube/blob/master/README.md#kubernetes">Deploy OpenWhisk to a Kubernetes Cluster</a>
-                  for detailed deployment instructions which includes specific
-                  <a href="https://github.com/apache/incubator-openwhisk-deploy-kube/blob/master/README.md#customize-the-deployment">customizations</a>
-                  including Docker Desktop (Mac, Windows), Minikube, Google, IBM Cloud, etc.).
-              </p>
-              <a class="indexable" id="deploy_docker_compose"></a>
-              <h4>Docker Compose</h4>
-              <p>
-                  One of the easiest way to start deploying OpenWhisk is to get
-                  Docker installed on Mac, Windows or Linux.
-                  This does not give you a production deployment but gives you
-                  enough of the pieces to start writing functions and seeing them
-                  executing.
-                  However, if you like using Docker directly, we recommend
-                  using one of our <a href="https://github.com/apache/incubator-openwhisk-deploy-kube/blob/master/README.md#kubernetes">Kubernetes-Docker options</a>.
-              </p>
-              <div class="terminal">
-{% highlight bash %}
-$ git clone https://github.com/apache/incubator-openwhisk-devtools.git
-$ cd incubator-openwhisk-devtools/docker-compose
-$ make quick-start
-{% endhighlight %}
-              </div>
-              <p>
-                  For more detailed instructions, see the
-                  <a href="https://github.com/apache/incubator-openwhisk-devtools/blob/master/docker-compose/README.md">OpenWhisk with Docker Compose project</a>.
-              </p>
-              <a class="indexable" id="deploy_mesos"></a>
-              <h4>Mesos</h4>
-              <p>
-                  <a href="https://github.com/apache/incubator-openwhisk-deploy-mesos/blob/master/README.md">Deploy OpenWhisk to a Mesos Cluster</a>
-                  is under active development.
-              </p>
-              <a class="indexable" id="deploy_openshift"></a>
-              <h4>OpenShift</h4>
-              <p>
-                  <a href="https://github.com/apache/incubator-openwhisk-deploy-openshift/blob/master/README.md">Here</a>
-                  are the instructions and details on how to deploy OpenWhisk on OpenShift.
-              </p>
-              <a class="indexable" id="deploy_ansible"></a>
-              <h4>Ansible</h4>
-              <p>
-                  <a href="https://github.com/apache/incubator-openwhisk/blob/master/ansible/README.md">Deploying OpenWhisk using Ansible</a>
-                  is generally done for creating a development environment. Most of the OpenWhisk tools follow this method of deployment in their
-                  CI/CD (Travis) pipeline. The OpenWhisk playbooks are structured such that it allows cleaning, deploying, or re-deploying a single
-                  component as well as the entire OpenWhisk stack.
-              </p>
-              <a class="indexable" id="deploy_vagrant"></a>
-              <h4>Vagrant</h4>
-              <p>
-                  A Vagrant machine is also available to run OpenWhisk on Mac, Windows PC or GNU/Linux.
-                  Downloading and install VirtualBox and Vagrant for your operating system and architecture.
-                  You can follow the steps under
-                  <a href="https://github.com/apache/incubator-openwhisk#vagrant-setup">Vagrant Setup</a>
-                  to run your first OpenWhisk action using Vagrant.
-              </p>
-              <p>
-                  There are many different deployment methods available but we recommend
-                  <a href="https://github.com/apache/incubator-openwhisk-deploy-kube/blob/master/README.md">Deploy OpenWhisk to a Kubernetes Cluster</a>
-                  as its the most easy and quickest way of getting OpenWhisk deployed.
-              </p>
-          </div>
-      </main>
+        <ul>
+          <li><a href="https://github.com/rainbyte/openwhisk-wrapper">Haskell based OpenWhisk Services</a></li>
+          <li><a href="http://jamesthom.as/blog/2017/01/18/openwhisk-and-rust/">OpenWhisk and Rust</a></li>
+          <li><a href="https://github.com/gekola/openwhisk_docker_samples">Run Clojure, Erlang, Ruby, and Rust Actions on OpenWhisk using Docker</a></li>
+          <li><a href="https://github.com/imesh/openwhisk-runtime-ballerina#apache-openwhisk-runtime-for-ballerina">Ballerina</a></li>
+        </ul>
 
-      <!-- Operators Administrative Operations -->
-      <main class="doc">
-          <div class="content">
-              <a class="indexable" id="deployment_admin"></a>
-              <h3>Administrative Operations</h3>
-              <p>
-                  This section contains a list of resources which can be utilized to administer the running OpenWhisk instance.
-              </p>
-              <ul>
-                  <li><a href="https://github.com/apache/incubator-openwhisk/tree/master/tools/admin">wskadmin</a></li>
-              </ul>
-          </div>
-      </main>
+        <h5>Composing Sequences of Actions</h5>
+        <p>
+          Multiple actions, even implemented in different languages, may be
+          composed together to create a longer processing pipeline called a
+          <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/actions.md#creating-action-sequences">sequence</a>.
+          Sequence can be treated as a single action in terms of it creation
+          and invocation.
+        </p>
+
+        <h5>Learn more</h5>
+        <p>Listed below are some additional topics related to
+          developing OpenWhisk Actions:</p>
+        <ul>
+          <li><a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/reference.md#openwhisk-entities">Namespacing</a>
+            - the same Namespace and Naming rules as any
+            <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/reference.md#openwhisk-entities">OpenWhisk Entity</a> that are part of the
+            OpenWhisk programming model.
+          </li>
+          <li><a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/reference.md#system-limits">System Limits</a>
+            - Learn about some of the
+            (operator configurable) System Limits that are imposed on
+            OpenWhisk Actions.
+          </li>
+          <li><a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/webactions.md#web-actions">Web Actions</a>
+            - Find out how to annotate OpenWhisk Actions to quickly enable
+            you to build web based applications.
+          </li>
+          <li><a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/about.md#the-internal-flow-of-processing">Action Processing</a>
+            - Find out what happens "behind the scenes" when you invoke an
+            Action in Apache OpenWhisk.
+          </li>
+        </ul>
 
-      <!-- Operators resources -->
-      <main class="doc">
-          <div class="content">
-              <a class="indexable" id="operators_resources"></a>
-              <h3>Operator Resources</h3>
-              <ul>
-                  <li><a href="https://medium.com/openwhisk/five-minute-intro-to-open-source-serverless-development-with-openwhisk-328b0ebfa160">Five minute intro to open source serverless development with OpenWhisk</a></li>
-                  <li><a href="https://thenewstack.io/behind-scenes-apache-openwhisk-serverless-platform/">An Architectural View of Apache OpenWhisk</a></li>
-                  <li><a href="https://medium.com/@rabbah/the-state-of-openwhisk-ae8c129e8a48">The State of OpenWhisk</a></li>
-                  <li><a href="https://medium.com/openwhisk/starting-openwhisk-in-sixty-seconds-9288bfb4863d">Starting OpenWhisk in Sixty Seconds</a></li>
-                  <li><a href="https://medium.com/openwhisk/deploying-openwhisk-on-kubernetes-3f55f781fbab">Deploying OpenWhisk on Kubernetes</a></li>
-                  <li><a href="https://medium.com/openwhisk/uncovering-the-magic-how-serverless-platforms-really-work-3cb127b05f71">Uncovering the magic: How serverless platforms really work!</a></li>
-              </ul>
-          </div>
-      </main>
+        <a class="indexable" id="programming-model-triggers"></a>
+        <h4>Triggers and Rules</h4>
+        <p>This section will describe how to automate OpenWhisk Actions
+          in response to events using OpenWhisk Triggers.
+          If you want to more detailed information,
+          please read the project documentation on
+        <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/triggers_rules.md#creating-triggers-and-rules">
+          OpenWhisk Triggers and Rules</a>.
+        </p>
+        <img width="90%"
+        src="{{ site.github.url }}/images/illustrations/OW-Programming-Model-Horz-Trigger-Rule.png"
+        alt="OpenWhisk Programming Model: Actions">
+
+        <p>
+          <strong>What is a trigger?</strong>
+          Triggers are named channels for classes or kinds of events
+          sent from Event Sources.
+        </p>
+        <p>
+          <strong>What is a Rule?</strong>
+          Rules are used to associate one trigger with one action.
+          After this kind of association is created, each time
+          a trigger event is fired, the action is invoked.
+        </p>
+        <p>
+          <strong>What are Event Sources?</strong>
+          These are services that generate events that often indicate
+          changes in data or carry data themselves. Some examples of
+          common Event Sources include:
+        </p>
+        <ul>
+          <li>Messages arriving on Message Queues</li>
+          <li>Changes in Databases</li>
+          <li>Changes in Document Stores</li>
+          <li>Website or Web Application interactions</li>
+          <li>Service APIs being invoked</li>
+          <li>IoT Frameworks forwarding device sensor data</li>
+          <li>etc.</li>
+        </ul>
+        <p>
+            <strong>Why do I need to connect actions to event
+              sources?</strong>
+            OpenWhisk is based on an event-driven architecture where most
+            Actions are executed as events happen.
+            The Trigger itself is "fired" with a dictionary of
+            key-value pairs (i.e., the parameters) coming from the
+            Event Source and allows the configuration of optional default
+            values thus helping assure the data is compatible with any
+            associated Actions.
+            Rules allow for the same Trigger to be associated with multiple
+            Actions, as well as allow for specific automation to be enabled
+            or disabled dynamically without destroying the
+            Trigger definition.
+        </p>
+      </div>
+    </main>
 
-      <!-- Developers Section -->
-      <main class="doc">
-          <div class="content">
-              <a class="indexable" id="developers"></a>
-              <h2>Developers</h2>
-              <p>
-                  The OpenWhisk project and programming model supports different kinds of developers that may wish
-                  to user different runtimes and tooling. Here is the developer relevant content to find the information you may need.
-              </p>
-          </div>
-      </main>
-
-      <!-- Developers Pre Requisites section -->
-      <main class="doc">
-          <div class="content">
-              <a class="indexable" id="pre-requisites"></a>
-              <h4>Pre-requisites</h4>
-              <p>You will need to have access to running instance of the
-                OpenWhisk platform to develop against.
-              </p>
-              <h5>Running OpenWhisk locally</h5>
-              <p>Developers can select to install and configure their own instance
-              from among any of the options listed here:
-              <a href="#openwhisk_deployment">OpenWhisk Deployment</a>.
-              </p>
-              <p>For local, "light weight" development, we recommend using
-                <a href="https://github.com/apache/incubator-openwhisk-deploy-kube/blob/master/README.md#kubernetes">Kubernetes</a>
-                enabled within Docker (i.e., Docker for Mac or Windows, Minikube for Linux).
-              <ul><li>For setup instructions, see: <a href="https://github.com/apache/incubator-openwhisk-deploy-kube/blob/master/README.md#prerequisites-kubernetes-and-helm">Simple Docker-based options</a>.</li></ul>
-              <h5>Using OpenWhisk on a Cloud Provider</h5>
-              <p>Again, we encourage developers to leverage Cloud-based Kubernetes
-                services to deploy OpenWhisk.<p>
-              <p>Another option would be to use Serverless provider that already
-              hosts Apache OpenWhisk and supports its Command Line Interface (CLI)
-              such as <a href="https://console.bluemix.net/openwhisk/">IBM Cloud Functions.</a>
-              </p>
-          </div>
-      </main>
+    <!-- *************************************************************** -->
+    <!-- Developers                                                      -->
+    <!-- *************************************************************** -->
+    <main class="doc">
+      <div class="content">
+        <a class="indexable" id="developers"></a>
+        <h2>Developers</h2>
+        <p>
+          The OpenWhisk project and programming model supports
+          different kinds of developers that may wish to
+          use different runtimes and tooling.
+          This section contains the information and resources
+          you need to become a Serverless application
+          developer using the Apache OpenWhisk platform.
+        </p>
+
+        <!-- *********************************************************** -->
+        <!-- Developers - Pre-requisites                                 -->
+        <!-- *********************************************************** -->
+        <a class="indexable" id="pre-requisites"></a>
+        <h3>Pre-requisites</h3>
+        <p>You will need to have access to a running instance of the
+          OpenWhisk platform to develop against.
+        </p>
+        <h5>Running OpenWhisk locally</h5>
+        <p>Developers can select to install and configure their own
+          instancefrom among any of the options listed here:
+        <a href="#openwhisk_deployment">OpenWhisk Deployment Options</a>.
+        </p>
+        <p>For local, "light weight" development, we recommend using
+          <a href="https://github.com/apache/incubator-openwhisk-deploy-kube/blob/master/README.md#kubernetes">Kubernetes</a>
+          enabled within Docker (i.e., Docker for Mac or Windows,
+          Minikube for Linux).
+        <ul>
+          <li>
+            For setup instructions, see: <a href="https://github.com/apache/incubator-openwhisk-deploy-kube/blob/master/README.md#prerequisites-kubernetes-and-helm">Simple Docker-based options</a>.
+          </li>
+        </ul>
+        <h5>Using OpenWhisk on a Cloud Provider</h5>
+        <p>Again, we encourage developers to leverage Cloud-based Kubernetes
+          services to deploy OpenWhisk.
+        </p>
+        <p>Another option would be to use Serverless provider that
+          already hosts Apache OpenWhisk and supports its Command
+          Line Interface (CLI) such as
+          <a href="https://console.bluemix.net/openwhisk/">IBM Cloud Functions.</a>
+        </p>
+
+        <!-- *********************************************************** -->
+        <!-- Developers - Using OpenWhisk                                -->
+        <!-- *********************************************************** -->
+        <a class="indexable" id="using-openwhisk"></a>
+        <h3>Using OpenWhisk</h3>
+        <p>By default, local deployments of Apache Openwhisk create
+          a guest account and endpoint for developers to use. However,
+          if you are running on an instance of OpenWhisk administered
+          by a Cloud provider, you will need to obtain an account and
+          endpoint information from them.
+        </p>
+        <h5>Default Guest Account</h5>
+        <p>
+          <a href="#openwhisk_deployment">OpenWhisk
+            Deployments</a> create a guest account configured with
+            the authentication key available at:
+        </p>
+        <ul>
+          <li>
+            Guest certificate: <a href="https://github.com/apache/incubator-openwhisk/blob/master/ansible/files/auth.guest">https://github.com/apache/incubator-openwhisk/blob/master/ansible/files/auth.guest</a>
+          </li>
+        </ul>
 
-      <!-- Using OpenWhisk section -->
-      <main class="doc">
-          <div class="content">
+        <h5>Default API Host</h5>
+        <p>Deployments of Apache Openwhisk set the default API
+          host endpoint, used with the Command Line Interface (CLI)
+          and the Whisk Deploy utility, to:
+        </p>
+        <ul><li><strong>192.168.33.13</strong>.</li></ul>
+        <p>However, when running under a Kubernetes deployment installed
+          using Helm, the endpoint's address and port are set in your
+          "mycluster.yaml" deployment file.
+          See the <a href="https://github.com/apache/incubator-openwhisk-deploy-kube/blob/master/README.md#deploy-with-helm">Deploy With Helm</a>
+          instructions for details.
+        </p>
+
+      </div>
+    </main>
 
-              <a class="indexable" id="using-openwhisk"></a>
-              <h4>Using OpenWhisk</h4>
-              <p></p>
-              <h5>Guest account</h5>
-              <p>
-                  <a href="#openwhisk_deployment">OpenWhisk Deployments</a>
-                  create a guest account configured with the authentication key
-                  available at:
-              </p>
-              <ul><li><a href="https://github.com/apache/incubator-openwhisk/blob/master/ansible/files/auth.guest">https://github.com/apache/incubator-openwhisk/blob/master/ansible/files/auth.guest</a></li></ul>
-              <h5>API Host</h5>
-              <p>Deployments set the default API host endpoint, used with
-                the Command Line Interface (CLI) and the Whisk Deploy utility,
-                to:
-              </p>
-              <ul><li><strong>192.168.33.13</strong>.</li></ul>
-              <p>However, when running under a Kubernetes deployment installed
-                using Helm, the endpoint's address and port are set in your
-                "mycluster.yaml" deployment file.
-                See the <a href="https://github.com/apache/incubator-openwhisk-deploy-kube/blob/master/README.md#deploy-with-helm">Deploy With Helm</a>
-                instructions for details.
-              </p>
+    <!-- *************************************************************** -->
+    <!-- Getting Started                                                 -->
+    <!-- *************************************************************** -->
+    <main class="doc">
+      <div class="content">
+        <a class="indexable" id="getting-started"></a>
+        <h3>Getting Started</h3>
+        <p>As a developer, you need the right tools for the job.
+          This section describes the various tools that you can use
+          to work with OpenWhisk which include:
+        </p>
+        <ul>
+          <li>
+            <a href="#wsk-cli">OpenWhisk Command Line Interface (CLI) (wsk)</a>
+          </li>
+          <li>
+            <a href="#wskdeploy">OpenWhisk Deployment Utility (wskdeploy)</a>
+          </li>
+          <li>
+            <a href="#rest-api">OpenWhisk REST API</a>
+          </li>
+          <li>
+            <a href="#openwhisk-clients">OpenWhisk Clients</a>
+            for JavaScript, Go, Swift and Python.
+          </li>
+        </ul>
 
-          </div>
-      </main>
-
-      <!-- *************************************************************** -->
-      <!-- OpenWhisk CLI                                                   -->
-      <!-- *************************************************************** -->
-      <main class="doc">
-          <div class="content">
-              <a class="indexable" id="wsk-cli"></a>
-              <h4>OpenWhisk CLI (wsk)</h4>
-              <p>OpenWhisk offers the <code>wsk</code> Command Line Interface
-                (CLI) to easily create, run, and manage OpenWhisk entities.
-              </p>
-              <p>For detailed information on setting up and configuring the
-                OpenWhisk CLI, go to the
-                <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/cli.md#openwhisk-cli">OpenWhisk CLI</a>
-                documentation page in GitHub.</p>
-
-              <!-- Install: download & installing -->
-              <a class="indexable" id="wsk-cli-install"></a>
-              <h5>Installing</h5>
-              <p>You have a couple of choices on how to install the Whisk CLI
-                depending on your target Operating System:</p>
-
-              <h6>Using Homebrew (Linux or Mac)</h6>
-              <div class="indented">
-                <p>To easily install the OpenWhisk CLI (wsk) you can
-                  use <a href="https://brew.sh">Homebrew for Mac</a>
-                  or <a href="http://linuxbrew.sh">Homebrew for Linux</a>.
-                </p>
-                <div class="terminal">
+        <!-- ********************************************************** -->
+        <!-- OpenWhisk CLI                                              -->
+        <!-- ********************************************************** -->
+        <a class="indexable" id="wsk-cli"></a>
+        <h4>OpenWhisk CLI (wsk)</h4>
+        <p>OpenWhisk offers the <code>wsk</code> Command Line Interface
+          (CLI) to easily create, run, and manage OpenWhisk entities.
+        </p>
+        <p>For detailed information on setting up and configuring the
+          OpenWhisk CLI, go to the
+          <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/cli.md#openwhisk-cli">OpenWhisk CLI</a>
+          documentation page in GitHub.
+        </p>
+
+        <!-- Install: download & installing -->
+        <a class="indexable" id="wsk-cli-install"></a>
+        <h5>Installing</h5>
+        <p>You have a couple of choices on how to install the Whisk CLI
+          depending on your target Operating System:
+        </p>
+
+        <h6>Using Homebrew (Linux or Mac)</h6>
+        <div class="indented">
+          <p>To easily install the OpenWhisk CLI (wsk) you can
+            use <a href="https://brew.sh">Homebrew for Mac</a>
+            or <a href="http://linuxbrew.sh">Homebrew for Linux</a>.
+          </p>
+          <div class="terminal">
 {% highlight bash %}
 $ brew update
 $ brew install wsk
 {% endhighlight %}
-                </div>
-                <p>Then you can invoke the OpenWhisk CLI by just
-                  typing <code>wsk</code> from the command line.</p>
-              </div>
+          </div>
+          <p>Then you can invoke the OpenWhisk CLI by just
+            typing <code>wsk</code> from the command line.
+          </p>
+        </div>
 
-              <h6>Download and install the wsk CLI from (Linux, Mac or Windows):</h6>
+        <h6>Download and install the wsk CLI from (Linux, Mac or Windows):</h6>
+        <ul>
+          <li>
+            <p>Download the OpenWhisk CLI for your Operating System as
+              a standalone compressed TAR Archive file (<code>.tgz</code>)
+              or ZIP file (<code>.zip</code>) from the project
+              <a href="https://github.com/apache/incubator-openwhisk-cli/releases">Releases</a> page
+              in GitHub:
+            </p>
+            <ul>
+              <li>
+                <a href="https://github.com/apache/incubator-openwhisk-cli/releases">https://github.com/apache/incubator-openwhisk-cli/releases</a>
+              </li>
+            </ul>
+            <p>where you may select to download the CLI from the
+              "latest" release or from one of the versioned releases.
+            </p>
+          </li>
+          <li><p>Uncompress the <code>wsk</code> executable from
+            the <code>tar.gz</code> file.</p></li>
+          <li>
+            <div id="copy_to_path_instructions">
+              <p>Simplify access to the <code>wsk</code> executable by
+                moving or copying the binary file to a path listed
+                in your <code>PATH</code> environment variable.
+                This will enable you to invoke the OpenWhisk CLI by
+                just typing '<code>wsk</code>' on the command line
+                from anywhere.
+              </p>
+              <p>For example:</p>
               <ul>
-                <li>
-                  <p>Download the OpenWhisk CLI for your Operating System as
-                    a standalone compressed TAR Archive file (<code>.tgz</code>)
-                    or ZIP file (<code>.zip</code>) from the project
-                    <a href="https://github.com/apache/incubator-openwhisk-cli/releases">Releases</a> page
-                    in GitHub:
-                    <ul>
-                      <li><a href="https://github.com/apache/incubator-openwhisk-cli/releases">https://github.com/apache/incubator-openwhisk-cli/releases</a></li>
-                    </ul>
-                  <p>where you may select to download the CLI from the
-                    "latest" release or from one of the versioned releases.</p>
+                <li><p><b>Linux</b>: Move the <code>wsk</code> executable
+                  to your local <code>bin</code> directory:</p>
+                    <div class="terminal">
+{% highlight bash %}$ sudo mv [full path to downloaded wsk executable] /usr/local/bin/wsk{% endhighlight %}
+                    </div>
                 </li>
-                <li><p>Uncompress the <code>wsk</code> executable from
-                  the <code>tar.gz</code> file.</p></li>
                 <li>
-                  <div id="copy_to_path_instructions">
-                    <p>Simplify access to the <code>wsk</code> executable by
-                      moving or copying the binary file to a path listed
-                      in your <code>PATH</code> environment variable.
-                      This will enable you to invoke the OpenWhisk CLI by
-                      just typing '<code>wsk</code>' on the command line
-                      from anywhere.</p>
-                    <p>For example:</p>
-                    <ul>
-                      <li><p><b>Linux</b>: Move the <code>wsk</code> executable
-                        to your local <code>bin</code> directory:</p>
-                          <div class="terminal">
-                          {% highlight bash %}$ sudo mv [full path to downloaded wsk executable] /usr/local/bin/wsk{% endhighlight %}
-                          </div>
-                      </li>
-                      <li><p><b>Windows</b>: Follow instructions as linked here:</p>
-                        <ul>
-                          <li>
-                            <a href="https://www.computerhope.com/issues/ch000549.htm">How to set the path and environment variables in Windows</a>.
-                          </li>
-                        </ul>
-                      </li>
-                    </ul>
-                  </div>
+                  <p>
+                    <b>Windows</b>: Follow instructions as linked here:
+                  </p>
+                  <ul>
+                    <li>
+                      <a href="https://www.computerhope.com/issues/ch000549.htm">How to set the path and environment variables in Windows</a>.
+                    </li>
+                  </ul>
                 </li>
               </ul>
+            </div>
+          </li>
+        </ul>
 
-              <!-- Install: Verify -->
-              <a class="indexable" id="wsk-cli-verify"></a>
-              <h5>Verify Installation</h5>
-              <p>You can verify your installation by invoking the Whisk CLI's help command:</p>
-              <div class="indented">
-                <div class="terminal">
+        <!-- Install: Verify -->
+        <a class="indexable" id="wsk-cli-verify"></a>
+        <h5>Verify Installation</h5>
+        <p>You can verify your installation by invoking the Whisk
+          CLI's help command:
+        </p>
+        <div class="indented">
+          <div class="terminal">
 {% highlight bash %}$ wsk --help{% endhighlight %}
-                </div>
-              </div>
+          </div>
+        </div>
 
-              <!-- Install: Configuring -->
-              <a class="indexable" id="wsk-cli-configure"></a>
-              <h5>Configuring</h5>
-              <p>Before using the OpenWhisk CLI, you must first configure it
-                to point to the OpenWhisk platform you want the utility
-                to use (i.e., its API endpoint) and also provide it with your
-                associated authentication credentials.</p>
-              <h6 id="api_authentication">Setting the API Host and
-                Authentication Key</h6>
-              <div class="indented">
-                <p>You can configure wsk CLI to use your OpenWhisk
-                  credentials in few different ways.  See the
-                <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/cli.md#openwhisk-cli">Setting up the OpenWhisk CLI</a>
-                page for a full set of configuration options.
-                The instructions below walk you throguh the simplest
-                possible configuration using only an
-                <code>API_HOST</code> and <code>AUTH_KEY</code> CLI
-                properties using a default <code>guest</code>
-                namespace.</p>
-
-                <h6>wsk property setup</h6>
-                <p>Run the following command to set whisk API HOST and
-                  authorization key to create the configuration file:</p>
-                <div class="terminal">
+        <!-- Install: Configuring -->
+        <a class="indexable" id="wsk-cli-configure"></a>
+        <h5>Configuring</h5>
+        <p>Before using the OpenWhisk CLI, you must first configure it
+          to point to the OpenWhisk platform you want the utility
+          to use (i.e., its API endpoint) and also provide it with your
+          associated authentication credentials.</p>
+        <h6 id="api_authentication">Setting the API Host and
+          Authentication Key</h6>
+        <div class="indented">
+          <p>You can configure wsk CLI to use your OpenWhisk
+            credentials in few different ways.  See the
+          <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/cli.md#openwhisk-cli">Setting up the OpenWhisk CLI</a>
+          page for a full set of configuration options.
+          The instructions below walk you throguh the simplest
+          possible configuration using only an
+          <code>API_HOST</code> and <code>AUTH_KEY</code> CLI
+          properties using a default <code>guest</code>
+          namespace.</p>
+
+          <h6>wsk property setup</h6>
+          <p>Run the following command to set whisk API HOST and
+            authorization key to create the configuration file:</p>
+          <div class="terminal">
 {% highlight bash %}
 $ wsk property set --apihost API_HOST --auth AUTH_KEY --namespace guest
 {% endhighlight %}
-                </div>
-                <p>The OpenWhisk CLI stores the properties set
-                  in <code>~/.wskprops</code> by default.
-                  The location of this file can be altered by setting the
-                  <code>WSK_CONFIG_FILE</code> environment variable.
-                  For example:
-                </p>
-                <div class="terminal">
+          </div>
+          <p>The OpenWhisk CLI stores the properties set
+            in <code>~/.wskprops</code> by default.
+            The location of this file can be altered by setting the
+            <code>WSK_CONFIG_FILE</code> environment variable.
+            For example:
+          </p>
+          <div class="terminal">
 {% highlight bash %}
 $ export WSK_CONFIG_FILE=your-config-file
 {% endhighlight %}
-                </div>
+          </div>
 
-                <h6>Verify properties</h6>
-                <p>Verify your properties were properly set by
-                  using the <code>wsk property get</code> command:</p>
-                  <div class="terminal">
+          <h6>Verify properties</h6>
+          <p>Verify your properties were properly set by
+            using the <code>wsk property get</code> command:</p>
+            <div class="terminal">
 {% highlight bash %}
 $ wsk property get
 {% endhighlight %}
-                  </div>
-              </div>
+            </div>
+        </div>
 
-              <!-- Install: Test Configuration -->
-              <h5>Test configuration</h5>
-              <div class="indented">
-                <p>A simple "read" command will cause the CLI to authenticate
-                  to the OpenWhisk your configured API host endpoint and
-                  credentials.
-                is incorrect.</p>
-                <h6>Verify host connection</h6>
-                <p>Verify your host connection and credentials using
-                  the <code>wsk list</code> command with the
-                  <code>-v</code> (verbose) flag enabled.</p>
-                <div class="terminal">
+        <!-- Install: Test Configuration -->
+        <h5>Test configuration</h5>
+        <div class="indented">
+          <p>A simple "read" command will cause the CLI to authenticate
+            to the OpenWhisk your configured API host endpoint and
+            credentials.
+          is incorrect.</p>
+          <h6>Verify host connection</h6>
+          <p>Verify your host connection and credentials using
+            the <code>wsk list</code> command with the
+            <code>-v</code> (verbose) flag enabled.</p>
+          <div class="terminal">
 {% highlight bash %}
 $ wsk list -v
 {% endhighlight %}
-                </div>
-                <p>You should see the full HTTP request and response headers
-                  the CLI sends/receives to/from the host along with the
-                  response codes.</p>
-              </div>
           </div>
-      </main>
-
-      <!-- *************************************************************** -->
-      <!-- Whisk Deploy                                                    -->
-      <!-- *************************************************************** -->
-      <main class="doc">
-          <div class="content">
-            <a class="indexable" id="wskdeploy"></a>
-            <h4>Whisk Deploy (wskdeploy)</h4>
-            <p>
-              <a href="https://github.com/apache/incubator-openwhisk-wskdeploy/blob/master/README.md">Whisk Deploy</a>
-              is a utility, named <em>wskdeploy</em>, to help deploy and
-              manage all your OpenWhisk Packages, Actions, Triggers, Rules
-              and APIs using a single command using an application manifest.
-            </p>
+          <p>You should see the full HTTP request and response headers
+            the CLI sends/receives to/from the host along with the
+            response codes.</p>
+        </div>
 
-            <h5>Installing</h5>
-            <p>Download and Install the <code>wskdeploy</code> utility for Linux, Mac
-              or Windows.</p>
-            <div class="indented">
-              <h6>Download the Whisk Deploy utility</h6>
+        <!-- ********************************************************** -->
+        <!-- Whisk Deploy                                               -->
+        <!-- ********************************************************** -->
+        <a class="indexable" id="wskdeploy"></a>
+        <h4>Whisk Deploy (wskdeploy)</h4>
+        <p>
+          <a href="https://github.com/apache/incubator-openwhisk-wskdeploy/blob/master/README.md">Whisk Deploy</a>
+          is a utility, named <em>wskdeploy</em>, to help deploy and
+          manage all your OpenWhisk Packages, Actions, Triggers, Rules
+          and APIs using a single command using an application manifest.
+        </p>
+
+        <h5>Installing</h5>
+        <p>Download and Install the <code>wskdeploy</code> utility
+          for Linux, Mac or Windows.</p>
+        <div class="indented">
+          <h6>Download the Whisk Deploy utility</h6>
+          <ul>
+            <li>
+            <p> Download the Whisk Deploy utility for your Operating
+              System as a standalone compressed TAR Archive
+              file (<code>.tgz</code>) or ZIP file (<code>.zip</code>)
+              from the project
+              <a href="https://github.com/apache/incubator-openwhisk-wskdeploy/releases">Releases</a> page
+              in GitHub:
               <ul>
                 <li>
-                <p> Download the Whisk Deploy utility for your Operating System as
-                  a standalone compressed TAR Archive file (<code>.tgz</code>)
-                  or ZIP file (<code>.zip</code>) from the project
-                  <a href="https://github.com/apache/incubator-openwhisk-wskdeploy/releases">Releases</a> page
-                  in GitHub:
-                  <ul>
-                    <li>
-                      <a href="https://github.com/apache/incubator-openwhisk-wskdeploy/releases">https://github.com/apache/incubator-openwhisk-wskdeploy/releases</a>
-                    </li>
-                  </ul>
-                  <p>where you may select to download the utility from the
-                "latest" release or from one of the versioned releases.</p>
-                </li>
-                <li>
-                  <p>Uncompress the <code>wskdeploy</code> executable from
-                    the <code>tar.gz</code> file.</p></li>
-                <li>
-                  <p>Simplify access to the <code>wsk</code> executable by
-                    moving or copying the binary file to a path listed
-                    in your <code>PATH</code> environment variable.
-                    This will enable you to invoke Whisk Deploy utility by
-                    just typing '<code>wskdeploy</code>' on the command line
-                    from anywhere.</p>
-                  <p>Follow the <a href="#copy_to_path_instructions">instructions</a>
-                    as shown for the Whisk CLI to learn how to do this for your
-                    development platform.
-                  </p>
+                  <a href="https://github.com/apache/incubator-openwhisk-wskdeploy/releases">https://github.com/apache/incubator-openwhisk-wskdeploy/releases</a>
                 </li>
               </ul>
-            </div>
-
-            <h5>Verify Installation</h5>
-            <div class="indented">
-              <p>Start by verifying the utility can display the command line help:</p>
-              <div class="terminal">
-{% highlight bash %}$ wskdeploy --help{% endhighlight %}
-              </div>
-            </div>
-
-            <h5>Configure</h5>
-            <div class="indented">
-              <p>Before you proceed with the deployment, please make sure you have
-                setup the <code>API_HOST</code> and <code>AUTH_KEY</code> CLI
-                properties with a default namespace as described in the
-                <a href="#api_authentication">Whisk CLI configuration section</a> above.
+              <p>where you may select to download the utility from the
+            "latest" release or from one of the versioned releases.</p>
+            </li>
+            <li>
+              <p>Uncompress the <code>wskdeploy</code> executable from
+                the <code>tar.gz</code> file.</p></li>
+            <li>
+              <p>Simplify access to the <code>wsk</code> executable by
+                moving or copying the binary file to a path listed
+                in your <code>PATH</code> environment variable.
+                This will enable you to invoke Whisk Deploy utility by
+                just typing '<code>wskdeploy</code>' on the command line
+                from anywhere.</p>
+              <p>Follow the
+                <a href="#copy_to_path_instructions">instructions</a>
+                as shown for the Whisk CLI to learn how to do this for
+                your development platform.
               </p>
-            </div>
-
-            <h5>Test configuration</h5>
-            <ul>
-              <li>
-                <h6>Create and Deploy a simple OpenWhisk Manifest File</h6>
-                <p>Please refer to the
-                <a href="https://github.com/apache/incubator-openwhisk-wskdeploy/blob/master/docs/programming_guide.md#wskdeploy-utility-by-example">Whisk Deploy Programming Guide</a>
-                for all manifest file grammar and syntax. This programming
-                guide has step-by-step instructions for deploying OpenWhisk
-                applications using wskdeploy.
-                </p>
-                <p>Here is a simple YAML manifest example that has an in-line
-                  function written in JavaScript that outputs "Hello World":</p>
-                <div class="terminal">
-{% highlight yaml %}
-{% include code/manifest-for-helloJS-2.yaml %}
-{% endhighlight %}
-                </div>
-              </li>
-              <li>Save the YAML scripts as an OpenWhisk Manifest file
-                called <code>manifest.yaml</code>
-              </li>
-              <li>
-                <p>Deploy the OpenWhisk Manifest file:</p>
-
-                <div class="terminal">
-{% highlight bash %}$ wskdeploy -m manifest.yaml{% endhighlight %}
-                </div>
-              </li>
-            </ul>
+            </li>
+          </ul>
+        </div>
 
+        <h5>Verify Installation</h5>
+        <div class="indented">
+          <p>Start by verifying the utility can display the command
+            line help:
+          </p>
+          <div class="terminal">
+{% highlight bash %}$ wskdeploy --help{% endhighlight %}
           </div>
-      </main>
-
-    <main class="doc">
-        <div class="content">
-            <a class="indexable" id="rest-api"></a>
-            <h4>OpenWhisk REST API</h4>
-            <p>
-                After your OpenWhisk environment is enabled, you can use OpenWhisk with your web apps or mobile apps with REST API calls.
-                For more details about the APIs for actions, activations, packages, rules, and triggers, see the
-                <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/rest_api.md#using-rest-apis-with-openwhisk">OpenWhisk API</a>
-                documentation.
-            </p>
         </div>
-    </main>
 
-    <main class="doc">
-        <div class="content">
-            <a class="indexable" id="openwhisk-clients"></a>
-            <h4>OpenWhisk Clients</h4>
-            <p>OpenWhisk provides a wrapper around the OpenWhisk APIs in multiple different languages.:</p>
-            <ul>
-                <li id="javascript-client"><a href="https://github.com/apache/incubator-openwhisk-client-js/blob/master/README.md">JavaScript</a></li>
-                <li id="go-client"><a href="https://github.com/apache/incubator-openwhisk-client-go/blob/master/README.md">Go</a></li>
-                <li id="swift-client"><a href="https://github.com/apache/incubator-openwhisk-client-swift/blob/master/README.md">Swift</a></li>
-                <li id="python-client"><a href="https://github.com/apache/incubator-openwhisk-client-python/blob/master/README.md">Python</a></li>
-            </ul>
+        <h5>Configure</h5>
+        <div class="indented">
+          <p>Before you proceed with the deployment, please make sure you have
+            setup the <code>API_HOST</code> and <code>AUTH_KEY</code> CLI
+            properties with a default namespace as described in the
+            <a href="#api_authentication">Whisk CLI configuration
+              section</a> above.
+          </p>
         </div>
-    </main>
-
-    <!-- actions section -->
-    <main class="doc">
-        <div class="content">
-            <a class="indexable" id="actions"></a>
-            <h4>Actions</h4>
-            <p>
-                <strong>What is an OpenWhisk action?</strong>
-                Actions are stateless functions (code snippets) that run on the OpenWhisk platform.
-                Actions encapsulates application logic to be executed in response to events.
-                You can find more details on specifics of an action in main OpenWhisk GitHub repo at
-                <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/actions.md">incubator-openwhisk</a>.
-            </p>
-            <p>
-                <strong>Which programming language can I use to write an OpenWhisk action?</strong>
-                An action can be created from a function written using any of the supported runtimes.
-                <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/actions.md#languages-and-runtimes">Here</a>
-                is the list of runtimes supported by OpenWhisk:
-            </p>
 
-            <ul>
-                <li><a href="#nodejs">JavaScript</a> - OpenWhisk runtime for Node.js v6 and v8</li>
-                <li><a href="https://github.com/apache/incubator-openwhisk-runtime-docker/blob/master/README.md">Docker</a> - OpenWhisk runtime for Docker Actions using SDK</li>
-                <li><a href="#go">Go</a> - OpenWhisk runtime for Go lang</li>
-                <li><a href="#php">PHP</a> - OpenWhisk runtime for PHP 7.2 and 7.1</li>
-                <li><a href="#python">Python</a> - OpenWhisk runtime for Python 2.7 and 3</li>
-                <li><a href="https://github.com/apache/incubator-openwhisk-runtime-swift/blob/master/README.md">Swift</a> - OpenWhisk runtime for Swift 3 and 4</li>
-                <li><a href="#java">Java</a> - OpenWhisk runtime for Java 8</li>
-                <li><a href="#ruby">Ruby</a> - OpenWhisk runtime for Ruby 2.5</li>
-            </ul>
-
-            <p>
-                While the actual function code will be specific to a language and runtime, the OpenWhisk operations to create,
-                invoke and manage an action are the same regardless of the implementation choice. OpenWhisk wsk CLI and Whisk Deploy
-                specified in <a href="#using-openwhisk">Using OpenWhisk</a> section supports action management on OpenWhisk platform.
+        <h5>Test configuration</h5>
+        <ul>
+          <li>
+            <h6>Create and Deploy a simple OpenWhisk Manifest File</h6>
+            <p>Please refer to the
+            <a href="https://github.com/apache/incubator-openwhisk-wskdeploy/blob/master/docs/programming_guide.md#wskdeploy-utility-by-example">Whisk Deploy Programming Guide</a>
+            for all manifest file grammar and syntax. This programming
+            guide has step-by-step instructions for deploying OpenWhisk
+            applications using wskdeploy.
             </p>
-            <p>
-                <strong>What if your preferred language/runtime is not supported by OpenWhisk?</strong>
-                If your favorite language is not listed above, you may find the Docker action or native binary path more suitable.
-                The OpenWhisk platform is extensible and you can add new languages or runtimes (with custom packages and third-party dependencies)
-                following the guide described
-                <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/actions-new.md">here</a>.
-                Please reach out to other whiskers on dev mailing list at
-                <a href="mailto:dev@openwhisk.incubator.apache.org">dev@openwhisk.incubator.apache.org</a>.
-                once you have followed the guide on creating a new language/runtimes. Here are some examples of runtimes added by community:
+            <p>Here is a simple YAML manifest example that has an in-line
+              function written in JavaScript that outputs "Hello World":
             </p>
+            <div class="terminal">
+{% highlight yaml %}
+{% include code/manifest-for-helloJS-2.yaml %}
+{% endhighlight %}
+            </div>
+          </li>
+          <li>Save the YAML scripts as an OpenWhisk Manifest file
+            called <code>manifest.yaml</code>
+          </li>
+          <li>
+            <p>Deploy the OpenWhisk Manifest file:</p>
 
-            <ul>
-                <li><a href="https://github.com/rainbyte/openwhisk-wrapper">Haskell based OpenWhisk Services</a></li>
-                <li><a href="http://jamesthom.as/blog/2017/01/18/openwhisk-and-rust/">OpenWhisk and Rust</a></li>
-                <li><a href="https://github.com/gekola/openwhisk_docker_samples">Run Clojure, Erlang, Ruby, and Rust Actions on OpenWhisk using Docker</a></li>
-                <li><a href="https://github.com/imesh/openwhisk-runtime-ballerina#apache-openwhisk-runtime-for-ballerina">Ballerina</a></li>
-            </ul>
+            <div class="terminal">
+{% highlight bash %}$ wskdeploy -m manifest.yaml{% endhighlight %}
+            </div>
+          </li>
+        </ul>
 
-            <p>
-                <strong>After you create an action, how can you invoke that action?</strong>
-                You can invoke actions manually using OpenWhisk CLI or fire a trigger with which your action is associated with.
-                If you are not faimiliar with triggers, we are looking into triggers in next section.
-            </p>
-            <p>
-                <strong>Can an application logic be divided into multiple actions? </strong>
-                Multiple actions from different languages may be composed together to create a longer processing pipeline called a
-                <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/actions.md#creating-action-sequences">sequence</a>.
-                Sequence can be treated as an action in terms of it creation and invocation.
-            </p>
-            <p>Please read
-            <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/actions.md">OpenWhisk Actions</a>
-            for further details.</p>
-        </div>
+        <!-- ********************************************************** -->
+        <!-- OpenWhisk REST API                                         -->
+        <!-- ********************************************************** -->
+        <a class="indexable" id="rest-api"></a>
+        <h4>OpenWhisk REST API</h4>
+        <p>
+            After your OpenWhisk environment is enabled, you can use
+            OpenWhisk with your web apps or mobile apps with REST API
+            calls.
+            For more details about the APIs for actions, activations,
+            packages, rules, and triggers, see the
+            <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/rest_api.md#using-rest-apis-with-openwhisk">OpenWhisk API</a>
+            documentation.
+        </p>
+
+        <!-- ********************************************************** -->
+        <!-- OpenWhisk Clients                                          -->
+        <!-- ********************************************************** -->
+        <a class="indexable" id="openwhisk-clients"></a>
+        <h4>OpenWhisk Clients</h4>
+        <p>OpenWhisk provides a wrapper around the OpenWhisk APIs in
+          multiple different languages.  These can be imported and used
+          directly in your favorite Integrated Development
+          Environment (IDE):</p>
+        <ul>
+            <li id="javascript-client"><a href="https://github.com/apache/incubator-openwhisk-client-js/blob/master/README.md#openwhisk-client-for-javascript">JavaScript</a></li>
+            <li id="go-client"><a href="https://github.com/apache/incubator-openwhisk-client-go/blob/master/README.md">Go</a></li>
+            <li id="swift-client"><a href="https://github.com/apache/incubator-openwhisk-client-swift/blob/master/README.md">Swift</a></li>
+            <li id="python-client"><a href="https://github.com/apache/incubator-openwhisk-client-python/blob/master/README.md">Python</a></li>
+        </ul>
+      </div>
     </main>
 
-    <!-- Here we are starting with writing actions in NodeJS -->
+    <!-- *************************************************************** -->
+    <!-- Creating and Invoking Actions                                   -->
+    <!-- *************************************************************** -->
+
     <main class="doc">
-        <div class="content">
-            <a class="indexable" id="nodejs"></a>
-            <h4>NodeJs</h4>
-            <p></p>
-            <a class="indexable" id="nodejs-actions"></a>
-            <h5>Creating and Invoking NodeJS actions</h5>
-            <p>
-                Let's look at how to write a sample hello world action in NodeJS. You can visit
-                <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/actions-node.md#creating-and-invoking-javascript-actions">Creating and Invoking NodeJS actions</a>
-                page for further details.
-            </p>
-            <p>
-                <strong>Note:</strong> We will be using <i>wsk</i> CLI in this section. If you don't have it installed and configured,
-                please refer to the section on <a href="#wsk-cli">Configure the wsk CLI</a> to configure it.
-            </p>
-            <ol>
-                <li style="list-style-type: decimal">
-                    Create a file named <i>hello.js</i>:
-                    <div class="terminal">
+      <div class="content">
+        <a class="indexable" id="actions-creating-and-invoking"></a>
+        <h3>Creating and Invoking Actions</h3>
+        <p>In this section, we will show you how to create and invoke your
+          first "Hello World" Action using both the OpenWhisk CLI and the
+          Whisk Deploy utility.
+        </p>
+        <p>All the canonical examples will be provided using JavaScript
+          using the NodeJS runtime; however, we also provide the same
+          examples for all other supported runtime languages
+          (e.g., Java, Python, Swift, etc.) where possible.
+        </p>
+        <h5>Select a language</h5>
+        <p>Select from the language example you would like to follow from the
+          list below.
+        </p>
+        <!-- <ul>
+          <li><a href="#section-nodejs">JavaScript (NodeJS)</a></li>
+          <li><a href="#section-go">Go</a></li>
+          <li><a href="#section-java">Java</a></li>
+          <li><a href="#section-php">PHP</a></li>
+          <li><a href="#section-python">Python</a></li>
+          <li><a href="#section-ruby">Ruby</a></li>
+        </ul> -->
+
+        <!-- ************************************** -->
+        <!-- Actions - JavaScript (NodeJS)          -->
+        <!-- ************************************** -->
+        <a class="indexable" id="nodejs"></a>
+        <h6 id="section-nodejs" class="section-toggle">using NodeJS (JavaScript)</h6>
+        <div class="section-toggleable section-toggle-start-closed">
+          <p></p>
+          <a class="indexable" id="actions-nodejs"></a>
+          <h5>Creating and Invoking NodeJS actions</h5>
+          <p>
+            Let's look at how to write a sample hello world action in NodeJS. You can visit
+            <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/actions-node.md#creating-and-invoking-javascript-actions">Creating and Invoking NodeJS actions</a>
+            page for further details.
+          </p>
+          <p>
+            <strong>Note:</strong> We will be using <i>wsk</i> CLI in this
+            section. If you don't have it installed and configured,
+            please refer to the section
+            <a href="#wsk-cli">OpenWhisk CLI (wsk)</a>.
+          </p>
+          <ol>
+            <li style="list-style-type: decimal">
+              Create a file named <i>hello.js</i>:
+              <div class="terminal">
 {% highlight javascript linenos %}
 {% include code/hello.js %}
 {% endhighlight %}
-                    </div>
-                </li>
-                <li style="list-style-type: decimal">
-                    Create an action called <i>helloJS</i> using <i>hello.js</i>:
-                    <div class="terminal">
+              </div>
+            </li>
+            <li style="list-style-type: decimal">
+              Create an action called <i>helloJS</i> using <i>hello.js</i>:
+              <div class="terminal">
 {% highlight bash %}$ wsk action create helloJS hello.js{% endhighlight %}
-                    </div>
-                    <div class="terminal">
-                        <pre>ok: created action helloJS</pre>
-                    </div>
-                </li>
-                <li style="list-style-type: decimal">
-                    Invoke the <i>helloJS</i> action as a blocking activation:
-                    <div class="terminal">
+              </div>
+              <div class="terminal">
+                  <pre>ok: created action helloJS</pre>
+              </div>
+            </li>
+            <li style="list-style-type: decimal">
+              Invoke the <i>helloJS</i> action as a blocking activation:
+              <div class="terminal">
 {% highlight bash %}$ wsk action invoke helloJS --blocking{% endhighlight %}
-                    </div>
-                    <div class="terminal">
+              </div>
+              <div class="terminal">
 {% highlight yaml %}
 {
 "result": {
-  "payload": "Hello world"
+"payload": "Hello world"
 },
 "status": "success",
 "success": true
 }{% endhighlight %}
-                    </div>
-                </li>
-                <li style="list-style-type: decimal">
-                    Deploy using <i>wskdeploy</i>:
-                    <p>
-                        <strong>Note:</strong> We will be using <i>wskdeploy</i> in this section. If you don't have the binary,
-                        please refer to the section on <a href="#wskdeploy">Whisk Deploy</a> to download it.
-                    </p>
-                    <ol>
-                        <li>
-                            Create <i>manifest.yaml</i> with the following YAML content:
-                            <div class="terminal">
+              </div>
+            </li>
+            <li style="list-style-type: decimal">
+              Deploy using <i>wskdeploy</i>:
+              <p>
+                <strong>Note:</strong> We will be using <i>wskdeploy</i>
+                in this section. If you don't have the binary,
+                please refer to the section on
+                <a href="#wskdeploy">Whisk Deploy</a> to download it.
+              </p>
+              <ol>
+                <li>
+                  Create <i>manifest.yaml</i> with the following YAML content:
+                  <div class="terminal">
 {% highlight yaml linenos %}
 {% include code/manifest-for-helloJS-1.yaml %}
 {% endhighlight %}
-                            </div>
-                            Or
-                            <p></p>
-                            <div class="terminal">
-    {% highlight yaml linenos %}
-    {% include code/manifest-for-helloJS-2.yaml %}
-    {% endhighlight %}
-                            </div>
-                        </li>
-                        <li>
-                            Run deployment with <i>wskdeploy</i>:
-                            <div class="terminal">
+                  </div>
+                  Or
+                  <p></p>
+                  <div class="terminal">
+{% highlight yaml linenos %}
+{% include code/manifest-for-helloJS-2.yaml %}
+{% endhighlight %}
+                  </div>
+                </li>
+                <li>
+                  Run deployment with <i>wskdeploy</i>:
+                  <div class="terminal">
 {% highlight bash %}$ wskdeploy -m manifest.yaml{% endhighlight %}
-                            </div>
-                        </li>
-                    </ol>
+                  </div>
                 </li>
-            </ol>
-            <a class="indexable" id="nodejs-runtime"></a>
-            <h5>OpenWhisk Runtime for NodeJS</h5>
-            <p>
-                OpenWhisk supports <strong>Node.js 10</strong>, <strong>Node.js 8</strong>, and  <strong>Node.js 6</strong> runtimes where Node.js 6 being default pick by wsk CLI and Whisk Deploy.
-                If you wish to learn more about NodeJS runtime along with
-                the libraries that are supported or "built-in" by default, please visit
-                <a href="https://github.com/apache/incubator-openwhisk-runtime-nodejs/blob/master/README.md">NodeJS Runtime GitHub Repository</a>.
-            </p>
-            <a class="indexable" id="nodejs-additional-resources"></a>
-            <h5>Additional Resources</h5>
-            <ul>
-                <li><a href="https://medium.com/openwhisk/debugging-node-js-openwhisk-actions-3da3303e6741">Debugging Node.js OpenWhisk Actions</a></li>
-                <li><a href="https://medium.com/openwhisk/updates-to-openwhisk-node-js-actions-ed5556cd5ae9">Updates to OpenWhisk Node.js actions</a></li>
-                <li><a href="https://medium.com/openwhisk/integrating-openwhisk-with-your-node-application-d489b8a20102">Integrating OpenWhisk with Your Node Applications</a></li>
-            </ul>
+              </ol>
+            </li>
+          </ol>
+
+          <a class="indexable" id="nodejs-runtime"></a>
+          <h5>OpenWhisk Runtime for NodeJS</h5>
+          <p>
+              OpenWhisk supports <strong>Node.js 10</strong>, <strong>Node.js 8</strong>, and  <strong>Node.js 6</strong> runtimes where Node.js 6 being default pick by wsk CLI and Whisk Deploy.
+              If you wish to learn more about NodeJS runtime along with
+              the libraries that are supported or "built-in" by default, please visit
+              <a href="https://github.com/apache/incubator-openwhisk-runtime-nodejs/blob/master/README.md">NodeJS Runtime GitHub Repository</a>.
+          </p>
+          <a class="indexable" id="nodejs-additional-resources"></a>
+          <h5>Additional Resources</h5>
+          <ul>
+            <li><a href="https://medium.com/openwhisk/debugging-node-js-openwhisk-actions-3da3303e6741">Debugging Node.js OpenWhisk Actions</a></li>
+            <li><a href="https://medium.com/openwhisk/updates-to-openwhisk-node-js-actions-ed5556cd5ae9">Updates to OpenWhisk Node.js actions</a></li>
+            <li><a href="https://medium.com/openwhisk/integrating-openwhisk-with-your-node-application-d489b8a20102">Integrating OpenWhisk with Your Node Applications</a></li>
+          </ul>
         </div>
-    </main>
 
-    <!-- Here we are starting with writing actions in python -->
-    <main class="doc">
-        <div class="content">
-            <a class="indexable" id="python"></a>
-            <h4>Python</h4>
-            <p></p>
-            <a class="indexable" id="python-actions"></a>
-            <h5>Creating And Invoking Python actions</h5>
-            <p>
-                Let's look at how to write a sample hello world action in Python. You can visit
-                <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/actions-node.md#creating-and-invoking-python-actions">Creating and Invoking Python actions</a>
-                page for further details.
-            </p>
-            <p>
-                <strong>Note:</strong> We will be using <i>wsk</i> CLI in this section. If you don't have it installed and configured,
-                please refer to the section on <a href="#wsk-cli">Configure the wsk CLI</a> to configure it.
-            </p>
-            <ol>
-                <li style="list-style-type: decimal">Create a file named <i>hello.py</i>:
-                    <div class="terminal">
+        <!-- ************************************** -->
+        <!-- Actions - Python                       -->
+        <!-- ************************************** -->
+        <a class="indexable" id="python"></a>
+        <h6 id="section-python" class="section-toggle">using Python</h6>
+        <div class="section-toggleable section-toggle-start-closed">
+          <p></p>
+          <a class="indexable" id="actions-python"></a>
+          <h5>Creating And Invoking Python actions</h5>
+          <p>
+            Let's look at how to write a sample hello world action in Python. You can visit
+            <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/actions-python.md#creating-and-invoking-python-actions">Creating and Invoking Python actions</a>
+            page for further details.
+          </p>
+          <p>
+            <strong>Note:</strong> We will be using <i>wsk</i> CLI in this
+            section. If you don't have it installed and configured,
+            please refer to the section
+            <a href="#wsk-cli">OpenWhisk CLI (wsk)</a>.
+          </p>
+          <ol>
+            <li style="list-style-type: decimal">Create a file named <i>hello.py</i>:
+              <div class="terminal">
 {% highlight python linenos %}
 {% include code/hello.py %}
 {% endhighlight %}
-                    </div>
-                    <li style="list-style-type: decimal">Create an action called <i>helloPy</i> using <i>hello.py</i>:
-                        <div class="terminal">
+              </div>
+            </li>
+            <li style="list-style-type: decimal">Create an action called <i>helloPy</i> using <i>hello.py</i>:
+                <div class="terminal">
 {% highlight bash %}$ wsk action create helloPy hello.py{% endhighlight %}
-                        </div>
-                        <div class="terminal">
+                </div>
+                <div class="terminal">
 <pre>ok: created action helloPy</pre>
-                        </div>
-                    </li>
-                    <li style="list-style-type: decimal">Invoke the <i>helloPy</i> action using command-line parameters:
-                    <div class="terminal">
+                </div>
+            </li>
+            <li style="list-style-type: decimal">Invoke the <i>helloPy</i> action using command-line parameters:
+              <div class="terminal">
 {% highlight bash %}$ wsk action invoke helloPy --blocking --param name World{% endhighlight %}
-                    </div>
-                    <div class="terminal">
+              </div>
+              <div class="terminal">
 {% highlight yaml %}
 {
 "greeting": "Hello World!"
 }
 {% endhighlight %}
-                    </div>
-                    <li style="list-style-type: decimal">Deploy using <i>wskdeploy</i>:
-                    <p>
-                        <strong>Note:</strong> We will be using <i>wskdeploy</i> in this section. If you don't have the binary,
-                        please refer to the section on <a href="#wskdeploy">Whisk Deploy</a> to download it.
-                    </p>
-                    <ol>
-                        <li>Create <i>manifest.yaml</i> with the following YAML content:
-                            <div class="terminal">
+              </div>
+            </li>
+            <li style="list-style-type: decimal">Deploy using <i>wskdeploy</i>:
+              <p>
+                <strong>Note:</strong> We will be using <i>wskdeploy</i> in this section. If you don't have the binary,
+                please refer to the section on <a href="#wskdeploy">Whisk Deploy</a> to download it.
+              </p>
+              <ol>
+                <li>Create <i>manifest.yaml</i> with the following YAML content:
+                  <div class="terminal">
 {% highlight yaml linenos %}
 {% include code/manifest-for-helloPy-1.yaml %}
 {% endhighlight %}
-                            </div>
-                            Or
-                            <p></p>
-                            <div class="terminal">
+                  </div>
+                  Or
+                  <p></p>
+                  <div class="terminal">
 {% highlight yaml linenos %}
 {% include code/manifest-for-helloPy-2.yaml %}
 {% endhighlight %}
-                            </div>
-                        </li>
-                        <li>
-                            Run deployment with <i>wskdeploy</i>:
-                            <div class="terminal">
+                  </div>
+                </li>
+                <li>
+                  Run deployment with <i>wskdeploy</i>:
+                  <div class="terminal">
 {% highlight bash %}$ wskdeploy -m manifest.yaml{% endhighlight %}
-                            </div>
-                        </li>
-                    </ol>
+                  </div>
                 </li>
-            </ol>
-            <a class="indexable" id="python-runtime"></a>
-            <h5>OpenWhisk Runtime for Python</h5>
-            <p>
-                OpenWhisk supports <strong>Python 2</strong> and <strong>Python 3</strong> runtimes where Python 2 being default pick by wsk CLI and Whisk Deploy.
-                If you wish to learn more about Python runtime along with
-                the libraries that are supported or "built-in" by default, please visit
-                <a href="https://github.com/apache/incubator-openwhisk-runtime-python/blob/master/README.md">Python Runtime GitHub Repository</a>.
-            </p>
-            <a class="indexable" id="python-additional-resources"></a>
-            <h5>Additional Resources</h5>
-            <ul>
-                <li><a href="http://jamesthom.as/blog/2017/04/27/python-packages-in-openwhisk/">Using External Python Libraries in OpenWhisk</a></li>
-                <li><a href="https://www.slideshare.net/CodeOps/openwhisk-by-example-auto-retweeting-example-in-python">Auto Retweeting Example in Python</a></li>
-            </ul>
+              </ol>
+            </li>
+          </ol>
+
+          <a class="indexable" id="python-runtime"></a>
+          <h5>OpenWhisk Runtime for Python</h5>
+          <p>
+            OpenWhisk supports <strong>Python 2</strong> and <strong>Python 3</strong> runtimes where Python 2 being default pick by wsk CLI and Whisk Deploy.
+            If you wish to learn more about Python runtime along with
+            the libraries that are supported or "built-in" by default, please visit
+            <a href="https://github.com/apache/incubator-openwhisk-runtime-python/blob/master/README.md">Python Runtime GitHub Repository</a>.
+          </p>
+          <a class="indexable" id="python-additional-resources"></a>
+          <h5>Additional Resources</h5>
+          <ul>
+            <li><a href="http://jamesthom.as/blog/2017/04/27/python-packages-in-openwhisk/">Using External Python Libraries in OpenWhisk</a></li>
+            <li><a href="https://www.slideshare.net/CodeOps/openwhisk-by-example-auto-retweeting-example-in-python">Auto Retweeting Example in Python</a></li>
+          </ul>
         </div>
-    </main>
 
-    <!-- Here we are starting with writing actions in python -->
-    <main class="doc">
-        <div class="content">
-            <a class="indexable" id="go"></a>
-            <h4>Go</h4>
-            <p></p>
-            <a class="indexable" id="go-actions"></a>
-            <h5>Creating And Invoking Go actions</h5>
-            <p>
-                Let's look at how to write a sample hello world action in Go. You can visit
-                <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/actions-go.md#creating-and-invoking-go-actions">Creating and Invoking Go actions</a>
-                page for further details.
-            </p>
-            <p>
-                <strong>Note:</strong> We will be using <i>wsk</i> CLI in this section. If you don't have it installed and configured,
-                please refer to the section on <a href="#wsk-cli">Configure the wsk CLI</a> to configure it.
-            </p>
-            <ol>
-                <li style="list-style-type: decimal">
-                    <a class="indexable" id="hello-go"></a>
-                    Create a file named <i>hello.go</i>:
-                    <div class="terminal">
+        <!-- ************************************** -->
+        <!-- Actions - GoLang                       -->
+        <!-- ************************************** -->
+        <a class="indexable" id="go"></a>
+        <h6 id="section-go" class="section-toggle">using Go</h6>
+        <div class="section-toggleable section-toggle-start-closed">
+          <p></p>
+          <a class="indexable" id="actions-go"></a>
+          <h5>Creating And Invoking Go actions</h5>
+          <p>
+            Let's look at how to write a sample hello world action in Go. You can visit
+            <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/actions-go.md#creating-and-invoking-go-actions">Creating and Invoking Go actions</a>
+            page for further details.
+          </p>
+          <p>
+            <strong>Note:</strong> We will be using <i>wsk</i> CLI in this
+            section. If you don't have it installed and configured,
+            please refer to the section
+            <a href="#wsk-cli">OpenWhisk CLI (wsk)</a>.
+          </p>
+          <ol>
+            <li style="list-style-type: decimal">
+              <a class="indexable" id="hello-go"></a>
+              Create a file named <i>hello.go</i>:
+              <div class="terminal">
 {% highlight go linenos %}
 {% include code/hello.go %}
 {% endhighlight %}
-                        </div>
-                    </li>
-                    <li style="list-style-type: decimal">
-                        Create an action <i>helloGo</i>:
-                        <div class="terminal">
+              </div>
+            </li>
+            <li style="list-style-type: decimal">
+              Create an action <i>helloGo</i>:
+              <div class="terminal">
 {% highlight bash %}$ wsk action create helloGo hello.go{% endhighlight %}
-                        </div>
-                    </li>
-                    <li style="list-style-type: decimal">
-                        Invoke an action <i>helloGo</i>:
-                        <div class="terminal">
+              </div>
+            </li>
+            <li style="list-style-type: decimal">
+                Invoke an action <i>helloGo</i>:
+              <div class="terminal">
 {% highlight bash %}$ wsk action invoke helloGo -r -p name gopher{% endhighlight %}
-                    </div>
-                    <div class="terminal">
+              </div>
+              <div class="terminal">
 {% highlight yaml %}
 {
 "msg": "Hello, gopher!"
 }
 {% endhighlight %}
-                        </div>
-                    </li>
-                    <li style="list-style-type: decimal">
-                        Deploy using <i>wskdeploy</i>:
-                        <p>
-                            <strong>Note:</strong> We will be using <i>wskdeploy</i> in this section. If you don't have the binary,
-                            please refer to the section on <a href="#wskdeploy">Whisk Deploy</a> to download it.
-                        </p>
-                        <ol>
-                            <li>Create a directory called <i>actions</i> with <i>hello.go</i> from step 1 <a href="#hello-go">above</a>.</li>
-                            <li>
-                                Create <i>manifest.yaml</i> with the following YAML content:
-                                <div class="terminal">
+              </div>
+            </li>
+            <li style="list-style-type: decimal">
+              Deploy using <i>wskdeploy</i>:
+              <p>
+                <strong>Note:</strong> We will be using <i>wskdeploy</i> in
+                this section. If you don't have the binary,
+                please refer to the section
+                on <a href="#wskdeploy">Whisk Deploy</a> to download it.
+              </p>
+              <ol>
+                <li>Create a directory called <i>actions</i> with
+                  <i>hello.go</i> from step 1 <a href="#hello-go">above</a>.
+                </li>
+                <li>
+                  Create <i>manifest.yaml</i> with the following YAML content:
+                  <div class="terminal">
 {% highlight yaml linenos %}
 {% include code/manifest-for-helloGo.yaml %}
 {% endhighlight %}
-                            </div>
-                        </li>
-                        <li>
-                            Run deployment with <i>wskdeploy</i>:
-                            <div class="terminal">
+                  </div>
+                </li>
+                <li>
+                  Run deployment with <i>wskdeploy</i>:
+                  <div class="terminal">
 {% highlight bash %}$ wskdeploy -m manifest.yaml{% endhighlight %}
-                                </div>
-                            </li>
-                        </ol>
-                    </li>
-                </ol>
-                <a class="indexable" id="go-runtime"></a>
-                <h5>OpenWhisk Runtime for Go</h5>
-                <p>
-                    If you wish to learn more about Go runtime along with
-                    the libraries that are supported or "built-in" by default, please visit
-                    <a href="https://github.com/apache/incubator-openwhisk-runtime-go/blob/master/README.md">Go Runtime GitHub Repository</a>.
-                </p>
-                <a class="indexable" id="go-additional-resources"></a>
-                <h5>Additional Resources</h5>
-                <ul>
-                    <li><a href="https://www.slideshare.net/MicheleSciabarr/openwhisk-go-runtime">OpenWhisk Go Runtime</a></li>
-                    <li><a href="https://www.slideshare.net/MicheleSciabarr/openwhisk-goswiftbinaries-runtime">ActionLoop, Go and Swift</a></li>
-                </ul>
-            </div>
-        </main>
+                  </div>
+                </li>
+              </ol>
+            </li>
+          </ol>
+          <a class="indexable" id="go-runtime"></a>
+          <h5>OpenWhisk Runtime for Go</h5>
+          <p>
+            If you wish to learn more about Go runtime along with
+            the libraries that are supported or "built-in" by
+            default, please visit
+            <a href="https://github.com/apache/incubator-openwhisk-runtime-go/blob/master/README.md">Go Runtime GitHub Repository</a>.
+          </p>
+          <a class="indexable" id="go-additional-resources"></a>
+          <h5>Additional Resources</h5>
+          <ul>
+            <li><a href="https://www.slideshare.net/MicheleSciabarr/openwhisk-go-runtime">OpenWhisk Go Runtime</a></li>
+            <li><a href="https://www.slideshare.net/MicheleSciabarr/openwhisk-goswiftbinaries-runtime">ActionLoop, Go and Swift</a></li>
+          </ul>
+        </div>
 
-    <!-- Here we are starting with writing actions in Java -->
-    <main class="doc">
-        <div class="content">
-            <a class="indexable" id="java"></a>
-            <h4>Java</h4>
-            <p></p>
-            <a class="indexable" id="java-actions"></a>
-            <h5>Creating and Invoking Java actions</h5>
-            <p>
-                Let's look at how to write a sample hello world action in Java. You can visit
-                <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/actions-java.md#creating-and-invoking-java-actions">Creating and Invoking Java actions</a>
-                page for further details.
-            </p>
-            <p>
-                <strong>Note:</strong> We will be using <i>wsk</i> CLI in this section. If you don't have it installed and configured,
-                please refer to the section on <a href="#wsk-cli">Configure the wsk CLI</a> to configure it.
-            </p>
-            <ol>
-                <li style="list-style-type: decimal">
-                    Create a file named <i>Hello.java</i>:
-                    <div class="terminal">
+        <!-- ************************************** -->
+        <!-- Actions - Java                         -->
+        <!-- ************************************** -->
+        <a class="indexable" id="java"></a>
+        <h6 id="section-java" class="section-toggle">using Java</h6>
+        <div class="section-toggleable section-toggle-start-closed">
+          <p></p>
+          <a class="indexable" id="actions-java"></a>
+          <h5>Creating and Invoking Java actions</h5>
+          <p>
+            Let's look at how to write a sample hello world action in
+            Java. You can visit
+            <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/actions-java.md#creating-and-invoking-java-actions">Creating and Invoking Java actions</a>
+            page for further details.
+          </p>
+          <p>
+            <strong>Note:</strong> We will be using <i>wsk</i> CLI in this
+            section. If you don't have it installed and configured,
+            please refer to the section
+            <a href="#wsk-cli">OpenWhisk CLI (wsk)</a>.
+          </p>
+          <ol>
+            <li style="list-style-type: decimal">
+              Create a file named <i>Hello.java</i>:
+              <div class="terminal">
 {% highlight java linenos %}
 {% include code/Hello.java %}
 {% endhighlight %}
-                    </div>
-                </li>
-                <li style="list-style-type: decimal">
-                    Compile <i>Hello.Java</i> into a JAR file <i>hello.jar</i> as follows
-                    <div class="terminal">
+              </div>
+            </li>
+            <li style="list-style-type: decimal">
+              Compile <i>Hello.Java</i> into a JAR file
+              <i>hello.jar</i> as follows
+              <div class="terminal">
 {% highlight bash %}
 $ javac Hello.java
 $ jar cvf hello.jar Hello.class
 {% endhighlight %}
-                    </div>
-                </li>
-                <li style="list-style-type: decimal">
-                    Create an action called <i>helloJava</i> using <i>hello.jar</i>:
-                    <div class="terminal">
+              </div>
+            </li>
+            <li style="list-style-type: decimal">
+              Create an action called <i>helloJava</i> using <i>hello.jar</i>:
+              <div class="terminal">
 {% highlight bash %}$ wsk action create helloJava hello.jar --main Hello{% endhighlight %}
-                    </div>
-                    <div class="terminal">
+              </div>
+              <div class="terminal">
 {% highlight yaml %}ok: created action helloJava{% endhighlight %}
-                    </div>
-                </li>
-                <li style="list-style-type: decimal">
-                    Invoke an action <i>helloJava</i>:
-                    <div class="terminal">
+              </div>
+            </li>
+            <li style="list-style-type: decimal">
+              Invoke an action <i>helloJava</i>:
+              <div class="terminal">
 {% highlight bash %}$ wsk action invoke helloJava --blocking --result{% endhighlight %}
-                    </div>
-                    <div class="terminal">
+              </div>
+              <div class="terminal">
 {% highlight yaml %}
 {
 "greeting": "Hello stranger!"
 }
 {% endhighlight %}
-                    </div>
-                </li>
-            </ol>
-            <a class="indexable" id="java-runtime"></a>
-            <h5>OpenWhisk Runtime for Java</h5>
-            <p>
-                OpenWhisk supports <strong>Java 8</strong> runtime.
-                If you wish to learn more about NodeJS runtime along with
-                the libraries that are supported or "built-in" by default, please visit
-                <a href="https://github.com/apache/incubator-openwhisk-runtime-java/blob/master/README.md">Java Runtime GitHub Repository</a>.
-            </p>
-            <a class="indexable" id="java-additional-resources"></a>
-            <h5>Additional Resources</h5>
-            <ul>
-                <li><a href="https://www.ibm.com/blogs/bluemix/2017/02/building-openwhisk-actions-java-gradle/">Building OpenWhisk actions with Java and Gradle</a></li>
-            </ul>
+              </div>
+            </li>
+          </ol>
+          <a class="indexable" id="java-runtime"></a>
+          <h5>OpenWhisk Runtime for Java</h5>
+          <p>
+            OpenWhisk supports <strong>Java 8</strong> runtime.
+            If you wish to learn more about NodeJS runtime along with
+            the libraries that are supported or "built-in" by default,
+            please visit
+            <a href="https://github.com/apache/incubator-openwhisk-runtime-java/blob/master/README.md">Java Runtime GitHub Repository</a>.
+          </p>
+          <a class="indexable" id="java-additional-resources"></a>
+          <h5>Additional Resources</h5>
+          <ul>
+            <li>
+              <a href="https://www.ibm.com/blogs/bluemix/2017/02/building-openwhisk-actions-java-gradle/">Building OpenWhisk actions with Java and Gradle</a>
+            </li>
+          </ul>
         </div>
-    </main>
 
-        <!--main class="doc">
-            <div class="content">
-                <h4 id="docker">Docker</h4>
-                <p></p>
-                <h5 id="docker_actions">Creating and Invoking Docker actions</h5>
-                <p>
-                    OpenWhisk provides a base image for Docker actions called openwhisk/dockerskeleton. This image is based on Alpine Linux 3.4 and includes Python v2.7.12 but not much else. (For reference, the image is based on python:2.7.12-alpine).
-                    From this base image, you can create and run an OpenWhisk action:
-                    Let's look at how to write a sample hello world action in Docker. You can visit
-                    <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/actions-docker.md#creating-and-invoking-docker-actions">Creating and Invoking Docker actions</a>
-                    page for further details.
-                </p>
-                <h5 id="docker-runtime">OpenWhisk Runtime for Docker</h5>
-                <p>
-
-                </p>
-                <h5 id="docker-other-resources">Other Resources</h5>
-                <p>
-                    <ul>
-                        <li><a href="http://jamesthom.as/blog/2017/01/16/openwhisk-docker-actions/">OpenWhisk Docker Actions</a></li>
-                        <li><a href="https://www.ibm.com/blogs/bluemix/2017/01/docker-bluemix-openwhisk/">Understanding and using Docker actions in IBM Bluemix OpenWhisk</a></li>
-                    </ul>
-                </p>
-            </div>
-        </main-->
-
-        <main class="doc">
-            <div class="content">
-                <a class="indexable" id="php"></a>
-                <h4>PHP</h4>
-                <p></p>
-                <a class="indexable" id="php-actions"></a>
-                <h5>Creating and Invoking PHP actions</h5>
-                <p>
-                    Let's look at how to write a sample hello world action in PHP. You can visit
-                    <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/actions-php.md#creating-and-invoking-php-actions">Creating and Invoking PHP actions</a>
-                    page for further details.
-                </p>
-                <p>
-                    <strong>Note:</strong> We will be using <i>wsk</i> CLI in this section. If you don't have it installed and configured,
-                    please refer to the section on <a href="#wsk-cli">Configure the wsk CLI</a> to configure it.
-                </p>
-                <ol>
-                    <li style="list-style-type: decimal">
-                        Create a file named <i>hello.php</i>:
-                        <div class="terminal">
+        <!-- ************************************** -->
+        <!-- Actions - PHP                          -->
+        <!-- ************************************** -->
+        <a class="indexable" id="php"></a>
+        <h6 id="section-php" class="section-toggle">using PHP</h6>
+        <div class="section-toggleable section-toggle-start-closed">
+          <p></p>
+          <a class="indexable" id="actions-php"></a>
+          <h5>Creating and Invoking PHP actions</h5>
+          <p>
+            Let's look at how to write a sample hello world action in PHP.
+            You can visit
+            <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/actions-php.md#creating-and-invoking-php-actions">Creating and Invoking PHP actions</a>
+            page for further details.
+          </p>
+          <p>
+            <strong>Note:</strong> We will be using <i>wsk</i> CLI in this
+            section. If you don't have it installed and configured,
+            please refer to the section
+            <a href="#wsk-cli">OpenWhisk CLI (wsk)</a>.
+          </p>
+          <ol>
+            <li style="list-style-type: decimal">
+              Create a file named <i>hello.php</i>:
+              <div class="terminal">
 {% highlight php linenos %}
 {% include code/hello.php %}
 {% endhighlight %}
-                        </div>
-                    </li>
-                    <li style="list-style-type: decimal">
-                        Create an action called <i>helloPHP</i> using <i>hello.php</i>:
-                        <div class="terminal">
+              </div>
+            </li>
+            <li style="list-style-type: decimal">
+              Create an action called <i>helloPHP</i> using <i>hello.php</i>:
+              <div class="terminal">
 {% highlight bash %}$ wsk action create helloPHP hello.php{% endhighlight %}
-                        </div>
-                        <div class="terminal">
+              </div>
+              <div class="terminal">
 {% highlight bash %}ok: created action helloPHP{% endhighlight %}
-                        </div>
-                    </li>
-                    <li style="list-style-type: decimal">
-                        Invoke an action <i>helloPHP</i>:
-                        <div class="terminal">
+              </div>
+            </li>
+            <li style="list-style-type: decimal">
+              Invoke an action <i>helloPHP</i>:
+              <div class="terminal">
 {% highlight bash %}$ wsk action invoke helloPHP --blocking --result --param name World{% endhighlight %}
-                        </div>
-                        <div class="terminal">
+              </div>
+              <div class="terminal">
 {% highlight yaml %}
 {
-    "greeting": "Hello World!"
+"greeting": "Hello World!"
 }
 {% endhighlight %}
-                        </div>
-                    </li>
-                    <li style="list-style-type: decimal">
-                        Deploy using <i>wskdeploy</i>:
-                        <p>
-                            <strong>Note:</strong> We will be using <i>wskdeploy</i> in this section. If you don't have the binary,
-                            please refer to the section on <a href="#wskdeploy">Whisk Deploy</a> to download it.
-                        </p>
-                        <ol>
-                            <li>
-                                Create <i>manifest.yaml</i> with the following YAML content:
-                                <div class="terminal">
+              </div>
+            </li>
+            <li style="list-style-type: decimal">
+              Deploy using <i>wskdeploy</i>:
+              <p>
+                <strong>Note:</strong> We will be using <i>wskdeploy</i>
+                in this section. If you don't have the binary,
+                please refer to the section
+                on <a href="#wskdeploy">Whisk Deploy</a> to download it.
+              </p>
+              <ol>
+                <li>
+                  Create <i>manifest.yaml</i> with the following
+                  YAML content:
+                  <div class="terminal">
 {% highlight yaml linenos %}
 {% include code/manifest-for-helloPhp-1.yaml %}
 {% endhighlight %}
-                                </div>
-                                Or
-                                <p></p>
-                                <div class="terminal">
+                  </div>
+                  Or
+                  <p></p>
+                  <div class="terminal">
 {% highlight yaml linenos %}
 {% include code/manifest-for-helloPhp-2.yaml %}
 {% endhighlight %}
-                                </div>
-                            </li>
-                            <li>
-                                Run deployment with <i>wskdeploy</i>:
-                                <div class="terminal">
+                  </div>
+                </li>
+                <li>
+                  Run deployment with <i>wskdeploy</i>:
+                  <div class="terminal">
 {% highlight bash %}$ wskdeploy -m manifest.yaml{% endhighlight %}
-                                </div>
-                            </li>
-                        </ol>
-                    </li>
-                </ol>
-                <a class="indexable" id="php-runtime"></a>
-                <h5>OpenWhisk Runtime for PHP</h5>
-                <p>
-                    OpenWhisk supports <strong>PHP 7.2</strong> and <strong>PHP 7.1</strong> runtimes where PHP 7.2 being default pick by wsk CLI and Whisk Deploy.
-                    If you wish to learn more about PHP runtime, please visit
-                    <a href="https://github.com/apache/incubator-openwhisk-runtime-php/blob/master/README.md">PHP Runtime GitHub Repository</a>.
-                </p>
-                <a class="indexable" id="php-additional-resources"></a>
-                <h5>Additional Resources</h5>
-                <ul>
-                    <li><a href="https://akrabat.com/getting-started-with-serverless-php/">Getting Started with Serverless PHP</a></li>
-                    <li><a href="https://lornajane.net/posts/2018/handle-webhooks-with-serverless-php">Handle Webhooks with Serverless PHP on OpenWhisk</a></li>
-                </ul>
-            </div>
-        </main>
-
-        <main class="doc">
-            <div class="content">
-                <a class="indexable" id="ruby"></a>
-                <h4>Ruby</h4>
-                <p></p>
-                <a class="indexable" id="ruby-actions"></a>
-                <h5>Creating and Invoking Ruby actions</h5>
-                <p>
-                    Let's look at how to write a sample hello world action in Ruby. You can visit
-                    <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/actions-ruby.md#creating-and-invoking-ruby-actions">Creating and Invoking Ruby actions</a>
-                    page for further details.
-                </p>
-                <p>
-                    <strong>Note:</strong> We will be using <i>wsk</i> CLI in this section. If you don't have it installed and configured,
-                    please refer to the section on <a href="#wsk-cli">Configure the wsk CLI</a> to configure it.
-                </p>
-                <ol>
-                    <li style="list-style-type: decimal">
-                        Create a file named <i>hello.rb</i>:
-                        <div class="terminal">
+                  </div>
+                </li>
+              </ol>
+            </li>
+          </ol>
+          <a class="indexable" id="php-runtime"></a>
+          <h5>OpenWhisk Runtime for PHP</h5>
+          <p>
+            OpenWhisk supports <strong>PHP 7.2</strong> and <strong>PHP 7.1</strong> runtimes where PHP 7.2 being default pick by wsk CLI and Whisk Deploy.
+            If you wish to learn more about PHP runtime, please visit
+            <a href="https://github.com/apache/incubator-openwhisk-runtime-php/blob/master/README.md">PHP Runtime GitHub Repository</a>.
+          </p>
+          <a class="indexable" id="php-additional-resources"></a>
+          <h5>Additional Resources</h5>
+          <ul>
+            <li><a href="https://akrabat.com/getting-started-with-serverless-php/">Getting Started with Serverless PHP</a></li>
+            <li><a href="https://lornajane.net/posts/2018/handle-webhooks-with-serverless-php">Handle Webhooks with Serverless PHP on OpenWhisk</a></li>
+          </ul>
+        </div>
+
+        <!-- ************************************** -->
+        <!-- Actions - Ruby                         -->
+        <!-- ************************************** -->
+        <a class="indexable" id="ruby"></a>
+        <h6 id="section-ruby" class="section-toggle">using Ruby</h6>
+        <div class="section-toggleable section-toggle-start-closed">
+          <p></p>
+          <a class="indexable" id="actions-ruby"></a>
+          <h5>Creating and Invoking Ruby actions</h5>
+          <p>
+            Let's look at how to write a sample hello world action in Ruby.
+            You can visit
+            <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/actions-ruby.md#creating-and-invoking-ruby-actions">Creating and Invoking Ruby actions</a>
+            page for further details.
+          </p>
+          <p>
+            <strong>Note:</strong> We will be using <i>wsk</i> CLI in this
+            section. If you don't have it installed and configured,
+            please refer to the section
+            <a href="#wsk-cli">OpenWhisk CLI (wsk)</a>.
+          </p>
+          <ol>
+            <li style="list-style-type: decimal">
+              Create a file named <i>hello.rb</i>:
+              <div class="terminal">
 {% highlight ruby linenos %}
 {% include code/hello.rb %}
 {% endhighlight %}
-                        </div>
-                    </li>
-                    <li style="list-style-type: decimal">
-                        Create an action called <i>hello_ruby</i> using <i>hello.rb</i>:
-                        <div class="terminal">
+              </div>
+            </li>
+            <li style="list-style-type: decimal">
+              Create an action called <i>hello_ruby</i> using <i>hello.rb</i>:
+              <div class="terminal">
 {% highlight bash %}$ wsk action create hello_ruby hello.rb{% endhighlight %}
-                        </div>
-                        <div class="terminal">
+              </div>
+              <div class="terminal">
 {% highlight bash %}ok: created action hello_ruby{% endhighlight %}
-                        </div>
-                    </li>
-                    <li style="list-style-type: decimal">
-                        Invoke an action <i>hello_ruby</i>:
-                        <div class="terminal">
+              </div>
+            </li>
+            <li style="list-style-type: decimal">
+              Invoke an action <i>hello_ruby</i>:
+              <div class="terminal">
 {% highlight bash %}$ wsk action invoke hello_ruby --blocking --result --param name World{% endhighlight %}
-                        </div>
-                        <div class="terminal">
+              </div>
+              <div class="terminal">
 {% highlight yaml %}
 {
-    "greeting": "Hello World!"
+"greeting": "Hello World!"
 }
 {% endhighlight %}
-                        </div>
-                    </li>
-                    <!--TODO: wskdeploy doesn't support ruby yet, uncomment the following once this pull request has been merged and released: https://github.com/apache/incubator-openwhisk-wskdeploy/pull/983 -->
-                    <!--<li style="list-style-type: decimal">
-                        Deploy using <i>wskdeploy</i>:
-                        <p>
-                            <strong>Note:</strong> We will be using <i>wskdeploy</i> in this section. If you don't have the binary,
-                            please refer to the section on <a href="#wskdeploy">Whisk Deploy</a> to download it.
-                        </p>
-                        <ol>
-                            <li>
-                                Create <i>manifest.yaml</i> with the following YAML content:
-                                <div class="terminal">
+              </div>
+            </li>
+            <li style="list-style-type: decimal">
+              Deploy using <i>wskdeploy</i>:
+              <p>
+                <strong>Note:</strong> We will be using <i>wskdeploy</i> in this section. If you don't have the binary,
+                please refer to the section on <a href="#wskdeploy">Whisk Deploy</a> to download it.
+              </p>
+              <ol>
+                <li>
+                  Create <i>manifest.yaml</i> with the following YAML content:
+                  <div class="terminal">
 {% highlight yaml linenos %}
 {% include code/manifest-for-helloRuby-1.yaml %}
 {% endhighlight %}
-                                </div>
-                                Or
-                                <p></p>
-                                <div class="terminal">
+                  </div>
+                  Or
+                  <p></p>
+                  <div class="terminal">
 {% highlight yaml linenos %}
 {% include code/manifest-for-helloRuby-2.yaml %}
 {% endhighlight %}
-                                </div>
-                            </li>
-                            <li>
-                                Run deployment with <i>wskdeploy</i>:
-                                <div class="terminal">
+                  </div>
+                </li>
+                <li>
+                  Run deployment with <i>wskdeploy</i>:
+                  <div class="terminal">
 {% highlight bash %}$ wskdeploy -m manifest.yaml{% endhighlight %}
-                                </div>
-                            </li>
-                        </ol>
-                    </li>-->
-                </ol>
-                <a class="indexable" id="ruby-runtime"></a>
-                <h5>OpenWhisk Runtime for Ruby</h5>
-                <p>
-                    OpenWhisk supports <strong>Ruby 2.5</strong> runtime.
-                    If you wish to learn more about Ruby runtime, please visit
-                    <a href="https://github.com/apache/incubator-openwhisk-runtime-ruby/blob/master/README.md">Ruby Runtime GitHub Repository</a>.
-                </p>
-                <a class="indexable" id="ruby-additional-resources"></a>
-                <h5>Additional Resources</h5>
-                <ul>
-                    <li>Coming soon...</li>
-                </ul>
-            </div>
-        </main>
-
-        <!--main class="doc">
-            <div class="content">
-                <a class="indexable" id="swift"></a>
-                <h4>Swift</h4>
-                <p></p>
-                <a class="indexable" id="swift-actions"></a>
-                <h5>Creating and Invoking Swift actions</h5>
-                <p>
-                    Let's look at how to write a sample hello world action in Swift.
-                </p>
-                <p>
-                    <strong>Note:</strong> We will be using <i>wsk</i> CLI in this section. If you don't have it installed and configured,
-                    please refer to the section on <a href="#wsk-cli">Configure the wsk CLI</a> to configure it.
-                </p>
-                <a class="indexable" id="swift-runtime"></a>
-                <h5>OpenWhisk Runtime for Swift</h5>
-                <p></p>
-                <a class="indexable" id="swift-additional-resources"></a>
-                <h5>Additional Resources</h5>
-                <p></p>
-            </div>
-        </main-->
-
-        <!-- Managing Actions with OpenWhisk Packages -->
-        <main class="doc">
-            <div class="content">
-                <a class="indexable" id="managing_actions_with_openwhisk_packages"></a>
-                <h4>Managing Actions with OpenWhisk Packages</h4>
-                <p>
-                    <strong>What is a package?</strong> In OpenWhisk, you can use packages to bundle together a set of related actions, and share them with others.
-                    OpenWhisk comes with a list of packages
-                    You can get more details on OpenWhisk packages
-                    <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/packages.md#using-and-creating-openwhisk-packages">here</a>.
-                </p>
-                <p>
-                    <strong>Does OpenWhisk comes with any pre-installed packages?</strong>
-                    OpenWhisk comes with a list of pre-installed public packages which can be used by anyone.
-                    OpenWhisk has created a dedicated shared namespace <strong>/whisk.system</strong> for all the public packages.
-                </p>
-                <p>
-                    <strong>Which all packages are available under /whisk.system?</strong>
-                    You can get a list of packages available in shared namespace by using wsk CLI:
-                </p>
-                <ul>
-                    <li>
-                        Get a list of packages:
-                        <div class="terminal">
+                  </div>
+                </li>
+              </ol>
+            </li>
+          </ol>
+          <a class="indexable" id="ruby-runtime"></a>
+          <h5>OpenWhisk Runtime for Ruby</h5>
+          <p>
+            OpenWhisk supports <strong>Ruby 2.5</strong> runtime.
+            If you wish to learn more about Ruby runtime, please visit
+            <a href="https://github.com/apache/incubator-openwhisk-runtime-ruby/blob/master/README.md">Ruby Runtime GitHub Repository</a>.
+          </p>
+          <a class="indexable" id="ruby-additional-resources"></a>
+          <h5>Additional Resources</h5>
+          <ul>
+            <li>Coming soon...</li>
+          </ul>
+        </div>
+
+        <!-- ************************************** -->
+        <!-- TODO: Actions - Swift                  -->
+        <!-- ************************************** -->
+
+        <!-- <a class="indexable" id="swift"></a>
+        <h4 id="section-swift" >using Swift</h4>
+        <p></p>
+        <a class="indexable" id="swift-actions"></a>
+        <h5>Creating and Invoking Swift actions</h5>
+        <p>
+            Let's look at how to write a sample hello world action in Swift.
+        </p>
+        <p>
+            <strong>Note:</strong> We will be using <i>wsk</i> CLI in this section. If you don't have it installed and configured,
+            please refer to the section on <a href="#wsk-cli">Configure the wsk CLI</a> to configure it.
+        </p>
+        <a class="indexable" id="swift-runtime"></a>
+        <h5>OpenWhisk Runtime for Swift</h5>
+        <p></p>
+        <a class="indexable" id="swift-additional-resources"></a>
+        <h5>Additional Resources</h5> -->
+
+        <!-- ************************************** -->
+        <!-- TODO: Actions - Docker                 -->
+        <!-- ************************************** -->
+        <!-- <h4 id="section-docker">using Docker</h4>
+        <p></p>
+        <h5 id="docker_actions">Creating and Invoking Docker actions</h5>
+        <p>
+            OpenWhisk provides a base image for Docker actions called openwhisk/dockerskeleton. This image is based on Alpine Linux 3.4 and includes Python v2.7.12 but not much else. (For reference, the image is based on python:2.7.12-alpine).
+            From this base image, you can create and run an OpenWhisk action:
+            Let's look at how to write a sample hello world action in Docker. You can visit
+            <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/actions-docker.md#creating-and-invoking-docker-actions">Creating and Invoking Docker actions</a>
+            page for further details.
+        </p>
+        <h5 id="docker-runtime">OpenWhisk Runtime for Docker</h5>
+        <p>
+
+        </p>
+        <h5 id="docker-other-resources">Other Resources</h5>
+        <p>
+            <ul>
+                <li><a href="http://jamesthom.as/blog/2017/01/16/openwhisk-docker-actions/">OpenWhisk Docker Actions</a></li>
+                <li><a href="https://www.ibm.com/blogs/bluemix/2017/01/docker-bluemix-openwhisk/">Understanding and using Docker actions in IBM Bluemix OpenWhisk</a></li>
+            </ul>
+        </p> -->
+
+      </div>
+    </main> <!-- creating and invoking actions -->
+
+    <!-- *************************************************************** -->
+    <!-- Packages                                                        -->
+    <!-- *************************************************************** -->
+
+    <!-- Managing Actions with OpenWhisk Packages -->
+    <main class="doc">
+      <div class="content">
+        <a class="indexable" id="managing_actions_with_openwhisk_packages"></a>
+        <h4>Managing Actions with OpenWhisk Packages</h4>
+        <p>
+          <strong>What is a package?</strong> In OpenWhisk, you can use packages to bundle together a set of related actions, and share them with others.
+          OpenWhisk comes with a list of packages
+          You can get more details on OpenWhisk packages
+          <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/packages.md#using-and-creating-openwhisk-packages">here</a>.
+        </p>
+        <p>
+          <strong>Does OpenWhisk comes with any pre-installed packages?</strong>
+          OpenWhisk comes with a list of pre-installed public packages which can be used by anyone.
+          OpenWhisk has created a dedicated shared namespace <strong>/whisk.system</strong> for all the public packages.
+        </p>
+        <p>
+          <strong>Which all packages are available under /whisk.system?</strong>
+          You can get a list of packages available in shared namespace by using wsk CLI:
+        </p>
+        <ul>
+          <li>
+            Get a list of packages:
+            <div class="terminal">
 {% highlight bash %}$ wsk package list /whisk.system{% endhighlight %}
-                        </div>
-                    </li>
-                    <li>
-                        Get a list of entities in a package:
-                        <div class="terminal">
+            </div>
+          </li>
+          <li>
+            Get a list of entities in a package:
+            <div class="terminal">
 {% highlight bash %}$ wsk package get --summary /whisk.system/<package-name>{% endhighlight %}
-                        </div>
-                    </li>
-                </ul>
-                <p>
-                    <strong>How do I invoke an action from a public package?</strong>
-                    There are two way to invoke an action from a package,
-                    (1) Invoking an action directly from a package
-                    (2) Creating a package binding and then invoking an action in the binding.
-                </p>
-                <ul>
-                    <li>
-                        Invoking an action from a public package:
-                        <ul>
-                            <li style="list-style: circle">
-                                Get a description of the /whisk.system/samples/greeting action:
-                                <div class="terminal">
+            </div>
+          </li>
+        </ul>
+        <p>
+          <strong>How do I invoke an action from a public package?</strong>
+          There are two way to invoke an action from a package,
+          (1) Invoking an action directly from a package
+          (2) Creating a package binding and then invoking an action in the binding.
+        </p>
+        <ul>
+          <li>
+            Invoking an action from a public package:
+            <ul>
+              <li style="list-style: circle">
+                Get a description of the /whisk.system/samples/greeting action:
+                <div class="terminal">
 {% highlight bash %}$ wsk action get --summary /whisk.system/samples/greeting{% endhighlight %}
-                                </div>
-                                <div class="terminal">
-<pre>action /whisk.system/samples/greeting: Returns a friendly greeting
-    (parameters: name, place)</pre>
-                                </div>
-                            </li>
-                            <li style="list-style: circle">
-                                Invoking action in a package:
-                                <div class="terminal">
+                </div>
+                <div class="terminal">
+                  <pre>action /whisk.system/samples/greeting:
+                    Returns a friendly greeting
+                    (parameters: name, place)</pre>
+                </div>
+              </li>
+              <li style="list-style: circle">
+                Invoking action in a package:
+                <div class="terminal">
 {% highlight bash %}$ wsk action invoke --result /whisk.system/samples/greeting{% endhighlight %}
-                                </div>
-                                <div class="terminal">
+                </div>
+                <div class="terminal">
 {% highlight yaml %}
 {
-    "payload": "Hello, stranger from somewhere!"
+"payload": "Hello, stranger from somewhere!"
 }
 {% endhighlight %}
-                                </div>
-                            </li>
-                            <li style="list-style: circle">
-                                Invoke the action with parameters:
-                                <div class="terminal">
+                </div>
+              </li>
+              <li style="list-style: circle">
+                Invoke the action with parameters:
+                <div class="terminal">
 {% highlight bash %}$ wsk action invoke --result /whisk.system/samples/greeting --param name Bernie --param place Vermont{% endhighlight %}
-                                </div>
-                                <div class="terminal">
+                </div>
+                <div class="terminal">
 {% highlight yaml %}
 {
-    "payload": "Hello, Bernie from Vermont!"
+"payload": "Hello, Bernie from Vermont!"
 }
 {% endhighlight %}
-                                </div>
-                            </li>
-                        </ul>
-                    </li>
-                    <li>Creating package binding and invoking action from the binding:
-                        <ul>
-                            <li style="list-style: circle">
-                                Creating and using package bindings:
-                                <div class="terminal">
+                </div>
+              </li>
+            </ul>
+          </li>
+          <li>Creating package binding and invoking action from the binding:
+            <ul>
+              <li style="list-style: circle">
+                Creating and using package bindings:
+                <div class="terminal">
 {% highlight bash %}$ wsk package bind /whisk.system/samples valhallaSamples --param place Valhalla{% endhighlight %}
-                            </div>
-                            <div class="terminal">
+                </div>
+                <div class="terminal">
 {% highlight bash %}ok: created binding valhallaSamples{% endhighlight %}
-                                </div>
-                            </li>
-                            <li style="list-style: circle">
-                                Invoke an action in the package binding:
-                                <div class="terminal">
+                </div>
+              </li>
+              <li style="list-style: circle">
+                Invoke an action in the package binding:
+                <div class="terminal">
 {% highlight bash %}$ wsk action invoke --result valhallaSamples/greeting --param name Odin{% endhighlight %}
-                                </div>
-                                <div class="terminal">
+                </div>
+                <div class="terminal">
 {% highlight yaml %}
 {
-    "payload": "Hello, Odin from Valhalla!"
+"payload": "Hello, Odin from Valhalla!"
 }
 {% endhighlight %}
-                                </div>
-                            </li>
-                        </ul>
-                    </li>
-                </ul>
-                <p>
-                    <strong>Where do I get more information on packages?</strong>
-                    Please read
-                    <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/packages.md#using-and-creating-openwhisk-packages">OpenWhisk Packages</a>
-                    for further details.
-                </p>
-        </div>
+                </div>
+              </li>
+            </ul>
+          </li>
+        </ul>
+        <p>
+          <strong>Where do I get more information on packages?</strong>
+          Please read
+          <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/packages.md#using-and-creating-openwhisk-packages">OpenWhisk Packages</a>
+          for further details.
+        </p>
+      </div>
     </main>
+
     <main class="doc">
-        <div class="content">
-            <a class="indexable" id="connecting_actions_to_event_sources"></a>
-            <h4>Connecting Actions to Event Sources</h4>
-            <p>
-                <strong>Why do I need to connect actions to event sources?</strong>
-                OpenWhisk is based on event-driven architecture in which actions/functions should be connected
-                to external/internal event sources such as message queues, database changes, webhooks, etc. When these
-                events happen, functions/actions are automatically invoked without explicitly invoking them
-                unlike we saw before in <a href="#actions">Creating And Invoking Actions</a>.
-                Now, events from these internal/external event sources are channeled through a trigger.
-            </p>
-            <p>
-                <strong>What is a trigger?</strong>
-                Triggers are the class of events like published messages, document uploads to a website, GitHub commits, etc that are emitted by event sources.
-            </p>
-            <p>
-                <strong>How to create and fire triggers?</strong>
-            </p>
-            <ul>
-                <li>
-                    Create a trigger to send user location updates:
-                    <div class="terminal">
+      <div class="content">
+        <a class="indexable" id="automating_actions_from_event_sources"></a>
+        <h4>Automating Actions from Event Sources</h4>
+        <p>In this section, we will show how to automate Actions in response
+          to events coming from Event Sources.
+          Specifically, we will show how to create, fire
+          and associate a basic Trigger with input parameters to an Action
+          using a Rule.
+        </p>
+        <h5>Create and fire Trigger</h5>
+        <ul>
+          <li>
+              Create a trigger to send user location updates:
+              <div class="terminal">
 {% highlight bash %}$ wsk trigger create locationUpdate{% endhighlight %}
-                    </div>
-                </li>
-                <li>
-                    Check you have created the trigger by listing the set of triggers:
-                    <div class="terminal">
+              </div>
+          </li>
+          <li>
+              Check you have created the trigger by listing the set
+              of triggers:
+              <div class="terminal">
 {% highlight bash %}$ wsk trigger list{% endhighlight %}
-                    </div>
-                    <div class="terminal">
+              </div>
+              <div class="terminal">
 <pre>triggers
 /someNamespace/locationUpdate                            private</pre>
-                    </div>
-                </li>
-                <li>
-                    Fire the trigger by specifying its name and parameters:
-                    <div class="terminal">
+              </div>
+          </li>
+          <li>
+              Fire the trigger by specifying its name and parameters:
+              <div class="terminal">
 {% highlight bash %}$ wsk trigger fire locationUpdate --param name Bob --param place NYC{% endhighlight %}
-                    </div>
-                    <div class="terminal">
+              </div>
+              <div class="terminal">
 <pre>ok: triggered locationUpdate</pre>
-                    </div>
-                    <p>
-                        Firing a trigger like this currently does not do anything. We need to associate this trigger with an action.
-                        This kind of association is called a rule.
-                    </p>
-                </li>
-            </ul>
-            <p>
-                <strong>What are the rules?</strong>
-                Rules are used to associate a trigger with an action. After this kind of association is created, each time
-                a trigger event is fired, the action is invoked.
-            </p>
-            <ul>
-                <li>
-                    Please make sure you have the <i>hello</i> action created. If not, you can follow instruction in the section
-                    <a href="#nodejs-actions">above</a> with the following <i>hello.js</i>.
-                    <div class="terminal">
+              </div>
+              <p>
+                  Firing a trigger like this currently does not do
+                  anything. We need to associate this trigger with
+                  an action. This kind of association is called a rule.
+              </p>
+          </li>
+        </ul>
+        <h5>Verify you have an Action created</h5>
+        <ul>
+          <li>
+            Please make sure you have the <i>hello</i> action created.
+            If not, you can follow instruction in the section
+            <a href="#actions-nodejs">above</a> with the
+            following <i>hello.js</i>.
+            <div class="terminal">
 {% highlight javascript linenos %}
 {% include code/hello-with-params.js %}
 {% endhighlight %}
-                    </div>
-                    <div class="terminal">
+            </div>
+            <div class="terminal">
 {% highlight bash %}$ wsk action create hello hello.js{% endhighlight %}
-                    </div>
-                    <div class="terminal">
+            </div>
+            <div class="terminal">
 {% highlight bash %}$ wsk action invoke --result hello --param name Bernie --param place Vermont{% endhighlight %}
-                    </div>
-                    <div class="terminal">
+            </div>
+            <div class="terminal">
 {% highlight yaml %}
 {
-    "payload": "Hello, Bernie from Vermont"
+"payload": "Hello, Bernie from Vermont"
 }
 {% endhighlight %}
-                    </div>
-                </li>
-                <li>
-                    Create the rule:
-                    <div class="terminal">
+            </div>
+          </li>
+        </ul>
+        <h5>Associate the Trigger and Action using a Rule</h5>
+        <ul>
+          <li>
+            Create the rule (i.e., an association):
+            <div class="terminal">
 {% highlight bash %}$ wsk rule create myRule locationUpdate hello{% endhighlight %}
-                    </div>
-                    <div class="terminal">
+            </div>
+            <div class="terminal">
 <pre>ok: created rule myRule</pre>
-                    </div>
-                </li>
-                <li>
-                    Fire the <i>locationUpdate</i> trigger:
-                    <div class="terminal">
+            </div>
+          </li>
+        </ul>
+        <h5>Invoke the Action by Firing the Trigger</h5>
+        <ul>
+          <li>
+            Fire the <i>locationUpdate</i> trigger:
+            <div class="terminal">
 {% highlight bash %}$ wsk trigger fire locationUpdate --param name Bob --param place NYC{% endhighlight %}
-                    </div>
-                    <div class="terminal">
+            </div>
+            <div class="terminal">
 <pre>ok: triggered /_/locationUpdate with id abcd...</pre>
-                    </div>
-                </li>
-                <li>
-                    Verify that the action was invoked by checking the activations list:
-                    <div class="terminal">
+            </div>
+          </li>
+          <li>
+            Verify that the action was invoked by checking the activations list:
+            <div class="terminal">
 {% highlight bash %}$ wsk activation list --limit 2{% endhighlight %}
-                    </div>
-                    <div class="terminal">
+            </div>
+            <div class="terminal">
 <pre>activations
 1234.... hello
 abcd.... locationUpdate
 </pre>
-                    </div>
-                </li>
-                <li>
-                    Retrieving the trigger activation record:
-                    <div class="terminal">
+            </div>
+          </li>
+          <li>
+            Retrieving the trigger activation record:
+            <div class="terminal">
 {% highlight bash %}$ wsk activation result 1234....{% endhighlight %}
-                    </div>
-                    <div class="terminal">
+            </div>
+            <div class="terminal">
 {% highlight yaml %}{
-    "payload": "Hello, Bob from NYC"
+"payload": "Hello, Bob from NYC"
 }
 {% endhighlight %}
-                    </div>
-                    You can see that the hello action received the event payload and returned the expected string.
-                </li>
-            </ul>
-            <p>
-                Please read
-                <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/triggers_rules.md#creating-triggers-and-rules">Creating Triggers and Rules</a>
-                for further details.
-            </p>
-        </div>
+            </div>
+            You can see that the hello action received the event payload and returned the expected string.
+          </li>
+        </ul>
+      </div>
     </main>
 
     <main class="doc">
-        <div class="content">
-            <a class="indexable" id="using_openwhisk_enabled_services"></a>
-            <h4>Using OpenWhisk Enabled Services</h4>
-            <p></p>
-            <p>
-                OpenWhisk offers a catalog of packages which gives you can easy way to enhance your application with
-                useful capabilities, and to access external services in the ecosystem.
-                Examples of external services which are OpenWhisk-enabled include Slack, GitHub, Alarms, etc.
-            </p>
-            <p>
-                The catalog is available as packages under <i>/whisk.system</i> namespace.
-                Using the following command, you can get a list of packages under <i>/whisk.system:</i>
-            </p>
-            <div class="terminal">
+      <div class="content">
+          <a class="indexable" id="using_openwhisk_enabled_services"></a>
+          <h4>Using OpenWhisk Enabled Services</h4>
+          <p></p>
+          <p>
+            OpenWhisk offers a catalog of packages which gives you can easy
+            way to enhance your application with useful capabilities, and
+            to access external services in the ecosystem.
+            Examples of external services which are OpenWhisk-enabled
+            include Slack, GitHub, Alarms, etc.
+          </p>
+          <p>
+            The catalog is available as packages under <i>/whisk.system</i>
+            namespace. Using the following command, you can get a list of
+            packages under <i>/whisk.system:</i>
+          </p>
+          <div class="terminal">
 {% highlight bash %}$ wsk package list /whisk.system{% endhighlight %}
-            </div>
-            <div class="terminal">
+          </div>
+          <div class="terminal">
 <pre>packages
 /whisk.system/alarms                                shared
 /whisk.system/system                                shared
@@ -1922,172 +1703,720 @@ <h4>Using OpenWhisk Enabled Services</h4>
 /whisk.system/github                                shared
 ...
 </pre>
-            </div>
-            <p>
-                Each of the packages under
-                <a href="https://github.com/apache/incubator-openwhisk-catalog#openwhisk-catalog">OpenWhisk Catalog</a>
-                is hosted in a GitHub repo.
-                Please refer to these package repositories for further details:
-            </p>
-            <ul>
-                <li>
-                    <a href="https://github.com/apache/incubator-openwhisk-package-alarms/blob/master/README.md">incubator-openwhisk-package-alarm</a>
-                    is an Apache OpenWhisk alarm package that can be used to create periodic, time-based alarms.
-                </li>
-                <li>
-                    <a href="https://github.com/apache/incubator-openwhisk-package-cloudant/blob/master/README.md">incubator-openwhisk-package-cloudant</a>
-                    enables you to work with a Cloudant database.
-                </li>
-                <li>
-                    <a href="https://github.com/apache/incubator-openwhisk-package-kafka/blob/master/README.md">incubator-openwhisk-package-kafka</a>
-                    allows you to communicate with Kafka or Message Hub instances for publishing and consuming messages
-                    using native high performance Kafka API.
-                </li>
-                <li>
-                    <a href="https://github.com/apache/incubator-openwhisk-package-rss/blob/master/README.md">incubator-openwhisk-package-rss</a>
-                    allows users to subscribe to RSS/ATOM feeds and receive events when a new feed item is available.
-                </li>
-                <li>
-                    <a href="https://github.com/apache/incubator-openwhisk-package-deploy/blob/master/README.md">incubator-openwhisk-package-deploy</a>
-                    offers a convenient way for you to describe and deploy any part of the OpenWhisk programming model using a Manifest file written in YAML.
-                </li>
-                <li>
-                    <a href="https://github.com/apache/incubator-openwhisk-package-jira/blob/master/README.md">incubator-openwhisk-package-jira</a>
-                    includes actions that interact with JIRA software software development tool used for issue tracking, and project management functions.
-                </li>
-                <li>
-                    <a href="https://github.com/apache/incubator-openwhisk-package-template/blob/master/README.md">incubator-openwhisk-package-template</a>
-                    is a template for Openwhisk Packages, it can be used to build, test and integrate new packages.
-                </li>
-            </ul>
-        </div>
+          </div>
+          <p>
+            Each of the packages under
+            <a href="https://github.com/apache/incubator-openwhisk-catalog#openwhisk-catalog">OpenWhisk Catalog</a>
+            is hosted in a GitHub repo.
+            Please refer to these package repositories for further details:
+          </p>
+          <ul>
+            <li>
+              <a href="https://github.com/apache/incubator-openwhisk-package-alarms/blob/master/README.md">incubator-openwhisk-package-alarm</a>
+              is an Apache OpenWhisk alarm package that can be
+              used to create periodic, time-based alarms.
+            </li>
+            <li>
+              <a href="https://github.com/apache/incubator-openwhisk-package-cloudant/blob/master/README.md">incubator-openwhisk-package-cloudant</a>
+              enables you to work with a Cloudant database.
+            </li>
+            <li>
+                <a href="https://github.com/apache/incubator-openwhisk-package-kafka/blob/master/README.md">incubator-openwhisk-package-kafka</a>
+              allows you to communicate with Kafka or Message Hub instances
+              for publishing and consuming messages using native high
+              performance Kafka API.
+            </li>
+            <li>
+              <a href="https://github.com/apache/incubator-openwhisk-package-rss/blob/master/README.md">incubator-openwhisk-package-rss</a>
+              allows users to subscribe to RSS/ATOM feeds and
+              receive events when a new feed item is available.
+            </li>
+            <li>
+              <a href="https://github.com/apache/incubator-openwhisk-package-deploy/blob/master/README.md">incubator-openwhisk-package-deploy</a>
+              offers a convenient way for you to describe and deploy
+              any part of the OpenWhisk programming model using a
+              Manifest file written in YAML.
+            </li>
+            <li>
+              <a href="https://github.com/apache/incubator-openwhisk-package-jira/blob/master/README.md">incubator-openwhisk-package-jira</a>
+              includes actions that interact with JIRA software
+              software development tool used for issue tracking,
+              and project management functions.
+            </li>
+            <li>
+              <a href="https://github.com/apache/incubator-openwhisk-package-template/blob/master/README.md">incubator-openwhisk-package-template</a>
+              is a template for Openwhisk Packages, it can be used
+              to build, test and integrate new packages.
+            </li>
+          </ul>
+      </div>
     </main>
 
     <main class="doc">
-        <div class="content">
-            <a class="indexable" id="sample_openwhisk_applications"></a>
-            <h4>Sample OpenWhisk Applications</h4>
-            <p></p>
-            <h5>GitHub Slack Bot</h5>
-            <p style="padding-left: 2em;">
-                <a href="https://github.com/apache/incubator-openwhisk-GitHubSlackBot/blob/master/README.md">incubator-openwhisk-GitHubSlackBot</a>
-                demonstrates integration of GitHub Pull Request management with Slack and using Alarms.
-            </p>
-
-            <h5>Serverless Message Archiver To Object Storage (MATOS) Sample Application</h5>
-            <p style="padding-left: 2em;">
-                <a href="https://github.com/apache/incubator-openwhisk-sample-matos/blob/master/README.md">incubator-openwhisk-sample-matos</a>
-                demonstrates an implementation of a simple pipeline that reads messages from a Message Hub topic and archives them in batches into an Object Storage folder.
-            </p>
-
-            <h5>Slackbot for OpenWhisk:</h5>
-            <p style="padding-left: 2em;">
-                <a href="https://github.com/apache/incubator-openwhisk-sample-slackbot/blob/master/README.md">incubator-openwhisk-sample-slackbot</a>
-                a proof-of-concept Slackbot to invoke OpenWhisk actions.
-            </p>
-
-            <h5>openwhisk-slackinvite:</h5>
-            <p style="padding-left: 2em;">
-                <a href="https://github.com/apache/incubator-openwhisk-slackinvite/blob/master/README.md">incubator-openwhisk-slackinvite</a>
-                implements invitations for Apache OpenWhisk Slack Community.
-            </p>
-        </div>
+      <div class="content">
+        <a class="indexable" id="sample_openwhisk_applications"></a>
+        <h4>Sample OpenWhisk Applications</h4>
+        <p></p>
+        <h5>GitHub Slack Bot</h5>
+        <p style="padding-left: 2em;">
+            <a href="https://github.com/apache/incubator-openwhisk-GitHubSlackBot/blob/master/README.md">incubator-openwhisk-GitHubSlackBot</a>
+            demonstrates integration of GitHub Pull Request management
+            with Slack and using Alarms.
+        </p>
+
+        <h5>Serverless Message Archiver To Object Storage (MATOS)
+          Sample Application</h5>
+        <p style="padding-left: 2em;">
+            <a href="https://github.com/apache/incubator-openwhisk-sample-matos/blob/master/README.md">incubator-openwhisk-sample-matos</a>
+            demonstrates an implementation of a simple pipeline that
+            reads messages from a Message Hub topic and archives them
+            in batches into an Object Storage folder.
+        </p>
+
+        <h5>Slackbot for OpenWhisk:</h5>
+        <p style="padding-left: 2em;">
+            <a href="https://github.com/apache/incubator-openwhisk-sample-slackbot/blob/master/README.md">incubator-openwhisk-sample-slackbot</a>
+            a proof-of-concept Slackbot to invoke OpenWhisk actions.
+        </p>
+
+        <h5>openwhisk-slackinvite:</h5>
+        <p style="padding-left: 2em;">
+            <a href="https://github.com/apache/incubator-openwhisk-slackinvite/blob/master/README.md">incubator-openwhisk-slackinvite</a>
+            implements invitations for Apache OpenWhisk Slack Community.
+        </p>
+      </div>
     </main>
 
     <main class="doc">
-        <div class="content">
-            <a class="indexable" id="tutorial_and_workshop"></a>
-            <h4>Tutorial and Workshop</h4>
-            <p></p>
-            <h5>OpenWhisk Tutorial</h5>
-            <p style="padding-left: 2em;">
-                <a href="https://github.com/apache/incubator-openwhisk-tutorial/blob/master/README.md">incubator-openwhisk-tutorial</a>
-                contains an interactive tutorials for the OpenWhisk CLI.
-            </p>
+      <div class="content">
+          <a class="indexable" id="tutorial_and_workshop"></a>
+          <h4>Tutorial and Workshop</h4>
+          <p></p>
+          <h5>OpenWhisk Tutorial</h5>
+          <p style="padding-left: 2em;">
+              <a href="https://github.com/apache/incubator-openwhisk-tutorial/blob/master/README.md">incubator-openwhisk-tutorial</a>
+              contains an interactive tutorials for the OpenWhisk CLI.
+          </p>
+
+          <h5>OpenWhisk Workshop</h5>
+          <p style="padding-left: 2em;">
+              <a href="https://github.com/apache/incubator-openwhisk-workshop/blob/master/README.md">incubator-openwhisk-workshop</a>
+              provides a series of exercises to help you understand how to
+              use OpenWhisk to build serverless applications.
+          </p>
+      </div>
+    </main>
 
-            <h5>OpenWhisk Workshop</h5>
-            <p style="padding-left: 2em;">
-                <a href="https://github.com/apache/incubator-openwhisk-workshop/blob/master/README.md">incubator-openwhisk-workshop</a>
-                provides a series of exercises to help you understand how to use OpenWhisk to build serverless applications.
-            </p>
-        </div>
+    <main class="doc">
+      <div class="content">
+        <a class="indexable" id="development_tools"></a>
+        <h4>Development Tools</h4>
+        <p></p>
+        <h5>The OpenWhisk Debugger</h5>
+        <p class="indented">
+          <a href="https://github.com/apache/incubator-openwhisk-debugger/blob/master/client/README.md">incubator-openwhisk-debugger</a>
+          supports debugging OpenWhisk actions. The debugger will arrange
+          things so that the actions you wish to debug will be offloaded
+          from the main OpenWhisk servers
+          and instead run locally on your laptop. You can then, from within
+          the debugger, inspect and modify values.
+        </p>
+      </div>
     </main>
 
+    <!-- *************************************************************** -->
+    <!-- Contributors                                                    -->
+    <!-- *************************************************************** -->
     <main class="doc">
-        <div class="content">
-            <a class="indexable" id="development_tools"></a>
-            <h4>Development Tools</h4>
-            <p></p>
-            <h5>The OpenWhisk Debugger</h5>
-            <p class="indented">
-                <a href="https://github.com/apache/incubator-openwhisk-debugger/blob/master/client/README.md">incubator-openwhisk-debugger</a>
-                supports debugging OpenWhisk actions. The debugger will arrange things so that the actions you wish to debug will be offloaded from the main OpenWhisk servers
-                and instead run locally on your laptop. You can then, from within the debugger, inspect and modify values.
+      <div class="content">
+        <a class="indexable" id="contributors"></a>
+        <h2>Contributors</h2>
+
+        <p>The Apache OpenWhisk project welcomes any and all developers to
+        become a Contributor to any part of our project.  Contributions can
+        range from fixing documentation and adding testcases, to fixing
+        bugs, proposing and implementing new features and reviewing
+        others' Pull Requests (PRs).
+        </p>
+        <p>
+        The following Wiki pages describe the How Tos of becoming an
+        official Contributor:
+        </p>
+        <ul>
+          <li><a href="https://cwiki.apache.org/confluence/display/OPENWHISK/OpenWhisk+Project+Wiki#OpenWhiskProjectWiki-how-to-contribute">How to contribute?</a></li>
+          <li><a href="https://cwiki.apache.org/confluence/display/OPENWHISK/OpenWhisk+Project+Wiki#OpenWhiskProjectWiki-becoming-a-contributor">How do I become a Contributor or Committer?</a></li>
+        </ul>
+
+        <!-- ******************************************************* -->
+        <!-- Contributors - project Structure                        -->
+        <!-- ******************************************************* -->
+        <a class="indexable" id="project-structure"></a>
+        <h4>Project Structure</h4>
+        <p>OpenWhisk is comprised of multiple repositories that can be
+          found in Apache GitHub (using a name query by repository):</p>
+        <p><a href="https://github.com/apache?q=openwhisk">https://github.com/apache?q=openwhisk</a></p>
+        <p>For convenience, here is a listing of current Apache OpenWhisk
+          project repositories (by category).</p>
+        <p><strong>Note:</strong> OpenWhisk repositories follow a naming convention where all repo starts with <i>incubator</i>, for example, <i>openwhisk-cli</i> GitHub repository is named <i>incubator-openwhisk-cli</i>.</p>
+        <div class="flow-columns">
+          <div class="project-structure-repo theme-deeper-sea-green">
+            <h4>Platform</h4>
+            <p>Primary source code repositories including platform code,
+              run books, tests and more.</p>
+            <p class="repo-title border-deeper-sea-green">
+              <a href="https://github.com/apache/incubator-openwhisk"
+                title="Core OpenWhisk repository including controller,
+                invoker, run books, and more.">
+                    openwhisk</a>
+            </p>
+            <p class="repo-title border-deeper-sea-green">
+              <a href="https://github.com/apache/incubator-openwhisk-cli"
+                title="Pluggable Command Line Interface (CLI) for wsk
+                command using the Cobra framework.">
+                    openwhisk-cli</a>
+            </p>
+            <p class="repo-title border-deeper-sea-green">
+              <a href="https://github.com/apache/incubator-openwhisk-apigateway"
+                title="A performant API Gateway based on Openresty
+                and NGINX.">
+                    openwhisk-apigateway</a>
+            </p>
+            <p class="repo-title border-deeper-sea-green">
+              <a href="https://github.com/apache/incubator-openwhisk-catalog"
+                title="Catalog of built-in system, utility, test and sample
+                Actions, Feeds and provider integration services and catalog
+                packaging tooling.">
+                    openwhisk-catalog</a>
+            </p>
+          </div>
+          <div class="project-structure-repo theme-deeper-sky-blue">
+            <h4>Runtimes</h4>
+            <p>OpenWhisk supports several languages via Docker runtime
+              containers.</p>
+            <p class="repo-title border-deeper-sky-blue">
+              <a href="https://github.com/apache/incubator-openwhisk-runtime-nodejs"
+                title="Apache openwhisk nodejs runtime">
+                    openwhisk-runtime-nodejs</a>
+            </p>
+            <p class="repo-title border-deeper-sky-blue">
+              <a href="https://github.com/apache/incubator-openwhisk-runtime-docker"
+                title="Apache openwhisk docker runtime.">
+                    openwhisk-runtime-docker</a>
+            </p>
+            <p class="repo-title border-deeper-sky-blue">
+              <a href="https://github.com/apache/incubator-openwhisk-runtime-python"
+                title="Apache openwhisk python runtime.">
+                    openwhisk-runtime-python</a>
+            </p>
+            <p class="repo-title border-deeper-sky-blue">
+              <a href="https://github.com/apache/incubator-openwhisk-runtime-go"
+                title="Apache openwhisk go runtime.">
+                    openwhisk-runtime-go</a>
+            </p>
+            <p class="repo-title border-deeper-sky-blue">
+              <a href="https://github.com/apache/incubator-openwhisk-runtime-swift"
+                title="Apache openwhisk swift runtime.">
+                    openwhisk-runtime-swift</a>
+            </p>
+            <p class="repo-title border-deeper-sky-blue">
+              <a href="https://github.com/apache/incubator-openwhisk-runtime-php"
+                title="Apache openwhisk php runtime.">
+                    openwhisk-runtime-php</a>
+            </p>
+            <p class="repo-title border-deeper-sky-blue">
+              <a href="https://github.com/apache/incubator-openwhisk-runtime-java"
+                title="Apache openwhisk java runtime.">
+                    openwhisk-runtime-java</a>
+            </p>
+            <p class="repo-title border-deeper-sky-blue">
+              <a href="https://github.com/apache/incubator-openwhisk-runtime-ruby"
+                title="Apache openwhisk ruby runtime.">
+                    openwhisk-runtime-ruby</a>
+            </p>
+          </div>
+          <div class="project-structure-repo theme-darkgoldenrod">
+            <h4>Deployments</h4>
+            <p>OpenWhisk can be deployed and configured on variety of platforms.</p>
+            <p class="repo-title border-darkgoldenrod">
+              <a href="https://github.com/apache/incubator-openwhisk-deploy-kube"
+                title="This project can be used to deploy Apache OpenWhisk
+                to a Kubernetes cluster.">
+                    openwhisk-deploy-kube
+              </a>
+            </p>
+            <p class="repo-title border-darkgoldenrod">
+              <a href="https://github.com/apache/incubator-openwhisk-devtools/blob/master/docker-compose/README.md"
+                title="An easy way to try OpenWhisk locally is to use
+                Docker Compose.">
+                    openwhisk-devtools/docker-compose
+              </a>
+            </p>
+            <p class="repo-title border-darkgoldenrod">
+              <a href="https://github.com/apache/incubator-openwhisk-deploy-mesos"
+                title="Apache OpenWhisk deployment scripts and
+                configuration files for running under Apache Mesos.">
+                    openwhisk-deploy-mesos
+              </a>
+            </p>
+            <p class="repo-title border-darkgoldenrod">
+              <a href="https://github.com/apache/incubator-openwhisk-deploy-openshift"
+                title="This project can be used to deploy Apache OpenWhisk
+                to the OpenShift platform.">
+                    openwhisk-deploy-openshift
+              </a>
+            </p>
+            <p class="repo-title border-darkgoldenrod">
+              <a href="https://github.com/apache/incubator-openwhisk/blob/master/ansible/README.md#deploying-openwhisk-using-ansible"
+                title="Deploy OpenWhisk locally using Ansible.">
+                    openwhisk/ansible
+              </a>
             </p>
+            <p class="repo-title border-darkgoldenrod">
+              <a href="https://github.com/apache/incubator-openwhisk#vagrant-setup"
+              title="Deploy OpenWhisk locally using Vagrant.">
+                  openwhisk/vagrant-setup
+              </a>
+            </p>
+          </div>
+          <div class="project-structure-repo theme-deeper-aquamarine">
+            <h4>Tooling</h4>
+            <p>OpenWhisk provides variety of tools around deployment and development.</p>
+            <p class="repo-title border-deeper-aquamarine">
+              <a href="https://github.com/apache/incubator-openwhisk-wskdeploy"
+                title="Utility to deploy all your OpenWhisk Packages,
+                Actions, Triggers, Rules and more using a single command!">
+                    openwhisk-wskdeploy
+              </a>
+            </p>
+            <p class="repo-title border-deeper-aquamarine">
+              <a href="https://github.com/apache/incubator-openwhisk-devtools"
+                title="This repository provides developer tools that
+                help with local development, testing and operation
+                of OpenWhisk.">
+                    openwhisk-devtools
+              </a>
+            </p>
+            <p class="repo-title border-deeper-aquamarine">
+              <a href="https://github.com/apache/incubator-openwhisk-debugger"
+                title="This repository provides wskdb, the OpenWhisk
+                debugger.">
+                    openwhisk-debugger
+              </a>
+            </p>
+            <p class="repo-title border-deeper-aquamarine">
+              <a href="https://github.com/apache/incubator-openwhisk-playground"
+                title="This library provides functionality of executing
+                a snippet of source code as OpenWhisk action for
+                OpenWhisk Xcode Source Editor Extension in order to
+                test Swift OpenWhisk functions quickly.">
+                    openwhisk-playground
+              </a>
+            </p>
+            <p class="repo-title border-deeper-aquamarine">
+              <a href="https://github.com/apache/incubator-openwhisk-vscode"
+                title="This is a prototype extension for Visual Studio
+                Code that enables complete round trip cycles for
+                authoring OpenWhisk actions inside the editor. ">
+                    openwhisk-vscode
+              </a>
+            </p>
+            <p class="repo-title border-deeper-aquamarine">
+              <a
+                href="https://github.com/apache/incubator-openwhisk-xcode"
+                title="This repository has three projects, OpenWhisk
+                Xcode Extension, WhiskBot - OpenWhisk Watson
+                Conversation Chatbot, and wskTools.">
+                    openwhisk-xcode
+              </a>
+            </p>
+          </div>
+          <div class="project-structure-repo theme-darksalmon">
+            <h4>Packages</h4>
+            <p>Several common service integrations are made available as
+              packages. By default they are registered in the OpenWHisk
+              catalog, under the <em>/whisk.system/</em> namespace,
+              and include:</p>
+            <p class="repo-title border-darksalmon">
+              <a href="https://github.com/apache/incubator-openwhisk-package-alarms"
+                title="Apache OpenWhisk package that can be used to
+                create periodic, time-based alarms.">
+                    openwhisk-package-alarms
+            </a>
+            </p>
+            <p class="repo-title border-darksalmon">
+              <a href="https://github.com/apache/incubator-openwhisk-package-cloudant"
+                title="The /whisk.system/cloudant package enables you
+                to work with a Cloudant database.">
+                    openwhisk-package-cloudant
+              </a>
+            </p>
+            <p class="repo-title border-darksalmon">
+              <a href="https://github.com/apache/incubator-openwhisk-package-kafka"
+                title="Apache OpenWhisk package for communicating with
+                Kafka or Message Hub">
+                    openwhisk-package-kafka
+              </a>
+            </p>
+            <p class="repo-title border-darksalmon">
+              <a href="https://github.com/apache/incubator-openwhisk-package-deploy"
+                title="The /whisk.system/deploy package offers a
+                convenient way for you to describe and deploy any p
+                art of the OpenWhisk programming model using a Manifest
+                file written in YAML.">
+                    openwhisk-package-deploy
+              </a>
+            </p>
+            <p class="repo-title border-darksalmon">
+              <a href="https://github.com/apache/incubator-openwhisk-package-pushnotifications"
+                title="The /whisk.system/pushnotifications package
+                enables you to work with a push service.">
+                    openwhisk-package-pushnotifications
+              </a>
+            </p>
+            <p class="repo-title border-darksalmon">
+              <a href="https://github.com/apache/incubator-openwhisk-package-rss"
+                title="This package allows users to subscribe to
+                RSS/ATOM feeds and receive events when a new feed
+                item is available.">
+                    openwhisk-package-rss
+              </a>
+            </p>
+            <p class="repo-title border-darksalmon">
+              <a href="https://github.com/apache/incubator-openwhisk-package-jira"
+                title="This package includes actions that interact
+                with JIRA software software development tool used
+                for issue tracking, and project management functions.">
+                    openwhisk-package-jira
+              </a>
+            </p>
+            <p class="repo-title border-darksalmon">
+              <a href="https://github.com/apache/incubator-openwhisk-package-template"
+                title="This package is a template for Openwhisk Packages,
+                it can be used to build, test and integrate new packages.">
+                    openwhisk-package-template
+              </a>
+            </p>
+          </div>
+          <div class="project-structure-repo theme-deeper-aquamarine">
+            <h4>Clients and SDK</h4>
+            <p>Here are the clients to access to OpenWhisk API:</p>
+            <p class="repo-title  border-deeper-aquamarine">
+              <a href="https://github.com/apache/incubator-openwhisk-client-go"
+                title="This project openwhisk-client-go is a Go client
+                library to access Openwhisk API.">
+                    openwhisk-client-go</a>
+            </p>
+            <p class="repo-title  border-deeper-aquamarine">
+              <a href="https://github.com/apache/incubator-openwhisk-client-js"
+                title="JavaScript client library for the OpenWhisk
+                platform.">
+                    openwhisk-client-js</a>
+            </p>
+            <p class="repo-title  border-deeper-aquamarine">
+              <a href="https://github.com/apache/incubator-openwhisk-client-swift"
+                title="Swift client SDK for OpenWhisk with support for
+                iOS, WatchOS2, and Darwin CLI apps.">
+                    openwhisk-client-swift</a>
+            </p>
+            <p class="repo-title  border-deeper-aquamarine">
+              <a href="https://github.com/apache/incubator-openwhisk-client-python"
+                title="REST API of OpenWhisk can be used directly
+                from Python.">
+                    openwhisk-client-python
+              </a>
+            </p>
+          </div>
+          <div class="project-structure-repo theme-darkorange">
+            <h4>Samples</h4>
+            <p>Few example applications to demonstrate OpenWhisk features and functionalities:</p>
+            <p class="repo-title border-darkorange">
+              <a href="https://github.com/apache/incubator-openwhisk-sample-slackbot"
+                title="This repository contains proof-of-concept-quality
+                code to deploy a Slackbot with the capability to run
+                OpenWhisk actions.">
+                    openwhisk-sample-slackbot</a>
+            </p>
+            <p class="repo-title border-darkorange">
+              <a href="https://github.com/apache/incubator-openwhisk-slackinvite"
+                title="Invite for Apache OpenWhisk Team on Slack.">
+                    openwhisk-slackinvite</a>
+            </p>
+            <p class="repo-title border-darkorange">
+              <a href="https://github.com/apache/incubator-openwhisk-GitHubSlackBot"
+                title="This bot is designed to post updates to Slack when
+                a GitHub pull request is ready to merge or a list of pull
+                requests are under review for certain days and haven't
+                merged.">
+                    openwhisk-GitHubSlackBot</a>
+            </p>
+            <p class="repo-title border-darkorange">
+              <a href="https://github.com/apache/incubator-openwhisk-sample-matos"
+                  title="Sample application with Message Hub and Object Store.">
+                      openwhisk-sample-matos</a>
+            </p>
+            <p class="repo-title border-darkorange">
+              <a href="https://github.com/apache/incubator-openwhisk-tutorial"
+                  title="An interactive learning environment for the
+                  Apache OpenWhisk command line.">
+                      openwhisk-tutorial</a>
+            </p>
+            <p class="repo-title border-darkorange">
+              <a href="https://github.com/apache/incubator-openwhisk-workshop"
+                title="OpenWhisk workshop to help developers learn how
+                to build serverless applications using the platform.">
+                      openwhisk-workshop</a>
+            </p>
+          </div>
+          <div class="project-structure-repo theme-darkred">
+            <h4>Others</h4>
+            <p>Few other misc. but crucial repositories.</p>
+            <p class="repo-title border-darkred">
+              <a href="https://github.com/apache/incubator-openwhisk-release"
+                title="This repository provides Release Management of all
+                designated Apache OpenWhisk project repositories.">
+                      openwhisk-release</a>
+            </p>
+            <p class="repo-title border-darkred">
+              <a href="https://github.com/apache/incubator-openwhisk-website"
+                title="This repository contains source of this website
+                (openwhisk.incubator.apache.org) which is built using Jekyll.">
+                      openwhisk-website</a>
+            </p>
+            <p class="repo-title border-darkred">
+              <a href="https://github.com/apache/incubator-openwhisk-external-resources"
+                title="Curated list of awesome OpenWhisk things.">
+                      openwhisk-external-resources</a>
+            </p>
+          </div>
         </div>
+
+        <!-- ******************************************************* -->
+        <!-- Contributors - Resources                                -->
+        <!-- ******************************************************* -->
+        <a class="indexable" id="contributor-resources"></a>
+        <h3>Contributor resources</h3>
+        <p>This section lists a number of resources for OpenWhisk Contributors:</p>
+        <ul>
+          <li><a href="https://cwiki.apache.org/confluence/display/OPENWHISK/Proposals">Proposals (Designs)</a></li>
+          <li><a href="https://cwiki.apache.org/confluence/display/OPENWHISK/Presentations%2C+Meeting+Notes+and+Transcripts">Meeting Notes and Transcripts</a></li>
+          <li><a href="https://cwiki.apache.org/confluence/display/OPENWHISK/Processes">Processes</a></li>
+          <li><a href="https://cwiki.apache.org/confluence/display/OPENWHISK/Project+Status">Project Status</a></li>
+          <li><a href="https://github.com/apache/incubator-openwhisk/issues">Report Bugs or Request Features</a></li>
+          <li><a href="https://github.com/apache/incubator-openwhisk-release#apache-openwhisk-project-release-management">Project Release Management</a></li>
+        </ul>
+
+        <!-- ******************************************************* -->
+        <!-- Contributors - Runtimes                                 -->
+        <!-- ******************************************************* -->
+        <a class="indexable" id="contributing-runtimes"></a>
+        <h3>Contributing new Action Language Runtimes</h3>
+        <p>OpenWhisk supports several languages via its Action Runtimes,
+          but there may be other languages or runtimes that you may want
+          to contribute to the project.</p>
+        <p>Read this guide on how to get started:
+          <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/actions-new.md">Adding Action Language Runtimes</a>
+        </p>
+      </div>
     </main>
 
-    <!-- Contributors Section -->
+    <!-- *************************************************************** -->
+    <!-- Operators                                                       -->
+    <!-- *************************************************************** -->
     <main class="doc">
-        <div class="content">
-            <a class="indexable" id="contributors"></a>
-            <h2>Contributors</h2>
-
-            <p>The Apache OpenWhisk project welcomes any and all developers to
-            become a Contributor to any part of our project.  Contributions can
-            range from fixing documentation and adding testcases, to fixing
-            bugs, proposing and implementing new features and reviewing
-            others' Pull Requests (PRs).
+      <div class="content">
+        <a class="indexable" id="operators"></a>
+        <h2>Operators</h2>
+        <p>This section has information that is primarily focused
+          on deploying, configuring and administrating an Apache
+          OpenWhisk Serverless platform.
+        </p>
+
+        <!-- ***************************************************** -->
+        <!-- Operators - OpenWhisk Architecture                    -->
+        <!-- ***************************************************** -->
+
+        <a class="indexable" id="openwhisk_architecture"></a>
+        <h4>OpenWhisk Architecture</h4>
+        <p>
+          The diagram below depicts the high-level architecture of
+          OpenWhisk. From Nginx to Kafka to Docker, multiple
+          technologies are powering Apache OpenWhisk which
+          shows its committment to be a true Open Source Serverless
+          Cloud Platform.
+        </p>
+        <img style="padding-top:20px; width: 400px;" src="https://raw.githubusercontent.com/apache/incubator-openwhisk/master/docs/images/OpenWhisk_flow_of_processing.png"
+        alt="OpenWhisk Architecture"/>
+        <p>
+          You can read about more about the OpenWhisk platform
+          components along with its internal flow of processing here:
+        </p>
+        <ul>
+          <li>
+            <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/about.md#how-openWhisk-works">How OpenWhisk works</a>.
+          </li>
+        </ul>
 
-            The following Wiki pages describe the How Tos of becoming an
-            official Contributor:</p>
+        <!-- ***************************************************** -->
+        <!-- Operators - Deployment Options                        -->
+        <!-- ***************************************************** -->
+        <a class="indexable" id="openwhisk_deployment"></a>
+        <h4>Deployment Options</h4>
+        <p>
+          OpenWhisk offers different deployment options
+          for installing and configuring the OpenWhisk platform components.
+          However, Kubernetes is the recommended option as it is supported
+          on most major platforms and includes great options for local
+          developers to get running quickly, as well as supports
+          operators needing to manage large scale production deployments.
+        </p>
+        <a class="indexable" id="deploy_kubernetes"></a>
+        <h5>Kubernetes</h5>
+        <p>
+          OpenWhisk can be deployed using <a href="https://helm.sh/">Helm</a>
+          charts on any Kubernetes provisioned locally or from a
+          public cloud provider.
+        </p>
+          <p>Please refer to:
+          <a href="https://github.com/apache/incubator-openwhisk-deploy-kube/blob/master/README.md#kubernetes">Deploy OpenWhisk to a Kubernetes Cluster</a>
+          for detailed deployment instructions which includes specific
+          <a href="https://github.com/apache/incubator-openwhisk-deploy-kube/blob/master/README.md#customize-the-deployment">customizations</a>
+          including Docker Desktop (Mac, Windows), Minikube,
+          Google, IBM Cloud, etc.).
+        </p>
+
+        <h4>Alternative options</h4>
+        <p>Here are some alternate choices for deploying the OpenWhisk
+          platform:
+        </p>
+
+        <!-- TODO: add left margin for all these alt. options. -->
+        <div>
+          <!-- ******************************** -->
+          <!-- Docker Compose                   -->
+          <!-- ******************************** -->
+          <a class="indexable" id="deploy_docker_compose"></a>
+          <h5>Docker Compose</h5>
+          <p>
+            If you like using Docker directly, another easy local alternative
+            is to get Docker installed on Mac, Windows or Linux and use
+            Docker Compose.   Please note that this option does not give you
+            a production deployment but gives you enough of the pieces to
+            start writing functions and seeing them executing.
+          </p>
+          <div class="terminal">
+{% highlight bash %}
+$ git clone https://github.com/apache/incubator-openwhisk-devtools.git
+$ cd incubator-openwhisk-devtools/docker-compose
+$ make quick-start
+{% endhighlight %}
+          </div>
+          <p>
+            For more detailed instructions, see the
+            <a href="https://github.com/apache/incubator-openwhisk-devtools/blob/master/docker-compose/README.md">OpenWhisk with Docker Compose project</a>.
+          </p>
+
+          <!-- ******************************** -->
+          <!-- Ansible                          -->
+          <!-- ******************************** -->
+          <a class="indexable" id="deploy_ansible"></a>
+          <h5>Ansible</h5>
+          <p>
+            <a href="https://github.com/apache/incubator-openwhisk/blob/master/ansible/README.md">Deploying OpenWhisk using Ansible</a>
+            is a more imperative, script-based deployment
+            option such as in a CI/CD (Travis) pipeline.
+            The OpenWhisk playbooks are structured such that it
+            allows cleaning, deploying, or re-deploying a single
+            component as well as the entire OpenWhisk stack.
+          </p>
+
+          <!-- ******************************** -->
+          <!-- Vagrant                          -->
+          <!-- ******************************** -->
+          <a class="indexable" id="deploy_vagrant"></a>
+          <h5>Vagrant</h5>
+          <p>
+            A Vagrant machine is also available to run OpenWhisk on
+            Mac, Windows PC or GNU/Linux.
+            Downloading and install VirtualBox and Vagrant for your
+            operating system and architecture.
+            You can follow the steps under
+            <a href="https://github.com/apache/incubator-openwhisk#vagrant-setup">Vagrant Setup</a>
+            to run your first OpenWhisk action using Vagrant.
+          </p>
+
+          <!-- ******************************** -->
+          <!-- Mesos                            -->
+          <!-- ******************************** -->
+          <a class="indexable" id="deploy_mesos"></a>
+          <h5>Mesos</h5>
+          <p>
+            <a href="https://github.com/apache/incubator-openwhisk-deploy-mesos/blob/master/README.md">Deploy OpenWhisk to a Mesos Cluster</a>
+            is under active development.
+          </p>
+
+          <!-- ******************************** -->
+          <!-- OpenShift                        -->
+          <!-- ******************************** -->
+          <a class="indexable" id="deploy_openshift"></a>
+          <h5>OpenShift</h5>
+          <p>
+            <a href="https://github.com/apache/incubator-openwhisk-deploy-openshift/blob/master/README.md">OpenWhisk Deployment on OpenShift</a>
+            is under active development.
+          </p>
+        </div>
 
-            <ul>
-                <li><a href="https://cwiki.apache.org/confluence/display/OPENWHISK/OpenWhisk+Project+Wiki#OpenWhiskProjectWiki-how-to-contribute">How to contribute?</a></li>
-                <li><a href="https://cwiki.apache.org/confluence/display/OPENWHISK/OpenWhisk+Project+Wiki#OpenWhiskProjectWiki-becoming-a-contributor">How do I become a Contributor or Committer?</a></li>
-            </ul>
+        <!-- ******************************************************* -->
+        <!-- Operators  - Admin                                      -->
+        <!-- ******************************************************* -->
+        <a class="indexable" id="deployment_admin"></a>
+        <h4>Administrative Operations</h4>
+        <p>
+          This section contains a list of resources which can be utilized
+          to administer the running OpenWhisk instance.
+        </p>
+        <ul>
+          <li><a href="https://github.com/apache/incubator-openwhisk/tree/master/tools/admin">wskadmin</a></li>
+        </ul>
 
-            <a class="indexable" id="contributor-resources"></a>
-            <h4>Contributor resources</h4>
-            <p>This section lists a number of resources for OpenWhisk Contributors:</p>
-            <ul>
-               <li><a href="https://cwiki.apache.org/confluence/display/OPENWHISK/Proposals">Proposals (Designs)</a></li>
-                <li><a href="https://cwiki.apache.org/confluence/display/OPENWHISK/Presentations%2C+Meeting+Notes+and+Transcripts">Meeting Notes and Transcripts</a></li>
-                <li><a href="https://cwiki.apache.org/confluence/display/OPENWHISK/Processes">Processes</a></li>
-                <li><a href="https://cwiki.apache.org/confluence/display/OPENWHISK/Project+Status">Project Status</a></li>
-                <li><a href="https://github.com/apache/incubator-openwhisk/issues">Report Bugs or Request Features</a></li>
-                <li><a href="https://github.com/apache/incubator-openwhisk-release#apache-openwhisk-project-release-management">Project Release Management</a></li>
-            </ul>
-            <a class="indexable" id="contributing-runtimes"></a>
-            <h4>Contributing new Action Language Runtimes</h4>
-            <p>OpenWhisk supports several languages via its Action Runtimes,
-              but there may be other languages or runtimes that you may want
-              to contribute to the project.</p>
-            <p>Read this guide on how to get started:
-              <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/actions-new.md">Adding Action Language Runtimes</a></p>
-        </div>
+        <!-- ******************************************************* -->
+        <!-- Operators  - Resources                                  -->
+        <!-- ******************************************************* -->
+        <a class="indexable" id="operators_resources"></a>
+        <h4>Operator Resources</h4>
+        <ul>
+          <li><a href="https://medium.com/openwhisk/five-minute-intro-to-open-source-serverless-development-with-openwhisk-328b0ebfa160">Five minute intro to open source serverless development with OpenWhisk</a></li>
+          <li><a href="https://thenewstack.io/behind-scenes-apache-openwhisk-serverless-platform/">An Architectural View of Apache OpenWhisk</a></li>
+          <li><a href="https://medium.com/@rabbah/the-state-of-openwhisk-ae8c129e8a48">The State of OpenWhisk</a></li>
+          <li><a href="https://medium.com/openwhisk/starting-openwhisk-in-sixty-seconds-9288bfb4863d">Starting OpenWhisk in Sixty Seconds</a></li>
+          <li><a href="https://medium.com/openwhisk/deploying-openwhisk-on-kubernetes-3f55f781fbab">Deploying OpenWhisk on Kubernetes</a></li>
+          <li><a href="https://medium.com/openwhisk/uncovering-the-magic-how-serverless-platforms-really-work-3cb127b05f71">Uncovering the magic: How serverless platforms really work!</a></li>
+        </ul>
+      </div>
     </main>
 
     <!-- Other Resources Section -->
     <main class="doc">
-        <div class="content">
-            <a class="indexable" id="other-resources"></a>
-            <h2>Other Resources</h2>
-            <ul>
-                <li><a href="events.html">Events</a> - list of past OpenWhisk events</li>
-                <li><a href="https://github.com/apache/incubator-openwhisk-external-resources#awesome-openwhisk--">Awesome OpenWhisk</a>
-                    - list of OpenWhisk resources and tips including articles, books, videos, presentations, podcasts, etc.</li>
-            </ul>
-        </div>
+      <div class="content">
+        <a class="indexable" id="other-resources"></a>
+        <h2>Other Resources</h2>
+        <ul>
+          <li><a href="events.html">Events</a> - list of past OpenWhisk
+            events</li>
+          <li><a href="https://github.com/apache/incubator-openwhisk-external-resources#awesome-openwhisk--">Awesome OpenWhisk</a>
+              - list of OpenWhisk resources and tips including articles,
+              books, videos, presentations, podcasts, etc.</li>
+        </ul>
+      </div>
     </main>
 
     <!-- Frequently Asked Questions -->
     <main class="doc">
-        <div class="content">
-            <a class="indexable" id="faq"></a>
-            <h2>Frequently Asked Questions</h2>
-            {% include partial/faq.html %}
-        </div>
+      <div class="content">
+        <a class="indexable" id="faq"></a>
+        <h2>Frequently Asked Questions</h2>
+        {% include partial/faq.html %}
+      </div>
     </main>
-</section>
+
+  </section>
 </div>
diff --git a/_scss/_base.scss b/_scss/_base.scss
index 2cec9b1..21b16b8 100644
--- a/_scss/_base.scss
+++ b/_scss/_base.scss
@@ -44,6 +44,10 @@ footer {
   padding: $whisk-footer-base-padding-base;
 }
 
+strong {
+  color: $color-blue-dark;
+}
+
 // Header is only shown on the "home" page
 #whiskHeader {
   background-color: $color-blue-dark;
@@ -75,6 +79,22 @@ footer {
   h5 {
     color: $color-white;
   }
+  h6 {
+    font-style: italic;
+  }
+}
+
+/*
+ * General document styles
+ */
+.doc {
+  position: relative;
+  overflow: hidden;
+  text-align: left;
+}
+
+.indented {
+  padding-left: $p-left-indent;
 }
 
 // Footer is shown on all content pages
@@ -86,7 +106,6 @@ footer {
   padding-top: $whisk-header-base-padding-top;
 
   #whiskIndex {
-    //vertical-align: top;
     // position menu relative to header
     display: float;
     position: fixed;
@@ -100,29 +119,26 @@ footer {
       display: flex-direction;
     }
 
+    li{
+      line-height: normal;
+    }
+
     li:not(.index-menu-toggle) {
       a {
         display: inline-flex;
         width: 100%;
         height: 100%;
-        padding-right: auto;
       }
     }
 
     li.index-menu-toggle {
-
       // TODO: try to render our own bullet/images so we can control layout
       /** the image will be vertically aligned in the center **/
       //background: url(../img/bullet.png) left center no-repeat;
       /** move the text to the right **/
-      //padding-left: 20px;
-
-      height: 24px;
       a {
-        display: inline-flex;
         position: relative;
         height: 100%;
-        max-width: 180px;
       }
     }
   }
@@ -175,16 +191,6 @@ footer {
   }
 }
 
-.doc {
-  position: relative;
-  overflow: hidden;
-  text-align: left;
-}
-
-.indented {
-  padding-left: $p-left-indent;
-}
-
 /*
  * Supporter logos
  */
@@ -331,7 +337,7 @@ footer {
 .index-menu-toggle {
   color: $color-menu-collapsible-fg;
   background-color: $color-menu-collapsible-bg;
-  border: 1px solid $color-menuitem-collapsible-border;
+  border: $color-menuitem-collapsible-border;
   cursor: pointer; // finger shown to let ppl know you can click it
 }
 
@@ -346,6 +352,10 @@ footer {
   background-color: white;
 }
 
+.index-menu-start-open {
+  display: block;
+}
+
 /*
  * Section (collapsible)
  */
@@ -362,17 +372,22 @@ footer {
   background-size: 12px 12px;
   background-position: 8px 50%;
   background-repeat: no-repeat;
+  margin: 10px;
   cursor: pointer; // finger shown to let ppl know you can click it
 }
 
-.section-toggle-start-open {
-  // empty class
+.section-toggleable {
+  padding-left: $p-left-indent;
 }
 
-.section-start-open {
+.section-toggle-start-open {
   display: block;
 }
 
+.section-toggle-start-closed {
+  display: none;
+}
+
 .section-toggle:hover {
   background-color: $color-menu-collapsible-hover-bg;
 }
@@ -425,13 +440,19 @@ a.indexable {
     font-size: $index-menu-font-size;
     font-weight: $index-menu-font-weight;
     padding: $index-menuitem-padding;
-    line-height: $index-menuitem-line-height;
+    vertical-align: top;
+    border-style: solid;
+    height: 100%;
 
     // Control index-item (anchor) text color regardless by state
     a {
       color: $color-index-fg;
+      //background-color: pink;
+      // NOTE: use this to control preservine newlines & spaces
+      // WARNING: Assure that people crearint Indexes are aware!
+      white-space: pre-wrap;
       text-decoration: none;
-      //display: block;
+      text-align: left; // set this so we do not accidentally inhereit
     }
     a:hover {
       // use different color on index-item hover
diff --git a/images/illustrations/OW-Abstract Architecture Diagram Banner.png b/images/illustrations/OW-Abstract Architecture Diagram Banner.png
new file mode 100644
index 0000000..5eed1b5
Binary files /dev/null and b/images/illustrations/OW-Abstract Architecture Diagram Banner.png differ
diff --git a/images/illustrations/OW-Abstract Architecture Diagram Banner.psd b/images/illustrations/OW-Abstract Architecture Diagram Banner.psd
new file mode 100644
index 0000000..9020b85
Binary files /dev/null and b/images/illustrations/OW-Abstract Architecture Diagram Banner.psd differ
diff --git a/images/illustrations/OW-Programming Model.pptx b/images/illustrations/OW-Programming Model.pptx
new file mode 100644
index 0000000..263cecc
Binary files /dev/null and b/images/illustrations/OW-Programming Model.pptx differ
diff --git a/images/illustrations/OW-Programming-Model-Horz-Action.png b/images/illustrations/OW-Programming-Model-Horz-Action.png
new file mode 100644
index 0000000..bae64c0
Binary files /dev/null and b/images/illustrations/OW-Programming-Model-Horz-Action.png differ
diff --git a/images/illustrations/OW-Programming-Model-Horz-Feed.png b/images/illustrations/OW-Programming-Model-Horz-Feed.png
new file mode 100644
index 0000000..a742484
Binary files /dev/null and b/images/illustrations/OW-Programming-Model-Horz-Feed.png differ
diff --git a/images/illustrations/OW-Programming-Model-Horz-Trigger-Rule.png b/images/illustrations/OW-Programming-Model-Horz-Trigger-Rule.png
new file mode 100644
index 0000000..dba5deb
Binary files /dev/null and b/images/illustrations/OW-Programming-Model-Horz-Trigger-Rule.png differ
diff --git a/images/illustrations/OW-Programming-Model-Horz.png b/images/illustrations/OW-Programming-Model-Horz.png
new file mode 100644
index 0000000..0f629df
Binary files /dev/null and b/images/illustrations/OW-Programming-Model-Horz.png differ
diff --git a/images/illustrations/OW-Programming-Model-Horz.psd b/images/illustrations/OW-Programming-Model-Horz.psd
new file mode 100644
index 0000000..ce7acd9
Binary files /dev/null and b/images/illustrations/OW-Programming-Model-Horz.psd differ
diff --git a/images/logo/apache-openwhisk-logo-only-square.png b/images/logo/apache-openwhisk-logo-only-square.png
new file mode 100644
index 0000000..7006b3c
Binary files /dev/null and b/images/logo/apache-openwhisk-logo-only-square.png differ


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services