diff --git a/docs/.vuepress/components/IPhoneImg.vue b/docs/.vuepress/components/IPhoneImg.vue
new file mode 100644
index 0000000..88fff91
--- /dev/null
+++ b/docs/.vuepress/components/IPhoneImg.vue
@@ -0,0 +1,32 @@
+<template>
+  <div class="wrapper">
+    <div class="iPhone-img">
+      <img src="/iPhone.svg" width="323">
+      <img class="img" :src="$withBase(imgSrc)" width="284" height="505">
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  props: ['imgSrc']
+}
+</script>
+
+<style>
+.wrapper {
+  position: relative;
+  height: 644px;
+}
+.iPhone-img {
+  position: absolute;
+  left: 50%;
+  top: 0;
+  transform: translateX(-50%);
+}
+.img {
+  position: absolute;
+  left: 17px;
+  top: 81px;
+}
+</style>
diff --git a/docs/.vuepress/components/IndexEn.vue b/docs/.vuepress/components/IndexEn.vue
new file mode 100644
index 0000000..30a74e9
--- /dev/null
+++ b/docs/.vuepress/components/IndexEn.vue
@@ -0,0 +1,13 @@
+<template>
+  <IndexPage lang="en-US" />
+</template>
+
+<script>
+import IndexPage from './IndexPage'
+
+export default {
+  components: {
+    IndexPage
+  }
+}
+</script>
diff --git a/docs/.vuepress/components/IndexPage.vue b/docs/.vuepress/components/IndexPage.vue
new file mode 100644
index 0000000..08b4428
--- /dev/null
+++ b/docs/.vuepress/components/IndexPage.vue
@@ -0,0 +1,223 @@
+<template>
+  <div>
+    <div class="wrap">
+      <div class="banner">
+        <img class="weex-img" src="https://img.alicdn.com/tfs/TB1C_xcqMHqK1RjSZJnXXbNLpXa-974-980.png" width="35%" height="100%" />
+        <div class="weex-desc">
+          <h1>{{weex.desc}}</h1>
+          <a class="quick-start" :href="lang == 'en-US' ? '/guide/introduction.html' : '/zh/guide/introduction.html'">{{weex.getStartedBtn}} <img src="https://img.alicdn.com/tfs/TB1_hg2qCzqK1RjSZFpXXakSXXa-15-12.svg" /></a>
+        </div>
+      </div>
+      <div class="character">
+        <div class="c-desc">
+          <h3>{{weex.charc1Title}}</h3>
+          <div>{{weex.charc1Content}}</div>
+        </div>
+        <img src="https://img.alicdn.com/tfs/TB1M2MYqzTpK1RjSZKPXXa3UpXa-1152-912.png" width="50%" height="100%" />
+      </div>
+
+      <div class="character-o">
+        <img class="pc" src="https://img.alicdn.com/tfs/TB17PA7qAzoK1RjSZFlXXai4VXa-2000-1216.png" width="100%"/>
+        <div class="c-desc pr">
+          <h3>{{weex.charc2Title}}</h3>
+          <div>{{weex.charc2Content}}</div>
+        </div>
+        <img class="mobile" src="https://img.alicdn.com/tfs/TB17PA7qAzoK1RjSZFlXXai4VXa-2000-1216.png" width="100%"/>
+      </div>
+
+      <div class="character">
+        <div class="c-desc">
+          <h3>{{weex.charc3Title}}</h3>
+          <div>{{weex.charc3Content}}</div>
+        </div>
+        <img src="https://img.alicdn.com/tfs/TB1UrQ4qAvoK1RjSZFNXXcxMVXa-808-1180.png" width="50%" height="100%" />
+      </div>
+
+      <div class="character-o">
+        <img class="pc" src="https://img.alicdn.com/tfs/TB1H7I2qxTpK1RjSZFKXXa2wXXa-2000-1216.png" width="100%"/>
+        <div class="c-desc pr">
+          <h3>{{weex.charc4Title}}</h3>
+          <div>{{weex.charc4Content}}</div>
+        </div>
+        <img class="mobile" src="https://img.alicdn.com/tfs/TB1H7I2qxTpK1RjSZFKXXa2wXXa-2000-1216.png" width="100%"/>
+      </div>
+
+      <div class="eagle">
+        <div>{{weex.startText}}</div>
+        <a class="start-btn" :href="lang == 'en-US' ? '/guide/introduction.html' : '/zh/guide/introduction.html'">{{weex.getStartedBtn}}</a>
+      </div>
+    </div>
+    <License v-show="isApache" />
+  </div>
+</template>
+
+<script>
+
+import langZH from '../data/lang-zh';
+import langEN from '../data/lang-en';
+import License from '../sub-components/License.vue';
+
+export default {
+  data() {
+    if (this.lang == 'en-US') {
+      return {
+        weex: langEN.weex,
+        isApache: window.location.href.indexOf('weex.apache.org') !== -1
+      }
+    }
+    return {
+      weex: langZH.weex,
+      isApache: window.location.href.indexOf('weex.apache.org') !== -1
+    }
+  },
+  props: ['lang'],
+
+  components: {
+    License
+  }
+}
+</script>
+
+
+<style scoped>
+.wrap {
+  padding-left: 10%;
+  padding-right: 10%;
+  background: url(https://img.alicdn.com/tfs/TB1hqc7qrvpK1RjSZFqXXcXUVXa-2880-1792.png) 0 0 / 100% no-repeat;
+}
+.banner {
+  display: flex;
+}
+.weex-img {
+  margin-top: 8%;
+}
+.weex-desc {
+  padding-top: 5%;
+  padding-left: 5%;
+}
+.weex-desc > h1 {
+  line-height: 56px;
+  font-size: 40px;
+  color: #FFFFFF;
+}
+.quick-start {
+  display: inline-block;
+  width: 176px;
+  height: 48px;
+  line-height: 46px;
+  box-sizing: border-box;
+  text-align: center;
+  border: 1px solid #fff;
+  border-radius: 2px;
+  color: #fff;
+  font-size: 18px;
+}
+.c-desc {
+  width: 30%;
+}
+.c-desc > h3 {
+  line-height: 40px;
+  font-size: 28px;
+  color: #373D41;
+}
+.c-desc > div {
+  line-height: 24px;
+  font-size: 14px;
+  color: #373D41;
+  line-height: 24px;
+}
+.eagle {
+  height: 500px;
+  background: url(https://img.alicdn.com/tfs/TB1tQQ7qxTpK1RjSZFMXXbG_VXa-604-498.svg) center no-repeat;
+  text-align: center;
+  overflow: hidden;
+}
+.eagle > div {
+  margin-top: 223px;
+  margin-bottom: 28px;
+  line-height: 40px;
+  font-size: 32px;
+  color: #373D41;
+}
+.eagle > .start-btn {
+  display: inline-block;
+  width: 240px;
+  height: 48px;
+  line-height: 48px;
+  background: #00B4FF;
+  border-radius: 2px;
+  color: #fff;
+  font-size: 16px;
+}
+@media screen and (max-width: 1200px) {
+  .weex-desc > h1 {
+    font-size: 24px;
+    line-height: 36px;
+  }
+  .quick-start {
+    width: 146px;
+    height: 38px;
+    line-height: 36px;
+    font-size: 14px;
+  }
+  .c-desc > h3 {
+    font-size: 24px;
+  }
+}
+@media screen and (max-width: 720px) {
+  .weex-desc > h1 {
+    font-size: 14px;
+    line-height: 20px;
+  }
+  .quick-start {
+    width: 80px;
+    height: 26px;
+    line-height: 24px;
+    font-size: 12px;
+  }
+  .quick-start > img {
+    display: none;
+  }
+  
+}
+@media screen and (max-width: 820px) {
+  .pc {
+    display: none;
+  }
+  .character, .character-o {
+    text-align: center;
+  }
+  .c-desc {
+    width: 100%;
+  }
+  .c-desc > h3 {
+    margin-top: 30px;
+    font-size: 16px;
+    line-height: 24px;
+  }
+  .c-desc > div {
+    text-align: left;
+  }
+}
+@media screen and (min-width: 820px) {
+  .mobile {
+    display: none;
+  }
+  .character {
+    display: flex;
+    align-items: center;
+    justify-content: space-around;
+  }
+  .character-o {
+    position: relative;
+  }
+  .c-desc.pr {
+    position: absolute;
+    top: 50%;
+    transform: translateY(-50%);
+    right: 50px;
+  }
+}
+
+</style>
+
diff --git a/docs/.vuepress/components/IndexZh.vue b/docs/.vuepress/components/IndexZh.vue
new file mode 100644
index 0000000..3e7fd76
--- /dev/null
+++ b/docs/.vuepress/components/IndexZh.vue
@@ -0,0 +1,13 @@
+<template>
+  <IndexPage lang="zh-CN" />
+</template>
+
+<script>
+import IndexPage from './IndexPage'
+
+export default {
+  components: {
+    IndexPage
+  }
+}
+</script>
diff --git a/docs/.vuepress/components/SourceCode.vue b/docs/.vuepress/components/SourceCode.vue
deleted file mode 100644
index 8063d1c..0000000
--- a/docs/.vuepress/components/SourceCode.vue
+++ /dev/null
@@ -1,114 +0,0 @@
-<template>
-  <div class="wrapper">
-    <iframe class="iframe"
-      ref="iframe"
-      :src="url"
-      :style="{ height }"
-      @load="onLoad"
-      frameborder="0"></iframe>
-    <div class="controls" v-if="showControls">
-      <div class="btn" @click="openURL">
-        <span class="btn-text">Open</span>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-  const baseURL = 'https://editor.weex.alibaba-inc.com'
-  function setParams (url, params) {
-    const querys = []
-    for (const key in params) {
-      if (Object.prototype.hasOwnProperty.call(params, key) && params[key]) {
-        querys.push({ name: key, value: params[key] })
-      }
-    }
-    if (url && querys.length) {
-      url += ('?' + querys.map(x => `${x.name}=${x.value}`).join('&'))
-    }
-    return url
-  }
-  export default {
-    props: ['hash', 'file', 'line', 'mode', 'buttons'],
-    data () {
-      return {
-        url: this.createURL(),
-        showControls: false,
-        height: 'auto'
-      }
-    },
-    created () {
-      if (this.line) {
-        this.height = this.calculateHeight() + 'px'
-      }
-    },
-    methods: {
-      createURL () {
-        let url = this.src ? this.src : `${baseURL}/source/${this.hash}`
-        const params = []
-        if (this.file) {
-          url += `/${this.file}`
-        }
-        return setParams(url, { line: this.line })
-      },
-      onLoad () {
-        // const $iframe = this.$refs.iframe
-        if (this.buttons !== 'none') {
-          this.showControls = true
-        }
-      },
-      calculateHeight () {
-        const lineHeight = 19
-        if (this.line) {
-          var pair = this.line.split(/\-|\~/i)
-          var begin = parseInt(pair[0], 10)
-          var end = parseInt(pair[1], 10) || begin
-          return (end - begin + 1) * lineHeight + 20
-        }
-      },
-      openURL () {
-        try {
-          const url = setParams(`${baseURL}/vue/${this.hash}`, {
-            file: this.file,
-            line: this.line
-          })
-          window.open(url)
-        } catch (e) {}
-      }
-    }
-  }
-</script>
-
-<style scoped>
-  .wrapper {
-    position: relative;
-    width: 100%;
-    height: 100%;
-    padding: 10px 2%;
-    box-sizing: border-box;
-  }
-  .iframe {
-    width: 100%;
-    height: auto;
-  }
-  .controls {
-    position: absolute;
-    top: 18px;
-    right: 3%;
-  }
-  .controls .btn {
-    display: flex;
-    justify-content: center;
-    align-items: center;
-    border: 1px solid #5f5f5f;
-    border-radius: 5px;
-    background-color: rgba(255,255,255,.1);
-    color: #969696;
-    cursor: pointer;
-    padding: 3px 8px;
-    font-size: 13px;
-  }
-  .controls .btn:hover {
-    box-shadow: 0 2px 8px rgba(255, 255, 255, 0.1);
-  }
-</style>
diff --git a/docs/.vuepress/components/Tool-Dotwe.vue b/docs/.vuepress/components/Tool-Dotwe.vue
new file mode 100644
index 0000000..3daf556
--- /dev/null
+++ b/docs/.vuepress/components/Tool-Dotwe.vue
@@ -0,0 +1,111 @@
+<template>
+  <div class="wrap">
+    <div class="warning">
+      <p class="warning-icon">WARNING</p>
+      <p>{{lang === 'en-US' ? 'Online Editor is a third party editor, and is not developed nor maintained by Apache Weex.' : 'Online Editor 是三方编辑器, 不由 Apache Weex 开发或维护。'}}</p>
+    </div>
+    <img class="editor hide" src="https://img.alicdn.com/tfs/TB1OFpuI4naK1RjSZFBXXcW7VXa-1936-1188.png" />
+    <div class="link">
+      <h3 class="title">{{lang === 'en-US' ? 'Online Editor' : '在线编辑器'}}</h3>
+      <div class="desc">{{lang === 'en-US' ? 'Weex Online Editor for developers. Developer don\'t need install anything. Also, it\'s convenient for talking about some developing issue.' : 'Weex 在线编辑器，无需安装任何环境，马上开始Weex代码开发。交流Weex代码的利器！'}}</div>
+      <a href="http://editor.weex.io" target="_blank" class="btn">{{lang === 'en-US' ? 'Open Editor' : '打开在线编辑器'}}</a>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  props: ['lang']
+}
+</script>
+
+<style scoped>
+.wrap {
+  position: relative;
+  display: flex;
+  height: calc(100vh - 3.6rem);
+  margin-top: 3.6rem !important;
+  padding-left: 11rem;
+  background: url(https://img.alicdn.com/tfs/TB1WrU8IQvoK1RjSZPfXXXPKFXa-2438-1420.png) 10rem 0 / cover no-repeat;
+}
+.warning {
+  position: absolute;
+  width: 100%;
+  border-color: #f63;
+  background-color: #fff2ee;
+  padding: .1rem 1rem;
+  border-left-width: .2rem;
+}
+.warning-icon {
+  padding-left: 21px;
+  color: #606273;
+  background: url(https://gw.alicdn.com/tfs/TB1mwIBAwHqK1RjSZJnXXbNLpXa-16-16.svg) 0 5px no-repeat;
+  font-weight: 600;
+  margin-bottom: -.4rem;
+}
+.warning-icon + p {
+  color: #4d0000;
+}
+.editor {
+  margin-top: 7.2rem;
+  height: calc(100vh - 3.6rem - 7.2rem);
+}
+.link {
+  margin-left: -140px;
+  width: 250px;
+}
+.title {
+  padding-top: 150px;
+  margin-top: 0;
+  margin-bottom: 6px;
+  line-height: 56px;
+  font-family: PingFangSC-Semibold;
+  font-size: 40px;
+  color: #373D41;
+}
+.desc {
+  line-height: 20px;
+  font-size: 14px;
+  color: #373D41;
+  margin-bottom: 32px;
+}
+.btn {
+  display: inline-block;
+  width: 176px;
+  height: 48px;
+  line-height: 48px;
+  color: #fff;
+  font-size: 16px;
+  background: #00B4FF;
+  border-radius: 2px;
+  margin-left: 4px;
+  margin-right: 4px;
+  text-align: center;
+}
+.btn:hover {
+  text-decoration: none !important;
+}
+
+@media (max-width: 1200px) { 
+  .hide {
+    display: none;
+  }
+  .link {
+    margin-left: 0;
+    width: auto;
+    text-align: center;
+    padding-left: 15px;
+    padding-right: 15px;
+  }
+  .wrap {
+    display: block;
+  }
+}
+
+@media (max-width: 720px) {
+  .wrap {
+    padding-left: 0;
+    background-position-x: 0;
+  }
+}
+</style>
diff --git a/docs/.vuepress/components/Tool-Playground.vue b/docs/.vuepress/components/Tool-Playground.vue
new file mode 100644
index 0000000..a821a0f
--- /dev/null
+++ b/docs/.vuepress/components/Tool-Playground.vue
@@ -0,0 +1,94 @@
+<template>
+  <div class="wrap">
+    <img class="phone hide" src="https://img.alicdn.com/tfs/TB1mvFeI7voK1RjSZFwXXciCFXa-976-1420.png" />
+    <div class="download">
+      <h3 class="title">Weex Playground</h3>
+      <div class="desc">{{lang === 'en-US' ? 'Weex Native Runtime showcase & Weex vue file preview.' : 'Weex 示例App，可扫码预览Weex代码构建后的页面。'}}</div>
+      <img src="/tool-playground-qrcode.png" width="128" />
+      <div class="desc2">{{lang === 'en-US' ? 'scan the qrcode and download the app' : '扫二维码下载该APP'}}</div>
+      <div><a href="https://itunes.apple.com/cn/app/weex-playground/id1130862662?mt=8" target="_blank" class="btn"><img src="/tool-playground-apple-icon.png" width="12" />{{lang === 'en-US' ? 'iOS' : 'iOS版下载'}}</a><a href="http://appdownload.alicdn.com/publish/weex_playgroud/latest/weex_playgroud_10006024.apk" class="btn" ><img src="/tool-playground-android-icon.png" width="12"/>{{lang === 'en-US' ? 'Android' : 'Android版下载'}}</a></div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  props: ['lang']
+}
+</script>
+
+
+<style scoped>
+.wrap {
+  display: flex;
+  height: calc(100vh - 3.6rem);
+  margin-top: 3.6rem !important;
+  padding-left: 11rem;
+  background: url(https://img.alicdn.com/tfs/TB1qzBXI7voK1RjSZFNXXcxMVXa-2438-1420.png) 10rem 0 / cover no-repeat;
+}
+.phone {
+  height: calc(100vh - 3.6rem);
+}
+.download {
+  margin-left: 130px;
+  text-align: center;
+}
+.title {
+  margin-top: 0;
+  padding-top: 140px;
+  margin-bottom: 6px;
+  line-height: 56px;
+  font-family: PingFangSC-Semibold;
+  font-size: 40px;
+  color: #373D41;
+}
+.desc {
+  line-height: 20px;
+  font-size: 14px;
+  color: #373D41;
+  margin-bottom: 38px;
+}
+.desc2 {
+  margin-top: 5px;
+  margin-bottom: 24px;
+  line-height: 22px;
+  font-size: 12px;
+  color: #373D41;
+}
+.btn {
+  display: inline-block;
+  width: 158px;
+  height: 48px;
+  line-height: 48px;
+  color: #fff;
+  font-size: 16px;
+  background: #00B4FF;
+  border-radius: 2px;
+  margin-left: 4px;
+  margin-right: 4px;
+  margin-bottom: 10px;
+}
+.btn:hover {
+  text-decoration: none !important;
+}
+.btn > img {
+  margin-right: 5px;
+}
+
+@media (max-width: 1050px) { 
+  .hide {
+    display: none;
+  }
+}
+
+@media (max-width: 720px) {
+  .wrap {
+    display: block;
+    padding-left: 0;
+    background-position-x: 0;
+  }
+  .download {
+    margin-left: 0;
+  }
+}
+</style>
diff --git a/docs/.vuepress/components/Who-Is-Using-Weex.vue b/docs/.vuepress/components/Who-Is-Using-Weex.vue
new file mode 100644
index 0000000..d983acc
--- /dev/null
+++ b/docs/.vuepress/components/Who-Is-Using-Weex.vue
@@ -0,0 +1,125 @@
+<template>
+  <div>
+    <h3 class="title">{{lang === 'en-US' ? 'they are using weex' : '他们都在使用Weex'}}</h3>
+    <div class="wrap">
+      <div class="app" v-for="item in list" :key="item.name_CN">
+        <div class="icon-wrap">
+          <img class="app-icon" :src="item.icon" width="90" height="90" />
+          <div class="icons">
+            <a class="icon-android" :href="item.iOS" target="_blank"><img src="/iOS@2x.png" width="17" height="17"/></a>
+            <a :href="item.android" target="_blank"><img src="/Android@2x.png" width="17" height="17"/></a>
+          </div>
+        </div>
+        <div class="app-name">{{lang === 'en-US' ? item.name_EN : item.name_CN}}</div>
+      </div>
+    </div>
+    <div class="btn"><a class="add-app" href="https://github.com/apache/incubator-weex-site/blob/master/docs/.vuepress/data/who-is-using-weex.js" target="_blank">{{lang === 'en-US' ? 'Add your App' : '我也要上墙'}}</a></div>
+  </div>
+</template>
+
+<script>
+import list from '../data/who-is-using-weex.js'
+
+export default {
+  props: ['lang'],
+  data() {
+    return {
+      list,
+    }
+  }
+}
+</script>
+
+<style scoped>
+.title {
+  width: 910px;
+  line-height: 33px;
+  font-family: PingFangSC-Medium;
+  font-size: 24px;
+  color: #373D41;
+  text-align: center;
+  margin-top: 78px;
+  margin-bottom: 20px;
+}
+.wrap {
+  width: 910px;
+  display: flex;
+  flex-wrap: wrap;
+}
+.app {
+  padding: 20px;
+  padding-bottom: 0;
+}
+.app-icon {
+  display: block;
+  border-radius: 15px;
+}
+.app-name {
+  text-align: center;
+  line-height: 17px;
+  font-size: 12px;
+  color: #373D41;
+  margin-top: 12px;
+}
+.add-app {
+  display: inline-block;
+  width: 260px;
+  height: 40px;
+  line-height: 40px;
+  background-color: #00B4FF;
+  border-radius: 2px;
+  color: #fff;
+  font-size: 16px;
+  text-align: center;
+}
+.btn {
+  width: 910px;
+  margin-top: 38px;
+  text-align: center;
+}
+.add-app:hover {
+  text-decoration: none !important;
+}
+.icon-wrap {
+  position: relative;
+}
+.icons {
+  opacity: 0;
+  position: absolute;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  height: 28px;
+  border-bottom-left-radius: 15px;
+  border-bottom-right-radius: 15px;
+  background-color: rgba(0, 0, 0, 0.5);
+  display: flex;
+  transition: all .2s ease,transform .2s ease; 
+}
+.icons > a {
+  flex: 1;
+  font-size: 0;
+  height: 100%;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  box-sizing: border-box;
+}
+.icon-android {
+  border-right: 1px solid #1D2C41
+}
+
+.icon-wrap img {
+  transition: box-shadow .2s ease,transform .2s ease;
+}
+
+.icon-wrap:hover .icons {
+  opacity: 1;
+  transform: translateY(-2px);
+}
+
+.icon-wrap:hover img {
+  transform: translateY(-2px);
+  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.16);
+}
+</style>
diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js
index 81ad20e..f3cb22b 100644
--- a/docs/.vuepress/config.js
+++ b/docs/.vuepress/config.js
@@ -45,7 +45,8 @@
                 ['front-end-frameworks', 'Front-End Frameworks'],
                 ['platform-difference', 'Platform Difference'],
                 ['use-vue-in-weex', 'Use Vue in Weex'],
-                ['use-rax-in-weex', 'Use Rax in Weex']
+                ['use-rax-in-weex', 'Use Rax in Weex'],
+                ['playground', 'Playground App']
               ]
             },
             {
@@ -92,9 +93,8 @@
               title: 'Contribute',
               collapsable: false,
               children: [
-                ['contribute/bug-report-guidelines', 'Bug Report'],
                 ['contribute/how-to-contribute', 'Join Weex community'],
-                ['contribute/contribute-code', 'Contribute Code'],
+                ['contribute/thanks', 'Thanks'],
               ]
             }
           ],
@@ -175,17 +175,17 @@
             }
           ],
           '/tools/': [
-            ['playground', 'Playground App'],
             ['toolkit', 'Weex Toolkit'],
-            ['extension', 'VSCode Extension']
+            ['extension', 'VSCode Extension'],
+            ["dotwe", "Online Editor"]
           ],
           '/community/': [
-            ['release-procedure', 'Release Procedure'],
-            ['roadmap', 'Roadmap'], 
-            ['weex-third-party-extensions', 'Plugins Market']],
+            ['weex-third-party-extensions', 'Plugins Market']
+          ],
           '/blog/': [
             ['write-a-blog', 'Write a Blog'],
-            ['ios-weexcore.md', 'Adapt iOS WeexSDK to WeexCore']
+            ['ios-weexcore.md', 'Adapt iOS WeexSDK to WeexCore'],
+            ['weex-third-party-extensions','List of Third Party Plugin']
           ],
           '/download/':[
              ['download', "Source Download"] 
@@ -219,7 +219,8 @@
                 ['front-end-frameworks', '前端框架'],
                 ['platform-difference', '平台差异'],
                 ['use-vue-in-weex', '在Weex中使用Vue.js'],
-                ['use-rax-in-weex', '在Weex中使用Rax.js']
+                ['use-rax-in-weex', '在Weex中使用Rax.js'],
+                ['playground', 'Playground 应用']
               ]
             },
             {
@@ -266,9 +267,8 @@
               title: '贡献',
               collapsable: false,
               children: [
-                ['contribute/bug-report-guidelines', 'Bug 反馈'],
                 ['contribute/how-to-contribute', '加入 Weex 社区'],
-                ['contribute/contribute-code', '代码贡献指南'],
+                ['contribute/thanks', '鸣谢'],
               ]
             }
           ],
@@ -349,20 +349,20 @@
             }
           ],
           '/zh/tools/': [
-            ['playground', 'Playground 应用'],
             ['toolkit', 'Weex 工具箱'],
-            ['extension', 'VSCode 插件']
+            ['extension', 'VSCode 插件'],
+            ["dotwe", "Online Editor"]
           ],
           '/zh/community/': [
-            ['release-procedure', 'Apache Release 流程'],
-            ['roadmap', '路线图'], 
-            ['weex-third-party-extensions', '插件市场']],
+            ['weex-third-party-extensions', '插件市场']
+          ],
           '/zh/blog/': [
             ['write-a-blog', '写一篇博客'],
             ['weex-auto-test-locating', 'Weex自动化测试元素定位方案'],
             ['ios-weexcore.md', 'iOS WeexSDK 接入 WeexCore'],
             ['weexcore-multiprocess-evolution', 'WeexCore 多进程多线程架构演进'],
-            ['interaction-optimization', '可交互时间的探索和首屏时间的改进之路']
+            ['interaction-optimization', '可交互时间的探索和首屏时间的改进之路'],
+            ['weex-third-party-extensions','Weex 三方插件']
           ],
           '/zh/download/':[
             ['download', "源代码下载"] 
diff --git a/docs/.vuepress/data/lang-en.js b/docs/.vuepress/data/lang-en.js
deleted file mode 100644
index 2ad9290..0000000
--- a/docs/.vuepress/data/lang-en.js
+++ /dev/null
@@ -1,36 +0,0 @@
-export default {
-  weex: {
-    desc: 'Weex is a framework for building performant mobile apps with modern web technology.',
-    getStartedBtn: 'Get Started',
-    startText: 'Start building your weex app',
-    charc1Title: 'High Performance',
-    charc1Content:
-      'Weex is using native components and native modules to take advantage of native rendering performance and platform capabilities. Both components and modules are pluggable and extendable.',
-    charc2Title: 'Cross Platforms',
-    charc2Content:
-      'You can use a single codebase to generate different bundle files to running on both Webs, Android and iOS platforms. Native components and modules have a different implementation on each platform, but they all exposed the same API.',
-    charc3Title: 'Front-end Friendly',
-    charc3Content:
-      'Weex embraces the existing Web ecosystem, you can use modern front-end technology to develop your mobile apps. Weex supports most commonly used CSS properties and most popular front-end frameworks, such as Vue and Rax, maybe more in the future.',
-    charc4Title: 'Large-scale Used in Production',
-    charc4Content:
-      'Weex has been large-scale used in many super apps for a long time, served almost billions of people in total. Weex also derived many engineering products and platforms for industry development.'
-  },
-  info: {
-    solutionTitle: 'Solutions',
-    demoTitle: 'Demos',
-    searchTag: 'Search Tags',
-    hotTags: 'Hot Tags',
-    searchBtn: 'Search',
-    placeholder: 'Select tags or input tags then press the Enter key',
-    solutionFavoriteNone:
-      "You don't have any favorite solution. Start collecting the first one now!",
-    solutionWorksNone: "You don't write any solution. Start writing one now!",
-    demoFavoriteNone: "You don't have any favorite demo. Start collecting the first one now!",
-    demoWorksNone: "You don't write any demo. Start writing one now!",
-    startWriting: 'startWriting',
-    noData: 'No Data',
-    pv: 'pv',
-    favor: 'favor'
-  }
-};
diff --git a/docs/.vuepress/data/lang-zh.js b/docs/.vuepress/data/lang-zh.js
deleted file mode 100644
index 49211c6..0000000
--- a/docs/.vuepress/data/lang-zh.js
+++ /dev/null
@@ -1,35 +0,0 @@
-export default {
-  weex: {
-    desc: 'Weex 是一个可以使用现代化的 Web 技术开发高性能原生应用的框架。',
-    getStartedBtn: '快速开始',
-    startText: '开始构建你的 weex 应用',
-    charc1Title: '高性能',
-    charc1Content:
-      'Weex 使用原生组件和原生模块，来最大化利用原生渲染的性能优势以及平台能力，所有的组件和模块都是可插拔、可扩展的。',
-    charc2Title: '跨平台',
-    charc2Content:
-      '你可以使用同一份代码编译成不同目标文件分别在 Web、Android 和 iOS 平台上运行。原生的组件和模块在不同平台中有不同的实现，但是它们都提供了相同的接口。',
-    charc3Title: '贴近前端生态',
-    charc3Content:
-      'Weex 拥抱已有的 Web 生态，你可以使用现代化的前端技术开发移动应用。 Weex 支持了最常用 CSS 样式以及最流行的前端框架，如 Vue 和 Rax，在未来或许还可以支持更多。',
-    charc4Title: '被大规模的使用',
-    charc4Content:
-      'Weex 已经在许多超级 App 中大规模使用，一共服务了数亿用户。Weex 还衍生出了各种工程化的产品和平台，以供 工业生产使用。'
-  },
-  info: {
-    solutionTitle: '干货集中营-解决方案',
-    demoTitle: '干货集中营-代码案例',
-    searchTag: '标签筛选',
-    hotTags: '热门标签',
-    searchBtn: '筛选',
-    palceholder: '请选择标签或者输入关键词后回车',
-    solutionFavoriteNone: '你还没有收藏解决方案，赶快点击按钮开始收藏你的第一个解决方案吧~',
-    solutionWorksNone: '你还没有编写解决方案，赶快去编写你的第一个解决方案吧~',
-    demoFavoriteNone: '你还没有收藏代码案例，赶快点击按钮开始收藏你的第一个代码案例吧~',
-    demoWorksNone: '你还没有编写代码案例，赶快去编写你的第一个代码案例吧~',
-    startWriting: 'GO-编写去',
-    noData: '暂无数据~',
-    pv: '浏览',
-    favor: '收藏'
-  }
-};
diff --git a/docs/.vuepress/data/redirect.json b/docs/.vuepress/data/redirect.json
index 6bf81c5..4811888 100644
--- a/docs/.vuepress/data/redirect.json
+++ b/docs/.vuepress/data/redirect.json
@@ -17,10 +17,12 @@
   "/references/modules/": "/docs/modules/animation.html",
   "/cn/references/components/": "/zh/docs/components/a.html",
   "/cn/references/modules/": "/zh/docs/modules/animation.html",
-  "/resources.html": "/tools/playground.html",
-  "/cn/resources.html": "/zh/tools/playground.html",
-  "/playground.html": "/tools/playground.html",
-  "/cn/playground.html": "/zh/tools/playground.html",
+  "/resources.html": "/guide/playground.html",
+  "/cn/resources.html": "/zh/guide/playground.html",
+  "/playground.html": "/guide/playground.html",
+  "/cn/playground.html": "/zh/guide/playground.html",
+  "/tools/playground.html": "/guide/playground.html",
+  "/zh/tools/playground.html": "/zh/guide/playground.html",
   "/examples.html": "/community/code-demo.html",
   "/cn/examples.html": "/zh/community/code-demo.html",
   "/examples/dom-rect.html": "/community/code-demo.html",
diff --git a/docs/.vuepress/override.styl b/docs/.vuepress/override.styl
index 634bf69..10f84db 100644
--- a/docs/.vuepress/override.styl
+++ b/docs/.vuepress/override.styl
@@ -1,7 +1,289 @@
-#app .sidebar { width: 15rem; }
 #app .page { padding-bottom: 0; }
+#app .sidebar { width: 15rem; }
+#app .content:not(.custom) { max-width: 850px; }
+#app .custom-block.tip, #app .custom-block.warning, #app .custom-block.danger { padding: 0.1rem 1rem; border-left-width: 0.2rem; }
+#app blockquote { font-size: 15px; }
+#app table, #app thead, #app tr { width: 100% }
+
+#app {
+  .badge {
+    font-size: 12px;
+  }
+  .warning .custom-block-title {
+    padding-left: 21px;
+    color: #606273;
+    background: url(https://gw.alicdn.com/tfs/TB1tbEwACzqK1RjSZFjXXblCFXa-16-16.svg) 0 5px no-repeat;
+  }
+  .danger {
+    border-color: #FF6633;
+    background-color: #FFF2EE;
+    .custom-block-title {
+      padding-left: 21px;
+      color: #606273;
+      background: url(https://gw.alicdn.com/tfs/TB1mwIBAwHqK1RjSZJnXXbNLpXa-16-16.svg) 0 5px no-repeat;
+    }
+  } 
+  .tip {
+    border-color: #00B4FF;
+    .custom-block-title {
+      padding-left: 21px;
+      color: #606273;
+      background: url(https://gw.alicdn.com/tfs/TB1nbAzApzqK1RjSZFoXXbfcXXa-16-16.svg) 0 5px no-repeat;
+    }
+  }
+}
+
+.theme-container.page-module-modal {
+  table th:last-of-type {
+    width: 15%;
+  }
+}
+
+.theme-container.page-vue-in-weex {
+  table th:first-of-type {
+    width: 40%;
+    & + th {
+      width: 20%;
+    }
+  }
+  table th:last-of-type {
+    width: 40%;
+  }
+}
+
+#app .demo-wrapper .content:not(.custom) {
+  max-width: 1100px;
+}
+
+#app .demo-wrapper .page-nav {
+  max-width: 1100px;
+}
+
+#app .demo-wrapper .content {
+  h2, h3 {
+    margin-top: -3.1rem;
+    padding-top: 2rem;
+    margin-bottom: 0;
+  }
+  ul {
+    list-style: none;
+    display: flex;
+    flex-wrap: wrap;
+    padding: 0;
+    margin: 40px -13px;
+    li {
+      margin-left: 13px;
+      margin-right: 13px;
+    }
+  }
+}
+
+#app .help .page {
+  padding-bottom: 0;
+  padding-right: 0;
+  .content {
+    margin: 0;
+    padding: 0;
+    max-width: 10000px;
+  }
+  .page-edit {
+    padding: 0;
+  }
+  .render-md p {
+    margin: 0;
+  }
+}
+
+#app .tool .page {
+  padding-bottom: 0;
+  padding-right: 0;
+  .content {
+    margin: 0;
+    padding: 0;
+    max-width: 10000px;
+  }
+  .page-edit, .page-nav, .license-wrap {
+    display: none;
+  }
+}
+
+#app .tool-ide .page {
+  padding: 0;
+  .content {
+    margin: 0;
+    padding: 0;
+    padding-left: 15rem;
+    max-width: 10000px;
+  }
+  .page-edit, .page-nav, .license-wrap {
+    display: none;
+  }
+  h1 {
+    display: none;
+  }
+}
+
+#app .tool-kit .page {
+  padding: 0;
+  .content {
+    margin: 0;
+    padding: 0;
+    padding-left: 15rem;
+    max-width: 10000px;
+  }
+  img {
+    width: 100%;
+  }
+  .page-edit, .page-nav, .license-wrap {
+    display: none;
+  }  
+}
+
 #app .noFooter .page {
   .page-edit, .page-nav, .license-wrap {
     display: none;
   } 
+}
+
+#app .community .page {
+  .tag {
+    background: rgb(234,249,255);
+    color: #00b4ff;
+    .content {
+      padding: 0;
+      & > *:first-child {
+        margin-top: 0;
+      }
+    }
+    .actions {
+      color: #979A9C;
+      font-size: .85em;
+      margin-left: 10px;
+    }
+  }
+  .vue-tags-input .input {
+    border-radius: 4px;
+    padding: 2px 4px;
+    ul {
+      line-height: 1;
+    }
+    .new-tag-input {
+      min-width: 300px;
+      height: 14px;
+    }
+  }
+}
+
+.md h2 {
+  padding-top: 0;
+}
+.md pre {
+  background-color #f8f9fb;
+  padding: 1rem;
+  code {
+    display: block;
+    color: #828282;
+    width: 100%;
+    overflow: auto; 
+  }
+}
+
+@media screen and (max-width: 1700px)
+  #app .demo-wrapper .content:not(.custom)
+    margin-left 13rem
+
+  #app .demo-wrapper .page-nav
+    margin-left 13rem
+
+@media (max-width: 719px)
+  #app .demo-wrapper .content:not(.custom)
+    margin-left 0
+
+  #app .demo-wrapper .page-nav
+    margin-left 0
+
+@media screen and (max-width: 1400px) 
+  #app .tags .content:not(.custom)
+    margin-left 0
+
+//
+// Pagination (multiple pages)
+// --------------------------------------------------
+.pagination-wrap {
+  text-align: center;
+}
+.pagination {
+  display: inline-block;
+  margin: 20px auto;
+  border-radius: 4px;
+  overflow: hidden;
+
+  > li {
+    display: inline; // Remove list-style and block-level defaults
+    > a,
+    > span {
+      position: relative;
+      float: left; // Collapse white-space
+      padding: 6px 12px;
+      line-height: 1.4;
+      text-decoration: none !important;
+      color: #00b4ff;
+      background-color: #fff;
+      border: 1px solid #ddd;
+      margin-left: -1px;
+    }
+    &:first-child {
+      > a,
+      > span {
+        margin-left: 0;
+        border-top-left-radius: 4px;
+        border-bottom-left-radius: 4px;
+      }
+    }
+    &:last-child {
+      > a,
+      > span {
+        border-top-right-radius: 4px;
+        border-bottom-right-radius: 4px;
+      }
+    }
+  }
+
+  > li > a,
+  > li > span {
+    outline: none;
+    &:hover,
+    &:focus {
+      z-index: 3;
+      color: #23527c;
+      background-color: #eee;
+      border-color: #ddd;
+    }
+  }
+
+  > .active > a,
+  > .active > span {
+    &,
+    &:hover,
+    &:focus {
+      z-index: 2;
+      color: #fff;
+      background-color: #00b4ff;
+      border-color: #ddd;
+      cursor: default;
+    }
+  }
+
+  > .disabled {
+    > span,
+    > span:hover,
+    > span:focus,
+    > a,
+    > a:hover,
+    > a:focus {
+      color: #777;
+      border-color: #ddd;
+      cursor: not-allowed;
+    }
+  }
 }
\ No newline at end of file
diff --git a/docs/.vuepress/public/Android@2x.png b/docs/.vuepress/public/Android@2x.png
new file mode 100644
index 0000000..ceb2a45
--- /dev/null
+++ b/docs/.vuepress/public/Android@2x.png
Binary files differ
diff --git a/docs/.vuepress/public/BroadcastChannel.png b/docs/.vuepress/public/BroadcastChannel.png
new file mode 100644
index 0000000..050e043
--- /dev/null
+++ b/docs/.vuepress/public/BroadcastChannel.png
Binary files differ
diff --git a/docs/.vuepress/public/bubbling-capturing.png b/docs/.vuepress/public/bubbling-capturing.png
new file mode 100644
index 0000000..1a92811
--- /dev/null
+++ b/docs/.vuepress/public/bubbling-capturing.png
Binary files differ
diff --git a/docs/.vuepress/public/css-boxmodel.png b/docs/.vuepress/public/css-boxmodel.png
new file mode 100644
index 0000000..a2063e2
--- /dev/null
+++ b/docs/.vuepress/public/css-boxmodel.png
Binary files differ
diff --git a/docs/.vuepress/public/css-flexbox-align.jpg b/docs/.vuepress/public/css-flexbox-align.jpg
new file mode 100644
index 0000000..8a7f731
--- /dev/null
+++ b/docs/.vuepress/public/css-flexbox-align.jpg
Binary files differ
diff --git a/docs/.vuepress/public/css-flexbox-justify.svg b/docs/.vuepress/public/css-flexbox-justify.svg
new file mode 100644
index 0000000..33e742b
--- /dev/null
+++ b/docs/.vuepress/public/css-flexbox-justify.svg
@@ -0,0 +1,59 @@
+<svg xmlns="http://www.w3.org/2000/svg" width='504' height='270' viewBox="0 0 504 270">
+	<defs>
+		<pattern id='checker' width='20' height='20' patternUnits='userSpaceOnUse'>
+			<rect x='0' y='0' width='10' height='10' fill='#eee' />
+			<rect x='10' y='10' width='10' height='10' fill='#eee' />
+			<rect x='0' y='10' width='10' height='10' fill='#ccc' />
+			<rect x='10' y='0' width='10' height='10' fill='#ccc' />
+		</pattern>
+	</defs>
+	<style>
+		text { font-family: sans-serif; font-weight: bold; font-size: 30px; text-anchor: middle; }
+		rect { stroke-width: 2px; stroke: #888; }
+		g > rect:nth-child(1) { fill: #888 }
+		g > rect:nth-child(2) { fill: #fcc; }
+		g > rect:nth-child(3) { fill: #cfc; }
+		g > rect:nth-child(4) { fill: #ccf; }
+		g > rect:nth-child(5) { fill: transparent; }
+	</style>
+	<g transform="translate(2,2)">
+		<rect x='0' y='0' width='500' height='50' />
+		<rect x='0' y='0' width='100' height='50' />
+		<rect x='100' y='0' width='80' height='50' />
+		<rect x='180' y='0' width='200' height='50' />
+		<rect x='0' y='0' width='500' height='50' />
+		<text x='250' y='38'>flex-start</text>
+	</g>
+	<g transform="translate(2,56)">
+		<rect x='0' y='0' width='500' height='50' />
+		<rect x='120' y='0' width='100' height='50' />
+		<rect x='220' y='0' width='80' height='50' />
+		<rect x='300' y='0' width='200' height='50' />
+		<rect x='0' y='0' width='500' height='50' />
+		<text x='250' y='38'>flex-end</text>
+	</g>
+	<g transform="translate(2,110)">
+		<rect x='0' y='0' width='500' height='50' />
+		<rect x='60' y='0' width='100' height='50' />
+		<rect x='160' y='0' width='80' height='50' />
+		<rect x='240' y='0' width='200' height='50' />
+		<rect x='0' y='0' width='500' height='50' />
+		<text x='250' y='38'>center</text>
+	</g>
+	<g transform="translate(2,164)">
+		<rect x='0' y='0' width='500' height='50' />
+		<rect x='0' y='0' width='100' height='50' />
+		<rect x='160' y='0' width='80' height='50' />
+		<rect x='300' y='0' width='200' height='50' />
+		<rect x='0' y='0' width='500' height='50' />
+		<text x='250' y='38'>space-between</text>
+	</g>
+	<g transform="translate(2,218)">
+		<rect x='0' y='0' width='500' height='50' />
+		<rect x='20' y='0' width='100' height='50' />
+		<rect x='160' y='0' width='80' height='50' />
+		<rect x='280' y='0' width='200' height='50' />
+		<rect x='0' y='0' width='500' height='50' />
+		<text x='250' y='38'>space-around</text>
+	</g>
+</svg>
\ No newline at end of file
diff --git a/docs/.vuepress/public/iOS@2x.png b/docs/.vuepress/public/iOS@2x.png
new file mode 100644
index 0000000..6ef2f96
--- /dev/null
+++ b/docs/.vuepress/public/iOS@2x.png
Binary files differ
diff --git a/docs/.vuepress/public/iPhone.svg b/docs/.vuepress/public/iPhone.svg
new file mode 100644
index 0000000..43d1f16
--- /dev/null
+++ b/docs/.vuepress/public/iPhone.svg
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 435.2 895.2" style="enable-background:new 0 0 435.2 895.2;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#66B2FF;}
+	.st1{fill:none;}
+	.st2{fill:#BBDDFF;}
+</style>
+<path class="st0" d="M364.3,895.2H70.9C31.8,895.2,0,863.4,0,824.3V70.8C0,31.7,31.8-0.1,70.9-0.1h293.4c39.1,0,70.9,31.8,70.9,70.9
+	v753.4C435.2,863.3,403.4,895.2,364.3,895.2z M70.9,0.7C32.2,0.7,0.8,32.2,0.8,70.8v753.4c0,38.7,31.5,70.1,70.1,70.1h293.4
+	c38.7,0,70.1-31.5,70.1-70.1V70.8c0-38.7-31.5-70.1-70.1-70.1C364.3,0.7,70.9,0.7,70.9,0.7z"/>
+<path class="st0" d="M406.6,790.9H22.5V108.3h384.1V790.9z M23.2,790.1h382.6V109H23.2V790.1z"/>
+<path class="st1" d="M187.4,55c-2.5,0-4.6,2.1-4.6,4.6s2.1,4.6,4.6,4.6h60.3c2.5,0,4.6-2.1,4.6-4.6s-2.1-4.6-4.6-4.6H187.4z"/>
+<rect x="162.4" y="34.5" class="st1" width="110.4" height="50.1"/>
+<g>
+	<path class="st2" d="M247.6,64.1h-59.9c-2.2,0-4-1.8-4-4v-0.2c0-2.2,1.8-4,4-4h59.9c2.2,0,4,1.8,4,4v0.2
+		C251.6,62.3,249.8,64.1,247.6,64.1z"/>
+	<path class="st0" d="M247.5,64.5h-59.8c-2.5,0-4.5-2-4.5-4.5s2-4.5,4.5-4.5h59.7c2.5,0,4.5,2,4.5,4.5S249.9,64.5,247.5,64.5z
+		 M187.7,56.3c-2.1,0-3.7,1.7-3.7,3.7s1.7,3.7,3.7,3.7h59.7c2.1,0,3.7-1.7,3.7-3.7s-1.7-3.7-3.7-3.7H187.7z"/>
+</g>
+<g>
+	<circle class="st2" cx="167.8" cy="60" r="5.5"/>
+	<path class="st0" d="M167.8,65.8c-3.2,0-5.8-2.6-5.8-5.8s2.6-5.8,5.8-5.8s5.8,2.6,5.8,5.8C173.6,63.2,171.1,65.8,167.8,65.8z
+		 M167.8,54.9c-2.8,0-5.1,2.3-5.1,5.1s2.3,5.1,5.1,5.1s5.1-2.3,5.1-5.1S170.6,54.9,167.8,54.9z"/>
+</g>
+<ellipse transform="matrix(0.4641 -0.8858 0.8858 0.4641 -623.9302 640.7924)" class="st2" cx="217.6" cy="836" rx="34.2" ry="34.2"/>
+<path class="st0" d="M217.6,870.6c-19.1,0-34.6-15.5-34.6-34.6s15.5-34.6,34.6-34.6s34.6,15.5,34.6,34.6S236.7,870.6,217.6,870.6z
+	 M217.6,802.1c-18.7,0-33.9,15.2-33.9,33.9s15.2,33.9,33.9,33.9s33.9-15.2,33.9-33.9S236.3,802.1,217.6,802.1z"/>
+</svg>
diff --git a/docs/.vuepress/public/image-resize-property.png b/docs/.vuepress/public/image-resize-property.png
new file mode 100644
index 0000000..c3b17a2
--- /dev/null
+++ b/docs/.vuepress/public/image-resize-property.png
Binary files differ
diff --git a/docs/.vuepress/public/logo@2x.svg b/docs/.vuepress/public/logo@2x.svg
new file mode 100644
index 0000000..0001e0a
--- /dev/null
+++ b/docs/.vuepress/public/logo@2x.svg
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="78px" height="39px" viewBox="0 0 78 39" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 52.3 (67297) - http://www.bohemiancoding.com/sketch -->
+    <title>TB1zBLaPXXXXXXeXXXXXXXXXXXX-121-59</title>
+    <desc>Created with Sketch.</desc>
+    <defs>
+        <polygon id="path-1" points="38.5024785 38.2713752 38.5024785 0.156635915 0 0.156635915 0 38.2713752"></polygon>
+        <polygon id="path-3" points="38.5024785 38.2713752 38.5024785 0.156635915 0 0.156635915 0 38.2713752"></polygon>
+    </defs>
+    <g id="weex" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="工具-1" transform="translate(-26.000000, -12.000000)">
+            <g id="Group-5">
+                <g id="TB1zBLaPXXXXXXeXXXXXXXXXXXX-121-59" transform="translate(26.000000, 12.000000)">
+                    <path d="M40.0783352,21.721519 C40.2240214,21.721519 40.3703494,21.8143021 40.3908867,21.9613664 L40.8491245,26.3291139 C40.8696618,26.5310907 40.9325572,26.6787862 41.0159898,26.6787862 C41.0994225,26.6787862 41.1828551,26.5317219 41.2033924,26.3291139 L41.7039883,21.9613664 C41.7450628,21.8143021 41.8079582,21.721519 41.9542863,21.721519 L44.0786099,21.721519 C44.1832217,21.721519 44.3083706,21.8143021 44.3289079,21.9247581 L44.8705784,26.3291139 C44.8917574,26.5310907 44.954011,26.6787862 45.0374437,26.6787862 C45.1208763,26.6787862 45.204309,26.5317219 45.225488,26.3291139 L45.6426513,21.9424311 C45.661905,21.8143021 45.7466212,21.721519 45.8717702,21.721519 L49.2475837,21.721519 C49.4561653,21.721519 49.5184189,21.8326062 49.4978816,21.9803017 L47.5596769,35.2665857 C47.5384979,35.4508895 47.4133489,35.5430414 47.2888417,35.5430414 L44.2467588,35.5430414 C44.1252323,35.542468 44.0207651,35.4581686 43.9964609,35.3410647 L43.2038507,30.8805341 C43.1826716,30.716428 43.120418,30.5864054 43.0369854,30.5864054 C42.9535527,30.5864054 42.8912991,30.7341009 42.8701201,30.9001006 L42.1416888,35.3233917 C42.0999725,35.4521519 42.0370771,35.5443038 41.9125699,35.5443038 L38.8274872,35.5443038 C38.6846577,35.5428511 38.5627169,35.4424738 38.5361147,35.3044564 L36.5343728,21.9613664 C36.5131937,21.7953667 36.6178054,21.721519 36.7634917,21.721519 L40.0764098,21.721519 L40.0783352,21.721519 Z M50.4355363,21.9613664 C50.4355363,21.8509104 50.5606853,21.721519 50.7063715,21.721519 L58.1049224,21.721519 C58.2294296,21.721519 58.3128623,21.8136709 58.3128623,21.9247581 L58.3128623,25.2415953 C58.3128623,25.3520513 58.2088923,25.4258991 58.0837434,25.4258991 L54.6033182,25.4258991 C54.5198855,25.4258991 54.4576319,25.4808115 54.4576319,25.5540281 L54.4576319,26.5866343 C54.4576319,26.6592197 54.5410646,26.7147633 54.6033182,26.7147633 L58.1203254,26.7147633 C58.203758,26.7147633 58.2660116,26.7703069 58.2660116,26.8435235 L58.2660116,30.1976001 C58.2640343,30.2878375 58.19086,30.360909 58.0991463,30.364231 L54.5417064,30.364231 C54.4582737,30.364231 54.3953783,30.4197746 54.3953783,30.5119265 L54.3953783,31.5994451 C54.3953783,31.6732929 54.4576319,31.7288365 54.5198855,31.7288365 L58.1254597,31.7288365 C58.2711459,31.7288365 58.3552204,31.8209884 58.3552204,31.9131403 L58.3552204,35.3404335 C58.3552204,35.4515207 58.2506087,35.5424103 58.1254597,35.5424103 L50.6646552,35.5424103 C50.5395062,35.5424103 50.4355363,35.4325854 50.4355363,35.3038252 L50.4355363,21.9613664 Z M59.7093965,21.9613664 C59.7093965,21.8509104 59.8339037,21.721519 59.9802317,21.721519 L67.3781409,21.721519 C67.5026481,21.721519 67.5860807,21.8136709 67.5860807,21.9247581 L67.5860807,25.2415953 C67.5860807,25.3520513 67.481469,25.4258991 67.3569618,25.4258991 L63.8765366,25.4258991 C63.793104,25.4258991 63.7308504,25.4808115 63.7308504,25.5540281 L63.7308504,26.5866343 C63.7308504,26.6592197 63.814283,26.7147633 63.8765366,26.7147633 L67.3935438,26.7147633 C67.4769765,26.7147633 67.5392301,26.7703069 67.5392301,26.8435235 L67.5392301,30.1976001 C67.5372528,30.2878375 67.4640784,30.360909 67.3723648,30.364231 L63.814283,30.364231 C63.7308504,30.364231 63.6685968,30.4197746 63.6685968,30.5119265 L63.6685968,31.5994451 C63.6685968,31.6732929 63.7308504,31.7288365 63.793104,31.7288365 L67.3986781,31.7288365 C67.5443644,31.7288365 67.627797,31.8209884 67.627797,31.9131403 L67.627797,35.3404335 C67.627797,35.4515207 67.5225435,35.5424103 67.3980363,35.5424103 L59.9378736,35.5424103 C59.8133664,35.5424103 59.7087547,35.4325854 59.7087547,35.3038252 L59.7087547,21.9613664 L59.7093965,21.9613664 Z M70.962536,28.6139761 C70.9859702,28.5680649 71.0001367,28.5181231 71.0042523,28.4669117 C71.0042523,28.4290411 70.9830732,28.3375204 70.9618942,28.2826079 L68.585989,21.9247581 C68.5442726,21.8326062 68.585989,21.721519 68.7111379,21.721519 L72.524652,21.721519 C72.6080846,21.721519 72.6703382,21.7953667 72.6915173,21.8692145 L73.1702923,23.7861002 C73.1914714,23.859948 73.2325459,23.9154916 73.253725,23.9154916 C73.2954413,23.9154916 73.3371576,23.859948 73.3576949,23.7867314 L73.8371118,21.8704769 C73.8582908,21.778325 73.9205444,21.7227813 74.0039771,21.7227813 L77.8174911,21.7227813 C77.9009237,21.7227813 77.9843564,21.778325 77.9843564,21.8704769 C77.9843564,21.9070851 77.9843564,21.9443246 77.9638191,21.999237 L75.5879139,28.2100225 C75.5461976,28.2838703 75.5250185,28.4119993 75.5250185,28.4498699 C75.5250185,28.4864782 75.5461976,28.5969343 75.5667348,28.6518467 L77.9843564,35.36 C78.0260727,35.4893914 77.9843564,35.5443038 77.8592074,35.5443038 L73.982798,35.5443038 C73.9205444,35.5443038 73.8582908,35.4893914 73.8371118,35.4155436 L73.3576949,33.1496168 C73.3371576,33.0751379 73.2954413,33.0385296 73.2742622,33.0385296 C73.2325459,33.0385296 73.2120087,33.0751379 73.1908296,33.1489856 L72.7120545,35.4149124 C72.6908755,35.4893914 72.6074428,35.5443038 72.5240102,35.5443038 L68.6886753,35.5443038 C68.6052426,35.5443038 68.5641681,35.5076955 68.5641681,35.4521519 C68.5641681,35.4155436 68.5641681,35.3966083 68.5847054,35.36 L70.9606106,28.6152384 L70.962536,28.6139761 Z" id="Shape" fill="#515151" fill-rule="nonzero"></path>
+                    <g id="Group">
+                        <g id="Clipped">
+                            <mask id="mask-2" fill="white">
+                                <use xlink:href="#path-1"></use>
+                            </mask>
+                            <g id="a"></g>
+                            <path d="M22.4171013,14.2682266 C21.4668893,14.2420836 20.7099483,13.4512059 20.7099483,12.4845351 C20.7099483,11.5178643 21.4668893,10.7269865 22.4171013,10.7008436 C23.3673132,10.7269865 24.1242542,11.5178643 24.1242542,12.4845351 C24.1242542,13.4512059 23.3673132,14.2420836 22.4171013,14.2682266 M35.6517266,7.53940871 C34.6207689,6.2594658 33.3662469,5.18414224 31.9512684,4.36753143 C22.4556076,-2.67847415 9.17092405,-0.676145033 2.08961013,8.81468612 C4.68686203,5.40393907 8.59332911,3.591531 12.559481,3.57129886 C5.15343038,6.98857241 0,14.5619189 0,23.3648573 C0,25.8253465 0.537163291,28.3426162 1.2790519,30.5472667 C2.34439367,29.563071 3.31539494,26.968136 4.45454051,26.0687848 C5.01288228,28.8555988 6.09362658,32.9457541 7.59023924,35.2339438 C8.98160127,32.3733804 10.1124038,30.3749672 12.1834025,28.018902 C12.748162,32.1305947 15.0745861,35.2319858 17.5730051,38.2720279 C17.423689,34.7675248 18.1148503,31.2786801 19.5868861,28.106357 C19.6870025,28.1559584 19.7877608,28.2042545 19.8898025,28.2525505 C21.5085494,31.3443113 23.8347007,33.9948417 26.6720506,35.980575 C25.7183772,33.9619296 25.1831392,31.7696795 24.8827899,29.4645209 C24.757654,28.5090842 24.6946235,27.5462942 24.6941089,26.5824201 C24.6941089,24.4789303 24.6299316,22.4459266 25.1780051,20.5219155 C25.4347139,19.6251749 25.5053089,18.7532349 25.8679101,17.907401 C26.0091,17.5791182 26.1567076,17.2547513 26.3139418,16.934953 C26.9903696,15.5513358 27.6918266,14.2284149 28.718662,12.9368213 C28.913119,12.691425 29.2333633,12.4505973 29.4374468,12.2136855 C30.3583899,11.2921442 32.1008013,10.722381 33.4960139,10.722381 C36.1420405,10.722381 38.2489785,12.6268127 38.5018367,15.2582961 C38.408138,12.1947586 37.4377785,9.75384896 35.6510848,7.53875606" id="Shape" fill="#00B4FF" fill-rule="nonzero" mask="url(#mask-2)"></path>
+                        </g>
+                        <g id="Clipped">
+                            <mask id="mask-4" fill="white">
+                                <use xlink:href="#path-3"></use>
+                            </mask>
+                            <g id="a"></g>
+                            <path d="M23.0877532,11.3822098 C23.4752416,11.3819766 23.8334181,11.5919876 24.0273609,11.9331336 C24.2213037,12.2742795 24.2215483,12.6947323 24.0280026,13.0361115 C23.834457,13.3774906 23.4765252,13.5879325 23.0890367,13.5881656 C22.4900315,13.5885261 22.0041544,13.0949983 22.0038,12.4858404 C22.0034456,11.8766825 22.4887479,11.3825703 23.0877532,11.3822098" id="Shape" fill="#515151" fill-rule="nonzero" mask="url(#mask-4)"></path>
+                        </g>
+                    </g>
+                </g>
+            </g>
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/docs/.vuepress/public/native-component.png b/docs/.vuepress/public/native-component.png
new file mode 100644
index 0000000..9dd5550
--- /dev/null
+++ b/docs/.vuepress/public/native-component.png
Binary files differ
diff --git a/docs/.vuepress/public/sauce_labs_red.svg b/docs/.vuepress/public/sauce_labs_red.svg
new file mode 100644
index 0000000..98e31a9
--- /dev/null
+++ b/docs/.vuepress/public/sauce_labs_red.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 166 54"><defs><style>.cls-1{isolation:isolate;}.cls-2{opacity:0.15;mix-blend-mode:multiply;}.cls-3{fill:#e1251b;}.cls-4,.cls-5{fill:#fff;}.cls-5{font-size:6.14px;font-family:MuseoSans-500, Museo Sans;letter-spacing:0.18em;}.cls-6{letter-spacing:0.18em;}.cls-7{letter-spacing:0.17em;}.cls-8{letter-spacing:0.18em;}</style></defs><title>Powered by Sauce Labs badges red</title><g class="cls-1"><g id="red"><image class="cls-2" width="172" height="60" transform="translate(-3 -3)" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKwAAAA8CAYAAAD7V1GbAAAACXBIWXMAAAsSAAALEgHS3X78AAADB0lEQVR4Xu3dTU/bQBCH8WcDAURBVV8OiPbS7/+9qh4KKm9RISHTw+w4G9tBreSkGun/k1aAndweLWtfppgZY0opZfSGyAHYjjBL/3oNNWJtfxc5BKsLvNutQLtgmx11NrJA4cp+RZjrkdXtuMe9L83qtXmzjlG0sl9trCtg2axVvQ7UYOvuGrGeAufAu7pO2USrYGUfjE2sz8BTXYt6f1VKWZuZxQ4bwc7xWD8Cn+rPSzzaI3SmlenFmfUVj/UBuAVu6v04Fhhgx72z6xy4AD4DX4FrPNrzei+OBiJTWuP//hd4rN/xjfEFj3gJvJZSyls77DXwDbjCd9kTdCyQ6cVx4AXfXX/U6wvgF3DPprvBkSDOsBd4tFfAF+A9cIaClelFsL+Bu3rtDm9w8Py06y1BPHhd4rF+YPscKzKV9vwKvqOesx1rpw02HqhmeJhz/BhwWtcZClamF8GCd3aCt3fEZmftmuvvsLCJto23XQpWphTvYKOvtr1Ba2PBhvLGEpnSXzem11SSioKVVBSspKJgJRUFK6koWElFwUoqClZSUbCSioKVVBSspKJgJRUFK6koWElFwUoqClZSUbCSioKVVBSspKJgJRUFK6koWElFwUoqClZSUbCSioKVVBSspKJgJRUFK6koWElFwUoqClZSUbCSioKVVBSspPLWjAPbsUSm9E+djQUbg77i52uzQEM5ZFox9ihW294g3DbYKDsiXbKZ9RlDvzT2SKbWDpZ7xptbsh1vF25/h21HgC/w2Z8xTlGjO2Uf+qM7H/D2nvEW1+2HI9j+vPpHfKpyDKq9R8ORZT/GhiPf4g220RoMg+2PAAevXuPnZZ/G2rutfy9pgzUzK6WU5kuPwM/6gSd8QHI7GFk7rEwpzqhxjn3AY73BW4xgMTPbtcNSv3zHyAhwkYn1j6RPdQ122GLmD2B1l53hcc6b1Y4AV7CyD/EWIKJdNmsFrK2GuustQey2MxSrHEYbbX91uh22u+A7bcSpM6scWvve1awX6CDY7oaHK/Jf9EMNfwC26Q1uGODl8wAAAABJRU5ErkJggg=="/><rect class="cls-3" x="3" y="3" width="160" height="48" rx="3" ry="3"/><path class="cls-4" d="M13.33,36.05a8,8,0,0,1-.54-2.92A8.17,8.17,0,0,1,21,25a8.77,8.77,0,0,1,1.15.08l-.92.93h-.25a7.15,7.15,0,0,0-6.88,9.1h6.26L17.7,40,24,33.62h-8.6L25.09,24a9.94,9.94,0,0,0-4.15-.9,10.07,10.07,0,0,0-5.25,18.66l3-5.67Z"/><path class="cls-4" d="M26.19,24.54l-3,5.67h5.37a8.15,8.15,0,0,1-7.61,11.07,9.39,9.39,0,0,1-1.19-.08l.91-.92h.28a7.15,7.15,0,0,0,7.15-7.15,7.83,7.83,0,0,0-.27-1.94H21.57l2.61-4.93-6.42,6.39h8.62L16.8,42.31a10.07,10.07,0,0,0,9.39-17.77Z"/><path class="cls-4" d="M36,39.35l.86-1.27a.44.44,0,0,1,.69-.09,4.09,4.09,0,0,0,2.76,1.16,1.94,1.94,0,0,0,2-1.89c0-1-.66-1.62-1.91-2.44-1.46-1-3.2-2.22-3.2-4.44s1.54-4.62,5-4.62a6.11,6.11,0,0,1,4,1.44.63.63,0,0,1,.06.89l-.86,1.22c-.18.27-.47.29-.78.05a3.67,3.67,0,0,0-2.51-1,1.82,1.82,0,0,0-1.89,1.73c0,.89.6,1.33,1.93,2.22s3.42,2.2,3.42,4.64c0,2.6-2,4.78-5.3,4.78A6.21,6.21,0,0,1,36,40C35.86,39.88,35.75,39.68,36,39.35Z"/><path class="cls-4" d="M46.92,41l8.35-15a.42.42,0,0,1,.38-.24h.2a.32.32,0,0,1,.31.24l4.09,15a.44.44,0,0,1-.42.58H57.9c-.34,0-.52-.12-.58-.45l-.56-2.46H51.23l-1.29,2.46a.79.79,0,0,1-.71.45h-2C46.88,41.53,46.77,41.24,46.92,41Zm9.13-4.73-1-4.84h0l-2.42,4.84Z"/><path class="cls-4" d="M64.51,26.4A.51.51,0,0,1,65,26h2.2a.35.35,0,0,1,.33.42l-1.33,9.35a3.54,3.54,0,0,0,0,.71,2.09,2.09,0,0,0,2.27,2.36c1.82,0,2.84-1.18,3.11-3l1.33-9.37a.47.47,0,0,1,.44-.42h2.2a.37.37,0,0,1,.34.42l-1.36,9.51c-.47,3.37-2.82,5.84-6.28,5.84a4.81,4.81,0,0,1-5.07-5,6.94,6.94,0,0,1,.07-.89Z"/><path class="cls-4" d="M86.5,25.76a6,6,0,0,1,4.62,2.11.46.46,0,0,1-.09.62l-1.2,1.15a.49.49,0,0,1-.73,0,4,4,0,0,0-2.75-1.11c-2.67,0-5,2.76-5,5.93,0,2.36,1.27,4.38,3.4,4.38a4.6,4.6,0,0,0,3-1.31c.29-.25.53-.2.71,0L89.68,39a.53.53,0,0,1-.11.6,7.11,7.11,0,0,1-5,2.16c-3.84,0-6.33-3.09-6.33-6.91C78.22,29.62,81.9,25.76,86.5,25.76Z"/><path class="cls-4" d="M95.3,26.4a.47.47,0,0,1,.42-.42h8.22a.35.35,0,0,1,.33.42L104,28.22a.47.47,0,0,1-.44.43H97.87l-.51,3.64h4.71a.36.36,0,0,1,.33.42l-.26,1.84a.49.49,0,0,1-.45.42H97l-.55,3.89h5.71c.22,0,.33.2.31.42l-.25,1.82a.47.47,0,0,1-.44.43H93.54a.34.34,0,0,1-.31-.43Z"/><path class="cls-4" d="M109.56,26.4A.49.49,0,0,1,110,26h1a.37.37,0,0,1,.34.42L109.36,40H115a.35.35,0,0,1,.31.42l-.09.64a.49.49,0,0,1-.44.43h-7a.36.36,0,0,1-.33-.43Z"/><path class="cls-4" d="M117.15,41l8.2-15a.42.42,0,0,1,.37-.24h.2a.32.32,0,0,1,.31.24l4,15a.47.47,0,0,1-.42.58h-.94a.32.32,0,0,1-.33-.25l-.89-3.66h-6.93l-1.89,3.66a.47.47,0,0,1-.42.25h-1C117.11,41.53,117,41.24,117.15,41Zm10-4.71L125.44,29h-.14l-3.8,7.28Z"/><path class="cls-4" d="M140.94,33.71a3.37,3.37,0,0,1,1.88,3,4.67,4.67,0,0,1-5,4.8h-4.6a.36.36,0,0,1-.33-.43L135,26.4a.51.51,0,0,1,.45-.42h4.42a3.42,3.42,0,0,1,3.57,3.53,4.44,4.44,0,0,1-2.46,4.13ZM138.14,40A3,3,0,0,0,141,36.88a2.33,2.33,0,0,0-2.38-2.39h-3.11L134.7,40Zm.67-7.09c1.64,0,2.7-1.31,2.7-3.26,0-1.29-.66-2.18-1.95-2.18H136.5L135.72,33Z"/><path class="cls-4" d="M145.56,39.19l.35-.37c.27-.27.45-.36.71-.11a4.32,4.32,0,0,0,3.29,1.55,2.65,2.65,0,0,0,2.8-2.69c0-1.4-1.05-2.22-2.89-3.28s-3-2-3-4.05c0-1.86,1.17-4.48,4.81-4.48a5.7,5.7,0,0,1,3.45,1.13c.11.09.31.33,0,.76l-.25.35c-.22.31-.44.4-.73.2a4.52,4.52,0,0,0-2.64-.95,2.88,2.88,0,0,0-3,2.79c0,1.25.85,2.07,2.25,2.82,2.13,1.16,3.75,2.25,3.75,4.54,0,2.46-1.78,4.35-4.86,4.35a5.69,5.69,0,0,1-4.16-1.91C145.36,39.68,145.27,39.48,145.56,39.19Z"/><text class="cls-5" transform="translate(70.41 17.62)">TESTING P<tspan class="cls-6" x="40.52" y="0">O</tspan><tspan x="46.65" y="0">WERED </tspan><tspan class="cls-7" x="76.21" y="0">B</tspan><tspan class="cls-8" x="81.16" y="0">Y</tspan></text></g></g></svg>
\ No newline at end of file
diff --git a/docs/.vuepress/public/tool-playground-android-icon.png b/docs/.vuepress/public/tool-playground-android-icon.png
new file mode 100644
index 0000000..2691e57
--- /dev/null
+++ b/docs/.vuepress/public/tool-playground-android-icon.png
Binary files differ
diff --git a/docs/.vuepress/public/tool-playground-apple-icon.png b/docs/.vuepress/public/tool-playground-apple-icon.png
new file mode 100644
index 0000000..70c1ea4
--- /dev/null
+++ b/docs/.vuepress/public/tool-playground-apple-icon.png
Binary files differ
diff --git a/docs/.vuepress/public/tool-playground-qrcode.png b/docs/.vuepress/public/tool-playground-qrcode.png
new file mode 100644
index 0000000..bdfd4b2
--- /dev/null
+++ b/docs/.vuepress/public/tool-playground-qrcode.png
Binary files differ
diff --git a/docs/.vuepress/public/toolkit-preview.png b/docs/.vuepress/public/toolkit-preview.png
new file mode 100644
index 0000000..5046052
--- /dev/null
+++ b/docs/.vuepress/public/toolkit-preview.png
Binary files differ
diff --git a/docs/.vuepress/public/vue-rax.png b/docs/.vuepress/public/vue-rax.png
new file mode 100644
index 0000000..1e6e57e
--- /dev/null
+++ b/docs/.vuepress/public/vue-rax.png
Binary files differ
diff --git a/docs/.vuepress/public/weex-example-yo.png b/docs/.vuepress/public/weex-example-yo.png
new file mode 100644
index 0000000..81e78c1
--- /dev/null
+++ b/docs/.vuepress/public/weex-example-yo.png
Binary files differ
diff --git a/docs/.vuepress/sub-components/License.vue b/docs/.vuepress/sub-components/License.vue
new file mode 100644
index 0000000..cb5db72
--- /dev/null
+++ b/docs/.vuepress/sub-components/License.vue
@@ -0,0 +1,170 @@
+<template>
+  <footer class="footer-container">
+    <div class="footer-body">
+      <img class="logo" src="/logo@2x.svg">
+      <img class="apache" src="//img.alicdn.com/tfs/TB11BRiIW6qK1RjSZFmXXX0PFXa-365-365.png">
+      <div class="cols-container">
+        <div class="col col-12">
+          <h3>Disclaimer</h3>
+          <p>Apache Weex is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the
+            Incubator. Incubation is required of all newly accepted projects until a further review indicates that the
+            infrastructure, communications, and decision making process have stabilized in a manner consistent with
+            other successful ASF projects. While incubation status is not necessarily a reflection of the completeness
+            or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.</p>
+        </div>
+        <div class="col col-4">
+          <dl><dt>ASF</dt>
+            <dd><a href="http://www.apache.org" target="_self">Foundation</a></dd>
+            <dd><a href="http://www.apache.org/licenses/" target="_self">License</a></dd>
+            <dd><a href="http://www.apache.org/events/current-event" target="_self">Events</a></dd>
+            <dd><a href="http://www.apache.org/foundation/sponsorship.html" target="_self">Sponsorship</a></dd>
+            <dd><a href="http://www.apache.org/foundation/thanks.html" target="_self">Thanks</a></dd>
+          </dl>
+        </div>
+        <div class="col col-4">
+          <dl><dt>Documentation</dt>
+            <dd><a href="/guide/develop/create-a-new-app.html" target="_self">Quick start</a></dd>
+            <dd><a href="/guide/develop/setup-develop-environment.html" target="_self">Developer guide</a></dd>
+          </dl>
+        </div>
+        <div class="col col-4">
+          <dl><dt>Resources</dt>
+            <dd><a href="/blog/write-a-blog.html" target="_self">Blog</a></dd>
+            <dd><a href="/community/" target="_self">Community</a></dd>
+            <dd><a href="/guide/contribute/thanks.html" target="_self">Thanks by Weex</a></dd>
+            <dd><a href="https://www.apache.org/security/" target="_self">Security</a></dd>
+          </dl>
+        </div>
+      </div>
+      <div class="copyright"><span>Copyright © 2018-2019 The Apache Software Foundation. Apache and the Apache feather
+          logo are trademarks of The Apache Software Foundation.</span></div>
+    </div>
+  </footer>
+</template>
+
+<style scoped>
+.footer-container {
+    background: #F8F8F8;
+}
+
+.footer-container .footer-body {
+    max-width: 1280px;
+    margin: 0 auto;
+    box-sizing: border-box;
+    padding: 40px 40px 0;
+}
+
+@media screen and (max-width: 640px) {
+    .footer-container .footer-body {
+        padding-left: 20px;
+        padding-right: 20px;
+    }
+}
+
+.footer-container .footer-body img {
+    width: 100px;
+    height: 40px;
+    margin-left: -10px;
+    margin-bottom: 28px;
+    vertical-align: middle;
+}
+
+.footer-container .footer-body .apache {
+    width: 50px;
+    height: 50px;
+    margin-left: 0;
+}
+
+.footer-container .footer-body .cols-container {
+    margin-bottom: 60px;
+}
+
+.footer-container .footer-body .cols-container .col {
+    display: inline-block;
+    box-sizing: border-box;
+    vertical-align: top;
+}
+
+.footer-container .footer-body .cols-container .col-12 {
+    width: 50%;
+    padding-right: 125px;
+}
+
+.footer-container .footer-body .cols-container .col-6 {
+    width: 25%;
+}
+
+.footer-container .footer-body .cols-container .col-4 {
+    width: 16.666667%;
+}
+
+.footer-container .footer-body .cols-container h3 {
+    font-family: Avenir-Heavy;
+    font-size: 18px;
+    color: #333;
+    line-height: 18px;
+    margin-bottom: 20px;
+}
+
+.footer-container .footer-body .cols-container p {
+    font-family: Avenir-Medium;
+    font-size: 12px;
+    color: #999;
+    line-height: 18px;
+}
+
+.footer-container .footer-body .cols-container dl {
+    font-family: Avenir-Heavy;
+    line-height: 18px;
+}
+
+.footer-container .footer-body .cols-container dt {
+    font-weight: bold;
+    font-size: 18px;
+    color: #333;
+    margin-bottom: 20px;
+}
+
+.footer-container .footer-body .cols-container dd {
+    padding: 0;
+    margin: 0;
+}
+
+.footer-container .footer-body .cols-container dd a {
+    text-decoration: none;
+    display: block;
+    font-size: 14px;
+    color: #999;
+    margin: 10px 0;
+}
+
+.footer-container .footer-body .cols-container dd a:hover {
+    color: #2DACEC;
+}
+
+.footer-container .footer-body .copyright {
+    border-top: 1px solid #ccc;
+    min-height: 60px;
+    line-height: 20px;
+    text-align: center;
+    font-family: Avenir-Medium;
+    font-size: 12px;
+    color: #999;
+    display: flex;
+    align-items: center;
+}
+
+.footer-container .footer-body .copyright span {
+    display: inline-block;
+    margin: 0 auto;
+}
+
+@media screen and (max-width: 640px) {
+    .footer-container .footer-body .cols-container .col {
+        width: 100%;
+        text-align: center;
+        padding: 0;
+    }
+}
+</style>
+
diff --git a/docs/.vuepress/sub-components/Tab.vue b/docs/.vuepress/sub-components/Tab.vue
new file mode 100644
index 0000000..db1c305
--- /dev/null
+++ b/docs/.vuepress/sub-components/Tab.vue
@@ -0,0 +1,56 @@
+<template>
+  <div class="tabs">
+    <div :class="['tab', index === 0 ? 'active' : null]" @click="select(0)">{{lang === 'en-US' ? 'Latest' : '最新'}}</div>
+    <div :class="['tab', index === 1 ? 'active' : null]" @click="select(1)">{{lang === 'en-US' ? 'Topper' : '热门'}}</div>
+    <div :class="['tab', index === 2 ? 'active' : null]" @click="select(2)">{{lang === 'en-US' ? 'My Favorite' : '我的收藏'}}</div>
+    <div :class="['tab', index === 3 ? 'active' : null]" @click="select(3)">{{lang === 'en-US' ? 'My Works' : '我的发布'}}</div>
+  </div>
+</template>
+
+<script>
+export default {
+  props: ['lang'],
+  data() {
+    return {
+      index: 0
+    }
+  },
+  methods: {
+    select(index) {
+      this.index = index;
+      this.$emit('onChange', index)
+    }
+  }
+}
+</script>
+
+
+<style scoped>
+.tabs {
+  background-color: #F3F5F8;
+  display: flex;
+  height: 40px;
+  line-height: 40px;
+}
+.tab {
+  width: 112px;
+  text-align: center;
+  border-right: 1px solid #e9ebec;
+  cursor: pointer;
+  font-size: 14px;
+}
+.tab.active {
+  background-color: #fff;
+  color: #00b4ff;
+  position: relative;
+}
+.tab.active:before {
+  position: absolute;
+  left: 0;
+  top: 0;
+  content: '';
+  width: 100%;
+  height: 3px;
+  background-color: #00b4ff;
+}
+</style>
diff --git a/docs/README.md b/docs/README.md
index 59f7ff8..78878ef 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -1,7 +1,3 @@
-<script>
-module.exports = {
-  created(){
-    this.$router.push('/guide/')
-  }
-}
-</script>
\ No newline at end of file
+---
+layout: IndexEn
+---
\ No newline at end of file
diff --git a/docs/blog/weex-third-party-extensions.md b/docs/blog/weex-third-party-extensions.md
new file mode 100644
index 0000000..85a8830
--- /dev/null
+++ b/docs/blog/weex-third-party-extensions.md
@@ -0,0 +1,14 @@
+In this article, we list some mature third-party plugins for Weex.
+
+<img src="https://img.alicdn.com/tfs/TB1o1ulg1GSBuNjSspbXXciipXa-579-134.svg" alt="drawing" width="200"/>
+
+BindingX is a new way to implement complex effect on Weex and React Native and Html5.
+The main idea is translate the user interaction into expression, then transfer those expressions into native environment. When the action occurs, all computing task will running on the native side, NO redundant js-bridge calls any more.
+
+[Visit BindingX](https://alibaba.github.io/bindingx/guide/introduce)
+
+# GCanvas
+
+GCanvas is a cross-platform rendering engine for mobile devices developed by Taobao. It is written with C++ based on OpenGL ES, so it can provide high performance 2D/WebGL rendering capabilities for Javascript runtime. It also has browser-like canvas APIs, so it's very convenient and flexiable for use, especially for web developers.
+
+[Visit GCanvas](https://github.com/alibaba/GCanvas)
\ No newline at end of file
diff --git a/docs/community/README.md b/docs/community/README.md
index 2cf69f4..ebdb160 100644
--- a/docs/community/README.md
+++ b/docs/community/README.md
@@ -1,7 +1,7 @@
 <script>
 module.exports = {
   created(){
-    this.$router.push('/community/roadmap.html')
+    this.$router.push('/community/weex-third-party-extensions.html')
   }
 }
 </script>
\ No newline at end of file
diff --git a/docs/community/release-procedure.md b/docs/community/release-procedure.md
deleted file mode 100644
index 4fc911a..0000000
--- a/docs/community/release-procedure.md
+++ /dev/null
@@ -1,244 +0,0 @@
-# Abstract
-::: warning
-This page only gives a brief step of Weex release, always reference the [release policy of ASF](https://www.apache.org/legal/release-policy.html) if you have questions or confusions. 
-:::
-
-::: tip
-Content of this page aimed at Weex release manager, PPMCs and committers of Weex. End-users may consider using the [artifacts of Weex release](../download/download) directly.
-:::
-
-This page describes the steps of Weex release under ASF policy. 
-
-> Releases are, by definition, anything that is published beyond the group that owns it. 
-
-A release is normally conducted by a release manager who is a committer or PPMC member of Weex. 
-
-::: warning
-Release must be voted before publishing according to the ASF's policy. 
-:::
-
-::: warning
-Release are always about source code, binary is only published for users' convenience.
-:::
-
-# Before start
-## Prepare environment
-To generate and compile a weex release, you need to set up the following environment:
-* [Weex build environment](https://github.com/apache/incubator-weex/blob/master/HOW-TO-BUILD.md#build-environment), which includes Android, iOS, JS, C++ toolchains.
-* [OpenPGP environment](http://www.apache.org/dev/openpgp.html#key-gen-generate-key), which is used to generate signature and checksum for release candidate. Please note that OpenPGP is not the same as your `ssh` key though both of them may use the same cryptography algorithm. You may simply use `brew install gpg` to install tools and setup your key pair by `gpg --full-gen-key`.
-
-## Create release branch
-The release branch should be named to `release/xxx`, like `release/0.24`. Then the release manager should push the release branch to the remote repository.
-
-::: tip
-Normally, developers should create a release branch based on the latest commit of `master`. One can also break this rule if you have proper reasons, like there is an unstable commit in `master`.
-:::
-
-## Request buy-in
-Remember to send an email to [dev@weex.apache.org](mailto:dev@weex.apache.org) to see that if there is any has any reason to postpone your release.
-
-    I'd like to start a release for Weex 0.xxxxxxx based on release/xxxxxxxxx branch.
-
-    Does anyone have any reason to delay a Weex release? Any vital patches needs to be merged?
-
-    If not, I will start the release process tomorrow.
-
-# Release candidate
-> Release Candidates are packages that have been proposed for approval as a release but have not yet been approved by the project. 
-
-## Generate release candidate
-Release manager could invoke `scripts/apache_release.sh $RELEASE_CANDIDATE $TAG_OF_LATEST_RELEASE` to generate a release candidate. The explanation of the variable is listed below:
-* `$RELEASE_CANDIDATE` The full-name of the release candidate, like 0.24.0-RC3
-* `$TAG_OF_LATEST_RELEASE`  Weex tag of last release, like 0.19.0.2. RELEASE_NOTE.md came from the difference between `$RELEASE_CANDIDATE` and `$TAG_OF_LATEST_RELEASE` .
-
-The above script will do following things for the release manager:
-1. Generate `RELEASE_NOTE.md` based on the history of git commit and `CHANGELOG.md`.
-1. Create a temp directory named `apache_release_temp` and copy files related to the release to this dir. Files like test file, local configure files, build directory, weex playground and etc. are exclude from a release by this script. 
-1. Run [Apache Rat](https://creadur.apache.org/rat/), which is a release audit tool used for check license and output the result to `RELEASE_AUDIT.LOG`
-1. Create a tarball, signature and checksum for your release.
-
-Release manager should always check the following things before you move to the next step:
-1. Check RELEASE_AUDIT.LOG to see if there is any license problems in your release candidate.
-1. Go to `apache_release_temp` and verify you can compile it from source by running `scripts/build_from_source.sh $NDK18_dir`
-
-## Publish release candidate
-::: warning
-The procedure below may not work well if the release manager is not a PPMC member of Weex as it needs to publish artifact with the privilege of PPMC. If this is the case, please contact one of the PPMC member and ask him/her to execute the following script for you with the following information:
-* The tarball of the source file, like `apache-weex-incubating-xxxxx-xxxxx-src.tar.gz`
-* The signature of the source file, like `apache-weex-incubating-xxxxx-xxxxx-src.tar.gz.asc`
-* The checksum of the source file, like `apache-weex-incubating-xxxxx-xxxxx-src.tar.gz.sha512`
-* The `KEYS` as a result of `gpg --list-sigs && gpg --armor --export >> KEYS` 
-* Remeber to append your public-key info to `KEYS` file in repository https://dist.apache.org/repos/dist/release/incubator/weex and https://dist.apache.org/repos/dist/dev/incubator/weex
-:::
-
-Release manager could invoke `scripts/publish_release_candidate.sh $RELEASE_CANDIDATE_PREFIX $RELEASE_CANDIDATE_SUFFIX $GIT_REMOTE` to publish a release candidate. The explanation of the variable is listed below:
-* `$RELEASE_CANDIDATE_PREFIX`, Weex release candidate prefix, like 0.24.0
-* `$RELEASE_CANDIDATE_SUFFIX`, The release candaidate suffix, like RC3
-* `$GIT_REMOTE` The name of your Github repository, like github-Apache whose URL should be `git@github.com:apache/incubator-weex.git`. You can view `.git/config` file to find the name of your repository.
-
-The above script will do following things for the release manager:
-1. Push git tag with the name `${RELEASE_CANDIDATE_PREFIX}-${RELEASE_CANDIDATE_SUFFIX}` to ${GIT_REMOTE} repository.
-2. Push the release candidate to [https://dist.apache.org/repos/dist/dev/incubator/weex/](https://dist.apache.org/repos/dist/dev/incubator/weex/)
-
-## Call a vote in PPMC
-::: warning
-All the links in your emails must be `https` instead of `http`.
-:::
-
-::: warning
-It's recommendation that release manager should send email during release with him/her Apache email account instead of personal account.
-:::
-
-### Start Vote
-Release manager should call a vote for your release in [dev@weex.apache.org](mailto:dev@weex.apache.org). To get the vote passed, you need three positive vote(namely +1 binding vote) and more positive vote than negative vote(namely -1).
-
-::: tip
-In general community members are encouraged to vote, but their votes are only advisory. Only PMC members have formally binding vote.
-:::
-
-::: tip
-Though there are no vetoed in release vote, but negative vote should be considered seriously by the release manager.
-:::
-
-::: tip
-It is really normal that your release candidate failed in the vote. Don't bre frustrated. Read the message that makes you fail and try to fix them. Then start another release vote like RC2, RC3 and so on.
-:::
-
-One may reference the following email template:
-
-    Subject: [Vote] Release Apache Weex (Incubating) XXXXXXXXX-RCX
-
-    I am going to call a vote for release Apache Weex (Incubating) XXXXX-RCXXXXXX
-
-        * Git tag for this Release:  
-        * The source tarball could be found at : 
-        * The signature of the source tarball could be found at : 
-        * The SHA-512 checksum of the source tarball could be found at : 
-        * The source tarball is signed with Key: XXXXXXXXXXXXXXXXXXXXXXXXXX, which could be found in the key file: 
-        * ChangeLog about this version: 
-
-    One can build the binary from source according to XXXXXXXXXXXXXX
-
-
-    This vote will remain open for at least 72 hours, until we get enough votes. Please vote on releasing this RC.
-
-    [ ] +1 approve
-    [ ] +0 no opinion
-    [ ] -1 disapprove (and reason why)
-
-### Close the vote
-If your vote passed and the vote itself last over 72 hours. You can close the vote by sending another email to [dev@weex.apache.org](mailto:dev@weex.apache.org).
-
-    Subject: [RESULT][VOTE] Release Apache Weex (Incubating) XXXXXXXXX-RCX
-    
-    The vote for release Apache Weex (Incubating) XXXXXXXXXXX has passed with XXXXXXXXXXXXX +1 binding votes and XXXXXXXXXXX -1 vote.
-
-    * +1 vote: 
-        * XXXXXXXXXXXX (binding)
-        * XXXXXXXXXXXX (binding)
-        * XXXXXXXXXXXX (not binding)
-    * +0 vote:
-        * XXXXXXXXXXXX (binding)
-        * XXXXXXXXXXXX (binding)
-        * XXXXXXXXXXXX (not binding)
-    * -1 vote:
-        * XXXXXXXXXXXX (binding)
-        * XXXXXXXXXXXX (binding)
-        * XXXXXXXXXXXX (not binding) 
-
-    Vote Thread: XXXXXXXXXXXXXXXXXX
-
-:::tip
-You can use [Apache mailing list archives](https://mail-archives.apache.org/mod_mbox/weex-dev/) to find the link of your vote thread.
-:::
-
-::: tip
-If you vote don't get passed, you can start another vote directly without sending the email of closing vote. Of course, you can still send an email to close the vote even if it don't get passed. It's all your choice. Either way is acceptable.
-:::
-
-## Call a vote in IPMC
-After your vote passed in [dev@weex.apache.org](mailto:dev@weex.apache.org), release manager should bring this to [general@incubator.apache.org](mailto:general@incubator.apache.org). The vote rules are similar to vote in PPMC, where only difference are that only Incubator PMC votes are binding.
-
-::: warning
-A Release vote must be passed by PPMC and IPMC in order. 
-:::
-
-One may reference the following email template:
-
-    Subject: [Vote] Release Apache Weex (Incubating) XXXXXXXXX-RCX
-
-    The Apache Weex community has voted and approved the proposal to release Apache Weex (Incubating) version XXXXXXXXXXXXXXX, we now kindly request the Incubator PMC members to review and vote on this incubator release.
-        * Vote thread: 
-        * Vote result thread: 
-        * Git tag for this Release:  
-        * The source tarball could be found at : 
-        * The signature of the source tarball could be found at : 
-        * The SHA-512 checksum of the source tarball could be found at : 
-        * The source tarball is signed with Key: XXXXXXXXXXXXXXXXXXXXXXXXXX, which could be found in the key file: 
-        * ChangeLog about this version: 
-
-    One can build the binary from source according to XXXXXXXXXXXXXXXXXXXXX
-
-
-    This vote will remain open for at least 72 hours, until we get enough votes. Please vote on releasing this RC.
-
-    [ ] +1 approve
-    [ ] +0 no opinion
-    [ ] -1 disapprove (and reason why)
-
-### Close Vote
-Similarly, release manager need to close the vote if it get passed the vote itself last over 72 hours. Please remember send the email of closing vote to [general@incubator.apache.org](mailto:general@incubator.apache.org) and [dev@weex.apache.org](mailto:dev@weex.apache.org) together.
-
-# Official release
-> Releases are packages that have been approved for general public release, with varying degrees of caveat regarding their perceived quality or potential for change.
-
-In order to make your release official, here are the next steps.
-
-## Publish release
-::: warning
-The procedure below may not work well if the release manager is not a PPMC member of Weex as it needs to publish artifact with the privilege of PPMC. If this is the case, please ask help from one of the PPMC member.
-:::
-
-Release manager could invoke `scripts/publish_release_official.sh $RELEASE_CANDIDATE_PREFIX $RELEASE_CANDIDATE_SUFFIX $TAG_OF_LATEST_RELEASE $GIT_REMOTE $GITHUB_PERSONAL_TOKEN $JCENTER_TOKEN` to publish the release officially. The explanation of the variable is listed below:
-* `$RELEASE_CANDIDATE_PREFIX`, Weex release candidate prefix, like 0.24.0
-* `$RELEASE_CANDIDATE_SUFFIX`, The release candidate suffix, like RC3
-* `$TAG_OF_LATEST_RELEASE`  Weex tag of last release, like 0.19.0.2. RELEASE_NOTE.md came from the difference between `${RELEASE_CANDIDATE_PREFIX}-${RELEASE_CANDIDATE_SUFFIX}` and `$TAG_OF_LATEST_RELEASE`.
-* `$GIT_REMOTE` The name of your Github repository, like github-Apache whose URL should be `git@github.com:apache/incubator-weex.git`
-* `$GITHUB_PERSONAL_TOKEN` The personal access token of your [github Account](https://github.com/settings/tokens), which should have write privilege to `git@github.com:apache/incubator-weex.git` . The personal access token is used to publish Github Release
-* `$JCENTER_TOKEN` The private key for [JCenter](https://bintray.com/alibabaweex/maven/weex_sdk/), which is the distribution channel for Android
-
-The above script will do following things for the release manager:
-1. Generate `RELEASE_NOTE.md` based on the history of git commit and `CHANGELOG.md`.
-1. Download release candidate from `https://dist.apache.org/repos/dist/dev/incubator/weex/${RELEASE_CANDIDATE_PREFIX}/${RELEASE_CANDIDATE_SUFFIX}`, rename it to `apache-weex-incubating-${$RELEASE_CANDIDATE_PREFIX}-src.tar.gz`, then upload it to [https://dist.apache.org/repos/dist/release/incubator/weex/](https://dist.apache.org/repos/dist/release/incubator/weex/)
-1. Push git tag named `${RELEASE_CANDIDATE_PREFIX}` to `${GIT_REMOTE}` repository and generate a corresponding [Github Release](https://help.github.com/en/articles/about-releases) with `${GITHUB_PERSONAL_TOKEN}`. As the script will install [release-it](https://github.com/release-it/release-it#github-releases) with `npm install -g release-it` to publish github release, make sure your npm environment is ready.
-1. Publish the convenience binary of Android to JCenter with your `${JCENTER_TOKEN}`. You can see the [JCenter token](https://svn.apache.org/repos/private/pmc/incubator/weex/) if you are a PPMC member of Weex.
-
-::: warning
-The convenience binary of iOS can only be published manually now.
-:::
-
-You should also archive your old release by deleting them from [https://dist.apache.org/repos/dist/release/incubator/weex/](https://dist.apache.org/repos/dist/release/incubator/weex/) once your latest release is published according to [ASF' release policy](http://www.apache.org/legal/release-policy.html#when-to-archive).
-
-## Update website
-Please remember update the [website](https://weex.apache.org/download/download.html) with your latest release information and correct link.
-
-::: warning
-* The download link of the latest release source must be provided in the format of mirror, like `https://www.apache.org/dyn/closer.cgi?filename=incubator/weex/${RELEASE_CANDIDATE_PREFIX}/apache-weex-incubating-${RELEASE_CANDIDATE_PREFIX}-src.tar.gz&action=download` according to [ASF' policy](http://www.apache.org/dev/release-download-pages#links).
-
-* As the old release is archived, you should probably update the link of your previous release to new address like, `https://archive.apache.org/dist/incubator/weex/${PREVIOUS_RELEASE}/apache-weex-incubating-${PREVIOUS_RELEASE}-src.tar.gz`
-:::
-
-::: tip
-* Remember to move old latest version to Archived Release section.
-
-* The version information like `pod version` in [Github Page](https://github.com/apache/incubator-weex/edit/master/README.md) will get updated within 24 hours automatically. Please be patient.
-:::
-
-## Announce it
-You are almost there. Just send an email to [dev@weex.apache.org](mailto:dev@weex.apache.org) to announce it.
-
-    Subject: [ANNOUNCEMENT] Weex XXXXXXXXXXXXXXX Released
-
-    Weex XXXXXXXXXXXXXX is released now, one can download source or convenience binary through the link in our website [1].
-
-    [1] https://weex.apache.org/download/download.html#latest-release
\ No newline at end of file
diff --git a/docs/community/roadmap.md b/docs/community/roadmap.md
deleted file mode 100644
index 60acc5a..0000000
--- a/docs/community/roadmap.md
+++ /dev/null
@@ -1,34 +0,0 @@
-# Weex Project Roadmap
-
-> This document outlines work that is currently being worked on and things we plan to work on next.  And  we hope to obtain valuable feedback from the community to help us better understand user needs and adjust our roadmaps.
-
-## WeexCore
-### JS binding
-#### v0.21
-* New WeexCore 3.0 structure. Support more platforms, Android, iOS.
-* Standlone jsRuntime with javaScriptCore standard API instead of source code. Available for both android and ios.
-* Support native dom Binding for better portability and performance.
-
-### Layout
-#### v0.21
-* Support more layout attribute.
-* Add enough test cases to cover layout engine.
-### Render
-#### v0.21
-## tools
-
-Weex-toolkit will release version 2.0.0 this year, it mainly provides those following new features:
-
-- Flawless installation and upgrade experience.
-- Better unit & functional testing support.
-- Visual Studio Code extensions with support for build/run/debug.
-- Split into multiple packages that can be reused on the Node-side program.
-
-Also, there will be some feartures and optimization for the submodules, such as weex-debugger, weexpack and so on. 
-
-All the schedules can be viewed on the [milestones](https://github.com/weexteam/weex-toolkit/milestones).
-
-### Community
-#### v0.22
-* Github commit/PR will be send to commit@weex.incubator.apache.org instead of dev@weex.incubator.apache.org
-* Make the code design and development process of Layout transparent to the community, make it happen on [github project](https://github.com/apache/incubator-weex/projects)
\ No newline at end of file
diff --git a/docs/community/who-is-using-weex.md b/docs/community/who-is-using-weex.md
new file mode 100644
index 0000000..bd9d8ed
--- /dev/null
+++ b/docs/community/who-is-using-weex.md
@@ -0,0 +1,5 @@
+---
+pageClass: noFooter
+---
+
+<Who-Is-Using-Weex lang="en-US" />
\ No newline at end of file
diff --git a/docs/docs/components/recycle-list.md b/docs/docs/components/recycle-list.md
index 9ba0255..475034b 100644
--- a/docs/docs/components/recycle-list.md
+++ b/docs/docs/components/recycle-list.md
@@ -2,7 +2,7 @@
 
 ## Summary
 
-`<recycle-list>`  is a new list container with the ability to recycle and reuse, which can greatly optimize memory usage and rendering performance.
+`<recycle-list>`  is a new  vertical or horizontal list container with the ability to recycle and reuse, which can greatly optimize memory usage and rendering performance.
 
 > * Please refer to [Design.md](https://github.com/Hanks10100/weex-native-directive/blob/master/Design.md) for design ideas. For details, please refer to  [Implementation.md](https://github.com/Hanks10100/weex-native-directive/blob/master/Implementation.md)
 > * This feature is partially dependent on the build tool, please ensure that the version of weex-loader is up to date (v0.7.2+)
@@ -46,6 +46,8 @@
   </cell-slot>
 </recycle-list>
 ```
+* `scrollDirection`  
+  Value vertical or horizontal
 
 ## Recyclable component
 Subcomponents used in `<recycle-list>` will also be treated as templates, and the recyclable attribute will be added to the `<template> `tag when developing the component before it can be used in `<recycle-list>`.
diff --git a/docs/docs/components/richtext.md b/docs/docs/components/richtext.md
index 704fc4e..f702fd4 100644
--- a/docs/docs/components/richtext.md
+++ b/docs/docs/components/richtext.md
@@ -31,6 +31,7 @@
 #### a
 
 * **herf**. The herf.
+* **pseudo-ref**. A ref assigned by developers and passed to the callback function of **itemclick**.
 
 #### span
 
@@ -64,16 +65,16 @@
 ## Events
 
 * **common events**. Support [common events](../events/common-events.html).
-* **itemclick**. Only works on `img` and `span`:
+* **itemclick**. Only works on `img` and `a`:
    * `img` tag:
       * None of parents is an `a` tag when the `img` tag is clicked.
       * If the first condition is not satisfied, Weex will try to open the hyperlink of `a` tag instead.
       * **pseudo-ref** of img will be passed to the callback function of onitemclick.
-   * `span` tag:
-      * The `span` tag is clicked whose parent is an `a` tag.
+   * `a` tag:
       * The href property is 'click://' (This condition is required on iOS and is optional on Android).
-      * The `a` tag has a `pseudo-ref` property whose value will be sent with the itemclick event.
+      * The `a` tag has a `pseudo-ref` property whose value will be sent with the itemclick event. **Please be noted that the default jump behavior on `a` tag will be disabled at this moment.`[Demo](http://editor.weex.io/p/sunshl/Contribute/commit/b21e1133830b48767c6d00d712e415b2)
+    * If `itemclick` is specified on nested nodes, only the event on the outer node will take effect.
 
 ## Example
 
-[Demo](http://dotwe.org/vue/f748b0cee3991522a66d4376b66a4f2a)
+[Demo](http://dotwe.org/vue/8a817e1acb46c2910caf1b53b8016a48)
diff --git a/docs/docs/components/slider.md b/docs/docs/components/slider.md
index 1cdcc24..e8b65c8 100644
--- a/docs/docs/components/slider.md
+++ b/docs/docs/components/slider.md
@@ -14,7 +14,7 @@
 * **interval**, number in millisecond. This value determines time interval for each page displayed in slider.
 * **index**, number. This value determines the  index of current shown slide. The default value is 0.
 * **offset-x-accuracy**, number. Set the scroll event trigger precision, precision value represents the rolling distance of a page width ratio.
-* **show-indicators**, boolean. Set whether to display indicator.
+* **show-indicators**, boolean. Set whether to display indicator. This attribute is useless if there is no [`<indicator>`](indicator.html) in the slider despite the default value of `show-indicators` is true.
 * **infinite**, boolean. Set whether the page in the slider can be scrolled. The default value is true.
 * **scrollable**, boolean. Set whether slider pages can be switched by sliding gestures. The default value is true.
 * **keep-index**, boolean, <Badge text="Android" type="warning"/>. Set whether to maintain the index of the page after the data changes.
diff --git a/docs/docs/events/common-events.md b/docs/docs/events/common-events.md
index 9720c38..8a10b1b 100644
--- a/docs/docs/events/common-events.md
+++ b/docs/docs/events/common-events.md
@@ -10,6 +10,21 @@
 
 Weex provide the ability to let events trigger action, like starting a JavaScript when a user click on a component. Below are the common event attributes that can be added to weex components to define event actions.
 
+## Event penetration
+
+**Notes: ** The principle of native event delivery under `Android` and `iOS` is different, only for `iOS` here.
+
+When a parent view has multiple peer views, iOS will select the highest level View to respond to the event, and the underlying view event will never be responded.
+
+Weex add attribute `eventPenetrationEnabled` to `<div>` component. When the value is `true`, the view's children views still respond to the event normally, while the view itself will not respond to the event, but pass the event to the lower level View.
+
+[Event penetration](https://jsplayground.taobao.org/raxplayground/c230a32e-489c-4fda-ae90-40faa6aaafbc??from=)
+
+## View interactivity
+
+Weex add attribute `userInteractionEnabled` to `<div>` component. When the value is `true`, neither the view nor its children views respond to the event. The event is passed to the lower layer View.
+
+
 ## Click event
 
 The onclick attribute fires on a click gesture on the element.
diff --git a/docs/docs/modules/meta.md b/docs/docs/modules/meta.md
index c792d72..95a46f3 100644
--- a/docs/docs/modules/meta.md
+++ b/docs/docs/modules/meta.md
@@ -13,7 +13,17 @@
 * **@options**
   * **`width`**, number value or `"device-width"` or `"device-height"` macros.
   * **`height`**, number value or `"device-width"` or `"device-height"` macros.
+    * **`deviceWidth`**，number value.
+  ::: danger
+  iOS only,Android not support yet
+  :::
+  * **`deviceHeight`**，number value.
+  ::: danger
+  iOS only,Android not support yet
+  :::
   * **`roundOffDeviation`** <Badge text="0.20.0+" type="warn" vertical="middle"/>, The default value is true, which means that the layout engine ignores the error caused by the decimal point in the layout; if there is a gap in the component splicing, you can set the `roundOffDeviation` to false, and the layout engine will automatically fill in the decimal point error.
+  * **`reserveCssStyles`**,set true to let the page reserve all CSS style values,designed to support screen rotation
+,[document](https://weex.apache.org/guide/advanced/multi-size-screen.html)。
 
 ::: tip
 * Referance: W3C Spec [CSS Device Adaptation](https://drafts.csswg.org/css-device-adapt/#viewport-meta).
@@ -35,6 +45,7 @@
 meta.setViewport({
   width: 640,
   roundOffDeviation: false
+  reserveCssStyles: true
 })
 
 App.el = '#root'
diff --git a/docs/docs/styles/common-styles.md b/docs/docs/styles/common-styles.md
index 9af0607..3d38b2e 100644
--- a/docs/docs/styles/common-styles.md
+++ b/docs/docs/styles/common-styles.md
@@ -7,7 +7,7 @@
 :::
 
 ::: warning
-Weex only supports `px` as length unit, `%`, `rem`, `em` are not supported.
+Weex supports `px`and `wx`(not affected by screen width and viewPortWidth) as length unit, `%`, `rem`, `em` are not supported.
 :::
 
 ## Box Model
diff --git a/docs/docs/styles/css-units.md b/docs/docs/styles/css-units.md
index 3b37b34..69f4755 100644
--- a/docs/docs/styles/css-units.md
+++ b/docs/docs/styles/css-units.md
@@ -2,10 +2,10 @@
 
 ## CSS `length` unit
 
-`px` is the only supported length units.
+`px` 、`wx` are supported as length units. For styles that should not be affected by screen width and viewPortWidth, please use `wx` as unit.
 
 ::: danger
-Ignoring `px` will cause render error on Webview.
+Ignoring `px` or  `wx` will cause render error on Webview.
 :::
 
 ::: warning
@@ -217,4 +217,4 @@
 | white | #FFFFFF |
 | whitesmoke | #F5F5F5 |
 | yellow | #FFFF00 |
-| yellowgreen | #9ACD32 |
\ No newline at end of file
+| yellowgreen | #9ACD32 |
diff --git a/docs/guide/advanced/multi-size-screen.md b/docs/guide/advanced/multi-size-screen.md
index 294b2ba..8b7e370 100644
--- a/docs/guide/advanced/multi-size-screen.md
+++ b/docs/guide/advanced/multi-size-screen.md
@@ -11,6 +11,9 @@
 
 In this article, we demonstrate how to fit Weex pages for different or changable screen sizes such as orientation switches.
 
+::: danger 
+iOS only,Android not support yet
+:::
 ## How Weex convert a CSS style ot view coordinate
 
 Take iOS as example, when your application starts up, Weex acquires current device screen width as global variable. On iOS, this value is screen physical pixels divided by screen scale. For iPhone6, this value is 375.
@@ -83,15 +86,26 @@
 
 #### b. Use WXSDKInstance
 
+* iOS:  
 ```Objective-C
 WXSDKInstance* instance = [[WXSDKInstance alloc] init];
 [instance setViewportWidth:800.f];
 ```
+* Android:  
+```Java
+WXSDKInstance instance = new WXSDKInstance(mContext);
+instance.setInstanceViewPortWidth(800);
+```
 
 ### 2. Set deviceWidth of a page
 
+::: danger 
+iOS only,Android not support yet
+:::
+
 <Badge text="v0.25+" type="warning"/>
 
+
 #### a. Use Meta Module
 
 ```Javascript
@@ -130,18 +144,29 @@
 
 #### b. Use WXSDKInstance
 
+* iOS:  
 ```Objective-C
 WXSDKInstance* instance = [[WXSDKInstance alloc] init];
 [instance setPageKeepRawCssStyles];
 ```
+* Android:
+```Java
+WXSDKInstance instance = new WXSDKInstance(mContext);
+instance.setPageKeepRawCssStyles();
+```
 
 ### 4. Force the page to relayout
 
 <Badge text="v0.25+" type="warning"/>
 
+* iOS:  
 ```Objective-C
 [instance reloadLayout];
 ```
+* Android:  
+```Java
+instance.reloadPageLayout();
+```
 
 ## Scenarios
 
@@ -156,12 +181,18 @@
 1. Let the page reserve all CSS style values.
 2. After screen rotation is done, use the code below to reset screen width for the page and trigger relayout.
 
+* iOS:
 ```Objective-C
 CGFloat w = [UIScreen mainScreen].bounds.size.width;
 CGFloat h = [UIScreen mainScreen].bounds.size.height;
 [_instance setPageRequiredWidth:w height:h];
 [_instance reloadLayout];
 ```
+* Android:
+```Java
+instance.resetDeviceDisplayOfPage();
+instance.reloadPageLayout();
+```
 
 You could use latest Playground to test the [demo](http://editor.weex.io/p/wqyfavor/scroller/commit/37810078ef963388b699b5ad7d5e9881)
 
diff --git a/docs/guide/contribute/bug-report-guidelines.md b/docs/guide/contribute/bug-report-guidelines.md
deleted file mode 100644
index e51a7a2..0000000
--- a/docs/guide/contribute/bug-report-guidelines.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# Bug Report
-
-Weex Community [Github Issue](https://github.com/apache/incubator-weex/issues) to report and track bugs 。The more information provided in a Github issue, the sooner it get solved.
-
-::: tip
-* Avoid duplicated: Always search on Github before you fire a new one.
-* Always run with the latest version before you fire a bug
-* Only report one bug in one Github Issue.
-:::
-
-## Format of Github issue
-Please use the [Bug Report](https://github.com/apache/incubator-weex/issues/new?template=bug_report.md) template when firing a bug. All the information needed to solve a bug is listed in the Bug report template , please fill it out as much as you can. **The more information provided in a Github issue, the sooner it get solved.**
-
-::: warning
-Report bug with fact and expected behavior, not complaint or emotional words.
-:::
-
-## 96 Hours rule
-Generally speaking, weex community response to a Github issue within 96 hours, which could be longer if there is a holiday. Please be patient.
-
-::: tip
-If your Github issue doesn't get any response over a week, you can ask developers through [weex mailing list](./how-to-contribute.html#join-in-discussions).
-:::
\ No newline at end of file
diff --git a/docs/guide/contribute/contribute-code.md b/docs/guide/contribute/contribute-code.md
deleted file mode 100644
index 452730e..0000000
--- a/docs/guide/contribute/contribute-code.md
+++ /dev/null
@@ -1,84 +0,0 @@
-# Contribute Code
-
-This page describes the standard procedure to modify code of weex.
-## Before Coding
-### Check License
-Weex adopts [Apache License 2.0](https://choosealicense.com/licenses/apache-2.0/) as its open source license. Make sure your potential contribution obeys the requirement of Apache License 2.0.
-
-### Bug or Feature ?
-* If you are going to fix a bug of Weex, check whether it already exists in [Github Issue](https://github.com/apache/incubator-weex/issues). If it exists, make sure to write down the link to the corresponding Github issue in the PR you are going to create.
-* If you are going to add a feature for weex, reference the following recommend procedure:
-    1. Writing a email to [mailing list](how-to-contribute.html#mailing-list) to talk about what you'd like to do.
-    1. Write the corresponding [document](how-to-contribute.html#contribute-code-or-document)
-
-
-## Coding
-1. [Fork](https://help.github.com/articles/fork-a-repo/) the Github repository at [https://github.com/apache/incubator-weex](https://github.com/apache/incubator-weex). 
-
-1. Clone the forked repository and create a new branch from `master` to push your commits to.
-
-1. Develop your feature or bug fix in your new branch. Make sure your code meets the [style guidelines](contribute-code.html#code-style-guidelines).
-
-1. Add the **License** below to the top of any new file(s) you've added.
-   
-        /*
-        * Licensed to the Apache Software Foundation (ASF) under one
-        * or more contributor license agreements.  See the NOTICE file
-        * distributed with this work for additional information
-        * regarding copyright ownership.  The ASF licenses this file
-        * to you under the Apache License, Version 2.0 (the
-        * "License"); you may not use this file except in compliance
-        * with the License.  You may obtain a copy of the License at
-        *
-        *   http://www.apache.org/licenses/LICENSE-2.0
-        *
-        * Unless required by applicable law or agreed to in writing,
-        * software distributed under the License is distributed on an
-        * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-        * KIND, either express or implied.  See the License for the
-        * specific language governing permissions and limitations
-        * under the License.
-        */
-   
-1. Commit all the changes to your branch.
-
-:::tip
-If you are writing Java or C++ with Android Studio, **License** will be added to the head of the file automatically.
-:::
-
-### Code Style Guidelines 
-
-#### Objective-C
-
-- Tabs should be used for indentation. Please do not use spaces.
-- `*` operator goes with the variable name (e.g. Type *variable;)
-- For function definitions, place each brace on its own line.
-- For all the other braces, place the open brace on the line preceding the code block and place the close brace on its own line.
-- Use `#pragma marks` to categorize methods into functional groupings and protocol implementations
-- Follow other guidelines on [GitHub Objective-C Style Guide](https://github.com/github/objective-c-style-guide)
-
-#### Java & Android
-
-- Use [Google Java Style](https://google.github.io/styleguide/javaguide.html) as basic guidelines of java code.
-- Follow [AOSP Code Style](https://source.android.com/source/code-style.html) for rest of android related code style.
-
-#### C & C++
-
-- Use [Google C++ Style ](https://google.github.io/styleguide/cppguide.html)  as basic guidelines of C++ code
-- Weex defines [a subset of the Google C++ development specification](https://github.com/jianhan-he/C-Style-Guide/blob/master/C%2B%2B_Style_Guide_en.md) that covers some of the major C++ scenario usage specifications.
-
-## Publish your Change
-[Open a pull request](https://help.github.com/articles/using-pull-requests/) against the `master` branch of `apache/incubator-weex`. Make sure following guidelines are considered when creating a pull request.
-
-1. One PR should solve only one problem.
-1. The PR title should be the form of `[COMPONENT] Summary`:
-    * `COMPONENT` is one of the mentioned PR categories (android, iOS, JsFm, web, test, etc..). 
-    * `Summary` should be a brief description of your change within one sentence.
-1. Content description of PR
-    * If the PR is about fixing a bug *excluding crash*, a [demo](http://dotwe.org/vue) is necessary in code's description.
-    * If the PR is about adding a new feature, another [PR for documentation](how-to-contribute.html#contribute-code-or-document) is necessary in codes' PR description.
-    * *Optional* If the PR fixes an existing Github issue, you may add the link to the corresponding issue in the PR.
-
-:::tip
-Reviewing PR may take a great deal of time, please be patient. If your PR doesn't get response over 96 hours, you might send an email to [mailing list](how-to-contribute.html#mailing-list) to ask the progress.
-:::
\ No newline at end of file
diff --git a/docs/guide/contribute/how-to-contribute.md b/docs/guide/contribute/how-to-contribute.md
index 31dc7b4..abd86fc 100644
--- a/docs/guide/contribute/how-to-contribute.md
+++ b/docs/guide/contribute/how-to-contribute.md
@@ -6,7 +6,7 @@
 
 ## Code of Conduct
 
-To make an open and friendly community, Weex community adopt [Contributor Covenant](https://www.contributor-covenant.org/version/1/4/code-of-conduct) as the code of conduct.
+To make an open and friendly community, Weex community adopt [Contributor Covenant](https://github.com/apache/incubator-weex/blob/master/CODE_OF_CONDUCT.md) as the code of conduct.
 
 ## Mailing List
 > If it didn't happen on a mailing list, it didn't happen.
@@ -21,10 +21,12 @@
 
 Read [Apache mailing list](https://apache.org/foundation/mailinglists.html) to have a deeper view of mailing list.
 
+## Members and Governance Model
+You can find committers, PPMCs and governance model of Weex from [confluence](https://cwiki.apache.org/confluence/x/bFoyBw)
 
 ## Ask or Answer Questions
 * You ask questions on [stackoverflow.com](http://stackoverflow.com/questions/tagged/weex) for basic use problems and concepts.
-* You can report a bug through Github Issue as mention in [bug report](./bug-report-guidelines.html).
+* You can report a bug through Github Issue as mention in [ask-or-answer-questions](https://github.com/apache/incubator-weex/blob/master/CONTRIBUTING.md#ask-or-answer-questions).
 
 :::tip
 Formally speaking, StackOverflow is not part of Weex community though developers around the world continually contribute to it. If your question on StackOverflow doesn't get response within 96 hours, you can fire a [Github Issue](https://github.com/apache/incubator-weex/issues) with link to your question on StackOverflow.
@@ -36,6 +38,15 @@
 * StackOverflow questions, which doesn't get response over 96 hours.
 :::
 
+## Development Process
+Most of the development process is described in [confluence](https://cwiki.apache.org/confluence/x/eJBTBw), which services the contributors of Weex and is transparent to all users.
+
+* [Release Plan](https://github.com/apache/incubator-weex/milestones): All feature, bugfix, issue-solved are associated with a certain milestone since Weex 0.27. As every Weex release needs approval from PPMC and IPMC, the due date of milestone is just an estimation of release date, not accuracy schedule.
+* [Release Procedure](https://cwiki.apache.org/confluence/x/_I5TBw)
+* [Major feature](https://github.com/apache/incubator-weex/projects)
+* [System Design](https://cwiki.apache.org/confluence/x/XYxTBw)
+* [Road Map](https://cwiki.apache.org/confluence/x/fJBTBw)
+
 ## Contribute Code or document
 In Weex community, **Documentation is as important as code**, and Weex community respects all the contribution of documentation or code.
 
@@ -54,4 +65,4 @@
 :::
 
 ### Contribute code
-You can fix a bug or develop a new feature when contributing code, ref [Contribution of Code](./contribute-code.html) to see more detail.
+You can fix a bug or develop a new feature when contributing code, ref [Contribution of Code](https://github.com/apache/incubator-weex/blob/master/CONTRIBUTING.md#contribute-code) to see more detail.
diff --git a/docs/guide/contribute/thanks.md b/docs/guide/contribute/thanks.md
new file mode 100644
index 0000000..90ee2c8
--- /dev/null
+++ b/docs/guide/contribute/thanks.md
@@ -0,0 +1,4 @@
+# Thanks
+Weex could not exist without the continued generous support from the community, We would like to take this opportunity to thank our sponsors.
+
+* ![Sauce Lab](/sauce_labs_red.svg)[Sauce Labs](https://saucelabs.com): A Cross-browser Testing Platform.
\ No newline at end of file
diff --git a/docs/guide/debug/integrate-devtool-to-android.md b/docs/guide/debug/integrate-devtool-to-android.md
index 48f5b9f..15683e6 100644
--- a/docs/guide/debug/integrate-devtool-to-android.md
+++ b/docs/guide/debug/integrate-devtool-to-android.md
@@ -16,6 +16,7 @@
 | 0.19.0+  | 0.18.68        |
 | 0.20.3.0-beta | 0.20.3.0-beta |
 | 0.24.0+  | 0.24.2.4 |
+| 0.26.0+  | 0.24.2.4 |
 
 ## Integrate to Android
 
diff --git a/docs/guide/playground.md b/docs/guide/playground.md
new file mode 100644
index 0000000..0a5ba7f
--- /dev/null
+++ b/docs/guide/playground.md
@@ -0,0 +1,5 @@
+---
+pageClass: tool
+---
+
+<Tool-Playground lang="en-US"/>
\ No newline at end of file
diff --git a/docs/guide/use-vue-in-weex.md b/docs/guide/use-vue-in-weex.md
index 1d9d18c..33c45de 100644
--- a/docs/guide/use-vue-in-weex.md
+++ b/docs/guide/use-vue-in-weex.md
@@ -118,6 +118,57 @@
 Always use javascript file as the entry file.
 :::
 
+**Example of using weex-loader compile targets**
+1. execute `npm init` in terminal
+2. update `package.json`，add belows content into it
+```
+  "dependencies": {
+    "babel-loader": "^8.0.6",
+    "weex-loader": "^0.7.12",
+    "webpack": "^2.2.1"
+  },
+  "scripts": {
+    "build": "webpack --config webpack.config.js"
+  },
+```
+3. create `webpack.config.js`,modify `<your-input-file>` and `<your-output-file>`
+```
+const webpack = require('webpack');
+const path = require('path');
+module.exports = {
+  entry: '<your-input-file>',
+  output: {
+    path: path.resolve(__dirname, './'),
+    filename: <your-output-file>
+  },
+  module: {
+	    rules: [
+	      {
+	        test: /\.vue(\?[^?]+)?$/,
+	        loaders: ['weex-loader']
+	      },
+	      {
+	        test: /\.js$/,
+	        loaders: ['babel-loader']
+	      }
+	    ]
+	  },
+	plugins: [
+		new webpack.BannerPlugin({
+			raw: true ,
+			banner: '// { "framework": "Vue" }\n'
+		})
+	]
+}
+```
+4. execute `npm run build` in terminal
+5. Done 
+
+**Example of using weex-toolkit compile targets**
+1. install [weex-toolkit](https://weex.apache.org/tools/toolkit.html#system-components)：`npm install weex-toolkit -g`
+2. execute `weex compile [resource file] [product address]`
+3. Done
+
 ## Supported Features
 
 ### Global Config
diff --git a/docs/tools/README.md b/docs/tools/README.md
index 75e3486..a999861 100644
--- a/docs/tools/README.md
+++ b/docs/tools/README.md
@@ -1,7 +1,7 @@
 <script>
 module.exports = {
   created(){
-    this.$router.push('/tools/playground.html')
+    this.$router.push('/tools/toolkit.html')
   }
 }
 </script>
\ No newline at end of file
diff --git a/docs/tools/dotwe.md b/docs/tools/dotwe.md
new file mode 100644
index 0000000..224b3f4
--- /dev/null
+++ b/docs/tools/dotwe.md
@@ -0,0 +1,5 @@
+---
+pageClass: tool
+---
+
+<Tool-Dotwe lang="en-US" />
\ No newline at end of file
diff --git a/docs/tools/playground.md b/docs/tools/playground.md
deleted file mode 100644
index 6796501..0000000
--- a/docs/tools/playground.md
+++ /dev/null
@@ -1 +0,0 @@
-# Playground App
\ No newline at end of file
diff --git a/docs/zh/README.md b/docs/zh/README.md
index 748fe9b..78a3c62 100644
--- a/docs/zh/README.md
+++ b/docs/zh/README.md
@@ -1,7 +1,3 @@
-<script>
-module.exports = {
-  created(){
-    this.$router.push('/zh/guide/')
-  }
-}
-</script>
\ No newline at end of file
+---
+layout: IndexZh
+---
\ No newline at end of file
diff --git a/docs/zh/blog/weex-third-party-extensions.md b/docs/zh/blog/weex-third-party-extensions.md
new file mode 100644
index 0000000..95f2aa0
--- /dev/null
+++ b/docs/zh/blog/weex-third-party-extensions.md
@@ -0,0 +1,13 @@
+这里罗列的是除 Weex 官方组件外，一些比较成熟的三方组件。
+
+<img src="https://img.alicdn.com/tfs/TB1o1ulg1GSBuNjSspbXXciipXa-579-134.svg" alt="drawing" width="200"/>
+
+BindingX 是解决 Weex 和 React Native 上富交互问题的一种解决方案。它提供了一种称之为 "Expression Binding" 的机制可以在 Weex、React Native 上让手势等复杂交互操作以60fps的帧率流畅执行，而不会导致卡顿，因而带来了更优秀的用户体验。
+
+[访问 BindingX 官网](https://alibaba.github.io/bindingx/guide/cn_introduce)
+
+# GCanvas
+
+GCanvas 是一个移动端的跨平台的渲染引擎，它基于 OpenGL ES，可以直接由 Javascript 驱动。
+
+[访问 GCanvas 官网](https://github.com/alibaba/GCanvas)
\ No newline at end of file
diff --git a/docs/zh/blog/weexcore-multiprocess-evolution.md b/docs/zh/blog/weexcore-multiprocess-evolution.md
index 361474e..b285540 100644
--- a/docs/zh/blog/weexcore-multiprocess-evolution.md
+++ b/docs/zh/blog/weexcore-multiprocess-evolution.md
@@ -25,7 +25,7 @@
 
 初始化时, 父进程锁住 0 内存块. 子进程锁住 1 内存块, 子进程启动监听, 请求锁 0 内存块. 但此时 0 内存块被父进程锁着, 所以子进程请求锁 0 内存块失败, wait 父进程释放 0 内存块. 就这样, 两个进程因为互相竞争一块共享内存, 所以变相的成为单线程模式. 既同一时间只有一个进程能够保持活跃状态. 
 
-这意味着当前模型下, **Weex 所有的操作入口只能是 Platform 层, 子进程只能响应父进程的任务, 不能主动的执行某个人物, 且父进程在执行 Layout 或 parser 操作时, JSEngine 是处于挂起的状态的.**
+这意味着当前模型下, **Weex 所有的操作入口只能是 Platform 层, 子进程只能响应父进程的任务, 不能主动的执行某个任务, 且父进程在执行 Layout 或 parser 操作时, JSEngine 是处于挂起的状态的.**
 
 所以, WeexCore 的线程模型演变成下面这个样子.
 
diff --git a/docs/zh/community/README.md b/docs/zh/community/README.md
index f9e438e..77582ec 100644
--- a/docs/zh/community/README.md
+++ b/docs/zh/community/README.md
@@ -1,7 +1,7 @@
 <script>
 module.exports = {
   created(){
-    this.$router.push('/zh/community/roadmap.html')
+    this.$router.push('/zh/community/weex-third-party-extensions.html')
   }
 }
 </script>
\ No newline at end of file
diff --git a/docs/zh/community/release-procedure.md b/docs/zh/community/release-procedure.md
deleted file mode 100644
index 974959a..0000000
--- a/docs/zh/community/release-procedure.md
+++ /dev/null
@@ -1,248 +0,0 @@
-# Abstract
-::: danger
-我们欢迎您将此文档从英文翻译成中文。
-:::
-
-::: warning
-This page only gives a brief step of Weex release, always reference the [release policy of ASF](https://www.apache.org/legal/release-policy.html) if you have questions or confusions. 
-:::
-
-::: tip
-Content of this page aimed at Weex release manager, PPMCs and committers of Weex. End-users may consider using the [artifacts of Weex release](../download/download) directly.
-:::
-
-This page describes the steps of Weex release under ASF policy. 
-
-> Releases are, by definition, anything that is published beyond the group that owns it. 
-
-A release is normally conducted by a release manager who is a committer or PPMC member of Weex. 
-
-::: warning
-Release must be voted before publishing according to the ASF's policy. 
-:::
-
-::: warning
-Release are always about source code, binary is only published for users' convenience.
-:::
-
-# Before start
-## Prepare environment
-To generate and compile a weex release, you need to set up the following environment:
-* [Weex build environment](https://github.com/apache/incubator-weex/blob/master/HOW-TO-BUILD.md#build-environment), which includes Android, iOS, JS, C++ toolchains.
-* [OpenPGP environment](http://www.apache.org/dev/openpgp.html#key-gen-generate-key), which is used to generate signature and checksum for release candidate. Please note that OpenPGP is not the same as your `ssh` key though both of them may use the same cryptography algorithm. You may simply use `brew install gpg` to install tools and setup your key pair by `gpg --full-gen-key`.
-
-## Create release branch
-The release branch should be named to `release/xxx`, like `release/0.24`. Then the release manager should push the release branch to the remote repository.
-
-::: tip
-Normally, developers should create a release branch based on the latest commit of `master`. One can also break this rule if you have proper reasons, like there is an unstable commit in `master`.
-:::
-
-## Request buy-in
-Remember to send an email to [dev@weex.apache.org](mailto:dev@weex.apache.org) to see that if there is any has any reason to postpone your release.
-
-    I'd like to start a release for Weex 0.xxxxxxx based on release/xxxxxxxxx branch.
-
-    Does anyone have any reason to delay a Weex release? Any vital patches needs to be merged?
-
-    If not, I will start the release process tomorrow.
-
-# Release candidate
-> Release Candidates are packages that have been proposed for approval as a release but have not yet been approved by the project. 
-
-## Generate release candidate
-Release manager could invoke `scripts/apache_release.sh $RELEASE_CANDIDATE $TAG_OF_LATEST_RELEASE` to generate a release candidate. The explanation of the variable is listed below:
-* `$RELEASE_CANDIDATE` The full-name of the release candidate, like 0.24.0-RC3
-* `$TAG_OF_LATEST_RELEASE`  Weex tag of last release, like 0.19.0.2. RELEASE_NOTE.md came from the difference between `$RELEASE_CANDIDATE` and `$TAG_OF_LATEST_RELEASE` .
-
-The above script will do following things for the release manager:
-1. Generate `RELEASE_NOTE.md` based on the history of git commit and `CHANGELOG.md`.
-1. Create a temp directory named `apache_release_temp` and copy files related to the release to this dir. Files like test file, local configure files, build directory, weex playground and etc. are exclude from a release by this script. 
-1. Run [Apache Rat](https://creadur.apache.org/rat/), which is a release audit tool used for check license and output the result to `RELEASE_AUDIT.LOG`
-1. Create a tarball, signature and checksum for your release.
-
-Release manager should always check the following things before you move to the next step:
-1. Check RELEASE_AUDIT.LOG to see if there is any license problems in your release candidate.
-1. Go to `apache_release_temp` and verify you can compile it from source by running `scripts/build_from_source.sh $NDK18_dir`
-
-## Publish release candidate
-::: warning
-The procedure below may not work well if the release manager is not a PPMC member of Weex as it needs to publish artifact with the privilege of PPMC. If this is the case, please contact one of the PPMC member and ask him/her to execute the following script for you with the following information:
-* The tarball of the source file, like `apache-weex-incubating-xxxxx-xxxxx-src.tar.gz`
-* The signature of the source file, like `apache-weex-incubating-xxxxx-xxxxx-src.tar.gz.asc`
-* The checksum of the source file, like `apache-weex-incubating-xxxxx-xxxxx-src.tar.gz.sha512`
-* The `KEYS` as a result of `gpg --list-sigs && gpg --armor --export >> KEYS` 
-* Remeber to append your public-key info to `KEYS` file in repository https://dist.apache.org/repos/dist/release/incubator/weex and https://dist.apache.org/repos/dist/dev/incubator/weex
-:::
-
-Release manager could invoke `scripts/publish_release_candidate.sh $RELEASE_CANDIDATE_PREFIX $RELEASE_CANDIDATE_SUFFIX $GIT_REMOTE` to publish a release candidate. The explanation of the variable is listed below:
-* `$RELEASE_CANDIDATE_PREFIX`, Weex release candidate prefix, like 0.24.0
-* `$RELEASE_CANDIDATE_SUFFIX`, The release candaidate suffix, like RC3
-* `$GIT_REMOTE` The name of your Github repository, like github-Apache whose URL should be `git@github.com:apache/incubator-weex.git`. You can view `.git/config` file to find the name of your repository.
-
-The above script will do following things for the release manager:
-1. Push git tag with the name `${RELEASE_CANDIDATE_PREFIX}-${RELEASE_CANDIDATE_SUFFIX}` to ${GIT_REMOTE} repository.
-2. Push the release candidate to [https://dist.apache.org/repos/dist/dev/incubator/weex/](https://dist.apache.org/repos/dist/dev/incubator/weex/)
-
-## Call a vote in PPMC
-::: warning
-All the links in your emails must be `https` instead of `http`.
-:::
-
-::: warning
-It's recommendation that release manager should send email during release with him/her Apache email account instead of personal account.
-:::
-
-### Start Vote
-Release manager should call a vote for your release in [dev@weex.apache.org](mailto:dev@weex.apache.org). To get the vote passed, you need three positive vote(namely +1 binding vote) and more positive vote than negative vote(namely -1).
-
-::: tip
-In general community members are encouraged to vote, but their votes are only advisory. Only PMC members have formally binding vote.
-:::
-
-::: tip
-Though there are no vetoed in release vote, but negative vote should be considered seriously by the release manager.
-:::
-
-::: tip
-It is really normal that your release candidate failed in the vote. Don't bre frustrated. Read the message that makes you fail and try to fix them. Then start another release vote like RC2, RC3 and so on.
-:::
-
-One may reference the following email template:
-
-    Subject: [Vote] Release Apache Weex (Incubating) XXXXXXXXX-RCX
-
-    I am going to call a vote for release Apache Weex (Incubating) XXXXX-RCXXXXXX
-
-        * Git tag for this Release:  
-        * The source tarball could be found at : 
-        * The signature of the source tarball could be found at : 
-        * The SHA-512 checksum of the source tarball could be found at : 
-        * The source tarball is signed with Key: XXXXXXXXXXXXXXXXXXXXXXXXXX, which could be found in the key file: 
-        * ChangeLog about this version: 
-
-    One can build the binary from source according to XXXXXXXXXXXXXX
-
-
-    This vote will remain open for at least 72 hours, until we get enough votes. Please vote on releasing this RC.
-
-    [ ] +1 approve
-    [ ] +0 no opinion
-    [ ] -1 disapprove (and reason why)
-
-### Close the vote
-If your vote passed and the vote itself last over 72 hours. You can close the vote by sending another email to [dev@weex.apache.org](mailto:dev@weex.apache.org).
-
-    Subject: [RESULT][VOTE] Release Apache Weex (Incubating) XXXXXXXXX-RCX
-    
-    The vote for release Apache Weex (Incubating) XXXXXXXXXXX has passed with XXXXXXXXXXXXX +1 binding votes and XXXXXXXXXXX -1 vote.
-
-    * +1 vote: 
-        * XXXXXXXXXXXX (binding)
-        * XXXXXXXXXXXX (binding)
-        * XXXXXXXXXXXX (not binding)
-    * +0 vote:
-        * XXXXXXXXXXXX (binding)
-        * XXXXXXXXXXXX (binding)
-        * XXXXXXXXXXXX (not binding)
-    * -1 vote:
-        * XXXXXXXXXXXX (binding)
-        * XXXXXXXXXXXX (binding)
-        * XXXXXXXXXXXX (not binding) 
-
-    Vote Thread: XXXXXXXXXXXXXXXXXX
-
-:::tip
-You can use [Apache mailing list archives](https://mail-archives.apache.org/mod_mbox/weex-dev/) to find the link of your vote thread.
-:::
-
-::: tip
-If you vote don't get passed, you can start another vote directly without sending the email of closing vote. Of course, you can still send an email to close the vote even if it don't get passed. It's all your choice. Either way is acceptable.
-:::
-
-## Call a vote in IPMC
-After your vote passed in [dev@weex.apache.org](mailto:dev@weex.apache.org), release manager should bring this to [general@incubator.apache.org](mailto:general@incubator.apache.org). The vote rules are similar to vote in PPMC, where only difference are that only Incubator PMC votes are binding.
-
-::: warning
-A Release vote must be passed by PPMC and IPMC in order. 
-:::
-
-One may reference the following email template:
-
-    Subject: [Vote] Release Apache Weex (Incubating) XXXXXXXXX-RCX
-
-    The Apache Weex community has voted and approved the proposal to release Apache Weex (Incubating) version XXXXXXXXXXXXXXX, we now kindly request the Incubator PMC members to review and vote on this incubator release.
-        * Vote thread: 
-        * Vote result thread: 
-        * Git tag for this Release:  
-        * The source tarball could be found at : 
-        * The signature of the source tarball could be found at : 
-        * The SHA-512 checksum of the source tarball could be found at : 
-        * The source tarball is signed with Key: XXXXXXXXXXXXXXXXXXXXXXXXXX, which could be found in the key file: 
-        * ChangeLog about this version: 
-
-    One can build the binary from source according to XXXXXXXXXXXXXXXXXXXXX
-
-
-    This vote will remain open for at least 72 hours, until we get enough votes. Please vote on releasing this RC.
-
-    [ ] +1 approve
-    [ ] +0 no opinion
-    [ ] -1 disapprove (and reason why)
-
-### Close Vote
-Similarly, release manager need to close the vote if it get passed the vote itself last over 72 hours. Please remember send the email of closing vote to [general@incubator.apache.org](mailto:general@incubator.apache.org) and [dev@weex.apache.org](mailto:dev@weex.apache.org) together.
-
-# Official release
-> Releases are packages that have been approved for general public release, with varying degrees of caveat regarding their perceived quality or potential for change.
-
-In order to make your release official, here are the next steps.
-
-## Publish release
-::: warning
-The procedure below may not work well if the release manager is not a PPMC member of Weex as it needs to publish artifact with the privilege of PPMC. If this is the case, please ask help from one of the PPMC member.
-:::
-
-Release manager could invoke `scripts/publish_release_official.sh $RELEASE_CANDIDATE_PREFIX $RELEASE_CANDIDATE_SUFFIX $TAG_OF_LATEST_RELEASE $GIT_REMOTE $GITHUB_PERSONAL_TOKEN $JCENTER_TOKEN` to publish the release officially. The explanation of the variable is listed below:
-* `$RELEASE_CANDIDATE_PREFIX`, Weex release candidate prefix, like 0.24.0
-* `$RELEASE_CANDIDATE_SUFFIX`, The release candidate suffix, like RC3
-* `$TAG_OF_LATEST_RELEASE`  Weex tag of last release, like 0.19.0.2. RELEASE_NOTE.md came from the difference between `${RELEASE_CANDIDATE_PREFIX}-${RELEASE_CANDIDATE_SUFFIX}` and `$TAG_OF_LATEST_RELEASE`.
-* `$GIT_REMOTE` The name of your Github repository, like github-Apache whose URL should be `git@github.com:apache/incubator-weex.git`
-* `$GITHUB_PERSONAL_TOKEN` The personal access token of your [github Account](https://github.com/settings/tokens), which should have write privilege to `git@github.com:apache/incubator-weex.git` . The personal access token is used to publish Github Release
-* `$JCENTER_TOKEN` The private key for [JCenter](https://bintray.com/alibabaweex/maven/weex_sdk/), which is the distribution channel for Android
-
-The above script will do following things for the release manager:
-1. Generate `RELEASE_NOTE.md` based on the history of git commit and `CHANGELOG.md`.
-1. Download release candidate from `https://dist.apache.org/repos/dist/dev/incubator/weex/${RELEASE_CANDIDATE_PREFIX}/${RELEASE_CANDIDATE_SUFFIX}`, rename it to `apache-weex-incubating-${$RELEASE_CANDIDATE_PREFIX}-src.tar.gz`, then upload it to [https://dist.apache.org/repos/dist/release/incubator/weex/](https://dist.apache.org/repos/dist/release/incubator/weex/)
-1. Push git tag named `${RELEASE_CANDIDATE_PREFIX}` to `${GIT_REMOTE}` repository and generate a corresponding [Github Release](https://help.github.com/en/articles/about-releases) with `${GITHUB_PERSONAL_TOKEN}`. As the script will install [release-it](https://github.com/release-it/release-it#github-releases) with `npm install -g release-it` to publish github release, make sure your npm environment is ready.
-1. Publish the convenience binary of Android to JCenter with your `${JCENTER_TOKEN}`. You can see the [JCenter token](https://svn.apache.org/repos/private/pmc/incubator/weex/) if you are a PPMC member of Weex.
-
-::: warning
-The convenience binary of iOS can only be published manually now.
-:::
-
-You should also archive your old release by deleting them from [https://dist.apache.org/repos/dist/release/incubator/weex/](https://dist.apache.org/repos/dist/release/incubator/weex/) once your latest release is published according to [ASF' release policy](http://www.apache.org/legal/release-policy.html#when-to-archive).
-
-## Update website
-Please remember update the [website](https://weex.apache.org/download/download.html) with your latest release information and correct link.
-
-::: warning
-* The download link of the latest release source must be provided in the format of mirror, like `https://www.apache.org/dyn/closer.cgi?filename=incubator/weex/${RELEASE_CANDIDATE_PREFIX}/apache-weex-incubating-${RELEASE_CANDIDATE_PREFIX}-src.tar.gz&action=download` according to [ASF' policy](http://www.apache.org/dev/release-download-pages#links).
-
-* As the old release is archived, you should probably update the link of your previous release to new address like, `https://archive.apache.org/dist/incubator/weex/${PREVIOUS_RELEASE}/apache-weex-incubating-${PREVIOUS_RELEASE}-src.tar.gz`
-:::
-
-::: tip
-* Remember to move old latest version to Archived Release section.
-
-* The version information like `pod version` in [Github Page](https://github.com/apache/incubator-weex/edit/master/README.md) will get updated within 24 hours automatically. Please be patient.
-:::
-
-## Announce it
-You are almost there. Just send an email to [dev@weex.apache.org](mailto:dev@weex.apache.org) to announce it.
-
-    Subject: [ANNOUNCEMENT] Weex XXXXXXXXXXXXXXX Released
-
-    Weex XXXXXXXXXXXXXX is released now, one can download source or convenience binary through the link in our website [1].
-
-    [1] https://weex.apache.org/download/download.html#latest-release
\ No newline at end of file
diff --git a/docs/zh/community/roadmap.md b/docs/zh/community/roadmap.md
deleted file mode 100644
index 0a6f64c..0000000
--- a/docs/zh/community/roadmap.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# Weex Project Roadmap
-
-> 这篇文章主要介绍我们目前正在做和计划要做的事情, 我们希望从社区收到大家的反馈来让我们能够更好的了解大家的需求, 我们会根据您提的需求来适当的调整计划.
-
-## WeexCore
-### JS Runtime
-#### v0.21
-
-* 全新的 WeexCore 3.0 架构, 支持更多的平台, ios, Android.
-* 使用 JavaScriptCore 标准的 api 代替原有的源码接入, 独立的 JSRuntime, 使 ios 和 Android 都可以运行在上面.
-* 更高性能的 C++ Dom API.
-
-### Layout
-#### v0.21
-*  为 Layout 引擎增加更多的属性支持
-*  为 Layout 引擎添加更多的测试用例.
-### Render
-#### v0.21
-## 工具
-
-今年我们将发布 Weex-toolkit 的 2.0.0 版本, 主要包含一下新功能
-
-- 无缝的安装和升级体验.
-- 更好的单元测试支持
-- Visual Studio Code  IDE插件支持 编译/运行/调试.
-- 拆成多包模式, 可以在服务端复用.
-
-另外, 我们添加了一些新功能和优化来支持子模块, 例如 weex-debugger,weexpack 等等.
-
-所有的计划可以参考这里 [milestones](https://github.com/weexteam/weex-toolkit/milestones).
-
-### Community
-#### 0.22
-* Github commit/PR 发送将发送至`commit@weex.incubator.apache.org`而不是`dev@weex.incubator.apache.org`
-* Layout 项目的代码设计和开发流程迁移到 [Github Project](https://github.com/apache/incubator-weex/projects) 中。
\ No newline at end of file
diff --git a/docs/zh/community/who-is-using-weex.md b/docs/zh/community/who-is-using-weex.md
new file mode 100644
index 0000000..9cc1430
--- /dev/null
+++ b/docs/zh/community/who-is-using-weex.md
@@ -0,0 +1,5 @@
+---
+pageClass: noFooter
+---
+
+<Who-Is-Using-Weex />
\ No newline at end of file
diff --git a/docs/zh/docs/components/richtext.md b/docs/zh/docs/components/richtext.md
index 1092a57..14e8a39 100644
--- a/docs/zh/docs/components/richtext.md
+++ b/docs/zh/docs/components/richtext.md
@@ -30,6 +30,7 @@
 #### a
 
 * **herf**. Herf。
+* **pseudo-ref**. 开发者指定的索引，会被传给回调方法 **itemclick**。
 
 #### span
 
@@ -63,16 +64,16 @@
 ## 事件
 
 * **通用事件** 支持所有[通用事件](../events/common-events.html)。
-* **itemclick**. 只有`img`和`span`标签可能触发，触发时机是: 
+* **itemclick**. 只有`img`和`a`标签可能触发，触发时机是: 
    * `img`标签:
       * `img`被点击时没有任何父节点是 `a`
       * 如果第一个条件不满足，Weex 会尝试打开 `a` 标签指定的链接。
       * `img` 的 **pseudo-ref** 会作为参数传回来。
-   * `span`标签:
-      * `a`标签中的`span`被点击
-      * 并且所在的`a`标签的href被指定为"click://"（这个条件iOS端强要求，Android端并不要求）
-      * a标签设置了pseudo-ref。此时itemclick事件会被触发，并且携带pseudo-ref的值。[示例](http://editor.weex.io/p/sunshl/Contribute/commit/b21e1133830b48767c6d00d712e415b2)
+   * `a`标签:
+      * `a`标签的href被指定为"click://"（这个条件iOS端强要求，Android端并不要求）
+      * `a`标签设置了pseudo-ref。此时itemclick事件会被触发，并且携带pseudo-ref的值。**此时 `a` 标签的无效。**。[示例](http://editor.weex.io/p/sunshl/Contribute/commit/b21e1133830b48767c6d00d712e415b2)
+    * 若多个嵌套节点上均包含 `itemclick` 事件，则只有最外层节点上的 `itemclick` 会被触发
 
 ## 示例
 
-[示例](http://dotwe.org/vue/f748b0cee3991522a66d4376b66a4f2a)
+[示例](http://dotwe.org/vue/8a817e1acb46c2910caf1b53b8016a48)
diff --git a/docs/zh/docs/components/slider.md b/docs/zh/docs/components/slider.md
index 38f5de0..1bbe1eb 100644
--- a/docs/zh/docs/components/slider.md
+++ b/docs/zh/docs/components/slider.md
@@ -14,7 +14,7 @@
 * **interval**, number（ms）. 轮播间隔，默认为 3000ms。
 * **index**, number. 设置显示slider的第几个页面。
 * **offset-x-accuracy**, number. 控制 `onscroll` 事件触发的频率，默认值为10，表示两次 `onscroll` 事件之间滚动容器至少滚动了10px。将该值设置为较小的数值会提高滚动事件采样的精度，但同时也会降低页面的性能。
-* **show-indicators**, boolean. 是否显示指示器。
+* **show-indicators**, boolean. 是否显示指示器。尽管`show-indicator`的默认值是true，本属性只有在slider下包含 [`<indicator>`](indicator.html) 时才有意义。
 * **infinite**, boolean. 设置是否可以无限轮播，默认为 true。
 * **scrollable**, boolean. 设置是否可以通过滑动手势来切换页面，默认为 true。
 * **keep-index**, boolean, <Badge text="Android" type="warning"/>. 设置轮播器中的数据发生变化后是否保持变化前的页面序号。
diff --git a/docs/zh/docs/events/common-events.md b/docs/zh/docs/events/common-events.md
index 23cb530..98cc1c9 100644
--- a/docs/zh/docs/events/common-events.md
+++ b/docs/zh/docs/events/common-events.md
@@ -2,6 +2,22 @@
 
 Weex 提供了通过事件触发动作的能力，例如在用户点击组件时执行 JavaScript。下面列出了可被添加到 Weex 组件上以定义事件动作的属性：
 
+## 事件穿透
+
+::: warning 注意
+`Android`和`iOS`下原生事件传递机制不同，这里仅针对`iOS`
+:::
+
+当一个父View存在多个同级子View时，由于`iOS`会选择层级最高的View来响应事件，底层的View的事件永远都不会响应。
+
+Weex在`<div>`组件中增加了`eventPenetrationEnabled`属性，当值为`true`时，View的子View仍能正常响应事件，但View自身将不会响应事件，而是将事件向下层View传递。
+
+[示例](https://jsplayground.taobao.org/raxplayground/c230a32e-489c-4fda-ae90-40faa6aaafbc??from=)
+
+## View交互性
+
+Weex在`<div>`组件中增加了`userInteractionEnabled`属性，当值为`true`时，View及其子View均不响应事件 事件向下层View传递
+
 ## click
 
 当组件上发生点击手势时被触发。
diff --git a/docs/zh/docs/modules/meta.md b/docs/zh/docs/modules/meta.md
index e472e0f..2d2e476 100644
--- a/docs/zh/docs/modules/meta.md
+++ b/docs/zh/docs/modules/meta.md
@@ -13,8 +13,16 @@
 * **@options**
   * **`width`**，number，具体数值或 `"device-width"` 和 `"device-height"` 宏。
   * **`height`**，number，具体数据或 `"device-width"` 和 `"device-height"` 宏。
+  * **`deviceWidth`**，number。
+  ::: danger
+  Android暂不支持
+  :::
+  * **`deviceHeight`**，number。
+  ::: danger
+  Android暂不支持
+  :::
   * **`roundOffDeviation`** <Badge text="0.20.0+ & Android Only" type="warn" vertical="middle"/>，表示layout引擎在布局时会忽略小数点导致的误差；若发现组件拼接处有缝隙，可以将 `roundOffDeviation` 设置为false，此时layout引擎将自动填补小数点误差，默认值为 true。
-
+  * **`reserveCssStyles`**，设置为true保留页面样式，用于支持横竖屏切换,[文档](https://weex.apache.org/zh/guide/advanced/multi-size-screen.html)。
 ::: tip 注意
 * 需要注意的是：只有在页面渲染开始之前设置 viewport 才会生效。 也就是说，setViewport 方法只能在入口文件中使用，而且要在 new Vue(...) 之前调用；如果是在组件中使用，就只有在渲染到该组件的时候才会执行相应的代码，此时页面已经处于渲染过程中，设置 viewport 将不会再生效。
 * 宽度和高度的单位默认是 px，暂不支持其他单位。
@@ -34,6 +42,7 @@
 meta.setViewport({
   width: 640,
   roundOffDeviation: false
+  reserveCssStyles: true
 });
 
 App.el = '#root';
diff --git a/docs/zh/docs/styles/common-styles.md b/docs/zh/docs/styles/common-styles.md
index 36b8221..669189e 100644
--- a/docs/zh/docs/styles/common-styles.md
+++ b/docs/zh/docs/styles/common-styles.md
@@ -7,7 +7,7 @@
 :::
 
 ::: warning
-Weex 对于长度值目前只支持像素值，不支持相对单位（`em`、`rem`）。
+Weex 对于长度值目前只支持`px`和`wx`（不受屏幕宽度和viewPortWidth影响），不支持相对单位（`em`、`rem`）。
 :::
 
 ## 盒模型
diff --git a/docs/zh/docs/styles/css-units.md b/docs/zh/docs/styles/css-units.md
index 5754bef..4b7a278 100644
--- a/docs/zh/docs/styles/css-units.md
+++ b/docs/zh/docs/styles/css-units.md
@@ -2,11 +2,11 @@
 
 ## CSS 长度单位
 
-在 Weex 中，我们**只支持 `px` 长度单位**。
+在 Weex 中，我们**支持 `px`和`wx` 长度单位**。对于不希望受屏幕宽度和 viewPortWidth 影响的尺寸，请使用 `wx` 单位。
 
 ::: warning 注意
 - Weex 不支持类似 `em`、`rem`、`pt`,`%` 这样的 CSS 标准中的其他长度单位；
-- 单位 `px` 不可省略，否则在 H5 环境无法正确渲染；
+- 单位 `px`或`wx` 不可省略，否则在 H5 环境无法正确渲染；
 :::
 
 ## CSS 数值单位
@@ -217,4 +217,4 @@
 | white | #FFFFFF |
 | whitesmoke | #F5F5F5 |
 | yellow | #FFFF00 |
-| yellowgreen | #9ACD32 |
\ No newline at end of file
+| yellowgreen | #9ACD32 |
diff --git a/docs/zh/guide/advanced/multi-size-screen.md b/docs/zh/guide/advanced/multi-size-screen.md
index 4201d4b..a189423 100644
--- a/docs/zh/guide/advanced/multi-size-screen.md
+++ b/docs/zh/guide/advanced/multi-size-screen.md
@@ -76,19 +76,30 @@
 ```Javascript
 const meta = weex.requireModule('meta');
 meta.setViewport({
-	width: 800
+    width: 800
 });
 ```
 
 #### 2. 使用 WXSDKInstance 的接口
 
+* iOS:  
 ```Objective-C
 WXSDKInstance* instance = [[WXSDKInstance alloc] init];
 [instance setViewportWidth:800.f];
 ```
 
+* Android:  
+```Java
+WXSDKInstance instance = new WXSDKInstance(mContext);
+instance.setInstanceViewPortWidth(800);
+```
+
 ### 二、设置页面使用的 deviceWidth
 
+::: danger 
+Android暂不支持
+:::
+
 <Badge text="v0.25+" type="warning"/>
 
 #### 1. 使用 Meta Module
@@ -96,8 +107,8 @@
 ```Javascript
 const meta = weex.requireModule('meta');
 meta.setViewport({
-	deviceWidth: 375,
-	deviceHeight: 800
+    deviceWidth: 375,
+    deviceHeight: 800
 });
 ```
 
@@ -123,24 +134,35 @@
 ```Javascript
 const meta = weex.requireModule('meta');
 meta.setViewport({
-	reserveCssStyles: true
+    reserveCssStyles: true
 });
 ```
 
 #### 2. 使用 WXSDKInstance 的接口
 
+* iOS:  
 ```Objective-C
 WXSDKInstance* instance = [[WXSDKInstance alloc] init];
 [instance setPageKeepRawCssStyles];
 ```
+* Android:
+```Java
+WXSDKInstance instance = new WXSDKInstance(mContext);
+instance.setPageKeepRawCssStyles();
+```
 
 ### 四、强制页面重新排版
 
-<Badge text="v0.25+" type="warning"/>
+<Badge text="v0.25+" type="warning"/> 
 
+* iOS:  
 ```Objective-C
 [instance reloadLayout];
 ```
+* Android:  
+```Java
+instance.reloadPageLayout();
+```
 
 ## 使用场景
 
@@ -154,12 +176,19 @@
 
 1、设置页面保留原始 CSS 样式值
 2、当屏幕旋转完成后，调用以下接口设置新的屏幕尺寸，并重新排版
+
+* iOS:
 ```Objective-C
 CGFloat w = [UIScreen mainScreen].bounds.size.width;
 CGFloat h = [UIScreen mainScreen].bounds.size.height;
 [_instance setPageRequiredWidth:w height:h];
 [_instance reloadLayout];
 ```
+* Android:
+```Java
+instance.resetDeviceDisplayOfPage();
+instance.reloadPageLayout();
+```
 
 你可以使用最新 Playground 扫码[示例](http://editor.weex.io/p/wqyfavor/scroller/commit/37810078ef963388b699b5ad7d5e9881)
 要在控制面板里允许屏幕自动旋转。
diff --git a/docs/zh/guide/contribute/bug-report-guidelines.md b/docs/zh/guide/contribute/bug-report-guidelines.md
deleted file mode 100644
index ad25358..0000000
--- a/docs/zh/guide/contribute/bug-report-guidelines.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# 反馈 Bug
-
-Weex 社区使用 [Github Issue](https://github.com/apache/incubator-weex/issues) 来跟踪并处理 Bug 。Bug 反馈中包含的信息越多，越有助于该 Bug 被快速修复。
-
-::: tip
-* 避免重复: 在报 bug 前先搜索。
-* 总是测试最新的可用版本。
-* 每个报告只报一个 bug。
-:::
-
-## Bug 反馈的格式
-在 Weex 的 Github Issue 中提 Bug 时，请选择 [Bug Report](https://github.com/apache/incubator-weex/issues/new?template=bug_report.md)模板，并按照其中的格式填写，这样有助于 Bug 被更快的处理。
-
-::: tip
-为了让你的 Bug 反馈被更多人看到，请尽量使用英文描述 Bug
-:::
-
-::: warning
-反馈 Bug 时陈述有用的事实，而不是意见或抱怨。
-:::
-
-## 96小时原则
-一般情况下，Weex 社区会在 96 小时内响应新提出的Bug，如遇到法定假日或其他节假日，响应速度可能会变慢，请耐心等待。
-
-::: tip
-如果你提出的 Bug 在一周内无任何反馈，请勇敢的在[邮件列表](./how-to-contribute.html#%E9%82%AE%E4%BB%B6%E5%88%97%E8%A1%A8)中询问 Weex 社区的开发者们。
-:::
\ No newline at end of file
diff --git a/docs/zh/guide/contribute/contribute-code.md b/docs/zh/guide/contribute/contribute-code.md
deleted file mode 100644
index d0da9f6..0000000
--- a/docs/zh/guide/contribute/contribute-code.md
+++ /dev/null
@@ -1,87 +0,0 @@
-# 代码贡献指南
-
-本文档描述了如何对 Weex 源代码进行更改和提交，以下是建议的步骤：
-
-## 写代码前
-### 检查 License
-Weex 采用 [Apache License 2.0](https://choosealicense.com/licenses/apache-2.0/)作为其开源证书，Weex的任何新增改动需要符合该开源证书的要求。
-
-### 修复 Bug 还是提供新特性 ？
-* 如果你准备为 Weex 修复一个Bug，先在[ Github Issues ](https://github.com/apache/incubator-weex/issues)中查看对应的 Bug 是否存在，如果存在的话，请在提交Pull Request时附上对应的链接。
-
-* 如果你准备为 Weex 添加一个新的特性，请遵循以下流程：
-    1. 向[邮件列表](how-to-contribute.html#邮件列表)中发送邮件，说明你需要你想要做的事情。
-    1. 编写[文档](how-to-contribute.html#贡献文档或代码).
-
-
-## 编写代码
-1. Fork Weex 的 [Github 仓库](https://github.com/apache/incubator-weex)。
-
-1. 编写需要开发的特性或 bug 修复代码，确保你的更改符合[代码风格指南](./contribute-code.html#代码风格指南)。
-
-1. 复制下面的**License注释**到你的新文件顶部:
-   
-        /*
-        * Licensed to the Apache Software Foundation (ASF) under one
-        * or more contributor license agreements.  See the NOTICE file
-        * distributed with this work for additional information
-        * regarding copyright ownership.  The ASF licenses this file
-        * to you under the Apache License, Version 2.0 (the
-        * "License"); you may not use this file except in compliance
-        * with the License.  You may obtain a copy of the License at
-        *
-        *   http://www.apache.org/licenses/LICENSE-2.0
-        *
-        * Unless required by applicable law or agreed to in writing,
-        * software distributed under the License is distributed on an
-        * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-        * KIND, either express or implied.  See the License for the
-        * specific language governing permissions and limitations
-        * under the License.
-        */
-   
-
-1. 提交代码到你的分支上。
-
-:::tip
-如果你使用Android Studio开发 Java 或 C++ 代码，**License注释**会在编译时自动添加到文件头部，无需人工操作。
-:::
-
-### 代码风格指南
-
-#### Objective-C
-
-- 用 tab 缩进而不是空格
-
-- `*` 操作符靠近变量名（如 Type *variable）
-- 方法定义：大括号需要另起一行
-- 其他大括号：开括号紧跟在代码后面，不另起一行，闭括号单独占一行
-- 使用 `#pragma marks` 标记将方法分类
-- 遵循 [GitHub Objective-C Style Guide](https://github.com/github/objective-c-style-guide) 中其他的代码风格指南
-
-#### Java & Android
-
-- 使用 [Google Java Style](https://google.github.io/styleguide/javaguide.html) 作为基本的 Java 代码风格指南
-- 其他 android 相关代码需遵循 [AOSP Code Style](https://source.android.com/source/code-style.html)
-
-#### C & C++
-
-* 整体使用[Google C++ Style](https://google.github.io/styleguide/cppguide.html)作为C++代码风格指南
-* Weex定义了一套[Google C++ 开发规范子集](https://github.com/jianhan-he/C-Style-Guide/blob/master/C%2B%2B%20Style%20Guide.md)，涵盖了一些主要C++场景使用规范
-
-## 提交代码
-
-[创建一个 pull request](https://help.github.com/articles/using-pull-requests/) 并提交到 [`apache/incubator-weex`](https://github.com/apache/incubator-weex) 的 `master` 分支，确保它符合这些准则:
-
-1. 一个 Pull Request 只解决一个问题
-2. PR 标题应符合 `[模块] 标题` 格式：
-    * 模块是 PR 的类别（android、iOS、JsFm、web、doc、test、other），
-    * 标题是对PR内容不超过一句话的描述。
-3. PR 内容
-    * 如果 PR 是修复了某个 Bug *非Crash*，需要在 PR 内容中添加对应的 [Demo 地址](http://dotwe.org/vue)
-    * 如果 PR 是添加了某个特性，需要在 PR 内容中添加对应的[文档PR](how-to-contribute.html#贡献文档或代码)。
-    * *可选项* 如果 PR 解决了某个Github issue， 需要在 PR 内容中添加对应的链接
-
-:::tip
-PR的 Review 需要一定时间，请耐心等待。如果某个 PR 超过**96小时**无人回复，可向[Weex邮件列表](how-to-contribute.html#邮件列表)发送邮件，询问进展。
-:::
\ No newline at end of file
diff --git a/docs/zh/guide/contribute/how-to-contribute.md b/docs/zh/guide/contribute/how-to-contribute.md
index 32d5b81..1461350 100644
--- a/docs/zh/guide/contribute/how-to-contribute.md
+++ b/docs/zh/guide/contribute/how-to-contribute.md
@@ -23,6 +23,9 @@
 在Weex邮件组中，请使用英文沟通，以便让来自全球的开发者知道你的观点。
 :::
 
+## Members and Governance Model
+Weex 目前的 Committer，PPMC 成员以及加入 Weex Committer 的方式都列在[文档](https://cwiki.apache.org/confluence/x/bFoyBw)中。
+
 ## 提出与解决解答问题
 * 如果你对weex的用法或基本概念有疑惑，可以在[stackoverflow.com](http://stackoverflow.com/questions/tagged/weex)上提出相关问题。
 * 如果你确定某个问题是一个bug，请参考[Bug 反馈指南](./bug-report-guidelines.html)，并使用Github Issue来反馈。
@@ -35,8 +38,17 @@
 Github Issue 仅用接收 Bug 反馈以及 StackOverflow 上超过 96 小时无人回复的问题，其他问题请通过邮件列表进行沟通。
 :::
 
+## 研发流程
+Weex 研发流程的文档被放置于 [Confluence](https://cwiki.apache.org/confluence/x/eJBTB) 上，这个文档对所有用户可以，文档的主要使用者是 Weex 的 Contributor 。
+
+* [Release Plan](https://github.com/apache/incubator-weex/milestones): 从 0.27 开始，Weex 使用 Github Milestone 管理版本计划。所有的 feature, bugfix 和已经解决的 issue 都和某个里程碑关联。由于 Weex 发布需要两轮投票，里程碑的发布日期仅供参考。
+* [Release Procedure](https://cwiki.apache.org/confluence/x/_I5TBw)
+* [Major feature](https://github.com/apache/incubator-weex/projects)
+* [System Design](https://cwiki.apache.org/confluence/x/XYxTBw)
+* [Road Map](https://cwiki.apache.org/confluence/x/fJBTBw)
+
 ## 贡献文档或代码
-提交代码 *Pull Request* 并不是参与 Weex 贡献的唯一方式，在Weex社区中，**文档和一样重要**，并尊重所有开发者对 Weex 文档或代码的贡献。
+提交代码 *Pull Request* 并不是参与 Weex 贡献的唯一方式，在Weex社区中，**文档和代码一样重要**，并尊重所有开发者对 Weex 文档或代码的贡献。
 
 :::tip
 Weex 采用了 Apache License 2.0，请确保你的贡献符合Apache License 2.0的约束。
@@ -54,4 +66,4 @@
 :::
 
 ### 贡献代码
-贡献的代码可以是修复已知的 bug 或者 开发新 feature，参考[代码提交指南](./contribute-code.html)了解更多细节。
\ No newline at end of file
+贡献的代码可以是修复已知的 bug 或者 开发新 feature，参考[代码提交指南](./contribute-code.html)了解更多细节。
diff --git a/docs/zh/guide/contribute/thanks.md b/docs/zh/guide/contribute/thanks.md
new file mode 100644
index 0000000..8c33d5d
--- /dev/null
+++ b/docs/zh/guide/contribute/thanks.md
@@ -0,0 +1,4 @@
+# Thanks
+Weex的存在离不开社区的持续支持，我们在这里感谢以下项目/公司对我们的支持。
+
+* ![Sauce Lab](/sauce_labs_red.svg)[Sauce Labs](https://saucelabs.com): A Cross-browser Testing Platform.
\ No newline at end of file
diff --git a/docs/zh/guide/debug/integrate-devtool-to-android.md b/docs/zh/guide/debug/integrate-devtool-to-android.md
index 50f4f47..e8afe3a 100644
--- a/docs/zh/guide/debug/integrate-devtool-to-android.md
+++ b/docs/zh/guide/debug/integrate-devtool-to-android.md
@@ -16,6 +16,7 @@
 | 0.19.0+  | 0.18.68        |
 | 0.20.3.0-beta | 0.20.3.0-beta |
 | 0.24.0+  | 0.24.2.4 |
+| 0.26.0+  | 0.24.2.4 |
 
 ## Android接入指南
 
diff --git a/docs/zh/guide/playground.md b/docs/zh/guide/playground.md
new file mode 100644
index 0000000..022cedf
--- /dev/null
+++ b/docs/zh/guide/playground.md
@@ -0,0 +1,5 @@
+---
+pageClass: tool
+---
+
+<Tool-Playground />
\ No newline at end of file
diff --git a/docs/zh/guide/use-vue-in-weex.md b/docs/zh/guide/use-vue-in-weex.md
index e62d61d..fed2c3a 100644
--- a/docs/zh/guide/use-vue-in-weex.md
+++ b/docs/zh/guide/use-vue-in-weex.md
@@ -62,7 +62,7 @@
 
 ## 单文件组件
 
-Vue 中的[单文件组件](https://cn.vuejs.org/v2/guide/single-file-components.html)（即`*.vue`文件）是一种特殊的文件格式，扩展名为`.vue`。这个模板会在构建时便于到`render`函数里。
+Vue 中的[单文件组件](https://cn.vuejs.org/v2/guide/single-file-components.html)（即`*.vue`文件）是一种特殊的文件格式，扩展名为`.vue`。这个模板会在构建时编译到`render`函数里。
 
 此外，所有的编辑器里都支持一个好的[语法高亮插件](https://github.com/vuejs/awesome-vue#source-code-editing)。
 
@@ -118,6 +118,58 @@
 无论什么情况下都使用 javascript 文件作为入口文件。
 :::
 
+**使用weex-loader单文件编译示例**
+1. 执行`npm init`
+2. 修改`package.json`文件，向其中添加：
+```
+  "dependencies": {
+    "babel-loader": "^8.0.6",
+    "weex-loader": "^0.7.12",
+    "webpack": "^2.2.1"
+  },
+  "scripts": {
+    "build": "webpack --config webpack.config.js"
+  },
+```
+3. 创建`webpack.config.js`,按照你的需要更改。
+```
+const webpack = require('webpack');
+const path = require('path');
+
+module.exports = {
+  entry: '<your-input-file>',
+  output: {
+    path: path.resolve(__dirname, './'),
+    filename: <your-output-file>
+  },
+  module: {
+	    rules: [
+	      {
+	        test: /\.vue(\?[^?]+)?$/,
+	        loaders: ['weex-loader']
+	      },
+	      {
+	        test: /\.js$/,
+	        loaders: ['babel-loader']
+	      }
+	    ]
+	  },
+	plugins: [
+		new webpack.BannerPlugin({
+			raw: true ,
+			banner: '// { "framework": "Vue" }\n'
+		})
+	]
+}
+```
+4. 执行`npm run build`。
+5. 完成。
+
+**使用weex compile编译**
+1. 安装[weex-toolkit](https://weex.apache.org/zh/tools/toolkit.html#安装)：`npm install weex-toolkit -g`
+2. 执行`weex compile [资源文件] [产物地址]`命令
+3. 完成。
+
 ## 支持的功能
 
 ### 全局配置
diff --git a/docs/zh/tools/README.md b/docs/zh/tools/README.md
index 061c316..c155a6f 100644
--- a/docs/zh/tools/README.md
+++ b/docs/zh/tools/README.md
@@ -1,7 +1,7 @@
 <script>
 module.exports = {
   created(){
-    this.$router.push('/zh/tools/playground.html')
+    this.$router.push('/zh/tools/toolkit.html')
   }
 }
 </script>
\ No newline at end of file
diff --git a/docs/zh/tools/dotwe.md b/docs/zh/tools/dotwe.md
new file mode 100644
index 0000000..a526877
--- /dev/null
+++ b/docs/zh/tools/dotwe.md
@@ -0,0 +1,5 @@
+---
+pageClass: tool
+---
+
+<Tool-Dotwe />
\ No newline at end of file
diff --git a/docs/zh/tools/playground.md b/docs/zh/tools/playground.md
deleted file mode 100644
index 6796501..0000000
--- a/docs/zh/tools/playground.md
+++ /dev/null
@@ -1 +0,0 @@
-# Playground App
\ No newline at end of file
