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/30 21:55:12 UTC

[GitHub] pritidesai closed pull request #350: Adjust Home page and add Swift Action examples

pritidesai closed pull request #350: Adjust Home page and add Swift Action examples
URL: https://github.com/apache/incubator-openwhisk-website/pull/350
 
 
   

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/code/hello.swift b/_includes/code/hello.swift
new file mode 100644
index 0000000..8ccaf5f
--- /dev/null
+++ b/_includes/code/hello.swift
@@ -0,0 +1,7 @@
+func main(args: [String:Any]) -> [String:Any] {
+    if let name = args["name"] as? String {
+        return [ "greeting" : "Hello \(name)!" ]
+    } else {
+        return [ "greeting" : "Hello swif4!" ]
+    }
+}
diff --git a/_includes/code/manifest-for-helloSwift.yaml b/_includes/code/manifest-for-helloSwift.yaml
new file mode 100644
index 0000000..425c46d
--- /dev/null
+++ b/_includes/code/manifest-for-helloSwift.yaml
@@ -0,0 +1,5 @@
+packages:
+    default:
+        actions:
+            helloSwift:
+                function: hello.swift
diff --git a/_includes/index/index.js b/_includes/index/index.js
index 1864aef..f1465dc 100644
--- a/_includes/index/index.js
+++ b/_includes/index/index.js
@@ -9,7 +9,7 @@ function toggleReferencedSection( parentId, expand )
   console.log( "toggleReferencedSection(): parentId=" + parentId + " expand=" + expand);
   if (parentId !== ""){
     sectionName = parentId.replace("index", "section");
-    console.log( "toggleReferencedSection(): sectionName=" + sectionName);
+    //console.log( "toggleReferencedSection(): sectionName=" + sectionName);
     sectionHeader = document.getElementById(sectionName);
     section = sectionHeader.nextElementSibling;
     if(expand){
@@ -34,8 +34,7 @@ function addListenersToIndex()
 
     if(sibling!==null){
         coll[i].style.listStyleImage = "url('../images/elements/arrow-right-12px.png')";
-        // (top right bottom left)
-        // make room on left for image/icon
+        // make room on left for image/icon (top right bottom left)
         sibling.style.padding = "0px 0px 0px 20px";
 
         if(sibling.classList.contains('index-menu-start-open')){
@@ -87,7 +86,7 @@ function addListenersToSections()
         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");
+        //console.log( "addListenersToSections(): No Toggle style foun; default to open");
         coll[i].style.backgroundImage = "url('../images/elements/circle-minus.png')";
         sibling.style.display = "block";
       }
@@ -98,18 +97,18 @@ function addListenersToSections()
       var sibling = this.nextElementSibling;
       // toggle menu open/close states
       if(sibling!==null){
-        console.log("sibling.style.display: ["+sibling.style.display+"]");
+        //console.log("sibling.style.display: ["+sibling.style.display+"]");
         if (sibling.style.display !== "none") {
-          console.log("collapsing");
+          //console.log("collapsing");
           sibling.style.display = "none";
           this.style.backgroundImage = "url('../images/elements/circle-plus.png')";
         } else {
-          console.log("expanding");
+          //console.log("expanding");
           sibling.style.display = "block";
           this.style.backgroundImage = "url('../images/elements/circle-minus.png')";
         }
       }
-      
+
     });
   }
 }
diff --git a/_layouts/community.html b/_layouts/community.html
index 290c680..8be8303 100644
--- a/_layouts/community.html
+++ b/_layouts/community.html
@@ -52,7 +52,7 @@ <h2>Community</h2>
       <main class="doc">
           <div class="content">
               <a class="indexable" id="social"></a>
-              <h4>Media</h4>
+              <h3>Media</h3>
               <p>The Apache OpenWhisk project is active on several content sharing and social media channels which aim to make it easier for users to get started, ask questions, stay informed and to interact with our community.</p>
               <p>Icons that link to each of the following channels are located in the header of our website and include:</p>
               <ul>
@@ -77,25 +77,37 @@ <h4>Media</h4>
       <main class="doc">
           <div class="content">
               <a class="indexable" id="mailing-lists"></a>
-              <h4>Mailing Lists</h4>
-              <br>
-              <h5>How to join the Apache OpenWhisk mailing list<h5>
-              <p>The Dev Mailing List is where we discuss the development of Apache OpenWhisk. It is <b><i>not</i></b> a place for technical support; if you're looking for help on the project, please try our <a style="font-weight:400;" href="/documentation.html">Documentation</a> page and engage with us on one of the Social Media channels listed above.</p>
-              <p>To subscribe, unsubscribe or post our developer list, send an email message to one of the following addresses:</p>
+              <h3>Mailing Lists</h3>
+              <p>The developer or "dev" mailing list is where we discuss the design and
+                development of Apache OpenWhisk project code.
+                It is <b><i>not</i></b> a place for technical support;
+                if you're looking for help on the project, please try our
+                <a style="font-weight:400;" href="/documentation.html">Documentation</a>
+                page and engage with us on one of the Social Media channels
+                listed above.
+              </p>
+              <question>How do I join the Apache OpenWhisk project
+                developer mailing list?</question>
+              <p>To subscribe, unsubscribe or post our developer list, send
+                an email message to one of the following addresses:</p>
                   <ul>
                       <li><b>Subscribe</b>: <a href="mailto:dev-subscribe@openwhisk.incubator.apache.org">dev-subscribe@openwhisk.incubator.apache.org</a></li>
                       <li><b>Unsubscribe</b>: <a href="mailto:dev-unsubscribe@openwhisk.incubator.apache.org">dev-unsubscribe@openwhisk.incubator.apache.org</a></li>
                       <li><b>Post</b> (new topic): <a href="mailto:dev@openwhisk.incubator.apache.org">dev@openwhisk.incubator.apache.org</a></li>
                   </ul>
-              <p>To comment on a thread, simply reply to the message with the same subject text.</p>
-              <p><b>NOTE:</b> Make sure you add a subject line to the subscribe/unsubscribe messages. Empty emails are ignored.</p>
-              <p>To see existing messages, <a href="https://lists.apache.org/list.html?dev@openwhisk.apache.org">https://lists.apache.org/list.html?dev@openwhisk.apache.org</a>.</p>
+              <p>To comment on a thread, simply reply to the message with
+                the same subject text.
+              </p>
+              <p><b>NOTE:</b> Make sure you add a subject line to the
+                subscribe/unsubscribe messages. Empty emails are ignored.</p>
+              <p>To see existing messages, use:
+                <a href="https://lists.apache.org/list.html?dev@openwhisk.apache.org">https://lists.apache.org/list.html?dev@openwhisk.apache.org</a>.</p>
           </div>
       </main>
       <main class="doc">
           <div class="content">
               <a class="indexable" id="wiki"></a>
-              <h4>Project Wiki</h4>
+              <h3>Project Wiki</h3>
               <p>The project maintains a <a href="https://cwiki.apache.org/confluence/display/OPENWHISK/OpenWhisk+Project+Wiki">Confluence Wiki</a> site that provides the community a place to share their thoughts about and collaborate around any aspect of the project; whether it's about the platform architecture, an existing or planned feature or about its use cases and integrations. Examples include:</p>
               <ul>
                   <li><a href="https://cwiki.apache.org/confluence/display/OPENWHISK/OpenWhisk+Project+Wiki#OpenWhiskProjectWiki-how-to-contribute">How to contribute?</li>
@@ -113,7 +125,7 @@ <h4>Project Wiki</h4>
       <main class="doc">
           <div class="content">
               <a class="indexable" id="events"></a>
-              <h4>Events</h4>
+              <h3>Events</h3>
               <h5 style="margin-top:20px;">Apache OpenWhisk events</h5>
               <p>
                   Please reach out to community at <a href="mailto:dev@openwhisk.incubator.apache.org">dev@openwhisk.incubator.apache.org</a> to promote any OpenWhisk event.
@@ -135,7 +147,7 @@ <h5>Apache events</h5>
       <main class="doc">
           <div class="content">
               <a class="indexable" id="supporters"></a>
-              <h4>Supporters</h4>
+              <h3>Supporters</h3>
               <p>The following companies and organizations have acknowledged support of the Apache OpenWhisk project as contributors or users of the technology.</p>
               <div class="flow-columns">
                   <div class="flow-item-container">
diff --git a/_layouts/documentation.html b/_layouts/documentation.html
index 42a705a..f584f03 100644
--- a/_layouts/documentation.html
+++ b/_layouts/documentation.html
@@ -42,12 +42,6 @@
               <li><a href="#nodejs-runtime">NodeJS Runtime</a></li>
               <li><a href="#nodejs-additional-resources">Additional Resources</a></li>
             </ul>
-            <li id="index-python" class="index-menu-toggle"><a href="#python">using Python</a></li>
-            <ul class="index-menuitems">
-                <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>
             <li id="index-go" class="index-menu-toggle"><a href="#go">using Go</a></li>
             <ul class="index-menuitems">
                 <li><a href="#actions-go">Creating and Invoking Action</a></li>
@@ -66,18 +60,24 @@
                 <li><a href="#php-runtime">PHP Runtime</a></li>
                 <li><a href="#php-additional-resources">Additional Resources</a></li>
             </ul>
+            <li id="index-python" class="index-menu-toggle"><a href="#python">using Python</a></li>
+            <ul class="index-menuitems">
+                <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>
             <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>
+            <li id="index-swift" class="index-menu-toggle"><a href="#swift">using Swift</a></li>
             <ul class="index-menuitems">
-                <li><a href="#swift-actions">Creating and Invoking Action</a></li>
+                <li><a href="#actions-swift">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 id="index-docker" ><a href="#docker">Docker</a></li>
             <ul>
                 <li>Zip Action</li>
@@ -168,14 +168,14 @@ <h5>OpenWhisk documentation is organized by the following
     <main class="doc">
       <div class="content">
         <a class="indexable" id="programming-model"></a>
-        <h2>OpenWhisk Programming Model</h2>
+        <h3>OpenWhisk Programming Model</h3>
         <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>The OpenWhisk programming model...</p>
+        <h5>Is 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
@@ -225,7 +225,7 @@ <h4>Actions</h4>
         src="{{ site.github.url }}/images/illustrations/OW-Programming-Model-Horz-Action.png"
         alt="OpenWhisk Programming Model: Actions">
         <p>
-          <strong>What is an Action?</strong>
+          <question>What is an Action?</question>
           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
@@ -234,15 +234,15 @@ <h4>Actions</h4>
           which we will discuss later.
         </p>
         <p>
-          <strong>Does the function's language matter?</strong>
+          <question>Does the function's language matter?</question>
           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>
+          <question>What if your preferred language/runtime is not supported
+          by OpenWhisk?</question>
           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
@@ -309,18 +309,18 @@ <h4>Triggers and Rules</h4>
         alt="OpenWhisk Programming Model: Actions">
 
         <p>
-          <strong>What is a trigger?</strong>
+          <question>What is a trigger?</question>
           Triggers are named channels for classes or kinds of events
           sent from Event Sources.
         </p>
         <p>
-          <strong>What is a Rule?</strong>
+          <question>What is a Rule?</question>
           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>
+          <question>What are Event Sources?</question>
           These are services that generate events that often indicate
           changes in data or carry data themselves. Some examples of
           common Event Sources include:
@@ -335,8 +335,8 @@ <h4>Triggers and Rules</h4>
           <li>etc.</li>
         </ul>
         <p>
-            <strong>Why do I need to connect actions to event
-              sources?</strong>
+            <question>Why do I need to connect actions to event
+              sources?</question>
             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
@@ -741,6 +741,21 @@ <h6>Create and Deploy a simple OpenWhisk Manifest File</h6>
             </div>
           </li>
         </ul>
+        <a class="indexable" id="additional-resources-wskdeploy"></a>
+        <h5>Additional Resources</h5>
+        <ul>
+          <li><a href="https://github.com/apache/incubator-openwhisk-wskdeploy/tree/master/specification#openwhisk-packaging-specification">OpenWhisk Packaging Specification</a></li>
+          <li><a href="https://github.com/apache/incubator-openwhisk-wskdeploy/blob/master/docs/programming_guide.md#wskdeploy-utility-by-example">Programming Guide - "<code>wskdeploy</code> utility by example"</a></li>
+        </ul>
+        <h6>Medium Blogs <span style="font-weight:normal;">(tagged <a href="https://medium.com/openwhisk/tagged/wskdeploy">wskdeploy</a>)</span></h6>
+        <ul>
+          <li><a href="https://medium.com/openwhisk/whisk-deploy-slack-package-f6690a1387e4">Whisk Deploy - Slack Package</a></li>
+          <li><a href="https://medium.com/openwhisk/whisk-deploy-github-dependency-b31799394e79">Whisk Deploy - GitHub Dependency</a></li>
+          <li><a href="https://medium.com/openwhisk/whisk-deploy-zip-actions-abcc8c01ac4">Whisk Deploy - Zip Actions</a></li>
+          <li><a href="https://medium.com/openwhisk/whisk-deploy-zip-actions-with-include-exclude-30ba6d96ad8b">Whisk Deploy - Zip Actions with file Include & Exclude</a></li>
+          <li><a href="https://medium.com/openwhisk/whisk-deploy-api-gateway-action-to-rest-api-cc52002c9d2c">Whisk Deploy - API Gateway (Action to REST API)</a></li>
+          <li><a href="https://medium.com/openwhisk/whisk-deploy-how-to-sync-openwhisk-projects-between-client-and-server-c7939f0642a1">Whisk Deploy - How to Sync OpenWhisk Projects between Client and Server?</a></li>
+        </ul>
 
         <!-- ********************************************************** -->
         <!-- OpenWhisk REST API                                         -->
@@ -796,14 +811,6 @@ <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)          -->
@@ -904,24 +911,35 @@ <h5>OpenWhisk Runtime for NodeJS</h5>
           <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>
+            <li><a href="https://medium.com/openwhisk/migrating-from-a-node-app-to-serverless-d76f744b22c9">Migrating from a Node App to Serverless</a></li>
+            <li><a href="https://medium.com/openwhisk/debugging-node-js-openwhisk-actions-3da3303e6741">Debugging Node.js OpenWhisk Actions</a></li>
+          </ul>
+          <h6>Medium Blogs <span style="font-weight:normal;">(tagged <a href="https://medium.com/openwhisk/tagged/nodejs">nodejs</a>)</span></h6>
+          <ul>
+            <li><a href="https://medium.com/openwhisk/creating-zipped-actions-in-openwhisk-ccfcda553a30">Creating Zipped Actions in OpenWhisk</a></li>
+            <li><a href="https://medium.com/openwhisk/an-example-of-an-openwhisk-sequence-417d653c5952">An Example of an OpenWhisk Sequence</a></li>
+            <li><a href="https://medium.com/openwhisk/working-with-openwhisk-triggers-734fa9624ae5">Working with OpenWhisk Triggers</a></li>
+            <li><a href="https://medium.com/openwhisk/another-openwhisk-cron-example-the-blog-nag-dd0074821d2d">Another OpenWhisk Cron Example</a></li>
+            <li><a href="https://medium.com/openwhisk/building-a-serverless-api-proxy-with-openwhisk-16e5fd16f44f">Building a Serverless API Proxy with OpenWhisk</a></li>
+            <li><a href="https://medium.com/openwhisk/building-a-form-handler-service-in-openwhisk-55f15fb133a3">Building a Form Handler Service in OpenWhisk</a></li>
+            <li><a href="https://medium.com/openwhisk/deploying-express-js-apps-to-openwhisk-part-1-9133ba5f262c">Deploying Express.js apps to OpenWhisk (Part 1)</a></li>
+            <li><a href="https://medium.com/openwhisk/designing-an-openwhisk-action-for-web-action-support-4f0299481e74">Designing an OpenWhisk Action for Web Action Support</a></li>
           </ul>
         </div>
 
         <!-- ************************************** -->
-        <!-- Actions - Python                       -->
+        <!-- Actions - GoLang                       -->
         <!-- ************************************** -->
-        <a class="indexable" id="python"></a>
-        <h6 id="section-python" class="section-toggle">using Python</h6>
+        <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-python"></a>
-          <h5>Creating And Invoking Python actions</h5>
+          <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 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>
+            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>
@@ -931,50 +949,51 @@ <h5>Creating And Invoking Python actions</h5>
             <a href="#wsk-cli">OpenWhisk CLI (wsk)</a>.
           </p>
           <ol>
-            <li style="list-style-type: decimal">Create a file named <i>hello.py</i>:
+            <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 python linenos %}
-{% include code/hello.py %}
+{% highlight go linenos %}
+{% include code/hello.go %}
 {% endhighlight %}
               </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">
-<pre>ok: created action helloPy</pre>
-                </div>
+            <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 the <i>helloPy</i> action using command-line parameters:
+            <li style="list-style-type: decimal">
+                Invoke an action <i>helloGo</i>:
               <div class="terminal">
-{% highlight bash %}$ wsk action invoke helloPy --blocking --param name World{% endhighlight %}
+{% highlight bash %}$ wsk action invoke helloGo -r -p name gopher{% endhighlight %}
               </div>
               <div class="terminal">
 {% highlight yaml %}
 {
-"greeting": "Hello World!"
+"msg": "Hello, gopher!"
 }
 {% endhighlight %}
               </div>
             </li>
-            <li style="list-style-type: decimal">Deploy using <i>wskdeploy</i>:
+            <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.
+                <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>
+                <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-helloPy-2.yaml %}
+{% include code/manifest-for-helloGo.yaml %}
 {% endhighlight %}
                   </div>
                 </li>
@@ -987,35 +1006,40 @@ <h5>Creating And Invoking Python actions</h5>
               </ol>
             </li>
           </ol>
-
-          <a class="indexable" id="python-runtime"></a>
-          <h5>OpenWhisk Runtime for Python</h5>
+          <a class="indexable" id="go-runtime"></a>
+          <h5>OpenWhisk Runtime for Go</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>.
+            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="python-additional-resources"></a>
+          <a class="indexable" id="go-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>
+            <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>
+          <!-- <h6>Medium Blogs <span style="font-weight:normal;">(tagged <a href="https://medium.com/openwhisk/tagged/golang">golang</a>)</span></h6>
+          <ul>
+            <li><a href=""></a></li>
+            <li><a href=""></a></li>
+            <li><a href=""></a></li>
+          </ul> -->
         </div>
 
         <!-- ************************************** -->
-        <!-- Actions - GoLang                       -->
+        <!-- Actions - Python                       -->
         <!-- ************************************** -->
-        <a class="indexable" id="go"></a>
-        <h6 id="section-go" class="section-toggle">using Go</h6>
+        <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-go"></a>
-          <h5>Creating And Invoking Go actions</h5>
+          <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 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>
+            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>
@@ -1025,51 +1049,50 @@ <h5>Creating And Invoking Go actions</h5>
             <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>:
+            <li style="list-style-type: decimal">Create a file named <i>hello.py</i>:
               <div class="terminal">
-{% highlight go linenos %}
-{% include code/hello.go %}
+{% highlight python linenos %}
+{% include code/hello.py %}
 {% endhighlight %}
               </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 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">
+<pre>ok: created action helloPy</pre>
+                </div>
             </li>
-            <li style="list-style-type: decimal">
-                Invoke an action <i>helloGo</i>:
+            <li style="list-style-type: decimal">Invoke the <i>helloPy</i> action using command-line parameters:
               <div class="terminal">
-{% highlight bash %}$ wsk action invoke helloGo -r -p name gopher{% endhighlight %}
+{% highlight bash %}$ wsk action invoke helloPy --blocking --param name World{% endhighlight %}
               </div>
               <div class="terminal">
 {% highlight yaml %}
 {
-"msg": "Hello, gopher!"
+"greeting": "Hello World!"
 }
 {% endhighlight %}
               </div>
             </li>
-            <li style="list-style-type: decimal">
-              Deploy using <i>wskdeploy</i>:
+            <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.
+                <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:
+                <li>Create <i>manifest.yaml</i> with the following YAML content:
                   <div class="terminal">
 {% highlight yaml linenos %}
-{% include code/manifest-for-helloGo.yaml %}
+{% include code/manifest-for-helloPy-1.yaml %}
+{% endhighlight %}
+                  </div>
+                  Or
+                  <p></p>
+                  <div class="terminal">
+{% highlight yaml linenos %}
+{% include code/manifest-for-helloPy-2.yaml %}
 {% endhighlight %}
                   </div>
                 </li>
@@ -1082,20 +1105,26 @@ <h5>Creating And Invoking Go actions</h5>
               </ol>
             </li>
           </ol>
-          <a class="indexable" id="go-runtime"></a>
-          <h5>OpenWhisk Runtime for Go</h5>
+
+          <a class="indexable" id="python-runtime"></a>
+          <h5>OpenWhisk Runtime for Python</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>.
+            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="go-additional-resources"></a>
+          <a class="indexable" id="python-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>
+            <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>
+          <h6>Medium Blogs <span style="font-weight:normal;">(tagged <a href="https://medium.com/openwhisk/tagged/python">python</a>)</span></h6>
+          <!-- <ul>
+            <li><a href="https://medium.com/openwhisk/python-packages-in-openwhisk-8d10dcd91257">Python Packages in OpenWhisk</a></li>
+            <li><a href="https://medium.com/openwhisk/large-applications-on-openwhisk-bcf15bff94ec">Large Applications on OpenWhisk</a></li>
+          </ul> -->
         </div>
 
         <!-- ************************************** -->
@@ -1177,6 +1206,13 @@ <h5>Additional Resources</h5>
               <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>
+          <!-- TODO: Java blogs are outdated / need update -->
+          <!-- <h6>Medium Blogs <span style="font-weight:normal;">(tagged <a href="https://medium.com/openwhisk/tagged/java">java</a>)</span></h6>
+          <ul>
+            <li><a href="https://www.ibm.com/blogs/bluemix/2017/02/building-openwhisk-actions-java-gradle/">OpenWhisk actions with Java and Gradle</a></li>
+            <li><a href=""></a></li>
+            <li><a href=""></a></li>
+          </ul> -->
         </div>
 
         <!-- ************************************** -->
@@ -1278,6 +1314,11 @@ <h5>Additional Resources</h5>
             <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>
+          <h6>Medium Blogs <span style="font-weight:normal;">(tagged <a href="https://medium.com/openwhisk/tagged/php">php</a>)</span></h6>
+          <ul>
+            <li><a href="https://medium.com/openwhisk/using-serverless-framework-with-apache-openwhisk-and-php-76472727e9d8">Using Serverless Framework with OpenWhisk PHP</a></li>
+            <li><a href="https://medium.com/openwhisk/serverless-php-how-to-implement-serverless-functions-in-php-using-openwhisk-9943dc06f544">Serverless PHP: How to implement serverless functions in PHP using OpenWhisk</a></li>
+          </ul>
         </div>
 
         <!-- ************************************** -->
@@ -1372,32 +1413,113 @@ <h5>OpenWhisk Runtime for Ruby</h5>
           </p>
           <a class="indexable" id="ruby-additional-resources"></a>
           <h5>Additional Resources</h5>
+          <p></p>
+          <h6>Medium Blogs <span style="font-weight:normal;">(tagged <a href="https://medium.com/openwhisk/tagged/ruby">ruby</a>)</span></h6>
           <ul>
-            <li>Coming soon...</li>
+            <li><a href="https://medium.com/openwhisk/ruby-goes-serverless-apache-openwhisk-adds-native-support-for-ruby-7134faee14e">Ruby goes Serverless! - Apache OpenWhisk adds native support for Ruby</a></li>
           </ul>
         </div>
 
         <!-- ************************************** -->
-        <!-- TODO: Actions - Swift                  -->
+        <!-- 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>
+        <a class="indexable" id="swift"></a>
+        <h6 id="section-swift" class="section-toggle">using Swift</h6>
+        <div class="section-toggleable section-toggle-start-closed">
+          <p></p>
+          <a class="indexable" id="actions-swift"></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> -->
+            You can visit
+            <a href="https://github.com/apache/incubator-openwhisk-runtime-swift#quick-swift-action">Quick Swift Action</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-swift"></a>
+              Create a file named <i>hello.swift</i>:
+              <div class="terminal">
+{% highlight java linenos %}
+{% include code/hello.swift %}
+{% endhighlight %}
+              </div>
+            </li>
+            <li style="list-style-type: decimal">
+              Create an action <i>helloSwift</i>:
+              <div class="terminal">
+{% highlight bash %}$ wsk action create helloSwift hello.swift{% endhighlight %}
+              </div>
+            </li>
+            <li style="list-style-type: decimal">
+                Invoke an action <i>helloSwift</i>:
+              <div class="terminal">
+{% highlight bash %}$ wsk action invoke helloSwift -r -p name Carlos{% endhighlight %}
+              </div>
+              <div class="terminal">
+{% highlight yaml %}
+{
+"msg": "Hello Carlos!"
+}
+{% 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.swift</i> from step 1 <a href="#hello-swift">above</a>.
+                </li>
+                <li>
+                  Create <i>manifest.yaml</i> with the following YAML content:
+                  <div class="terminal">
+{% highlight yaml linenos %}
+{% include code/manifest-for-helloSwift.yaml %}
+{% endhighlight %}
+                  </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="swift-runtime"></a>
+          <h5>OpenWhisk Runtime for Swift</h5>
+          <p>
+            If you wish to learn more about Swift runtime along with
+            the libraries that are supported or "built-in" by
+            default, please visit the project REAMDE
+            <a href="https://github.com/apache/incubator-openwhisk-runtime-swift#apache-openwhisk-runtimes-for-swift">Apache OpenWhisk runtimes for Swift</a>.
+          </p>
+          <a class="indexable" id="swift-additional-resources"></a>
+          <h5>Additional Resources</h5>
+          <ul>
+            <li><a href="https://github.com/apache/incubator-openwhisk-runtime-swift#swift-4x-support">Swift 4.x Codeable style example</a></li>
+            <li><a href="https://github.com/apache/incubator-openwhisk-runtime-swift#packaging-an-action-as-a-swift-executable-using-swift-4">Packaging an action as a Swift executable using Swift 4</a></li>
+          </ul>
+          <h6>Medium Blogs <span style="font-weight:normal;">(tagged <a href="https://medium.com/openwhisk/tagged/swift">swift</a>)</span></h6>
+          <ul>
+            <li><a href="https://medium.com/openwhisk/serverless-swift-with-openwhisk-4f84129e6839">Serverless Swift With OpenWhisk</a></li>
+            <li><a href="https://medium.com/openwhisk/creating-swift-binaries-for-openwhisk-487526d0d576">Creating Swift Binaries for OpenWhisk</a></li>
+            <li><a href="https://medium.com/openwhisk/creating-an-openwhisk-alexa-skill-583824bf58cb">Creating an OpenWhisk Alexa skill</a> using Swift</li>
+          </ul>
+        </div>
 
         <!-- ************************************** -->
         <!-- TODO: Actions - Docker                 -->
@@ -1428,27 +1550,25 @@ <h5 id="docker-other-resources">Other Resources</h5>
     </main> <!-- creating and invoking actions -->
 
     <!-- *************************************************************** -->
-    <!-- Packages                                                        -->
+    <!-- Packages Managing Actions                                       -->
     <!-- *************************************************************** -->
-
-    <!-- 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>
+        <h3>Managing Actions with OpenWhisk Packages</h3>
         <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.
+          <question>What is a package?</question> 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>
+          <question>Does OpenWhisk comes with any pre-installed packages?</question>
           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>
+          <question>Which all packages are available under /whisk.system?</question>
           You can get a list of packages available in shared namespace by using wsk CLI:
         </p>
         <ul>
@@ -1466,7 +1586,7 @@ <h4>Managing Actions with OpenWhisk Packages</h4>
           </li>
         </ul>
         <p>
-          <strong>How do I invoke an action from a public package?</strong>
+          <question>How do I invoke an action from a public package?</question>
           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.
@@ -1542,7 +1662,7 @@ <h4>Managing Actions with OpenWhisk Packages</h4>
           </li>
         </ul>
         <p>
-          <strong>Where do I get more information on packages?</strong>
+          <question>Where do I get more information on packages?</question>
           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.
@@ -1553,7 +1673,7 @@ <h4>Managing Actions with OpenWhisk Packages</h4>
     <main class="doc">
       <div class="content">
         <a class="indexable" id="automating_actions_from_event_sources"></a>
-        <h4>Automating Actions from Event Sources</h4>
+        <h3>Automating Actions from Event Sources</h3>
         <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
@@ -1676,7 +1796,7 @@ <h5>Invoke the Action by Firing the Trigger</h5>
     <main class="doc">
       <div class="content">
           <a class="indexable" id="using_openwhisk_enabled_services"></a>
-          <h4>Using OpenWhisk Enabled Services</h4>
+          <h3>Using OpenWhisk Enabled Services</h3>
           <p></p>
           <p>
             OpenWhisk offers a catalog of packages which gives you can easy
@@ -1755,7 +1875,7 @@ <h4>Using OpenWhisk Enabled Services</h4>
     <main class="doc">
       <div class="content">
         <a class="indexable" id="sample_openwhisk_applications"></a>
-        <h4>Sample OpenWhisk Applications</h4>
+        <h3>Sample OpenWhisk Applications</h3>
         <p></p>
         <h5>GitHub Slack Bot</h5>
         <p style="padding-left: 2em;">
@@ -1790,7 +1910,7 @@ <h5>openwhisk-slackinvite:</h5>
     <main class="doc">
       <div class="content">
           <a class="indexable" id="tutorial_and_workshop"></a>
-          <h4>Tutorial and Workshop</h4>
+          <h3>Tutorial and Workshop</h3>
           <p></p>
           <h5>OpenWhisk Tutorial</h5>
           <p style="padding-left: 2em;">
@@ -1810,7 +1930,7 @@ <h5>OpenWhisk Workshop</h5>
     <main class="doc">
       <div class="content">
         <a class="indexable" id="development_tools"></a>
-        <h4>Development Tools</h4>
+        <h3>Development Tools</h3>
         <p></p>
         <h5>The OpenWhisk Debugger</h5>
         <p class="indented">
@@ -1839,7 +1959,7 @@ <h2>Contributors</h2>
         others' Pull Requests (PRs).
         </p>
         <p>
-        The following Wiki pages describe the How Tos of becoming an
+        The following Wiki pages describe the "How Tos" of becoming an
         official Contributor:
         </p>
         <ul>
@@ -1851,16 +1971,18 @@ <h2>Contributors</h2>
         <!-- Contributors - project Structure                        -->
         <!-- ******************************************************* -->
         <a class="indexable" id="project-structure"></a>
-        <h4>Project Structure</h4>
+        <h3>Project Structure</h3>
         <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>
+        <ul>
+          <li><a href="https://github.com/apache?q=openwhisk">https://github.com/apache?q=openwhisk</a></li>
+        </ul>
         <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>
+            <h5>Platform</h5>
             <p>Primary source code repositories including platform code,
               run books, tests and more.</p>
             <p class="repo-title border-deeper-sea-green">
@@ -1890,7 +2012,7 @@ <h4>Platform</h4>
             </p>
           </div>
           <div class="project-structure-repo theme-deeper-sky-blue">
-            <h4>Runtimes</h4>
+            <h5>Runtimes</h5>
             <p>OpenWhisk supports several languages via Docker runtime
               containers.</p>
             <p class="repo-title border-deeper-sky-blue">
@@ -1935,7 +2057,7 @@ <h4>Runtimes</h4>
             </p>
           </div>
           <div class="project-structure-repo theme-darkgoldenrod">
-            <h4>Deployments</h4>
+            <h5>Deployments</h5>
             <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"
@@ -1979,7 +2101,7 @@ <h4>Deployments</h4>
             </p>
           </div>
           <div class="project-structure-repo theme-deeper-aquamarine">
-            <h4>Tooling</h4>
+            <h5>Tooling</h5>
             <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"
@@ -2031,7 +2153,7 @@ <h4>Tooling</h4>
             </p>
           </div>
           <div class="project-structure-repo theme-darksalmon">
-            <h4>Packages</h4>
+            <h5>Packages</h5>
             <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,
@@ -2098,7 +2220,7 @@ <h4>Packages</h4>
             </p>
           </div>
           <div class="project-structure-repo theme-deeper-aquamarine">
-            <h4>Clients and SDK</h4>
+            <h5>Clients and SDK</h5>
             <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"
@@ -2127,7 +2249,7 @@ <h4>Clients and SDK</h4>
             </p>
           </div>
           <div class="project-structure-repo theme-darkorange">
-            <h4>Samples</h4>
+            <h5>Samples</h5>
             <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"
@@ -2168,7 +2290,7 @@ <h4>Samples</h4>
             </p>
           </div>
           <div class="project-structure-repo theme-darkred">
-            <h4>Others</h4>
+            <h5>Others</h5>
             <p>Few other misc. but crucial repositories.</p>
             <p class="repo-title border-darkred">
               <a href="https://github.com/apache/incubator-openwhisk-release"
@@ -2236,7 +2358,7 @@ <h2>Operators</h2>
         <!-- ***************************************************** -->
 
         <a class="indexable" id="openwhisk_architecture"></a>
-        <h4>OpenWhisk Architecture</h4>
+        <h3>OpenWhisk Architecture</h3>
         <p>
           The diagram below depicts the high-level architecture of
           OpenWhisk. From Nginx to Kafka to Docker, multiple
@@ -2260,7 +2382,7 @@ <h4>OpenWhisk Architecture</h4>
         <!-- Operators - Deployment Options                        -->
         <!-- ***************************************************** -->
         <a class="indexable" id="openwhisk_deployment"></a>
-        <h4>Deployment Options</h4>
+        <h3>Deployment Options</h3>
         <p>
           OpenWhisk offers different deployment options
           for installing and configuring the OpenWhisk platform components.
@@ -2284,7 +2406,7 @@ <h5>Kubernetes</h5>
           Google, IBM Cloud, etc.).
         </p>
 
-        <h4>Alternative options</h4>
+        <h3>Alternative options</h3>
         <p>Here are some alternate choices for deploying the OpenWhisk
           platform:
         </p>
@@ -2369,7 +2491,7 @@ <h5>OpenShift</h5>
         <!-- Operators  - Admin                                      -->
         <!-- ******************************************************* -->
         <a class="indexable" id="deployment_admin"></a>
-        <h4>Administrative Operations</h4>
+        <h3>Administrative Operations</h3>
         <p>
           This section contains a list of resources which can be utilized
           to administer the running OpenWhisk instance.
@@ -2382,7 +2504,7 @@ <h4>Administrative Operations</h4>
         <!-- Operators  - Resources                                  -->
         <!-- ******************************************************* -->
         <a class="indexable" id="operators_resources"></a>
-        <h4>Operator Resources</h4>
+        <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>
@@ -2398,7 +2520,7 @@ <h4>Operator Resources</h4>
     <main class="doc">
       <div class="content">
         <a class="indexable" id="other-resources"></a>
-        <h2>Other Resources</h2>
+        <h3>Other Resources</h3>
         <ul>
           <li><a href="events.html">Events</a> - list of past OpenWhisk
             events</li>
@@ -2413,7 +2535,7 @@ <h2>Other Resources</h2>
     <main class="doc">
       <div class="content">
         <a class="indexable" id="faq"></a>
-        <h2>Frequently Asked Questions</h2>
+        <h3>Frequently Asked Questions</h3>
         {% include partial/faq.html %}
       </div>
     </main>
diff --git a/_layouts/downloads.html b/_layouts/downloads.html
index 01a9131..13decc1 100644
--- a/_layouts/downloads.html
+++ b/_layouts/downloads.html
@@ -76,7 +76,7 @@ <h5 class="section-toggle section-toggle-start-open ">1.12.x-incubating (2018-09
                   <div class="content">
                    <div class="flow-columns">
                       <div class="project-structure-repo theme-deeper-sea-green">
-                        <h4>OpenWhisk Runtime Node.js</h4>
+                        <h5>OpenWhisk Runtime Node.js</h5>
                         <p class="repo-title border-deeper-sea-green">
                           <a
                             href="https://www.apache.org/dyn/closer.lua?filename=incubator/openwhisk/apache-openwhisk-1.12.0-incubating/openwhisk-runtime-nodejs-1.12.0-incubating-sources.tar.gz&action=download">
@@ -98,7 +98,7 @@ <h4>OpenWhisk Runtime Node.js</h4>
                       </div>
 
                       <div class="project-structure-repo theme-deeper-sky-blue">
-                        <h4>OpenWhisk Runtime Java</h4>
+                        <h5>OpenWhisk Runtime Java</h5>
                         <p class="repo-title border-deeper-sky-blue">
                           <a
                             href="https://www.apache.org/dyn/closer.lua?filename=incubator/openwhisk/apache-openwhisk-1.12.0-incubating/openwhisk-runtime-java-1.12.0-incubating-sources.tar.gz&action=download">
@@ -120,7 +120,7 @@ <h4>OpenWhisk Runtime Java</h4>
                       </div>
 
                       <div class="project-structure-repo theme-darkgoldenrod">
-                        <h4>OpenWhisk Runtime Docker</h4>
+                        <h5>OpenWhisk Runtime Docker</h5>
                         <p class="repo-title border-darkgoldenrod">
                           <a
                             href="https://www.apache.org/dyn/closer.lua?filename=incubator/openwhisk/apache-openwhisk-1.12.0-incubating/openwhisk-runtime-docker-1.12.0-incubating-sources.tar.gz&action=download">
@@ -142,7 +142,7 @@ <h4>OpenWhisk Runtime Docker</h4>
                       </div>
 
                       <div class="project-structure-repo theme-deeper-aquamarine">
-                        <h4>OpenWhisk Runtime Python</h4>
+                        <h5>OpenWhisk Runtime Python</h5>
                         <p class="repo-title border-deeper-aquamarine">
                           <a
                             href="https://www.apache.org/dyn/closer.lua?filename=incubator/openwhisk/apache-openwhisk-1.12.0-incubating/openwhisk-runtime-python-1.12.0-incubating-sources.tar.gz&action=download">
@@ -164,7 +164,7 @@ <h4>OpenWhisk Runtime Python</h4>
                       </div>
 
                       <div class="project-structure-repo theme-darksalmon">
-                        <h4>OpenWhisk Runtime PHP</h4>
+                        <h5>OpenWhisk Runtime PHP</h5>
                         <p class="repo-title border-darksalmon">
                           <a
                             href="https://www.apache.org/dyn/closer.lua?filename=incubator/openwhisk/apache-openwhisk-1.12.0-incubating/openwhisk-runtime-php-1.12.0-incubating-sources.tar.gz&action=download">
@@ -186,7 +186,7 @@ <h4>OpenWhisk Runtime PHP</h4>
                       </div>
 
                       <div class="project-structure-repo theme-darkorange">
-                        <h4>OpenWhisk Runtime Swift</h4>
+                        <h5>OpenWhisk Runtime Swift</h5>
                         <p class="repo-title border-darkorange">
                           <a
                             href="https://www.apache.org/dyn/closer.lua?filename=incubator/openwhisk/apache-openwhisk-1.12.0-incubating/openwhisk-runtime-swift-1.12.0-incubating-sources.tar.gz&action=download">
@@ -215,7 +215,7 @@ <h5 class="section-toggle section-toggle-start-open ">0.9.x-incubating (2018-07-
                   <div class="content">
                     <div class="flow-columns">
                       <div class="project-structure-repo theme-deeper-sea-green">
-                        <h4>OpenWhisk</h4>
+                        <h5>OpenWhisk</h5>
                         <p>Core service of OpenWhisk.</p>
                         <p class="repo-title border-deeper-sea-green">
                           <a
@@ -238,7 +238,7 @@ <h4>OpenWhisk</h4>
                       </div>
 
                       <div class="project-structure-repo theme-deeper-sky-blue">
-                        <h4>OpenWhisk CLI</h4>
+                        <h5>OpenWhisk CLI</h5>
                         <p>OpenWhisk command-line interface.</p>
                         <p class="repo-title border-deeper-sky-blue">
                           <a
@@ -261,7 +261,7 @@ <h4>OpenWhisk CLI</h4>
                       </div>
 
                       <div class="project-structure-repo theme-darkgoldenrod">
-                        <h4>OpenWhisk Client Go</h4>
+                        <h5>OpenWhisk Client Go</h5>
                         <p>OpenWhisk client library in Go.</p>
                         <p class="repo-title border-darkgoldenrod">
                           <a
@@ -284,7 +284,7 @@ <h4>OpenWhisk Client Go</h4>
                       </div>
 
                       <div class="project-structure-repo theme-deeper-aquamarine">
-                        <h4>OpenWhisk Wskdeploy</h4>
+                        <h5>OpenWhisk Wskdeploy</h5>
                         <p>OpenWhisk utility to configure OpenWhisk entities with a Manifest file written in YAML, and deploy them in a single command.</p>
                         <p class="repo-title border-deeper-aquamarine">
                           <a
@@ -307,7 +307,7 @@ <h4>OpenWhisk Wskdeploy</h4>
                       </div>
 
                       <div class="project-structure-repo theme-darksalmon">
-                        <h4>OpenWhisk Catalog</h4>
+                        <h5>OpenWhisk Catalog</h5>
                         <p>Package catalogs of OpenWhisk, which provides an easy way to enhance your application with useful capabilities, and to access external services in the ecosystem.</p>
                         <p class="repo-title border-darksalmon">
                           <a
@@ -330,7 +330,7 @@ <h4>OpenWhisk Catalog</h4>
                       </div>
 
                       <div class="project-structure-repo theme-darkorange">
-                        <h4>OpenWhisk Apigateway</h4>
+                        <h5>OpenWhisk Apigateway</h5>
                         <p>A performant API Gateway based on Openresty and NGINX.</p>
                         <p class="repo-title border-darkorange">
                           <a
diff --git a/_layouts/home.html b/_layouts/home.html
index e8e53c7..efd932c 100644
--- a/_layouts/home.html
+++ b/_layouts/home.html
@@ -20,10 +20,28 @@ <h5>Executes functions in response to events at any scale</h5>
         <div class="content">
             <h4>What is Apache OpenWhisk?</h4>
             <p>
-                Apache OpenWhisk (Incubating) is an open source, distributed <a href="https://en.wikipedia.org/wiki/Serverless_computing" style="font-weight:bold">Serverless</a> platform that executes functions (<span style="font-family:Times New Roman,Georgia,Serif">fx</span>) in response to events at any scale. OpenWhisk manages the infrastructure, servers and scaling using Docker containers so you can focus on building amazing and efficient applications.
+                Apache OpenWhisk (Incubating) is an open source, distributed
+                <a href="https://en.wikipedia.org/wiki/Serverless_computing">Serverless</a>
+                platform that executes functions
+                (<span style="font-family:Times New Roman,Georgia,Serif">fx</span>)
+                in response to events at any scale. OpenWhisk manages the
+                infrastructure, servers and scaling using Docker containers
+                so you can focus on building amazing and efficient
+                applications.
             </p>
             <p>
-                The OpenWhisk platform supports a programming model in which developers write functional logic (called <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/actions.md"><span style="font-weight:bold">Actions</span></a>), in any supported programming language, that can be dynamically scheduled and run in response to associated events (via <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/triggers_rules.md"><span style="font-weight:bold">Triggers</span></a>) from external sources (<a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/feeds.md"><span style="font-weight:bold">Feeds</span></a>) or from HTTP requests. The project includes a REST API-based Command Line Interface (CLI) along with other tooling to support packaging, catalog services and many popular container deployment options.
+                The OpenWhisk platform supports a programming model in which
+                developers write functional logic (called
+                <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/actions.md#openwhisk-actions">Actions</a>),
+                in any supported programming language, that can be dynamically
+                scheduled and run in response to associated events (via
+                <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/triggers_rules.md#creating-triggers-and-rules">Triggers</a>)
+                from external sources (
+                <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/feeds.md#implementing-feeds">Feeds</a>)
+                or from HTTP requests. The project includes a REST API-based
+                Command Line Interface (CLI) along with other tooling to
+                support packaging, catalog services and many popular container
+                deployment options.
             </p>
             <a class="button" href="{{ site.github.url }}/documentation.html#openwhisk_deployment">Create Your Local Playground</a>
         </div>
@@ -40,7 +58,20 @@ <h4>What is Apache OpenWhisk?</h4>
         <div class="content">
             <h4>Deploys anywhere</h4>
             <p>
-                Since Apache OpenWhisk builds its components using containers it easily supports many deployment options both locally and within Cloud infrastructures. Options include many of today's popular Container frameworks such as <a style="font-weight:bold" href="https://github.com/apache/incubator-openwhisk-deploy-kube/blob/master/README.md">Kubernetes</a>, <a style="font-weight:bold" href="https://github.com/apache/incubator-openwhisk-deploy-mesos/blob/master/README.md">Mesos</a> and <a style="font-weight:bold" href="https://github.com/apache/incubator-openwhisk-devtools/blob/master/docker-compose/README.md">Compose</a>.  Recent contributions even include deployment options such as <a style="font-weight:bold" href="https://github.com/apache/incubator-openwhisk-deploy-kube/blob/master/docs/minikube.md">Minikube</a> and <a style="font-weight:bold" href="https://github.com/apache/incubator-openwhisk-deploy-openshift/blob/master/README.md">OpenShift</a>.
+                Since Apache OpenWhisk builds its components using containers
+                it easily supports many deployment options both locally and
+                within Cloud infrastructures. Options include many of today's
+                popular Container frameworks such as
+                <a href="https://github.com/apache/incubator-openwhisk-deploy-kube/blob/master/README.md">Kubernetes</a>,
+                <a href="https://github.com/apache/incubator-openwhisk-deploy-mesos/blob/master/README.md">Mesos</a>,
+                <a href="https://github.com/apache/incubator-openwhisk-deploy-openshift/blob/master/README.md">OpenShift</a> and
+                <a href="https://github.com/apache/incubator-openwhisk-devtools/blob/master/docker-compose/README.md">Compose</a>.
+                In general, the community endorses deployment on Kubernetes
+                using
+                <a href="https://helm.sh/Helm">Helm</a>
+                charts since it provides many easy and convenient
+                implementations for both Devlopers and Operators alike such as
+                <a href="https://github.com/apache/incubator-openwhisk-deploy-kube/blob/master/docs/minikube.md">Minikube</a>.
             </p>
         </div>
     </main>
@@ -51,18 +82,30 @@ <h4>Deploys anywhere</h4>
             <h4>Write functions in any language</h4>
             <!-- Possible text addition: "bundle larger or complex dependencies, and tailor the runtime environment to suite your needs."" -->
             <p>
-                Work with what you know and love. OpenWhisk supports a growing list of your favorite languages such as
-                <b><a href="https://github.com/apache/incubator-openwhisk-runtime-nodejs">NodeJS</a></b>,
-                <b><a href="https://github.com/apache/incubator-openwhisk-runtime-swift">Swift</a></b>,
-                <b><a href="https://github.com/apache/incubator-openwhisk-runtime-java">Java</a></b>,
-                <b><a href="https://github.com/apache/incubator-openwhisk-runtime-go">Go</a></b>,
-                <b><a href="https://github.com/apache/incubator-openwhisk-runtime-java">Scala</a></b>,
-                <b><a href="https://github.com/apache/incubator-openwhisk-runtime-python">Python</a></b>,
-                <b><a href="https://github.com/apache/incubator-openwhisk-runtime-php">PHP</a></b> and
-                <b><a href="https://github.com/apache/incubator-openwhisk-runtime-ruby">Ruby</a></b>.
+                Work with what you know and love. OpenWhisk supports a
+                growing list of your favorite languages such as
+                <a href="https://github.com/apache/incubator-openwhisk-runtime-nodejs">NodeJS</a>,
+                <a href="https://github.com/apache/incubator-openwhisk-runtime-swift">Swift</a>,
+                <a href="https://github.com/apache/incubator-openwhisk-runtime-java">Java</a>,
+                <a href="https://github.com/apache/incubator-openwhisk-runtime-go">Go</a>,
+                <a href="https://github.com/apache/incubator-openwhisk-runtime-java">Scala</a>,
+                <a href="https://github.com/apache/incubator-openwhisk-runtime-python">Python</a>,
+                <a href="https://github.com/apache/incubator-openwhisk-runtime-php">PHP</a> and
+                <a href="https://github.com/apache/incubator-openwhisk-runtime-ruby">Ruby</a>.
             </p>
             <p>
-                If you need languages or libraries the current "out-of-the-box" runtimes do not support, you can create and customize your own executables as Zip Actions which run on the <b><a href="https://github.com/apache/incubator-openwhisk-runtime-docker/blob/master/README.md">Docker</a></b> runtime by using the <b><a href="https://github.com/apache/incubator-openwhisk-runtime-docker/blob/master/sdk/docker/README.md">Docker SDK</a></b>.  Some examples of how to support other languages using Docker Actions include <b><a href="https://medium.com/openwhisk/openwhisk-and-rust-lang-24025734a834">Rust</a></b>, and <b><a href="https://github.com/rainbyte/openwhisk-wrapper">Haskell</a></b>.
+                If you need languages or libraries the current
+                "out-of-the-box" runtimes do not support, you can create
+                and customize your own executables as Zip Actions which
+                run on the
+                <a href="https://github.com/apache/incubator-openwhisk-runtime-docker/blob/master/README.md">Docker</a>
+                runtime by using the
+                <a href="https://github.com/apache/incubator-openwhisk-runtime-docker/blob/master/sdk/docker/README.md">Docker SDK</a>.
+                Some examples of how to support other languages using
+                Docker Actions include
+                <a href="https://medium.com/openwhisk/openwhisk-and-rust-lang-24025734a834">Rust</a>,
+                and
+                <a href="https://github.com/rainbyte/openwhisk-wrapper">Haskell</a>.
             </p>
             <p>
                 Once you have your function written, use the
@@ -86,26 +129,32 @@ <h4>Integrate easily with many popular services</h4>
             <p>
                 OpenWhisk makes it simple for developers to integrate their
                 Actions with many popular services using
-                <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/packages.md"><span style="font-weight:bold">Packages</span></a>
+                <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/packages.md">Packages</a>
                 that are provided either as independently developed
                 projects under the OpenWhisk family or as part of
                 our default
-                <a href="https://github.com/apache/incubator-openwhisk-catalog">catalog</a>.
+                <a href="https://github.com/apache/incubator-openwhisk-catalog">Catalog</a>.
             </p>
             <p>
               Packages offer integrations with general services such as
-                <a href="https://github.com/apache/incubator-openwhisk-package-kafka">Kafka</a> message queues,
+                <a href="https://github.com/apache/incubator-openwhisk-package-kafka">Kafka</a>
+                message queues,
                 databases including <a href="https://github.com/apache/incubator-openwhisk-package-cloudant">Cloudant</a>,
-                <a href="https://github.com/apache/incubator-openwhisk-package-pushnotifications">Push Notifications</a> from mobile applications,
-                <a href="https://github.com/apache/incubator-openwhisk-catalog/tree/master/packages/slack">Slack</a> messaging,
-                and <a href="https://github.com/apache/incubator-openwhisk-package-rss">RSS</a> feeds.
+                <a href="https://github.com/apache/incubator-openwhisk-package-pushnotifications">Push Notifications</a>
+                from mobile applications,
+                <a href="https://github.com/apache/incubator-openwhisk-catalog/tree/master/packages/slack">Slack</a>
+                messaging,
+                and <a href="https://github.com/apache/incubator-openwhisk-package-rss">RSS</a>
+                feeds.
                 Development pipelines can take advantage of integrations with
                 <a href="https://github.com/apache/incubator-openwhisk-catalog/tree/master/packages/github">GitHub</a>,
                 <a href="https://github.com/apache/incubator-openwhisk-package-jira">JIRA</a>,
                 or easily connect with custom data services from
                 IBM Watson for <a href="https://github.com/apache/incubator-openwhisk-catalog/tree/master/packages/watson-translator">Translation</a>
-                or <a href="https://github.com/apache/incubator-openwhisk-catalog/tree/master/packages/watson-speechToText">Speech-to-Text</a>, as well as the
-                <a href="https://github.com/apache/incubator-openwhisk-catalog/tree/master/packages/weather">Weather</a> company.
+                or <a href="https://github.com/apache/incubator-openwhisk-catalog/tree/master/packages/watson-speechToText">Speech-to-Text</a>,
+                as well as the
+                <a href="https://github.com/apache/incubator-openwhisk-catalog/tree/master/packages/weather">Weather</a>
+                company.
             </p>
             <p>
                 You can even use the <a href="https://github.com/apache/incubator-openwhisk-package-alarms">Alarms</a>
diff --git a/_scss/_base.scss b/_scss/_base.scss
index 21b16b8..9c7f1a9 100644
--- a/_scss/_base.scss
+++ b/_scss/_base.scss
@@ -48,6 +48,13 @@ strong {
   color: $color-blue-dark;
 }
 
+question {
+    font-style: italic;
+    font-weight: 500;
+    font-size: 14px;
+    color: $color-blue-black;
+}
+
 // Header is only shown on the "home" page
 #whiskHeader {
   background-color: $color-blue-dark;
@@ -105,6 +112,33 @@ strong {
   display: table;
   padding-top: $whisk-header-base-padding-top;
 
+  h2 {
+    font-weight: bolder;
+  }
+
+  h3 {
+    font-weight: 500;
+  }
+
+  h4 {
+    color: $color-blue-black;
+    display: inline;
+    font-size: $h4-font-size;
+    line-height: $h4-line-height;
+    margin-top: 10px;
+    border-bottom: 2px solid $color-blue-black;
+  }
+
+// h4::before {
+//     color: $color-blue-black;
+//     display: inline-block;
+//     content: "";
+//     border-top: .1rem solid black;
+//     width: 100%;
+//     margin: 0;
+//     //transform: translateY(-1rem);
+// }
+
   #whiskIndex {
     // position menu relative to header
     display: float;
@@ -161,6 +195,7 @@ strong {
     background: $color-bg-base-main;
     margin-bottom: $whisk-nodes-padding-base-Y;
   }
+
   .content {
     background: $color-bg-base-content;
     // Provide for space around content's text
@@ -169,6 +204,7 @@ strong {
     // Provide a space between image and content when vertical
     margin-top: 20px;
   }
+
   .image-wrapper {
     background: $color-bg-base-image-wrapper;
     display: table-header-group;
diff --git a/_scss/_skin.scss b/_scss/_skin.scss
index 1d010ab..dc86471 100644
--- a/_scss/_skin.scss
+++ b/_scss/_skin.scss
@@ -53,6 +53,7 @@ p, ul, ol, li {
 
 a, a:visited, a:hover, a:active {
   color: $color-anchors;
+  font-weight: bold;
 }
 
 a.button {
diff --git a/_scss/_variables.scss b/_scss/_variables.scss
index 5eb1a96..830c3a8 100644
--- a/_scss/_variables.scss
+++ b/_scss/_variables.scss
@@ -153,8 +153,8 @@ $h2-line-height: normal;
 $h3-font-size: 24px;
 $h3-line-height: 32px;
 
-$h4-font-size: 20px;
-$h4-line-height: 28px;
+$h4-font-size: 22px;
+$h4-line-height: 30px;
 
 $h5-font-size: 16px;
 $h5-line-height: 24px;


 

----------------------------------------------------------------
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