You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zeppelin.apache.org by mi...@apache.org on 2016/06/08 18:44:41 UTC

[2/2] incubator-zeppelin git commit: [ZEPPELIN-952] Refine website style

[ZEPPELIN-952] Refine website style

### What is this PR for?
- update document style (font, line-spacing)
- apply same formats for documents
- fix broke document styles

### What type of PR is it?
Documentation

### What is the Jira issue?
[ZEPPELIN-952](https://issues.apache.org/jira/browse/ZEPPELIN-952)

### Screenshots (if appropriate)
**Before**
<img width="1184" alt="screen shot 2016-06-04 at 9 51 38 pm" src="https://cloud.githubusercontent.com/assets/8503346/15803667/d0dd5ac2-2a9f-11e6-9ed0-ddc369a97612.png">

**After**
<img width="1184" alt="screen shot 2016-06-04 at 9 15 08 pm" src="https://cloud.githubusercontent.com/assets/8503346/15803666/cd9212ea-2a9f-11e6-986e-17992a495ab6.png">

**Before**
<img width="1183" alt="screen shot 2016-06-04 at 10 08 53 pm" src="https://cloud.githubusercontent.com/assets/8503346/15803695/03e73126-2aa1-11e6-8675-3ca437aeb833.png">

**After**
<img width="1184" alt="screen shot 2016-06-04 at 10 08 18 pm" src="https://cloud.githubusercontent.com/assets/8503346/15803696/078ce866-2aa1-11e6-9044-4f5e16649eb4.png">

**Before**
<img width="1184" alt="screen shot 2016-06-04 at 10 10 47 pm" src="https://cloud.githubusercontent.com/assets/8503346/15803704/5787e9ba-2aa1-11e6-804c-076a8f3aa852.png">

**After**
<img width="1184" alt="screen shot 2016-06-04 at 10 11 22 pm" src="https://cloud.githubusercontent.com/assets/8503346/15803707/5afb5d0c-2aa1-11e6-98c7-7440db35bd2f.png">

**Before**
<img width="188" alt="screen shot 2016-06-04 at 10 12 36 pm" src="https://cloud.githubusercontent.com/assets/8503346/15803719/92e5cc3e-2aa1-11e6-9a9f-e12150e78733.png">

**After**
<img width="199" alt="screen shot 2016-06-04 at 10 12 55 pm" src="https://cloud.githubusercontent.com/assets/8503346/15803721/958e8c00-2aa1-11e6-8768-8350db6e7173.png">

### Questions:
* Does the licenses files need update? No
* Is there breaking changes for older versions? No
* Does this needs documentation? No

Author: Mina Lee <mi...@nflabs.com>

Closes #962 from minahlee/ZEPPELIN-952 and squashes the following commits:

f9bee91 [Mina Lee] Capitalize hawq
72481bd [Mina Lee] Update doc titles
495a074 [Mina Lee] remove old style.css
27ca869 [Mina Lee] use code block for file location in spark.md
eb821f1 [Mina Lee] Change file location and rename file
72f8ec3 [Mina Lee] change storage doc layout and fix pre block
4202208 [Mina Lee] Apply same format for rest api docs
5875066 [Mina Lee] split display page into text and html
8bc5a6e [Mina Lee] prettify document
0cb953e [Mina Lee] remove incubating tag


Project: http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/commit/70ab1a37
Tree: http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/tree/70ab1a37
Diff: http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/diff/70ab1a37

Branch: refs/heads/master
Commit: 70ab1a376d8b7ac136e12ac72e995af54d7d25d8
Parents: d3d93e7
Author: Mina Lee <mi...@nflabs.com>
Authored: Sat Jun 4 21:54:02 2016 -0700
Committer: Mina Lee <mi...@nflabs.com>
Committed: Wed Jun 8 11:44:26 2016 -0700

----------------------------------------------------------------------
 docs/_includes/themes/zeppelin/_navigation.html |  13 +-
 docs/_includes/themes/zeppelin/default.html     |   2 +-
 docs/assets/themes/zeppelin/css/style.css       | 448 +++++++++++--------
 docs/development/howtocontributewebsite.md      |   4 +-
 docs/displaysystem/display.md                   |  45 --
 docs/displaysystem/html.md                      |  25 ++
 docs/displaysystem/table.md                     |   3 +-
 docs/displaysystem/text.md                      |  31 ++
 docs/index.md                                   |   4 +-
 docs/interpreter/spark.md                       |  10 +-
 docs/manual/dynamicform.md                      |  12 +-
 docs/quickstart/explorezeppelinui.md            | 136 ++++++
 docs/quickstart/tutorial.md                     | 195 ++++++++
 docs/rest-api/rest-configuration.md             | 113 +++--
 docs/rest-api/rest-interpreter.md               |  55 +--
 docs/rest-api/rest-notebook.md                  | 275 ++++++------
 docs/storage/storage.md                         |  18 +-
 docs/tutorial/tutorial.md                       | 195 --------
 docs/ui_layout/zeppelin_layout.md               | 136 ------
 19 files changed, 871 insertions(+), 849 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/70ab1a37/docs/_includes/themes/zeppelin/_navigation.html
----------------------------------------------------------------------
diff --git a/docs/_includes/themes/zeppelin/_navigation.html b/docs/_includes/themes/zeppelin/_navigation.html
index acaa89d..179ede8 100644
--- a/docs/_includes/themes/zeppelin/_navigation.html
+++ b/docs/_includes/themes/zeppelin/_navigation.html
@@ -20,6 +20,8 @@
               <ul class="dropdown-menu">
                 <!-- li><span><b>Overview</b><span></li -->
                 <li><a href="{{BASE_PATH}}/index.html">Overview</a></li>
+                <li><a href="{{BASE_PATH}}/quickstart/explorezeppelinui.html">Explore Zeppelin UI</a></li>
+                <li><a href="{{BASE_PATH}}/quickstart/tutorial.html">Tutorial</a></li>
                 <li role="separator" class="divider"></li>
                 <!-- li><span><b>Install</b><span></li -->
                 <li><a href="{{BASE_PATH}}/install/install.html">Install</a></li>
@@ -28,11 +30,6 @@
                 <li role="separator" class="divider"></li>
                 <li><a href="{{BASE_PATH}}/install/upgrade.html">Upgrade Version</a></li>
                 <li role="separator" class="divider"></li>
-                <!-- li><span><b>Tutorial</b><span></li -->
-                <li><a href="{{BASE_PATH}}/tutorial/tutorial.html">Tutorial</a></li>
-                <li role="separator" class="divider"></li>
-                <li><a href="{{BASE_PATH}}/ui_layout/zeppelin_layout.html">UI Layout</a></li>
-                <li role="separator" class="divider"></li>
                 <!-- li><span><b>Guide</b><span></li -->
                 <li><a href="{{BASE_PATH}}/manual/dynamicform.html">Dynamic Form</a></li>
                 <li><a href="{{BASE_PATH}}/manual/publish.html">Publish your Paragraph</a></li>
@@ -57,7 +54,7 @@
                 <li><a href="{{BASE_PATH}}/interpreter/livy.html">Livy</a></li>
                 <li><a href="{{BASE_PATH}}/interpreter/markdown.html">Markdown</a></li>
                 <li><a href="{{BASE_PATH}}/interpreter/python.html">Python</a></li>
-                <li><a href="{{BASE_PATH}}/interpreter/postgresql.html">Postgresql, hawq</a></li>
+                <li><a href="{{BASE_PATH}}/interpreter/postgresql.html">Postgresql, HAWQ</a></li>
                 <li><a href="{{BASE_PATH}}/interpreter/r.html">R</a></li>
                 <li><a href="{{BASE_PATH}}/interpreter/scalding.html">Scalding</a></li>
                 <li><a href="{{BASE_PATH}}/pleasecontribute.html">Shell</a></li>
@@ -71,8 +68,8 @@
             <li>
               <a href="#" data-toggle="dropdown" class="dropdown-toggle">Display System <b class="caret"></b></a>
               <ul class="dropdown-menu">
-                <li><a href="{{BASE_PATH}}/displaysystem/display.html">Text</a></li>
-                <li><a href="{{BASE_PATH}}/displaysystem/display.html#html">Html</a></li>
+                <li><a href="{{BASE_PATH}}/displaysystem/text.html">Text</a></li>
+                <li><a href="{{BASE_PATH}}/displaysystem/html.html">Html</a></li>
                 <li><a href="{{BASE_PATH}}/displaysystem/table.html">Table</a></li>
                 <li><a href="{{BASE_PATH}}/displaysystem/back-end-angular.html">Angular (backend API)</a></li>
                 <li><a href="{{BASE_PATH}}/displaysystem/front-end-angular.html">Angular (frontend API)</a></li>

http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/70ab1a37/docs/_includes/themes/zeppelin/default.html
----------------------------------------------------------------------
diff --git a/docs/_includes/themes/zeppelin/default.html b/docs/_includes/themes/zeppelin/default.html
index 9f1d6d5..ff9c0d6 100644
--- a/docs/_includes/themes/zeppelin/default.html
+++ b/docs/_includes/themes/zeppelin/default.html
@@ -42,7 +42,7 @@
     
     {% include themes/zeppelin/_navigation.html %}
 
-    <div class="container">
+    <div class="content">
       {{ content }}
       <hr>
       <footer>

http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/70ab1a37/docs/assets/themes/zeppelin/css/style.css
----------------------------------------------------------------------
diff --git a/docs/assets/themes/zeppelin/css/style.css b/docs/assets/themes/zeppelin/css/style.css
index 091d0bb..e318805 100644
--- a/docs/assets/themes/zeppelin/css/style.css
+++ b/docs/assets/themes/zeppelin/css/style.css
@@ -1,13 +1,77 @@
 /* Move down content because we have a fixed navbar that is 50px tall */
 @import url(//fonts.googleapis.com/css?family=Patua+One);
+@import url(//fonts.googleapis.com/css?family=Open+Sans);
 
 body {
   padding-top: 50px;
   padding-bottom: 20px;
+  font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
+  line-height: 1.6;
+  color: #4c555a;
+  letter-spacing: .2px;
 }
 
 .jumbotron {
-  background: #3071a9;
+  background-color: #3071a9;
+}
+
+.jumbotron h1,
+.jumbotron p {
+  color: #fff;
+}
+
+.jumbotron p {
+  font-size: 19px; 
+}
+
+.jumbotron .btn {
+  font-size: 16px;
+}
+
+.jumbotron .thumbnail {
+  margin-top: 0;
+}
+
+.jumbotron.small {
+  padding: 0 0 0 0;
+  color: #ffffff;
+}
+
+.jumbotron.small .title{
+  float: left;
+  font-weight: bold;
+  font-size: 20px;
+  height: 30px;
+  margin-right: 20px;
+}
+
+.jumbotron.small .subtitle{
+  font-size: 14px;
+  height: 30px;
+  vertical-align: text-bottom;
+  padding-top: 7px;
+}
+
+.jumbotron.small .description{
+  margin-top: 7px;
+}
+
+.jumbotron h1 {
+  font-family: 'Patua One', cursive;
+
+.jumbotron h1 {
+  font-family: 'Patua One', cursive;
+}
+
+.jumbotron small {
+  font-size: 60%;
+  color: #FFF;
+}
+}
+
+.jumbotron small {
+  font-size: 60%;
+  color: #FFF;
 }
 
 .navbar-brand {
@@ -147,222 +211,221 @@ body {
   }
 }
 
-.jumbotron h1,
-.jumbotron p  {
-  color: white;
+/* screenshot img inside of doc */
+.screenshot {
+  width: 800px;
 }
 
-.jumbotron .thumbnail {
-  margin-top: 0;
+.rotate270 {
+  width: 15px;
+  padding: 10px 0 0 0;
+  -webkit-transform: rotate(270deg);
+  -moz-transform: rotate(270deg);
+  -ms-transform: rotate(270deg);
+  -o-transform: rotate(270deg);
+  transform: rotate(270deg);
 }
 
-.jumbotron.small {
-  padding: 0 0 0 0;
-  color: white;
+/* Custom container */
+.content {
+  word-wrap: break-word;
 }
-
-.jumbotron.small .title{
-  float: left;
-  font-weight: bold;
-  font-size: 20px;
-  height: 30px;
-  margin-right: 20px;
+.content :first-child {
+  margin-top: 0;
 }
 
-.jumbotron.small .subtitle{
-  font-size: 14px;
-  height: 30px;
-  vertical-align:text-bottom;
-  padding-top:7px;
+@media screen and (min-width: 64em) {
+  .content {
+    max-width: 64em;
+    padding: 2rem 6rem;
+    margin: 0 auto;
+  }
 }
-
-.jumbotron.small .description{
-  margin-top: 7px;
+@media screen and (min-width: 42em) and (max-width: 64em) {
+  .content {
+    padding: 2rem 4rem;
+  }
 }
-
-/* screenshot img inside of doc */
-.screenshot {
-  width: 800px;
+@media screen and (max-width: 42em) {
+  .content {
+    padding: 2rem 1rem;
+  }
 }
 
-/* Table on the index page */
-.table-container {
-  position: absolute;
+/* <a> */
+.content a {
+  color: #4183C4;
 }
-
-.table-stack {
-  width: 200px;
-  padding: 5px;
+a.absent {
+  color: #cc0000;
 }
-
-.table-stack table {
-  width: 100%;
+a.anchor {
+  display: block;
+  padding-left: 30px;
+  margin-left: -30px;
+  cursor: pointer;
+  position: absolute;
+  top: 0;
+  left: 0;
+  bottom: 0; 
 }
 
-.table-stack tr td{
-  border: 1px solid white;
-  height: 40px;
-  background: #6371a9;
-  color: white;
+/* <hn> */
+.content h1, h2, h3, h4, h5, h6 {
+  font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
+  margin-top: 3rem;
+  margin-bottom: 1rem;
+  font-weight: bold;
+  color: rgba(21,21,21,0.8);
 }
-
-.table-stack .gray {
-  background:#DDDDDD;
-  color:#777777;
+.content h1 {
+  font-size: 30px;
+  color: black;
 }
-
-/* Table for property */
-.table-configuration {
-    width : 100%;
-    border : 1px solid gray;
+.content h2 {
+  font-size: 28px;
+  padding-top: 5px;
+  padding-bottom: 5px;
+  border-bottom: 1px solid #E5E5E5;
 }
-.table-configuration tr td {
-  border: 1px solid gray;
-  padding: 5px;
+.content h3 {
+  font-size: 22px;
+  padding-top: 5px;
+  padding-bottom: 5px;
 }
-.table-configuration tr th {
-  border: 1px solid gray;
-  padding: 5px;
-  background: #B0C4DE;
+.content h4 {
+  font-size: 18px;
 }
-
-.rotate270 {
-  width: 15px;
-  padding: 10px 0 0 0;
-  -webkit-transform: rotate(270deg);
-  -moz-transform: rotate(270deg);
-  -ms-transform: rotate(270deg);
-  -o-transform: rotate(270deg);
-  transform: rotate(270deg);
+.content h5 {
+  font-size: 14px;
 }
-
-/* Custom container */
-/* <a> */
-.container a {
-    color: #4183C4; }
-a.absent {
-    color: #cc0000; }
-a.anchor {
-    display: block;
-    padding-left: 30px;
-    margin-left: -30px;
-    cursor: pointer;
-    position: absolute;
-    top: 0;
-    left: 0;
-    bottom: 0; 
+.content h6 {
+  font-size: 14px;
+  color: #777777;
 }
 
-/* <hn> */
-.container h1, h2, h3, h4, h5, h6 {
-    margin: 20px 0 10px;
-    padding: 0;
-    font-weight: bold;
-    -webkit-font-smoothing: antialiased;
-    cursor: text;
-    position: relative; }
-.container h1 {
-    font-size: 30px;
-    color: black; }
-.container h2 {
-    font-size: 28px;
-    padding-top: 5px;
-    padding-bottom: 5px;
-    border-bottom: 1px solid #E5E5E5;}
-.container h3 {
-    font-size: 22px; 
-    padding-top: 5px;
-    padding-bottom: 5px;
-    border-bottom: 1px solid #E5E5E5;}
-.container h4 {
-    font-size: 18px; }
-.container h5 {
-    font-size: 14px; }
-.container h6 {
-    font-size: 14px; 
-    color: #777777;}
+.content img {
+  max-width: 100%;
+}
 
 /* <li, ul, ol> */
-.container li {
-    margin: 0; }
-.container li p.first {
-    display: inline-block;}
-.container ul :first-child, ol :first-child {
-    margin-top: 0; 
+.content li {
+  margin: 0;
+}
+.content li p.first {
+  display: inline-block;
+}
+.content ul :first-child, ol :first-child {
+  margin-top: 0px;
 }
 
-/* <table> */
-  .container table {
-    width : 100%;
-    padding: 0;
-    border-collapse: collapse; }
-.container table tr {
-    border-top: 1px solid #cccccc;
-    background-color: white;
-    margin: 0;
-    padding: 0; }
-.container table tr th {
-    text-align: center;
-    font-weight: bold;
-    border: 1px solid #cccccc;
-    margin: 0;
-    padding: 6px 13px; }
-.container table tr td {
-    border: 1px solid #cccccc;
-    margin: 0;
-    padding: 6px 13px; 
+.content .nav-tabs {
+  margin-bottom: 10px;
 }
 
 /* <code> */
-.container code{
-    color:#000000;
-    font-size: 90%;
-    font-family: "Menlo", "Lucida Console", monospace;
-    background-color: #f8f8f8;
-    border: 1px solid #cccccc;
+.content code {
+  padding: 2px 4px;
+  font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
+  font-size: 90%;
+  color: #567482;
+  background-color: #f3f6fa;
+  border-radius: 0.3rem;
 }
 
 /* <pre> */
-.container pre {
-    background-color: #f8f8f8;
-    border: 1px solid #cccccc;
-    line-height: 19px;
-    overflow: auto;
-    padding: 6px 10px;
-    border-radius: 3px;}
-.container pre code {
-    font-size: 95%;
-    margin: 0;
-    padding: 0;
-    white-space: pre;
-    border: none;
-    background: transparent;
+.content pre {
+  padding: 0.8rem;
+  margin-top: 0;
+  margin-bottom: 1rem;
+  font: Consolas, "Liberation Mono", Menlo, Courier, monospace;
+  font-size: 90%;
+  color: #567482;
+  word-wrap: normal;
+  background-color: #f3f6fa;
+  border: solid 1px #dce6f0;
+  border-radius: 0.3rem;
+}
+.content pre > code {
+  padding: 0;
+  margin: 0;
+  font-size: 95%;
+  color: #567482;
+  word-break: normal;
+  white-space: pre;
+  background: transparent;
+  border: 0;
 }
-
-/* <blockquote> */
-.container blockquote {
-    border-left: 4px solid #dddddd;
-    padding: 0 15px;
-    color: #777777; }
-.container   blockquote > :first-child {
-    margin-top: 0; }
-.container blockquote > :last-child {
-    margin-bottom: 0; }
-.container blockquote p{
-    font-size: 14px;
+.content .highlight {
+  margin-bottom: 1rem;
 }
-
-/* <p>, <blockquote>, <table>, <pre>, <img> margin */
-.container p, blockquote, table, pre, img {
-    margin: 12px 0; 
+.content .highlight pre {
+  margin-bottom: 0;
+  word-break: normal;
+}
+.content .highlight pre,
+.content pre {
+  padding: 0.8rem;
+  overflow: auto;
+  font-size: 90%;
+  line-height: 1.45;
+  border-radius: 0.3rem;
+  -webkit-overflow-scrolling: touch;
+}
+.content pre code,
+.content pre tt {
+  display: inline;
+  max-width: initial;
+  padding: 0;
+  margin: 0;
+  overflow: initial;
+  line-height: inherit;
+  word-wrap: normal;
+  background-color: transparent;
+  border: 0;
+}
+.content pre code:before, .main-content pre code:after,
+.content pre tt:before,
+.content pre tt:after {
+  content: normal;
+}
+
+/* <blockquotes> */
+.content blockquote {
+  padding: 0 1rem;
+  margin-left: 0;
+  color: #819198;
+  border-left: 0.3rem solid #dce6f0;
+}
+.content blockquote > :first-child {
+  margin-top: 0;
 }
-
-.container-narrow {
-  margin: 0 auto;
+.content blockquote > :last-child {
+  margin-bottom: 0;
+}
+.content blockquote p {
+  font-size: 14px;
 }
 
-.container-narrow > hr {
-  margin: 30px 0;
+/* <table> */
+.content table {
+  display: block;
+  width: 100%;
+  overflow: auto;
+  word-break: normal;
+  word-break: keep-all;
+  -webkit-overflow-scrolling: touch;
+  font-size: 90%;
+}
+.content table th {
+  font-weight: bold;
+  text-align: center;
+  background-color: rgba(91, 138, 179, 0.10);
+}
+.content table th,
+.content table td {
+  padding: 0.5rem 1rem;
+  border: 1px solid #e9ebec;
 }
 
 /* posts index */
@@ -432,15 +495,6 @@ a.anchor {
   color: white;
 }
 
-.jumbotron h1 {
-  font-family: 'Patua One', cursive;
-}
-
-.jumbotron small {
-  font-size: 60%;
-  color: white;
-}
-
 .navbar-brand {
   font-family: 'Patua One', cursive;
 }
@@ -455,9 +509,11 @@ a.anchor {
   max-height: 50px;
 }
 
-#apache .caret {
+.navbar-inverse .navbar-nav a .caret,
+.navbar-inverse .navbar-nav a:hover .caret {
   margin-left: 4px;
   border-top-color: white;
+  border-bottom-color: white;
 }
 
 .navbar-inverse .navbar-nav > .open > a,
@@ -472,7 +528,6 @@ a.anchor {
   .jumbotron h1 {
     display: none;
   }
-
   .navbar-brand small {
     display: none;
     color: white;
@@ -497,7 +552,7 @@ and (max-width: 1024px) {
   }
 }
 
-/* docs dropdown menu */
+/* master branch docs dropdown menu */
 #menu .dropdown-menu li span {
   padding: 3px 10px 10px 10px;
   font-size: 13px;
@@ -517,6 +572,13 @@ and (max-width: 1024px) {
   margin-right: 50px;
 }
 
-.row img {
-  max-width: 100%;
+/* gh-pages branch docs dropdown menu */
+#docs .dropdown-menu {
+  left: 0;
+  right: auto;
+}
+
+#docs .dropdown-menu li span {
+  padding: 3px 10px 10px 10px;
+  font-size: 13px;
 }

http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/70ab1a37/docs/development/howtocontributewebsite.md
----------------------------------------------------------------------
diff --git a/docs/development/howtocontributewebsite.md b/docs/development/howtocontributewebsite.md
index 0d547dd..c7b2b43 100644
--- a/docs/development/howtocontributewebsite.md
+++ b/docs/development/howtocontributewebsite.md
@@ -8,7 +8,7 @@ group: development
 # Contributing to Apache Zeppelin ( Website )
 
 ## IMPORTANT
-Apache Zeppelin (incubating) is an [Apache2 License](http://www.apache.org/licenses/LICENSE-2.0.html) Software.
+Apache Zeppelin is an [Apache2 License](http://www.apache.org/licenses/LICENSE-2.0.html) Software.
 Any contribution to Zeppelin (Source code, Documents, Image, Website) means you agree license all your contributions as Apache2 License.
 
 
@@ -52,4 +52,4 @@ Zeppelin manages its issues in Jira. [https://issues.apache.org/jira/browse/ZEPP
 ## Stay involved
 Contributors should join the Zeppelin mailing lists.
 
-* [dev@zeppelin.apache.org](http://mail-archives.apache.org/mod_mbox/incubator-zeppelin-dev/) is for people who want to contribute code to Zeppelin. [subscribe](mailto:dev-subscribe@zeppelin.apache.org?subject=send this email to subscribe), [unsubscribe](mailto:dev-unsubscribe@zeppelin.apache.org?subject=send this email to unsubscribe), [archives](http://mail-archives.apache.org/mod_mbox/incubator-zeppelin-dev/)
+* [dev@zeppelin.apache.org](http://mail-archives.apache.org/mod_mbox/zeppelin-dev/) is for people who want to contribute code to Zeppelin. [subscribe](mailto:dev-subscribe@zeppelin.apache.org?subject=send this email to subscribe), [unsubscribe](mailto:dev-unsubscribe@zeppelin.apache.org?subject=send this email to unsubscribe), [archives](http://mail-archives.apache.org/mod_mbox/zeppelin-dev/)

http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/70ab1a37/docs/displaysystem/display.md
----------------------------------------------------------------------
diff --git a/docs/displaysystem/display.md b/docs/displaysystem/display.md
deleted file mode 100644
index 63cc1a7..0000000
--- a/docs/displaysystem/display.md
+++ /dev/null
@@ -1,45 +0,0 @@
----
-layout: page
-title: "Text/Html Display System"
-description: ""
-group: display
----
-<!--
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
--->
-{% include JB/setup %}
-
-
-<a name="text"> </a>
-<br />
-<br />
-### Text
-
-Zeppelin prints output of language backend in text, by default.
-
-<img src="/assets/themes/zeppelin/img/screenshots/display_text.png" />
-
-You can explicitly say you're using text display system.
-
-<img src="/assets/themes/zeppelin/img/screenshots/display_text1.png" />
-
-Note that display system is backend independent.
-
-<a name="html"> </a>
-<br />
-<br />
-### Html
-
-With '%html' directive, Zeppelin treats your output as html
-
-<img src="/assets/themes/zeppelin/img/screenshots/display_html.png" />

http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/70ab1a37/docs/displaysystem/html.md
----------------------------------------------------------------------
diff --git a/docs/displaysystem/html.md b/docs/displaysystem/html.md
new file mode 100644
index 0000000..c929241
--- /dev/null
+++ b/docs/displaysystem/html.md
@@ -0,0 +1,25 @@
+---
+layout: page
+title: "Html Display System"
+description: ""
+group: display
+---
+<!--
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+{% include JB/setup %}
+## Html
+
+With '%html' directive, Zeppelin treats your output as html
+
+<img src="/assets/themes/zeppelin/img/screenshots/display_html.png" />

http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/70ab1a37/docs/displaysystem/table.md
----------------------------------------------------------------------
diff --git a/docs/displaysystem/table.md b/docs/displaysystem/table.md
index 085c857..c2aefde 100644
--- a/docs/displaysystem/table.md
+++ b/docs/displaysystem/table.md
@@ -19,8 +19,7 @@ limitations under the License.
 -->
 {% include JB/setup %}
 
-
-### Table
+## Table
 
 If you have data that row seprated by '\n' (newline) and column separated by '\t' (tab) with first row as header row, for example
 

http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/70ab1a37/docs/displaysystem/text.md
----------------------------------------------------------------------
diff --git a/docs/displaysystem/text.md b/docs/displaysystem/text.md
new file mode 100644
index 0000000..e843f19
--- /dev/null
+++ b/docs/displaysystem/text.md
@@ -0,0 +1,31 @@
+---
+layout: page
+title: "Text Display System"
+description: ""
+group: display
+---
+<!--
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+{% include JB/setup %}
+## Text
+
+Zeppelin prints output of language backend in text, by default.
+
+<img src="/assets/themes/zeppelin/img/screenshots/display_text.png" />
+
+You can explicitly say you're using text display system.
+
+<img src="/assets/themes/zeppelin/img/screenshots/display_text1.png" />
+
+Note that display system is backend independent.

http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/70ab1a37/docs/index.md
----------------------------------------------------------------------
diff --git a/docs/index.md b/docs/index.md
index fd58267..19d9390 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -20,7 +20,7 @@ limitations under the License.
 {% include JB/setup %}
 <br />
 <div class="row">
- <div class="col-md-5">
+ <div class="col-md-6">
 <h2>Multi-purpose Notebook</h2>
 
 <p style="font-size:16px; color:#555555;font-style:italic;margin-bottom: 15px;">
@@ -34,7 +34,7 @@ limitations under the License.
 </ul>
 
  </div>
- <div class="col-md-7"><img class="img-responsive" style="border: 1px solid #ecf0f1;" height="auto" src="/assets/themes/zeppelin/img/notebook.png" /></div>
+ <div class="col-md-6"><img class="img-responsive" style="border: 1px solid #ecf0f1;" height="auto" src="/assets/themes/zeppelin/img/notebook.png" /></div>
 </div>
 
 <br />

http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/70ab1a37/docs/interpreter/spark.md
----------------------------------------------------------------------
diff --git a/docs/interpreter/spark.md b/docs/interpreter/spark.md
index f209c26..30da219 100644
--- a/docs/interpreter/spark.md
+++ b/docs/interpreter/spark.md
@@ -9,7 +9,7 @@ group: manual
 
 ## Spark Interpreter for Apache Zeppelin
 [Apache Spark](http://spark.apache.org) is supported in Zeppelin with
-Spark Interpreter group, which consisted of 4 interpreters.
+Spark Interpreter group, which consists of five interpreters.
 
 <table class="table-configuration">
   <tr>
@@ -354,14 +354,14 @@ Logical setup with Zeppelin, Kerberos Key Distribution Center (KDC), and Spark o
 1. On the server that Zeppelin is installed, install Kerberos client modules and configuration, krb5.conf.
 This is to make the server communicate with KDC.
 
-2. Set SPARK\_HOME in [ZEPPELIN\_HOME]/conf/zeppelin-env.sh to use spark-submit
-( Additionally, you might have to set \u201cexport HADOOP\_CONF\_DIR=/etc/hadoop/conf\u201d )
+2. Set SPARK\_HOME in `[ZEPPELIN\_HOME]/conf/zeppelin-env.sh` to use spark-submit
+(Additionally, you might have to set `export HADOOP\_CONF\_DIR=/etc/hadoop/conf`)
 
-3. Add the two properties below to spark configuration ( [SPARK_HOME]/conf/spark-defaults.conf ):
+3. Add the two properties below to spark configuration (`[SPARK_HOME]/conf/spark-defaults.conf`):
 
         spark.yarn.principal
         spark.yarn.keytab
 
   > **NOTE:** If you do not have access to the above spark-defaults.conf file, optionally, you may add the lines to the Spark Interpreter through the Interpreter tab in the Zeppelin UI.
 
-4. That's it. Play with Zeppelin !
+4. That's it. Play with Zeppelin!

http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/70ab1a37/docs/manual/dynamicform.md
----------------------------------------------------------------------
diff --git a/docs/manual/dynamicform.md b/docs/manual/dynamicform.md
index d879b8b..5bca4d2 100644
--- a/docs/manual/dynamicform.md
+++ b/docs/manual/dynamicform.md
@@ -30,37 +30,37 @@ This mode creates form using simple template language. It's simple and easy to u
 
 #### Text input form
 
-To create text input form, use _${formName}_ templates.
+To create text input form, use `${formName}` templates.
 
 for example
 
 <img src="../assets/themes/zeppelin/img/screenshots/form_input.png" />
 
 
-Also you can provide default value, using _${formName=defaultValue}_.
+Also you can provide default value, using `${formName=defaultValue}`.
 
 <img src="../assets/themes/zeppelin/img/screenshots/form_input_default.png" />
 
 
 #### Select form
 
-To create select form, use _${formName=defaultValue,option1|option2...}_
+To create select form, use `${formName=defaultValue,option1|option2...}`
 
 for example
 
 <img src="../assets/themes/zeppelin/img/screenshots/form_select.png" />
 
-Also you can separate option's display name and value, using _${formName=defaultValue,option1(DisplayName)|option2(DisplayName)...}_
+Also you can separate option's display name and value, using `${formName=defaultValue,option1(DisplayName)|option2(DisplayName)...}`
 
 <img src="../assets/themes/zeppelin/img/screenshots/form_select_displayname.png" />
 
 #### Checkbox form
 
-For multi-selection, you can create a checkbox form using _${checkbox:formName=defaultValue1|defaultValue2...,option1|option2...}_. The variable will be substituted by a comma-separated string based on the selected items. For example:
+For multi-selection, you can create a checkbox form using `${checkbox:formName=defaultValue1|defaultValue2...,option1|option2...}`. The variable will be substituted by a comma-separated string based on the selected items. For example:
 
 <img src="../assets/themes/zeppelin/img/screenshots/form_checkbox.png">
 
-Besides, you can specify the delimiter using _${checkbox(delimiter):formName=...}_:
+Besides, you can specify the delimiter using `${checkbox(delimiter):formName=...}`:
 
 <img src="../assets/themes/zeppelin/img/screenshots/form_checkbox_delimiter.png">
 

http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/70ab1a37/docs/quickstart/explorezeppelinui.md
----------------------------------------------------------------------
diff --git a/docs/quickstart/explorezeppelinui.md b/docs/quickstart/explorezeppelinui.md
new file mode 100644
index 0000000..b1235d1
--- /dev/null
+++ b/docs/quickstart/explorezeppelinui.md
@@ -0,0 +1,136 @@
+---
+layout: page
+title: "Explore Zeppelin UI"
+description: "Description of Zeppelin UI Layout"
+group: quickstart
+---
+<!--
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+## Home Page
+
+The first time you connect to Zeppelin, you'll land at the main page similar to the below screen capture
+
+<img src="../assets/themes/zeppelin/img/ui-img/homepage.png" />
+
+On the left of the page are listed all existing notes. Those notes are stored by default in the `$ZEPPELIN_HOME/notebook` folder.
+
+You can filter them by name using the input text form. You can also create an new note, refresh the list of existing notes
+(in case you manually copy them into the `$ZEPPELIN_HOME/notebook` folder) and import a note.
+
+<img src="../assets/themes/zeppelin/img/ui-img/notes_management.png" />
+
+When clicking on `Import Note` link, a new dialog open. From there you can import your note from local disk or from a remote location
+if you provide the URL.
+
+<img src="../assets/themes/zeppelin/img/ui-img/note_import_dialog.png" />
+
+By default, the name of the imported note is the same as the original note but you can override it by providing a new name.
+
+<br />
+## Menus
+
+### 1. Notebook
+
+The `Notebook` menu proposes almost the same features as the note management section in the home page. From the drop-down menu you can:
+
+1. Open a selected note
+2. Filter node by name
+3. Create a new note
+
+<img src="../assets/themes/zeppelin/img/ui-img/notebook_menu.png" />
+
+### 2. Interpreter
+
+In this menu you can:
+
+1. Configure existing **interpreter instance**
+2. Add/remove **interpreter instances**
+
+<img src="../assets/themes/zeppelin/img/ui-img/interpreter_menu.png" />
+
+### 3. Configuration
+
+This menu displays all the Zeppelin configuration that are set in the config file `$ZEPPELIN_HOME/conf/zeppelin-site.xml`
+
+<img src="../assets/themes/zeppelin/img/ui-img/configuration_menu.png" />
+
+
+<br />
+## Note Layout
+
+Each Zeppelin note is composed of 1 .. N paragraphs. The note can be viewed as a paragraph container.
+
+<img src="../assets/themes/zeppelin/img/ui-img/note_paragraph_layout.png" />
+
+### Paragraph
+
+Each paragraph consists of 2 sections: `code section` where you put your source code and `result section` where you can see the result of the code execution.
+
+<img src="../assets/themes/zeppelin/img/ui-img/paragraph_layout.png" />
+
+On the top-right corner of each paragraph there are some commands to:
+
+* execute the paragraph code
+* hide/show `code section`
+* hide/show `result section`
+* configure the paragraph
+
+To configure the paragraph, just click on the gear icon:
+
+<img src="../assets/themes/zeppelin/img/ui-img/paragraph_configuration_dialog.png" />
+
+From this dialog, you can (in descending order):
+
+* find the **paragraph id** ( **20150924-163507_134879501** )
+* control paragraph width. Since Zeppelin is using the grid system of **Twitter Bootstrap**, each paragraph width can be changed from 1 to 12
+* move the paragraph 1 level up
+* move the paragraph 1 level down
+* create a new paragraph
+* change paragraph title
+* show/hide line number in the `code section`
+* disable the run button for this paragraph
+* export the current paragraph as an **iframe** and open the **iframe** in a new window
+* clear the `result section`
+* delete the current paragraph
+
+### Note toolbar
+
+At the top of the note, you can find a toolbar which exposes command buttons as well as configuration, security and display options.
+
+<img src="../assets/themes/zeppelin/img/ui-img/note_toolbar.png" />
+
+On the far right is displayed the note name, just click on it to reveal the input form and update it.
+
+In the middle of the toolbar you can find the command buttons:
+
+* execute all the paragraphs **sequentially**, in their display order
+* hide/show `code section` of all paragraphs
+* hide/show `result section` of all paragraphs
+* clear the `result section` of all paragraphs
+* clone the current note
+* export the current note to a JSON file. _Please note that the `code section` and `result section` of all paragraphs will be exported. If you have heavy data in the `result section` of some paragraphs, it is recommended to clean them before exporting
+* commit the current node content
+* delete the note
+* schedule the execution of **all paragraph** using a CRON syntax
+
+<img src="../assets/themes/zeppelin/img/ui-img/note_commands.png" />
+
+On the right of the note tool bar you can find configuration icons:
+
+* display all the keyboard shorcuts
+* configure the interpreters binding to the current note
+* configure the note permissions
+* switch the node display mode between `default`, `simple` and `report`
+
+<img src="../assets/themes/zeppelin/img/ui-img/note_configuration.png" />

http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/70ab1a37/docs/quickstart/tutorial.md
----------------------------------------------------------------------
diff --git a/docs/quickstart/tutorial.md b/docs/quickstart/tutorial.md
new file mode 100644
index 0000000..7506b74
--- /dev/null
+++ b/docs/quickstart/tutorial.md
@@ -0,0 +1,195 @@
+---
+layout: page
+title: "Tutorial"
+description: "Tutorial is valid for Spark 1.3 and higher"
+group: quickstart
+---
+<!--
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+## Zeppelin Tutorial
+
+This tutorial walks you through some of the fundamental Zeppelin concepts. We will assume you have already installed Zeppelin. If not, please see [here](../install/install.html) first.
+
+Current main backend processing engine of Zeppelin is [Apache Spark](https://spark.apache.org). If you're new to this system, you might want to start by getting an idea of how it processes data to get the most out of Zeppelin.
+
+<br />
+## Tutorial with Local File
+
+### 1. Data Refine
+
+Before you start Zeppelin tutorial, you will need to download [bank.zip](http://archive.ics.uci.edu/ml/machine-learning-databases/00222/bank.zip). 
+
+First, to transform csv format data into RDD of `Bank` objects, run following script. This will also remove header using `filter` function.
+
+```scala
+
+val bankText = sc.textFile("yourPath/bank/bank-full.csv")
+
+case class Bank(age:Integer, job:String, marital : String, education : String, balance : Integer)
+
+// split each line, filter out header (starts with "age"), and map it into Bank case class
+val bank = bankText.map(s=>s.split(";")).filter(s=>s(0)!="\"age\"").map(
+    s=>Bank(s(0).toInt, 
+            s(1).replaceAll("\"", ""),
+            s(2).replaceAll("\"", ""),
+            s(3).replaceAll("\"", ""),
+            s(5).replaceAll("\"", "").toInt
+        )
+)
+
+// convert to DataFrame and create temporal table
+bank.toDF().registerTempTable("bank")
+```
+
+### 2. Data Retrieval
+
+Suppose we want to see age distribution from `bank`. To do this, run:
+
+```sql
+%sql select age, count(1) from bank where age < 30 group by age order by age
+```
+
+You can make input box for setting age condition by replacing `30` with `${maxAge=30}`.
+
+```sql
+%sql select age, count(1) from bank where age < ${maxAge=30} group by age order by age
+```
+
+Now we want to see age distribution with certain marital status and add combo box to select marital status. Run:
+
+```sql
+%sql select age, count(1) from bank where marital="${marital=single,single|divorced|married}" group by age order by age
+```
+
+<br />
+## Tutorial with Streaming Data 
+
+### 1. Data Refine
+
+Since this tutorial is based on Twitter's sample tweet stream, you must configure authentication with a Twitter account. To do this, take a look at [Twitter Credential Setup](https://databricks-training.s3.amazonaws.com/realtime-processing-with-spark-streaming.html#twitter-credential-setup). After you get API keys, you should fill out credential related values(`apiKey`, `apiSecret`, `accessToken`, `accessTokenSecret`) with your API keys on following script.
+
+This will create a RDD of `Tweet` objects and register these stream data as a table:
+
+```scala
+import org.apache.spark.streaming._
+import org.apache.spark.streaming.twitter._
+import org.apache.spark.storage.StorageLevel
+import scala.io.Source
+import scala.collection.mutable.HashMap
+import java.io.File
+import org.apache.log4j.Logger
+import org.apache.log4j.Level
+import sys.process.stringSeqToProcess
+
+/** Configures the Oauth Credentials for accessing Twitter */
+def configureTwitterCredentials(apiKey: String, apiSecret: String, accessToken: String, accessTokenSecret: String) {
+  val configs = new HashMap[String, String] ++= Seq(
+    "apiKey" -> apiKey, "apiSecret" -> apiSecret, "accessToken" -> accessToken, "accessTokenSecret" -> accessTokenSecret)
+  println("Configuring Twitter OAuth")
+  configs.foreach{ case(key, value) =>
+    if (value.trim.isEmpty) {
+      throw new Exception("Error setting authentication - value for " + key + " not set")
+    }
+    val fullKey = "twitter4j.oauth." + key.replace("api", "consumer")
+    System.setProperty(fullKey, value.trim)
+    println("\tProperty " + fullKey + " set as [" + value.trim + "]")
+  }
+  println()
+}
+
+// Configure Twitter credentials
+val apiKey = "xxxxxxxxxxxxxxxxxxxxxxxxx"
+val apiSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+val accessToken = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+val accessTokenSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+configureTwitterCredentials(apiKey, apiSecret, accessToken, accessTokenSecret)
+
+import org.apache.spark.streaming.twitter._
+val ssc = new StreamingContext(sc, Seconds(2))
+val tweets = TwitterUtils.createStream(ssc, None)
+val twt = tweets.window(Seconds(60))
+
+case class Tweet(createdAt:Long, text:String)
+twt.map(status=>
+  Tweet(status.getCreatedAt().getTime()/1000, status.getText())
+).foreachRDD(rdd=>
+  // Below line works only in spark 1.3.0.
+  // For spark 1.1.x and spark 1.2.x,
+  // use rdd.registerTempTable("tweets") instead.
+  rdd.toDF().registerAsTable("tweets")
+)
+
+twt.print
+
+ssc.start()
+```
+
+### 2. Data Retrieval
+
+For each following script, every time you click run button you will see different result since it is based on real-time data.
+
+Let's begin by extracting maximum 10 tweets which contain the word **girl**.
+
+```sql
+%sql select * from tweets where text like '%girl%' limit 10
+```
+
+This time suppose we want to see how many tweets have been created per sec during last 60 sec. To do this, run:
+
+```sql
+%sql select createdAt, count(1) from tweets group by createdAt order by createdAt
+```
+
+
+You can make user-defined function and use it in Spark SQL. Let's try it by making function named `sentiment`. This function will return one of the three attitudes( positive, negative, neutral ) towards the parameter.
+
+```scala
+def sentiment(s:String) : String = {
+    val positive = Array("like", "love", "good", "great", "happy", "cool", "the", "one", "that")
+    val negative = Array("hate", "bad", "stupid", "is")
+    
+    var st = 0;
+
+    val words = s.split(" ")    
+    positive.foreach(p =>
+        words.foreach(w =>
+            if(p==w) st = st+1
+        )
+    )
+    
+    negative.foreach(p=>
+        words.foreach(w=>
+            if(p==w) st = st-1
+        )
+    )
+    if(st>0)
+        "positivie"
+    else if(st<0)
+        "negative"
+    else
+        "neutral"
+}
+
+// Below line works only in spark 1.3.0.
+// For spark 1.1.x and spark 1.2.x,
+// use sqlc.registerFunction("sentiment", sentiment _) instead.
+sqlc.udf.register("sentiment", sentiment _)
+
+```
+
+To check how people think about girls using `sentiment` function we've made above, run this:
+
+```sql
+%sql select sentiment(text), count(1) from tweets where text like '%girl%' group by sentiment(text)
+```

http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/70ab1a37/docs/rest-api/rest-configuration.md
----------------------------------------------------------------------
diff --git a/docs/rest-api/rest-configuration.md b/docs/rest-api/rest-configuration.md
index 83fb9bf..4e43477 100644
--- a/docs/rest-api/rest-configuration.md
+++ b/docs/rest-api/rest-configuration.md
@@ -20,29 +20,23 @@ limitations under the License.
 {% include JB/setup %}
 
 ## Zeppelin REST API
- Zeppelin provides several REST API's for interaction and remote activation of zeppelin functionality.
+ Zeppelin provides several REST APIs for interaction and remote activation of zeppelin functionality.
 
- All REST API are available starting with the following endpoint ```http://[zeppelin-server]:[zeppelin-port]/api```
+ All REST APIs are available starting with the following endpoint `http://[zeppelin-server]:[zeppelin-port]/api`. Note that zeppelin REST APIs receive or return JSON objects, it is recommended for you to install some JSON viewers such as [JSONView](https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc).
 
- Note that Zeppelin REST API receive or return JSON objects, it it recommended you install some JSON viewers such as 
- [JSONView](https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc)
-
-
- If you work with zeppelin and find a need for an additional REST API please [file an issue or send us mail](../../community.html)
+ If you work with Zeppelin and find a need for an additional REST API, please [file an issue or send us mail](../../community.html).
 
  <br />
-### Configuration REST API list
 
+## Configuration REST API list
+
+### List Configurations
   <table class="table-configuration">
     <col width="200">
     <tr>
-      <th>List configurations</th>
-      <th></th>
-    </tr>
-    <tr>
       <td>Description</td>
       <td>This ```GET``` method return all key/value pair of configurations on the server.<br/>
-      Note: For security reason, some pairs would not be shown.</td>
+       Note: For security reason, some pairs would not be shown.</td>
     </tr>
     <tr>
       <td>URL</td>
@@ -61,49 +55,44 @@ limitations under the License.
       </td>
       <td>
         <pre>
-{  
-   "status":"OK",
-   "message":"",
-   "body":{  
-      "zeppelin.war.tempdir":"webapps",
-      "zeppelin.notebook.homescreen.hide":"false",
-      "zeppelin.interpreter.remoterunner":"bin/interpreter.sh",
-      "zeppelin.notebook.s3.user":"user",
-      "zeppelin.server.port":"8089",
-      "zeppelin.dep.localrepo":"local-repo",
-      "zeppelin.ssl.truststore.type":"JKS",
-      "zeppelin.ssl.keystore.path":"keystore",
-      "zeppelin.notebook.s3.bucket":"zeppelin",
-      "zeppelin.server.addr":"0.0.0.0",
-      "zeppelin.ssl.client.auth":"false",
-      "zeppelin.server.context.path":"/",
-      "zeppelin.ssl.keystore.type":"JKS",
-      "zeppelin.ssl.truststore.path":"truststore",
-      "zeppelin.interpreters":"org.apache.zeppelin.spark.SparkInterpreter,org.apache.zeppelin.spark.PySparkInterpreter,org.apache.zeppelin.spark.SparkRInterpreter,org.apache.zeppelin.spark.SparkSqlInterpreter,org.apache.zeppelin.spark.DepInterpreter,org.apache.zeppelin.markdown.Markdown,org.apache.zeppelin.angular.AngularInterpreter,org.apache.zeppelin.shell.ShellInterpreter,org.apache.zeppelin.hive.HiveInterpreter,org.apache.zeppelin.tajo.TajoInterpreter,org.apache.zeppelin.flink.FlinkInterpreter,org.apache.zeppelin.lens.LensInterpreter,org.apache.zeppelin.ignite.IgniteInterpreter,org.apache.zeppelin.ignite.IgniteSqlInterpreter,org.apache.zeppelin.cassandra.CassandraInterpreter,org.apache.zeppelin.geode.GeodeOqlInterpreter,org.apache.zeppelin.postgresql.PostgreSqlInterpreter,org.apache.zeppelin.phoenix.PhoenixInterpreter,org.apache.zeppelin.kylin.KylinInterpreter,org.apache.zeppelin.elasticsearch.ElasticsearchInterpreter,org.apache.zeppelin.scalding.ScaldingInterpreter",
-      "zeppelin.ssl":"false",
-      "zeppelin.notebook.autoInterpreterBinding":"true",
-      "zeppelin.notebook.homescreen":"",
-      "zeppelin.notebook.storage":"org.apache.zeppelin.notebook.repo.VFSNotebookRepo",
-      "zeppelin.interpreter.connect.timeout":"30000",
-      "zeppelin.anonymous.allowed":"true",
-      "zeppelin.server.allowed.origins":"*",
-      "zeppelin.encoding":"UTF-8"
-   }
-}
-        </pre>
-      </td>
+{
+  "status": "OK",
+  "message": "",
+  "body": {
+    "zeppelin.war.tempdir": "webapps",
+    "zeppelin.notebook.homescreen.hide": "false",
+    "zeppelin.interpreter.remoterunner": "bin/interpreter.sh",
+    "zeppelin.notebook.s3.user": "user",
+    "zeppelin.server.port": "8089",
+    "zeppelin.dep.localrepo": "local-repo",
+    "zeppelin.ssl.truststore.type": "JKS",
+    "zeppelin.ssl.keystore.path": "keystore",
+    "zeppelin.notebook.s3.bucket": "zeppelin",
+    "zeppelin.server.addr": "0.0.0.0",
+    "zeppelin.ssl.client.auth": "false",
+    "zeppelin.server.context.path": "/",
+    "zeppelin.ssl.keystore.type": "JKS",
+    "zeppelin.ssl.truststore.path": "truststore",
+    "zeppelin.interpreters": "org.apache.zeppelin.spark.SparkInterpreter,org.apache.zeppelin.spark.PySparkInterpreter,org.apache.zeppelin.spark.SparkRInterpreter,org.apache.zeppelin.spark.SparkSqlInterpreter,org.apache.zeppelin.spark.DepInterpreter,org.apache.zeppelin.markdown.Markdown,org.apache.zeppelin.angular.AngularInterpreter,org.apache.zeppelin.shell.ShellInterpreter,org.apache.zeppelin.hive.HiveInterpreter,org.apache.zeppelin.tajo.TajoInterpreter,org.apache.zeppelin.flink.FlinkInterpreter,org.apache.zeppelin.lens.LensInterpreter,org.apache.zeppelin.ignite.IgniteInterpreter,org.apache.zeppelin.ignite.IgniteSqlInterpreter,org.apache.zeppelin.cassandra.CassandraInterpreter,org.apache.zeppelin.geode.GeodeOqlInterpreter,org.apache.zeppelin.postgresql.PostgreSqlInterpreter,org.apache.zeppelin.phoenix.PhoenixInterpreter,org.apache.zeppelin.kylin.KylinInterpreter,org.apache.zeppelin.elasticsearch.ElasticsearchInterpreter,org.apache.zeppelin.scalding.ScaldingInterpreter",
+    "zeppelin.ssl": "false",
+    "zeppelin.notebook.autoInterpreterBinding": "true",
+    "zeppelin.notebook.homescreen": "",
+    "zeppelin.notebook.storage": "org.apache.zeppelin.notebook.repo.VFSNotebookRepo",
+    "zeppelin.interpreter.connect.timeout": "30000",
+    "zeppelin.anonymous.allowed": "true",
+    "zeppelin.server.allowed.origins":"*",
+    "zeppelin.encoding": "UTF-8"
+  }
+}</pre></td>
     </tr>
   </table>
 
 <br/>
 
+### List Configurations(prefix match)
   <table class="table-configuration">
     <col width="200">
     <tr>
-      <th>List configurations (prefix match)</th>
-      <th></th>
-    </tr>
-    <tr>
       <td>Description</td>
       <td>This ```GET``` method return all prefix matched key/value pair of configurations on the server.<br/>
       Note: For security reason, some pairs would not be shown.</td>
@@ -123,21 +112,19 @@ limitations under the License.
     <tr>
       <td> sample JSON response
       </td>
-      <td>
-        <pre>
-{  
-   "status":"OK",
-   "message":"",
-   "body":{  
-      "zeppelin.ssl.keystore.type":"JKS",
-      "zeppelin.ssl.truststore.path":"truststore",
-      "zeppelin.ssl.truststore.type":"JKS",
-      "zeppelin.ssl.keystore.path":"keystore",
-      "zeppelin.ssl":"false",
-      "zeppelin.ssl.client.auth":"false"
-   }
-}
-        </pre>
+      <td><pre>
+{
+  "status": "OK",
+  "message": "",
+  "body": {
+    "zeppelin.ssl.keystore.type": "JKS",
+    "zeppelin.ssl.truststore.path": "truststore",
+    "zeppelin.ssl.truststore.type": "JKS",
+    "zeppelin.ssl.keystore.path": "keystore",
+    "zeppelin.ssl": "false",
+    "zeppelin.ssl.client.auth": "false"
+  }
+}</pre>
       </td>
     </tr>
   </table>

http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/70ab1a37/docs/rest-api/rest-interpreter.md
----------------------------------------------------------------------
diff --git a/docs/rest-api/rest-interpreter.md b/docs/rest-api/rest-interpreter.md
index 87128fd..8a80b11 100644
--- a/docs/rest-api/rest-interpreter.md
+++ b/docs/rest-api/rest-interpreter.md
@@ -20,28 +20,22 @@ limitations under the License.
 {% include JB/setup %}
 
 ## Zeppelin REST API
- Zeppelin provides several REST API's for interaction and remote activation of zeppelin functionality.
+ Zeppelin provides several REST APIs for interaction and remote activation of zeppelin functionality.
 
- All REST API are available starting with the following endpoint `http://[zeppelin-server]:[zeppelin-port]/api`.
- Note that Zeppelin REST API receive or return JSON objects, it it recommended you install some JSON viewers such as 
- [JSON View](https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc).
+ All REST APIs are available starting with the following endpoint `http://[zeppelin-server]:[zeppelin-port]/api`. Note that zeppelin REST APIs receive or return JSON objects, it is recommended for you to install some JSON viewers such as [JSONView](https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc).
 
- If you work with zeppelin and find a need for an additional REST API, please [file an issue or send us mail](http://zeppelin.apache.org/community.html).
+ If you work with Zeppelin and find a need for an additional REST API, please [file an issue or send us mail](http://zeppelin.apache.org/community.html).
 
  <br />
 ## Interpreter REST API List
 
   The role of registered interpreters, settings and interpreters group are described in [here](../manual/interpreters.html).
 
-### 1. List of Registered Interpreters & Interpreter Settings
+### List of Registered Interpreters
 
   <table class="table-configuration">
     <col width="200">
     <tr>
-      <th>List of registered interpreters</th>
-      <th></th>
-    </tr>
-    <tr>
       <td>Description</td>
       <td>This ```GET``` method returns all the registered interpreters available on the server.</td>
     </tr>
@@ -109,13 +103,10 @@ limitations under the License.
 
 <br/>
 
+### List of Interpreter Settings
   <table class="table-configuration">
     <col width="200">
     <tr>
-      <th>List of interpreters settings</th>
-      <th></th>
-    </tr>
-    <tr>
       <td>Description</td>
       <td>This ```GET``` method returns all the interpreters settings registered on the server.</td>
     </tr>
@@ -186,15 +177,11 @@ limitations under the License.
   </table>
 
 <br/>
-### 2. Create an Interpreter Setting  
+### Create an Interpreter Setting  
 
   <table class="table-configuration">
     <col width="200">
     <tr>
-      <th>Create an interpreter setting</th>
-      <th></th>
-    </tr>
-    <tr>
       <td>Description</td>
       <td>This ```POST``` method adds a new interpreter setting using a registered interpreter to the server.</td>
     </tr>
@@ -272,14 +259,10 @@ limitations under the License.
 
 <br/>
 
-### 3. Update an Interpreter Setting
+### Update an Interpreter Setting
   <table class="table-configuration">
     <col width="200">
     <tr>
-      <th>Update an interpreter setting</th>
-      <th></th>
-    </tr>
-    <tr>
       <td>Description</td>
       <td>This ```PUT``` method updates an interpreter setting with new properties.</td>
     </tr>
@@ -356,15 +339,11 @@ limitations under the License.
 
 
 <br/>
-### 4. Delete an Interpreter Setting
+### Delete an Interpreter Setting
 
   <table class="table-configuration">
     <col width="200">
     <tr>
-      <th>Delete an interpreter setting</th>
-      <th></th>
-    </tr>
-    <tr>
       <td>Description</td>
       <td>This ```DELETE``` method deletes an given interpreter setting.</td>
     </tr>
@@ -390,15 +369,11 @@ limitations under the License.
 
 
 <br/>
-### 5. Restart an Interpreter
+### Restart an Interpreter
 
   <table class="table-configuration">
     <col width="200">
     <tr>
-      <th>Restart an interpreter</th>
-      <th></th>
-    </tr>
-    <tr>
       <td>Description</td>
       <td>This ```PUT``` method restarts the given interpreter id.</td>
     </tr>
@@ -423,15 +398,11 @@ limitations under the License.
   </table>
 
 <br/>
-### 6. Add repository for dependency resolving
+### Add repository for dependency resolving
 
   <table class="table-configuration">
     <col width="200">
     <tr>
-      <th>Add new repository for dependency loader</th>
-      <th></th>
-    </tr>
-    <tr>
       <td>Description</td>
       <td>This ```POST``` method adds new repository.</td>
     </tr>
@@ -468,15 +439,11 @@ limitations under the License.
   </table>
 
 <br/>
-### 7. Delete repository for dependency resolving
+### Delete repository for dependency resolving
 
   <table class="table-configuration">
     <col width="200">
     <tr>
-      <th>Delete repository for dependency loader</th>
-      <th></th>
-    </tr>
-    <tr>
       <td>Description</td>
       <td>This ```DELETE``` method delete repository with given id.</td>
     </tr>

http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/70ab1a37/docs/rest-api/rest-notebook.md
----------------------------------------------------------------------
diff --git a/docs/rest-api/rest-notebook.md b/docs/rest-api/rest-notebook.md
index b06692c..c02b529 100644
--- a/docs/rest-api/rest-notebook.md
+++ b/docs/rest-api/rest-notebook.md
@@ -22,26 +22,20 @@ limitations under the License.
 ## Zeppelin REST API
  Zeppelin provides several REST APIs for interaction and remote activation of zeppelin functionality.
 
- All REST APIs are available starting with the following endpoint ```http://[zeppelin-server]:[zeppelin-port]/api```
+ All REST APIs are available starting with the following endpoint `http://[zeppelin-server]:[zeppelin-port]/api`. Note that zeppelin REST APIs receive or return JSON objects, it is recommended for you to install some JSON viewers such as [JSONView](https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc).
 
- Note that zeppelin REST APIs receive or return JSON objects, it is recommended for you to install some JSON viewers
-  such as [JSONView](https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc)
+ If you work with Zeppelin and find a need for an additional REST API, please [file an issue or send us mail](../../community.html).
 
+<br />
 
- If you work with zeppelin and find a need for an additional REST API please [file an issue or send us mail](../../community.html)
+## Notebook REST API List
 
- <br />
-### Notebook REST API list
-
-  Notebooks REST API supports the following operations: List, Create, Get, Delete, Clone, Run, Export, Import as detailed in the following table
+  Notebooks REST API supports the following operations: List, Create, Get, Delete, Clone, Run, Export, Import as detailed in the following tables.
 
+### List Notebooks
   <table class="table-configuration">
     <col width="200">
     <tr>
-      <th>List notebooks</th>
-      <th></th>
-    </tr>
-    <tr>
       <td>Description</td>
       <td>This ```GET``` method lists the available notebooks on your server.
           Notebook JSON contains the ```name``` and ```id``` of all notebooks.
@@ -61,19 +55,30 @@ limitations under the License.
     </tr>
     <tr>
       <td> sample JSON response </td>
-      <td><pre>{"status":"OK","message":"","body":[{"name":"Homepage","id":"2AV4WUEMK"},{"name":"Zeppelin Tutorial","id":"2A94M5J1Z"}]}</pre></td>
+      <td><pre>
+{
+  "status": "OK",
+  "message": "",
+  "body": [
+    {
+      "name":"Homepage",
+      "id":"2AV4WUEMK"
+    },
+    {
+      "name":"Zeppelin Tutorial",
+      "id":"2A94M5J1Z"
+    }
+  ]
+}</pre></td>
     </tr>
   </table>
 
 <br/>
 
+### Create Notebook
   <table class="table-configuration">
     <col width="200">
     <tr>
-      <th>Create notebook</th>
-      <th></th>
-    </tr>
-    <tr>
       <td>Description</td>
       <td>This ```POST``` method creates a new notebook using the given name or default name if none given.
           The body field of the returned JSON contains the new notebook id.
@@ -93,7 +98,7 @@ limitations under the License.
     </tr>
     <tr>
       <td> sample JSON input (without paragraphs) </td>
-      <td><pre>{ "name": "name of new notebook" }</pre></td>
+      <td><pre>{"name": "name of new notebook"}</pre></td>
     </tr>
     <tr>
       <td> sample JSON input (with initial paragraphs) </td>
@@ -110,24 +115,25 @@ limitations under the License.
       "text": "paragraph text2"
     }
   ]
-}
-      </pre></td>
+}</pre></td>
     </tr>
     <tr>
       <td> sample JSON response </td>
-      <td><pre>{"status": "CREATED","message": "","body": "2AZPHY918"}</pre></td>
+      <td><pre>
+{
+  "status": "CREATED",
+  "message": "",
+  "body": "2AZPHY918"
+}</pre></td>
     </tr>
   </table>
 
 <br/>
 
+### Get Notebook
   <table class="table-configuration">
     <col width="200">
     <tr>
-      <th>Get notebook</th>
-      <th></th>
-    </tr>
-    <tr>
       <td>Description</td>
       <td>This ```GET``` method retrieves an existing notebook's information using the given id.
           The body field of the returned JSON contain information about paragraphs in the notebook.
@@ -194,8 +200,8 @@ limitations under the License.
           "params": {},
           "forms": {}
         },
-        "jobName": "paragraph_1423500782552_-1439281894",
-        "id": "20150210-015302_1492795503",
+        "jobName": "paragraph\_1423500782552\_-1439281894",
+        "id": "20150210-015302\_1492795503",
         "result": {
           "code": "SUCCESS",
           "type": "TABLE",
@@ -216,20 +222,16 @@ limitations under the License.
     },
     "info": {}
   }
-}
-      </pre></td>
+}</pre></td>
     </tr>
   </table>
 
 <br/>
 
+### Delete Notebook
   <table class="table-configuration">
     <col width="200">
     <tr>
-      <th>Delete notebook</th>
-      <th></th>
-    </tr>
-    <tr>
       <td>Description</td>
       <td>This ```DELETE``` method deletes a notebook by the given notebook id.
       </td>
@@ -248,19 +250,16 @@ limitations under the License.
     </tr>
     <tr>
       <td> sample JSON response </td>
-      <td><pre>{"status":"OK","message":""}</pre></td>
+      <td><pre>{"status": "OK","message": ""}</pre></td>
     </tr>
   </table>
 
 <br/>
 
+### Clone Notebook
   <table class="table-configuration">
     <col width="200">
     <tr>
-      <th>Clone notebook</th>
-      <th></th>
-    </tr>
-    <tr>
       <td>Description</td>
       <td>This ```POST``` method clones a notebook by the given id and create a new notebook using the given name
           or default name if none given.
@@ -285,19 +284,21 @@ limitations under the License.
     </tr>
     <tr>
       <td> sample JSON response </td>
-      <td><pre>{"status": "CREATED","message": "","body": "2AZPHY918"}</pre></td>
+      <td><pre>
+{
+  "status": "CREATED",
+  "message": "",
+  "body": "2AZPHY918"
+}</pre></td>
     </tr>
   </table>
 
 <br/>
 
+### Run Notebook Job
   <table class="table-configuration">
     <col width="200">
     <tr>
-      <th>Run notebook job</th>
-      <th></th>
-    </tr>
-    <tr>
       <td>Description</td>
       <td>This ```POST``` method runs all paragraph in the given notebook id.
       </td>
@@ -316,19 +317,16 @@ limitations under the License.
     </tr>
     <tr>
       <td> sample JSON response </td>
-      <td><pre>{"status":"OK"}</pre></td>
+      <td><pre>{"status": "OK"}</pre></td>
     </tr>
   </table>
 
 <br/>
 
+### Stop Notebook Job
   <table class="table-configuration">
     <col width="200">
     <tr>
-      <th>Stop notebook job</th>
-      <th></th>
-    </tr>
-    <tr>
       <td>Description</td>
       <td>This ```DELETE``` method stops all paragraph in the given notebook id.
       </td>
@@ -353,15 +351,10 @@ limitations under the License.
 
 <br/>
 
-<br/>
-
+### Get Notebook Job
   <table class="table-configuration">
     <col width="200">
     <tr>
-      <th>Get notebook job</th>
-      <th></th>
-    </tr>
-    <tr>
       <td>Description</td>
       <td>This ```GET``` method gets all paragraph status by the given notebook id.
           The body field of the returned JSON contains of the array that compose of the paragraph id, paragraph status, paragraph finish date, paragraph started date.
@@ -381,19 +374,34 @@ limitations under the License.
     </tr>
     <tr>
       <td> sample JSON response </td>
-      <td><pre>{"status":"OK","body":[{"id":"20151121-212654_766735423","status":"FINISHED","finished":"Tue Nov 24 14:21:40 KST 2015","started":"Tue Nov 24 14:21:39 KST 2015"},{"progress":"1","id":"20151121-212657_730976687","status":"RUNNING","finished":"Tue Nov 24 14:21:35 KST 2015","started":"Tue Nov 24 14:21:40 KST 2015"}]}</pre></td>
+      <td><pre>
+{
+  "status": "OK",
+  "body": [
+    {
+      "id":"20151121-212654\_766735423",
+      "status":"FINISHED",
+      "finished":"Tue Nov 24 14:21:40 KST 2015",
+      "started":"Tue Nov 24 14:21:39 KST 2015"
+    },
+    {
+      "progress":"1",
+      "id":"20151121-212657\_730976687",
+      "status":"RUNNING",
+      "finished":"Tue Nov 24 14:21:35 KST 2015",
+      "started":"Tue Nov 24 14:21:40 KST 2015"
+    }
+  ]
+}</pre></td>
     </tr>
   </table>
 
 <br/>
 
+### Run Paragraph Job
   <table class="table-configuration">
     <col width="200">
     <tr>
-      <th>Run paragraph job</th>
-      <th></th>
-    </tr>
-    <tr>
       <td>Description</td>
       <td>This ```POST``` method runs the paragraph by given notebook and paragraph id.
       </td>
@@ -419,24 +427,20 @@ limitations under the License.
     "formLabel1": "value1",
     "formLabel2": "value2"
   }
-}
-      </pre></td>
+}</pre></td>
     </tr>
     <tr>
       <td> sample JSON response </td>
-      <td><pre>{"status":"OK"}</pre></td>
+      <td><pre>{"status": "OK"}</pre></td>
     </tr>
   </table>
 
 <br/>
 
+### Stop Paragraph Job
   <table class="table-configuration">
     <col width="200">
     <tr>
-      <th>Stop paragraph job</th>
-      <th></th>
-    </tr>
-    <tr>
       <td>Description</td>
       <td>This ```DELETE``` method stops the paragraph by given notebook and paragraph id.
       </td>
@@ -455,19 +459,16 @@ limitations under the License.
     </tr>
     <tr>
       <td> sample JSON response </td>
-      <td><pre>{"status":"OK"}</pre></td>
+      <td><pre>{"status": "OK"}</pre></td>
     </tr>
   </table>
 
 <br/>
 
+### Add Cron Job
   <table class="table-configuration">
     <col width="200">
     <tr>
-      <th>Add cron job</th>
-      <th></th>
-    </tr>
-    <tr>
       <td>Description</td>
       <td>This ```POST``` method adds cron job by the given notebook id.
       </td>
@@ -490,19 +491,16 @@ limitations under the License.
     </tr>
     <tr>
       <td> sample JSON response </td>
-      <td><pre>{"status":"OK"}</pre></td>
+      <td><pre>{"status": "OK"}</pre></td>
     </tr>
   </table>
 
 <br/>
 
+### Remove Cron Job
   <table class="table-configuration">
     <col width="200">
     <tr>
-      <th>Remove cron job</th>
-      <th></th>
-    </tr>
-    <tr>
       <td>Description</td>
       <td>This ```DELETE``` method removes cron job by the given notebook id.
       </td>
@@ -521,19 +519,16 @@ limitations under the License.
     </tr>
     <tr>
       <td> sample JSON response </td>
-      <td><pre>{"status":"OK"}</pre></td>
+      <td><pre>{"status": "OK"}</pre></td>
     </tr>
   </table>
 
 <br/>
 
+### Get Cron Job
   <table class="table-configuration">
     <col width="200">
     <tr>
-      <th>Get cron job</th>
-      <th></th>
-    </tr>
-    <tr>
       <td>Description</td>
       <td>This ```GET``` method gets cron job expression of given notebook id.
           The body field of the returned JSON contains the cron expression.
@@ -553,17 +548,16 @@ limitations under the License.
     </tr>
     <tr>
       <td> sample JSON response </td>
-      <td><pre>{"status":"OK","body":"* * * * * ?"}</pre></td>
+      <td><pre>{"status": "OK", "body": "* * * * * ?"}</pre></td>
     </tr>
   </table>
 
+<br />
+
+### Full Text Search Through the Paragraphs in All Notebooks
   <table class="table-configuration">
     <col width="200">
     <tr>
-      <th>Full-text search through the paragraphs in all notebooks</th>
-      <th></th>
-    </tr>
-    <tr>
       <td>Description</td>
       <td>```GET``` request will return list of matching paragraphs
       </td>
@@ -582,20 +576,27 @@ limitations under the License.
     </tr>
     <tr>
       <td>Sample JSON response </td>
-      <td><pre>{"status":"OK", body: [{"id":"<noteId>/paragraph/<paragraphId>", "name":"Notebook Name", "snippet":"", "text":""}]}</pre></td>
+      <td><pre>
+{
+  "status": "OK",
+  "body": [
+    {
+      "id": "<noteId>/paragraph/<paragraphId>",
+      "name":"Notebook Name", 
+      "snippet":"",
+      "text":""
+    }
+  ]
+}</pre></td>
     </tr>
   </table>
 
 <br/>
 
-
+### Create Paragraph
   <table class="table-configuration">
     <col width="200">
     <tr>
-      <th>Create paragraph</th>
-      <th></th>
-    </tr>
-    <tr>
       <td>Description</td>
       <td>This ```POST``` method create a new paragraph using JSON payload.
           The body field of the returned JSON contain the new paragraph id.
@@ -616,36 +617,37 @@ limitations under the License.
     <tr>
       <td> sample JSON input (add to the last) </td>
       <td><pre>
-  {
-    "title": "Paragraph insert revised",
-    "text": "%spark\nprintln(\"Paragraph insert revised\")"
-  }</pre></td>
+{
+  "title": "Paragraph insert revised",
+  "text": "%spark\nprintln(\"Paragraph insert revised\")"
+}</pre></td>
     </tr>
     <tr>
       <td> sample JSON input (add to specific index) </td>
       <td><pre>
-  {
-    "title": "Paragraph insert revised",
-    "text": "%spark\nprintln(\"Paragraph insert revised\")",
-    "index": 0
-  }
-      </pre></td>
+{
+  "title": "Paragraph insert revised",
+  "text": "%spark\nprintln(\"Paragraph insert revised\")",
+  "index": 0
+}</pre></td>
     </tr>
     <tr>
       <td> sample JSON response </td>
-      <td><pre>{"status": "CREATED","message": "","body": "20151218-100330_1754029574"}</pre></td>
+      <td><pre>
+{
+  "status": "CREATED",
+  "message": "",
+  "body": "20151218-100330\_1754029574"
+}</pre></td>
     </tr>
   </table>
 
 <br/>
 
+### Get Paragraph
   <table class="table-configuration">
     <col width="200">
     <tr>
-      <th>Get paragraph</th>
-      <th></th>
-    </tr>
-    <tr>
       <td>Description</td>
       <td>This ```GET``` method retrieves an existing paragraph's information using the given id.
           The body field of the returned JSON contain information about paragraph.
@@ -692,8 +694,8 @@ limitations under the License.
       "params": {},
       "forms": {}
     },
-    "jobName": "paragraph_1450391574392_-1890856722",
-    "id": "20151218-073254_1105602047",
+    "jobName": "paragraph\_1450391574392\_-1890856722",
+    "id": "20151218-073254\_1105602047",
     "result": {
       "code": "SUCCESS",
       "type": "TEXT",
@@ -705,20 +707,16 @@ limitations under the License.
     "status": "FINISHED",
     "progressUpdateIntervalMs": 500
   }
-}
-      </pre></td>
+}</pre></td>
     </tr>
   </table>
 
 <br/>
 
+### Move Paragraph
   <table class="table-configuration">
     <col width="200">
     <tr>
-      <th>Move paragraph</th>
-      <th></th>
-    </tr>
-    <tr>
       <td>Description</td>
       <td>This ```POST``` method moves a paragraph to the specific index (order) from the notebook.
       </td>
@@ -737,20 +735,17 @@ limitations under the License.
     </tr>
     <tr>
       <td> sample JSON response </td>
-      <td><pre>{"status":"OK","message":""}</pre></td>
+      <td><pre>{"status": "OK","message": ""}</pre></td>
     </tr>
   </table>
 
 
 <br/>
 
+### Delete Paragraph
   <table class="table-configuration">
     <col width="200">
     <tr>
-      <th>Delete paragraph</th>
-      <th></th>
-    </tr>
-    <tr>
       <td>Description</td>
       <td>This ```DELETE``` method deletes a paragraph by the given notebook and paragraph id.
       </td>
@@ -769,19 +764,16 @@ limitations under the License.
     </tr>
     <tr>
       <td> sample JSON response </td>
-      <td><pre>{"status":"OK","message":""}</pre></td>
+      <td><pre>{"status": "OK","message": ""}</pre></td>
     </tr>
   </table>
 
+<br />
 
-
+### Export Notebook
   <table class="table-configuration">
     <col width="200">
     <tr>
-      <th>Export notebook</th>
-      <th></th>
-    </tr>
-    <tr>
       <td>Description</td>
       <td>This ```GET``` method exports a notebook by the given id and gernerates a JSON
       </td>
@@ -811,8 +803,8 @@ limitations under the License.
         "params": {},
         "forms": {}
       },
-      "jobName": "paragraph_1452300578795_1196072540",
-      "id": "20160108-164938_1685162144",
+      "jobName": "paragraph\_1452300578795\_1196072540",
+      "id": "20160108-164938\_1685162144",
       "dateCreated": "Jan 8, 2016 4:49:38 PM",
       "status": "READY",
       "progressUpdateIntervalMs": 500
@@ -827,13 +819,12 @@ limitations under the License.
     </tr>
   </table>
 
+<br />
+
+### Import Notebook
   <table class="table-configuration">
     <col width="200">
     <tr>
-      <th>Export notebook</th>
-      <th></th>
-    </tr>
-    <tr>
       <td>Description</td>
       <td>This ```POST``` method imports a notebook from the notebook JSON input
       </td>
@@ -850,8 +841,9 @@ limitations under the License.
       <td> Fail code</td>
       <td> 500 </td>
     </tr>
-    <td> sample JSON input </td>
-      <td><pre>{
+    <td>sample JSON input</td>
+      <td><pre>
+{
   "paragraphs": [
     {
       "text": "%md This is my new paragraph in my new note",
@@ -863,8 +855,8 @@ limitations under the License.
         "params": {},
         "forms": {}
       },
-      "jobName": "paragraph_1452300578795_1196072540",
-      "id": "20160108-164938_1685162144",
+      "jobName": "paragraph\_1452300578795\_1196072540",
+      "id": "20160108-164938\_1685162144",
       "dateCreated": "Jan 8, 2016 4:49:38 PM",
       "status": "READY",
       "progressUpdateIntervalMs": 500
@@ -876,9 +868,14 @@ limitations under the License.
   "config": {},
   "info": {}
 }</pre></td>
-<tr>
-      <td> sample JSON response </td>
-      <td><pre>"status": "CREATED","message": "","body": "2AZPHY918"}</pre></td>
+    <tr>
+      <td>sample JSON response</td>
+      <td><pre>
+{
+  "status": "CREATED",
+  "message": "",
+  "body": "2AZPHY918"
+}</pre></td>
     </tr>
     </tr>
   </table>

http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/70ab1a37/docs/storage/storage.md
----------------------------------------------------------------------
diff --git a/docs/storage/storage.md b/docs/storage/storage.md
index 25c62bb..36aae50 100644
--- a/docs/storage/storage.md
+++ b/docs/storage/storage.md
@@ -17,7 +17,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-### Notebook Storage
+## Notebook Storage
 
 Zeppelin has a pluggable notebook storage mechanism controlled by `zeppelin.notebook.storage` configuration option with multiple implementations.
 There are few Notebook storage systems available for a use out of the box:
@@ -31,7 +31,7 @@ By default, only first two of them will be automatically kept in sync by Zeppeli
 
 </br>
 
-#### Notebook Storage in local Git repository <a name="Git"></a>
+## Notebook Storage in local Git repository <a name="Git"></a>
 
 To enable versioning for all your local notebooks though a standard Git repository - uncomment the next property in `zeppelin-site.xml` in order to use GitNotebookRepo class:
 
@@ -45,7 +45,7 @@ To enable versioning for all your local notebooks though a standard Git reposito
 
 </br>
 
-#### Notebook Storage in S3  <a name="S3"></a>
+## Notebook Storage in S3 <a name="S3"></a>
 
 Notebooks may be stored in S3, and optionally encrypted.  The [``DefaultAWSCredentialsProviderChain``](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/DefaultAWSCredentialsProviderChain.html) credentials provider is used for credentials and checks the following:
 
@@ -103,9 +103,9 @@ Comment out the next property to disable local notebook storage (the default):
 </property>
 ```
 
-#### Data Encryption in S3
+### Data Encryption in S3
 
-##### AWS KMS encryption keys
+#### AWS KMS encryption keys
 
 To use an [AWS KMS](https://aws.amazon.com/kms/) encryption key to encrypt notebooks, set the following environment variable in the file **zeppelin-env.sh**:
 
@@ -114,6 +114,7 @@ export ZEPPELIN_NOTEBOOK_S3_KMS_KEY_ID = kms-key-id
 ```
 
 Or using the following setting in **zeppelin-site.xml**:
+
 ```
 <property>
   <name>zeppelin.notebook.s3.kmsKeyID</name>
@@ -122,7 +123,7 @@ Or using the following setting in **zeppelin-site.xml**:
 </property>
 ```
 
-##### Custom Encryption Materials Provider class
+#### Custom Encryption Materials Provider class
 
 You may use a custom [``EncryptionMaterialsProvider``](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/model/EncryptionMaterialsProvider.html) class as long as it is available in the classpath and able to initialize itself from system properties or another mechanism.  To use this, set the following environment variable in the file **zeppelin-env.sh**:
 
@@ -132,6 +133,7 @@ export ZEPPELIN_NOTEBOOK_S3_EMP = class-name
 ```
 
 Or using the following setting in **zeppelin-site.xml**:
+
 ```
 <property>
   <name>zeppelin.notebook.s3.encryptionMaterialsProvider</name>
@@ -140,7 +142,7 @@ Or using the following setting in **zeppelin-site.xml**:
 ```   
 
 </br>
-#### Notebook Storage  in Azure <a name="Azure"></a>
+## Notebook Storage  in Azure <a name="Azure"></a>
 
 Using `AzureNotebookRepo` you can connect your Zeppelin with your Azure account for notebook storage.
 
@@ -203,7 +205,7 @@ Optionally, you can specify Azure folder structure name in the file **zeppelin-s
 ```
 
 </br>
-#### Notebook Storage in ZeppelinHub  <a name="ZeppelinHub"></a>
+## Storage in ZeppelinHub  <a name="ZeppelinHub"></a>
 
 ZeppelinHub storage layer allows out of the box connection of Zeppelin instance with your ZeppelinHub account. First of all, you need to either comment out the following  property in **zeppelin-site.xml**:
 

http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/70ab1a37/docs/tutorial/tutorial.md
----------------------------------------------------------------------
diff --git a/docs/tutorial/tutorial.md b/docs/tutorial/tutorial.md
deleted file mode 100644
index 2192c22..0000000
--- a/docs/tutorial/tutorial.md
+++ /dev/null
@@ -1,195 +0,0 @@
----
-layout: page
-title: "Tutorial"
-description: "Tutorial is valid for Spark 1.3 and higher"
-group: tutorial
----
-<!--
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
--->
-## Zeppelin Tutorial
-
-This tutorial walks you through some of the fundamental Zeppelin concepts. We will assume you have already installed Zeppelin. If not, please see [here](../install/install.html) first.
-
-Current main backend processing engine of Zeppelin is [Apache Spark](https://spark.apache.org). If you're new to this system, you might want to start by getting an idea of how it processes data to get the most out of Zeppelin.
-
-<br />
-## Tutorial with Local File
-
-### 1. Data Refine
-
-Before you start Zeppelin tutorial, you will need to download [bank.zip](http://archive.ics.uci.edu/ml/machine-learning-databases/00222/bank.zip). 
-
-First, to transform csv format data into RDD of `Bank` objects, run following script. This will also remove header using `filter` function.
-
-```scala
-
-val bankText = sc.textFile("yourPath/bank/bank-full.csv")
-
-case class Bank(age:Integer, job:String, marital : String, education : String, balance : Integer)
-
-// split each line, filter out header (starts with "age"), and map it into Bank case class
-val bank = bankText.map(s=>s.split(";")).filter(s=>s(0)!="\"age\"").map(
-    s=>Bank(s(0).toInt, 
-            s(1).replaceAll("\"", ""),
-            s(2).replaceAll("\"", ""),
-            s(3).replaceAll("\"", ""),
-            s(5).replaceAll("\"", "").toInt
-        )
-)
-
-// convert to DataFrame and create temporal table
-bank.toDF().registerTempTable("bank")
-```
-
-### 2. Data Retrieval
-
-Suppose we want to see age distribution from `bank`. To do this, run:
-
-```sql
-%sql select age, count(1) from bank where age < 30 group by age order by age
-```
-
-You can make input box for setting age condition by replacing `30` with `${maxAge=30}`.
-
-```sql
-%sql select age, count(1) from bank where age < ${maxAge=30} group by age order by age
-```
-
-Now we want to see age distribution with certain marital status and add combo box to select marital status. Run:
-
-```sql
-%sql select age, count(1) from bank where marital="${marital=single,single|divorced|married}" group by age order by age
-```
-
-<br />
-## Tutorial with Streaming Data 
-
-### 1. Data Refine
-
-Since this tutorial is based on Twitter's sample tweet stream, you must configure authentication with a Twitter account. To do this, take a look at [Twitter Credential Setup](https://databricks-training.s3.amazonaws.com/realtime-processing-with-spark-streaming.html#twitter-credential-setup). After you get API keys, you should fill out credential related values(`apiKey`, `apiSecret`, `accessToken`, `accessTokenSecret`) with your API keys on following script.
-
-This will create a RDD of `Tweet` objects and register these stream data as a table:
-
-```scala
-import org.apache.spark.streaming._
-import org.apache.spark.streaming.twitter._
-import org.apache.spark.storage.StorageLevel
-import scala.io.Source
-import scala.collection.mutable.HashMap
-import java.io.File
-import org.apache.log4j.Logger
-import org.apache.log4j.Level
-import sys.process.stringSeqToProcess
-
-/** Configures the Oauth Credentials for accessing Twitter */
-def configureTwitterCredentials(apiKey: String, apiSecret: String, accessToken: String, accessTokenSecret: String) {
-  val configs = new HashMap[String, String] ++= Seq(
-    "apiKey" -> apiKey, "apiSecret" -> apiSecret, "accessToken" -> accessToken, "accessTokenSecret" -> accessTokenSecret)
-  println("Configuring Twitter OAuth")
-  configs.foreach{ case(key, value) =>
-    if (value.trim.isEmpty) {
-      throw new Exception("Error setting authentication - value for " + key + " not set")
-    }
-    val fullKey = "twitter4j.oauth." + key.replace("api", "consumer")
-    System.setProperty(fullKey, value.trim)
-    println("\tProperty " + fullKey + " set as [" + value.trim + "]")
-  }
-  println()
-}
-
-// Configure Twitter credentials
-val apiKey = "xxxxxxxxxxxxxxxxxxxxxxxxx"
-val apiSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
-val accessToken = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
-val accessTokenSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
-configureTwitterCredentials(apiKey, apiSecret, accessToken, accessTokenSecret)
-
-import org.apache.spark.streaming.twitter._
-val ssc = new StreamingContext(sc, Seconds(2))
-val tweets = TwitterUtils.createStream(ssc, None)
-val twt = tweets.window(Seconds(60))
-
-case class Tweet(createdAt:Long, text:String)
-twt.map(status=>
-  Tweet(status.getCreatedAt().getTime()/1000, status.getText())
-).foreachRDD(rdd=>
-  // Below line works only in spark 1.3.0.
-  // For spark 1.1.x and spark 1.2.x,
-  // use rdd.registerTempTable("tweets") instead.
-  rdd.toDF().registerAsTable("tweets")
-)
-
-twt.print
-
-ssc.start()
-```
-
-### 2. Data Retrieval
-
-For each following script, every time you click run button you will see different result since it is based on real-time data.
-
-Let's begin by extracting maximum 10 tweets which contain the word **girl**.
-
-```sql
-%sql select * from tweets where text like '%girl%' limit 10
-```
-
-This time suppose we want to see how many tweets have been created per sec during last 60 sec. To do this, run:
-
-```sql
-%sql select createdAt, count(1) from tweets group by createdAt order by createdAt
-```
-
-
-You can make user-defined function and use it in Spark SQL. Let's try it by making function named `sentiment`. This function will return one of the three attitudes( positive, negative, neutral ) towards the parameter.
-
-```scala
-def sentiment(s:String) : String = {
-    val positive = Array("like", "love", "good", "great", "happy", "cool", "the", "one", "that")
-    val negative = Array("hate", "bad", "stupid", "is")
-    
-    var st = 0;
-
-    val words = s.split(" ")    
-    positive.foreach(p =>
-        words.foreach(w =>
-            if(p==w) st = st+1
-        )
-    )
-    
-    negative.foreach(p=>
-        words.foreach(w=>
-            if(p==w) st = st-1
-        )
-    )
-    if(st>0)
-        "positivie"
-    else if(st<0)
-        "negative"
-    else
-        "neutral"
-}
-
-// Below line works only in spark 1.3.0.
-// For spark 1.1.x and spark 1.2.x,
-// use sqlc.registerFunction("sentiment", sentiment _) instead.
-sqlc.udf.register("sentiment", sentiment _)
-
-```
-
-To check how people think about girls using `sentiment` function we've made above, run this:
-
-```sql
-%sql select sentiment(text), count(1) from tweets where text like '%girl%' group by sentiment(text)
-```