You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by ha...@apache.org on 2017/10/13 13:04:14 UTC

[19/51] [abbrv] incubator-weex-site git commit: rearrangement the structure of the document

http://git-wip-us.apache.org/repos/asf/incubator-weex-site/blob/32a097bf/_draft/web-standards.en.md
----------------------------------------------------------------------
diff --git a/_draft/web-standards.en.md b/_draft/web-standards.en.md
new file mode 100644
index 0000000..906ff76
--- /dev/null
+++ b/_draft/web-standards.en.md
@@ -0,0 +1,584 @@
+---
+title: Web standards
+type: references
+order: 8
+version: 2.1
+has_chapter_content: true
+---
+
+# Web standards
+
+## HTML
+
+refs: https://www.advancedwebranking.com/html/ 2016-12-11
+
+### Overview
+
+| percentage | name | supported |
+| ---- | ---- | ---- |
+| 98.1% | `<head>` | - |
+| 97.9% | `<body>` | - |
+| 97.9% | `<html>` | - |
+| 97% | `<title>` | - |
+| 93.9% | `<meta>` | - |
+| 89.9% | `<div>` | ✓ |
+| 89.6% | `<a>` | ✓ |
+| 88.5% | `<script>` | ✓ |
+| 86.5% | `<link>` | - |
+| 86.3% | `<img>` | ✓ |
+| 81.5% | `<p>` | - (can be customized) |
+| 75.6% | `<span>` | - (can be customized) |
+| 73.8% | `<li>` | - (can be customized) |
+| 73.7% | `<ul>` | - (can be customized) |
+| 70.3% | `<br>` | ✕ |
+| 60.4% | `<style>` | ✓ |
+| 55.8% | `<h1>` | - (can be customized) |
+| 52.7% | `<h2>` | - (can be customized) |
+| 48.4% | `<input>` | ✓ |
+| 46.9% | `<form>` | ✕ |
+| 44.3% | `<strong>` | - (can be customized) |
+| 43.1% | `<h3>` | - (can be customized) |
+| 30.9% | `<table>` | ✕ |
+| 30.3% | `<tr>` | ✕ |
+| 30.2% | `<td>` | ✕ |
+
+### Forms
+
+| percentage | name | supported |
+| ---- | ---- | ---- |
+| 49.5% | `<option>` | ✕ |
+| 30.2% | `<input>` | ✓ |
+| 16.6% | > `[type="hidden"]` | - |
+| 8% | > `[type="text"]` | ✓ |
+| 4.2% | > `[type="submit"]` | - |
+| 2% | > `[type="checkbox"]` | - (`<switch>`) |
+| 1.2% | > `[type="email"]` | ✓ |
+| 1.1% | > `[type="radio"]` | ✕ |
+| 0.9% | > `[type="image"]` | - |
+| 0.8% | > `[type="button"]` | - |
+| 0.6% | > `[type="search"]` | ✕ |
+| 0.6% | > `[type="password"]` | ✓ |
+| 0.1% | > `[type="tel"]` | ✓ |
+| 0.1% | > `[type="number"]` | ✓ |
+| 0% | > `[type="reset"]` | - |
+| 0% | > `[type="file"]` | ✕ |
+| 0% | > `[type="date"]` | ✓ |
+| 0% | > `[type="url"]` | ✓ |
+| 0% | > `[type="range"]` | ✕ |
+| 0% | > `[type="color"]` | ✕ |
+| 0% | > `[type="time"]` | ✓ |
+| 0% | > `[type="datetime-local"]` | ✕ |
+| 7.2% | `<label>` | - |
+| 6.1% | `<form>` | - |
+| 3.7% | `<button>` | - (can be customized) |
+| 2.6% | > `[type="button"]` | - |
+| 1.3% | > `[type="submit"]` | - |
+| 0% | > `[type="reset"]` | - |
+| 1.9% | `<select>` | ✕ |
+| 0.7% | `<textarea>` | ✓ |
+| 0.5% | `<fieldset>` | - |
+| 0.1% | `<optgroup>` | ✕ |
+| 0.1% | `<legend>` | - |
+| 0% | `<progress>` | ✕ |
+| 0% | `<datalist>` | - |
+| 0% | `<output>` | - |
+| 0% | `<meter>` | - |
+
+## CSS Properties
+
+refs: https://www.chromestatus.com/metrics/feature/popularity 2016-12-11
+
+| percentage | name | supported |
+| ---- | ---- | ---- |
+| 90.5115% | display | ✕ `flex` only |
+| 89.8243% | margin | ✓ (not support combo) |
+| 88.7012% | width | ✓ |
+| 88.6468% | overflow | ✓ iOS only, `hidden` only for Android |
+| 88.6432% | background-color | ✓ |
+| 88.0803% | height | ✓ |
+| 87.7648% | font-size | ✓ |
+| 87.3837% | padding | ✓ |
+| 87.2721% | color | ✓ |
+| 86.9788% | text-align | ✓ |
+| 86.6841% | position | ✓ `relative` by default, `static` not supported |
+| 86.6039% | font-family | ✓ |
+| 86.5943% | font-weight | ✓ |
+| 85.0072% | opacity | ✓ |
+| 80.6911% | max-width | ✕ |
+| 79.4476% | box-sizing | ✕ `border-box` only |
+| 75.7623% | max-height | ✕ |
+| 74.9939% | webkit-user-select | ✕ |
+| 57.0292% | align-items | ✓ |
+| 56.8182% | justify-content | ✓ `space-around` not supported well in browser |
+| 50.5941% | flex-direction | ✓ |
+| 48.5052% | border | ✓ |
+| 47.5161% | top | ✓ |
+| 46.9136% | background | ✕ |
+| 46.1552% | cursor | ✕ |
+| 46.1443% | margin-left | ✓ |
+| 46.0956% | left | ✓ |
+| 46.0848% | text-decoration | ✓ |
+| 45.9575% | float | ✕ |
+| 45.8391% | border-bottom | ✓ |
+| 45.7639% | padding-left | ✓ |
+| 45.7128% | margin-top | ✓ |
+| 45.7013% | line-height | ✓ |
+| 45.5836% | background-image | ✕ |
+| 45.0837% | z-index | ✕ |
+| 45.0649% | right | ✓ |
+| 45.0516% | margin-bottom | ✓ |
+| 45.0459% | white-space | ✕ |
+| 44.8710% | margin-right | ✓ |
+| 44.8476% | vertical-align | ✕ |
+| 44.6306% | padding-top | ✓ |
+| 44.1466% | border-radius | ✓ |
+| 44.0136% | border-top | ✓ |
+| 43.9815% | padding-bottom | ✓ |
+| 43.9392% | padding-right | ✓ |
+| 43.8539% | visibility | ✕ |
+| 43.4306% | background-position | ✕ |
+| 43.4098% | background-repeat | ✕ |
+| 43.0391% | clear | ✕ |
+| 42.9100% | bottom | ✓ |
+| 42.2092% | content | ✕ |
+| 42.0690% | box-shadow | ✕ |
+| 41.9004% | border-color | ✓ |
+| 41.7341% | outline | ✕ |
+| 41.4297% | border-right | ✓ |
+| 41.2605% | border-left | ✓ |
+| 41.1127% | min-height | ✕ |
+| 41.0736% | font-style | ✓ |
+| 41.0523% | min-width | ✕ |
+| 40.4298% | list-style | ✕ |
+| 39.7341% | font | ✕ |
+| 38.8999% | background-size | ✕ |
+| 38.7811% | border-width | ✓ |
+| 38.7718% | border-collapse | ✕ |
+| 37.8110% | border-style | ✓ |
+| 37.4962% | text-overflow | ✓ must work with `lines` |
+| 37.3471% | text-transform | ✕ |
+| 37.2154% | transition | ✕ |
+| 36.5155% | overflow-y | ✕ |
+| 36.3025% | transform | ✕ |
+| 36.2488% | text-indent | ✕ |
+| 35.5075% | text-shadow | ✕ |
+| 34.7607% | webkit-appearance | ✕ |
+| 34.1925% | list-style-type | ✕ |
+| 34.0238% | border-spacing | ✕ |
+| 33.6664% | word-wrap | ✕ |
+| 31.9961% | overflow-x | ✕ |
+| 31.9922% | zoom | ✕ |
+| 31.2495% | border-bottom-left-radius | ✕ |
+| 31.1306% | pointer-events | ✕ |
+| 31.1229% | border-top-left-radius | ✕ |
+| 30.2131% | border-bottom-color | ✓ |
+| 29.9608% | border-top-color | ✓ |
+| 29.4297% | border-bottom-right-radius | ✕ |
+| 29.2668% | border-top-right-radius | ✕ |
+| 28.6489% | letter-spacing | ✕ |
+| 27.8327% | animation | ✕ |
+| 26.6738% | border-right-width | ✓ |
+| 26.0169% | src | ✕ |
+| 25.2661% | clip | ✕ |
+| 25.2512% | webkit-font-smoothing | ✕ |
+| 25.1971% | border-bottom-width | ✓ |
+| 25.0246% | border-right-color | ✓ |
+| 24.7790% | direction | ✕ |
+| 24.4094% | webkit-tap-highlight-color | ✕ |
+| 23.9751% | border-left-color | ✓ |
+| 23.9321% | border-top-width | ✓ |
+| 23.7902% | fill | ✕ |
+| 23.2617% | border-left-width | ✓ |
+| 22.7278% | table-layout | ✕ |
+| 21.5766% | word-break | ✕ |
+| 20.4319% | background-clip | ✕ |
+| 19.3198% | transform-origin | ✕ |
+| 18.9233% | filter | ✕ |
+| 17.7879% | resize | ✕ |
+| 16.2501% | flex | ✕ |
+| 15.1656% | font-variant | ✕ |
+| 14.9181% | text-rendering | ✕ |
+| 14.7125% | webkit-filter | ✕ |
+| 14.5263% | transition-duration | ✕ |
+| 14.3966% | transition-property | ✕ |
+| 14.2124% | webkit-box-orient | ✕ |
+| 13.5432% | outline-offset | ✕ |
+| 12.9300% | transition-timing-function | ✕ |
+| 12.2788% | unicode-range | ✕ |
+| 12.0880% | word-spacing | ✕ |
+| 11.9124% | quotes | ✕ |
+| 11.6800% | border-bottom-style | ✓ |
+| 11.4263% | webkit-background-clip | ✕ |
+| 11.0070% | flex-grow | ✕ |
+| 10.5925% | backface-visibility | ✕ |
+| 10.4417% | animation-name | ✕ |
+| 10.4302% | stroke | ✕ |
+| 10.4144% | animation-duration | ✕ |
+| 10.2804% | touch-action | ✕ |
+| 9.9663% | list-style-position | ✕ |
+| 9.8662% | order | ✕ |
+| 9.7770% | outline-width | ✕ |
+| 9.7504% | transition-delay | ✕ |
+| 9.4689% | border-top-style | ✓ |
+| 9.3474% | webkit-box-pack | ✕ |
+| 9.3078% | webkit-box-align | ✕ |
+| 9.2375% | page-break-inside | ✕ |
+| 9.1898% | webkit-line-clamp | ✕ |
+| 8.9350% | list-style-image | ✕ |
+| 8.8339% | page-break-after | ✕ |
+| 8.5735% | speak | ✕ |
+| 8.4754% | unicode-bidi | ✕ |
+| 8.4307% | animation-timing-function | ✕ |
+| 8.1464% | webkit-box-flex | ✕ |
+| 8.0048% | orphans | ✕ |
+| 7.9947% | widows | ✕ |
+| 7.6671% | flex-wrap | ✓ not supported well in browser |
+| 7.5756% | animation-fill-mode | ✕ |
+| 7.4163% | animation-delay | ✕ |
+| 7.3284% | border-left-style | ✓ |
+| 7.1586% | outline-color | ✕ |
+| 6.9102% | flex-shrink | ✕ |
+| 6.7754% | perspective | ✕ |
+| 6.7748% | border-right-style | ✓ |
+| 6.4619% | outline-style | ✕ |
+| 6.0382% | animation-iteration-count | ✕ |
+| 5.9838% | background-origin | ✕ |
+| 5.9714% | fill-opacity | ✕ |
+| 5.9357% | will-change | ✕ |
+| 5.3740% | stroke-width | ✕ |
+| 5.3172% | transform-style | ✕ |
+| 5.2608% | overflow-wrap | ✕ |
+| 5.1730% | background-attachment | ✕ |
+| 4.9039% | counter-increment | ✕ |
+| 4.5950% | counter-reset | ✕ |
+| 4.5031% | align-self | ✕ |
+| 4.4109% | webkit-box-ordinal-group | ✕ |
+| 4.4046% | webkit-animation-direction | ✕ |
+| 3.7598% | background-position-x | ✕ |
+| 3.6867% | border-image | ✕ |
+| 3.6601% | background-position-y | ✕ |
+| 3.5749% | webkit-user-drag | ✕ |
+| 3.3376% | flex-basis | ✕ |
+| 3.1840% | align-content | ✕ |
+| 3.1832% | flex-flow | ✕ |
+| 3.1774% | image-rendering | ✕ |
+| 3.0879% | webkit-margin-start | ✕ |
+| 2.9551% | font-stretch | ✕ |
+| 2.8934% | empty-cells | ✕ |
+| 2.7619% | webkit-margin-after | ✕ |
+| 2.7220% | perspective-origin | ✕ |
+| 2.6125% | webkit-margin-end | ✕ |
+| 2.6089% | column-count | ✕ |
+| 2.5880% | webkit-text-fill-color | ✕ |
+| 2.5466% | webkit-box-direction | ✕ |
+| 2.4618% | font-feature-settings | ✕ |
+| 2.3959% | webkit-mask-image | ✕ |
+| 2.3431% | webkit-padding-end | ✕ |
+| 2.2555% | stroke-dasharray | ✕ |
+| 2.1788% | user-select | ✕ |
+| 2.1679% | object-fit | ✕ |
+| 2.0643% | column-gap | ✕ |
+| 2.0459% | text-size-adjust | ✕ |
+| 2.0253% | caption-side | ✕ |
+| 1.9695% | stroke-dashoffset | ✕ |
+| 1.7923% | stroke-linecap | ✕ |
+| 1.7861% | animation-direction | ✕ |
+| 1.7559% | webkit-font-feature-settings | ✕ |
+| 1.7404% | stroke-opacity | ✕ |
+| 1.5926% | stroke-miterlimit | ✕ |
+| 1.5786% | fill-rule | ✕ |
+| 1.4859% | webkit-user-modify | ✕ |
+| 1.3439% | webkit-border-image | ✕ |
+| 1.3091% | animation-play-state | ✕ |
+| 1.2676% | contain | ✕ |
+| 1.2029% | webkit-padding-start | ✕ |
+| 1.1840% | webkit-margin-before | ✕ |
+| 1.1269% | page-break-before | ✕ |
+| 1.1222% | webkit-margin-top-collapse | ✕ |
+| 1.0418% | columns | ✕ |
+| 1.0354% | webkit-mask-size | ✕ |
+| 0.9650% | border-image-slice | ✕ |
+| 0.9425% | stop-color | ✕ |
+| 0.9408% | webkit-mask-repeat | ✕ |
+| 0.9125% | webkit-box-lines | ✕ |
+| 0.8804% | webkit-column-break-inside | ✕ |
+| 0.8752% | size | ✕ |
+| 0.8334% | font-kerning | ✕ |
+| 0.8034% | stroke-linejoin | ✕ |
+| 0.7869% | tab-size | ✕ |
+| 0.7689% | break-inside | ✕ |
+| 0.7589% | webkit-text-stroke-width | ✕ |
+| 0.7353% | column-width | ✕ |
+| 0.6924% | webkit-mask-position | ✕ |
+| 0.6869% | border-image-width | ✕ |
+| 0.6323% | border-image-repeat | ✕ |
+| 0.5994% | border-image-outset | ✕ |
+| 0.5885% | all | ✕ |
+| 0.5859% | webkit-text-stroke-color | ✕ |
+| 0.5435% | webkit-print-color-adjust | ✕ |
+| 0.5420% | webkit-text-stroke | ✕ |
+| 0.5195% | writing-mode | ✕ |
+| 0.4741% | clip-rule | ✕ |
+| 0.4685% | webkit-clip-path | ✕ |
+| 0.4578% | text-anchor | ✕ |
+| 0.4535% | shape-rendering | ✕ |
+| 0.4526% | webkit-column-break-before | ✕ |
+| 0.4494% | clip-path | ✕ |
+| 0.4452% | webkit-mask | ✕ |
+| 0.4393% | mix-blend-mode | ✕ |
+| 0.4166% | text-align-last | ✕ |
+| 0.4033% | column-rule | ✕ |
+| 0.3990% | webkit-mask-box-image | ✕ |
+| 0.3989% | font-variant-ligatures | ✕ |
+| 0.3881% | column-fill | ✕ |
+| 0.3865% | webkit-line-break | ✕ |
+| 0.3857% | border-image-source | ✕ |
+| 0.3528% | stop-opacity | ✕ |
+| 0.3075% | webkit-perspective-origin-y | ✕ |
+| 0.3054% | webkit-perspective-origin-x | ✕ |
+| 0.2994% | webkit-writing-mode | ✕ |
+| 0.2717% | dominant-baseline | ✕ |
+| 0.2634% | column-rule-color | ✕ |
+| 0.2586% | webkit-box-decoration-break | ✕ |
+| 0.2467% | webkit-text-security | ✕ |
+| 0.2374% | webkit-background-origin | ✕ |
+| 0.2146% | font-variant-caps | ✕ |
+| 0.2005% | column-rule-style | ✕ |
+| 0.1976% | shape-outside | ✕ |
+| 0.1971% | webkit-padding-before | ✕ |
+| 0.1896% | break-after | ✕ |
+| 0.1782% | webkit-padding-after | ✕ |
+| 0.1774% | text-orientation | ✕ |
+| 0.1747% | webkit-text-orientation | ✕ |
+| 0.1655% | mask | ✕ |
+| 0.1626% | alignment-baseline | ✕ |
+| 0.1572% | page | ✕ |
+| 0.1530% | webkit-column-break-after | ✕ |
+| 0.1521% | webkit-box-reflect | ✕ |
+| 0.1504% | webkit-text-emphasis-color | ✕ |
+| 0.1499% | object-position | ✕ |
+| 0.1470% | break-before | ✕ |
+| 0.1455% | webkit-margin-collapse | ✕ |
+| 0.1452% | baseline-shift | ✕ |
+| 0.1451% | hyphens | ✕ |
+| 0.1309% | rx | ✕ |
+| 0.1304% | ry | ✕ |
+| 0.1256% | background-blend-mode | ✕ |
+| 0.1136% | font-variant-numeric | ✕ |
+| 0.1135% | background-repeat-x | ✕ |
+| 0.1123% | background-repeat-y | ✕ |
+| 0.1086% | webkit-text-emphasis | ✕ |
+| 0.1058% | webkit-rtl-ordering | ✕ |
+| 0.1040% | column-rule-width | ✕ |
+| 0.1036% | isolation | ✕ |
+| 0.1002% | webkit-highlight | ✕ |
+| 0.0843% | webkit-transform-origin-y | ✕ |
+| 0.0786% | webkit-transform-origin-x | ✕ |
+| 0.0770% | webkit-app-region | ✕ |
+| 0.0685% | column-span | ✕ |
+| 0.0653% | r | ✕ |
+| 0.0611% | y | ✕ |
+| 0.0602% | x | ✕ |
+| 0.0555% | webkit-border-vertical-spacing | ✕ |
+| 0.0545% | webkit-border-horizontal-spacing | ✕ |
+| 0.0542% | webkit-border-start-width | ✕ |
+| 0.0450% | webkit-border-start-color | ✕ |
+| 0.0424% | webkit-border-after-width | ✕ |
+| 0.0424% | webkit-border-before-width | ✕ |
+| 0.0423% | webkit-border-end-width | ✕ |
+| 0.0351% | marker | ✕ |
+| 0.0349% | webkit-border-end-color | ✕ |
+| 0.0347% | webkit-border-after-color | ✕ |
+| 0.0347% | webkit-border-before-color | ✕ |
+| 0.0342% | mask-type | ✕ |
+| 0.0328% | color-interpolation-filters | ✕ |
+| 0.0325% | webkit-border-end | ✕ |
+| 0.0319% | vector-effect | ✕ |
+| 0.0307% | color-rendering | ✕ |
+
+## CSS Units and Values
+
+refs: https://drafts.csswg.org/css-values/ 2016-12-11
+
+### Textual
+
+* pre-defined keywords
+  * CSS-wide keywords
+    * `initial`
+    * `inherit`
+    * `unset`
+* `<custom-ident>`: author-defined identifiers ✓
+* `<string>`: quoted strings (`"xxx"`)
+* `<url>`: resourec locators (`url()`)
+
+### Numeric
+
+* `<integer>` ✓
+* `<number>` ✓
+* `<percentage>`
+
+### Length `<length>`
+
+* relative
+  * font-relative
+    * `em`
+    * `ex`
+    * `ch`
+    * `ic`
+    * `rem` ✓🔧
+  * viewport-percentage
+    * `vw` ✓🔧
+    * `vh` ✓🔧
+    * `vi`
+    * `vb`
+    * `vmin` ✓🔧
+    * `vmax` ✓🔧
+* absolute
+  * `cm` ✓🔧
+  * `mm` ✓🔧
+  * `Q` ✓🔧
+  * `in` ✓🔧
+  * `pc` ✓🔧
+  * `pt` ✓🔧
+  * `px` autofixed to number
+
+### Quantities
+
+* `<angle>`
+  * `deg`
+  * `grad`
+  * `rad`
+  * `turn`
+* `<time>`
+  * `s`
+  * `ms`
+* `<frequency>`
+  * `Hz`
+  * `kHz`
+* `<resolution>`
+  * `dpi`
+  * `dpcm`
+  * `dppx`
+
+### Elsewhere
+
+* `<color>` ✓
+* `<image>`
+* `<position>`
+
+### Functional
+
+* `calc()`
+* `toggle()`
+* `attr()`
+
+## JS APIs
+
+refs: https://www.w3.org/standards/techs/js 2016-12-11
+
+### Completed Work
+
+#### Standards
+
+| last update | spec | supported |
+| ---- | ---- | ---- |
+| 2016-11-17 | Media Source Extensions™ | - (media related) |
+| 2016-11-08 | Geolocation API Specification 2nd Edition | ✕ developing |
+| 2016-10-27 | Pointer Lock | - |
+| 2016-10-18 | Vibration API (Second Edition) | ✕ |
+| 2016-04-19 | Web Storage (Second Edition) | ✓ async `storage` module |
+| 2015-10-22 | Web Notifications | ✕ |
+| 2015-05-19 | HTML5 Web Messaging | ✕ `BroadcastChannel` developing |
+| 2015-02-24 | Pointer Events | - |
+| 2015-02-10 | Vibration API | ✕ |
+| 2015-02-03 | Server-Sent Events | ✕ |
+| 2015-01-08 | Indexed Database API | ✕ |
+| 2014-03-13 | Metadata API for Media Resources 1.0 | - (media related) |
+| 2014-02-11 | Progress Events | ✕ |
+| 2014-01-16 | JSON-LD 1.0 Processing Algorithms and API | - |
+| 2013-12-12 | Performance Timeline | - (perf related) |
+| 2013-12-12 | User Timing | - (perf related) |
+| 2013-10-31 | Widget Interface | - |
+| 2013-10-29 | Page Visibility (Second Edition) | ✕ `onviewappear`/`onviewdisappear` |
+| 2013-10-10 | Touch Events | ✕ |
+| 2013-02-21 | Selectors API Level 1 | - |
+| 2012-12-17 | Navigation Timing | - (perf related) |
+| 2012-12-17 | High Resolution Time | - (perf related) |
+| 2008-12-22 | Element Traversal Specification | - |
+
+### Drafts
+
+#### Proposed Recommendations
+
+| last update | spec | supported |
+| ---- | ---- | ---- |
+| 2016-09-15 | WebIDL Level 1 | - |
+
+#### Candidate Recommendations
+
+| last update | spec | supported |
+| ---- | ---- | ---- |
+| 2016-12-08 | Performance Timeline Level 2 | - (perf related) |
+| 2016-11-22 | Page Visibility Level 2 | ✕ `onviewappear`/`onviewdisappear` |
+| 2016-11-01 | High Resolution Time Level 2 | - (perf related) |
+| 2016-08-18 | DeviceOrientation Event Specification | ✕ |
+| 2016-07-21 | Resource Timing Level 1 | - (perf related) |
+| 2016-07-14 | Presentation API | - |
+| 2016-07-07 | Battery Status API | ✕ |
+| 2016-07-05 | Encrypted Media Extensions | - |
+| 2016-05-19 | Media Capture and Streams | - (media related) |
+| 2014-12-11 | Web Cryptography API | - |
+| 2014-09-09 | HTML Media Capture | - (media related) |
+| 2012-09-20 | The WebSocket API | ✕ |
+
+#### Last Call Drafts
+
+| last update | spec | supported |
+| ---- | ---- | ---- |
+| 2011-12-01 | Geolocation API Specification Level 2 | ✕ |
+
+#### Other Working Drafts
+
+| last update | spec | supported |
+| ---- | ---- | ---- |
+| 2016-12-09 | MediaStream Image Capture | - (media related) |
+| 2016-12-06 | MediaStream Recording | - (media related) |
+| 2016-12-06 | Selection API | ✕ |
+| 2016-12-05 | Input Events | ✕ |
+| 2016-12-02 | Gamepad | - |
+| 2016-11-29 | WebDriver | - |
+| 2016-11-24 | WebRTC 1.0: Real-time Communication Between Browsers | ✕ |
+| 2016-11-22 | Pointer Lock 2.0 | - |
+| 2016-11-07 | Remote Playback API | - (media related) |
+| 2016-11-03 | Resource Timing Level 2 | - (perf related) |
+| 2016-11-02 | Audio Output Devices API | - (media related) |
+| 2016-11-01 | Indexed Database API 2.0 | ✕ |
+| 2016-11-01 | User Timing Level 2 | - (perf related) |
+| 2016-10-31 | The Screen Orientation API | ✕ |
+| 2016-10-31 | High Resolution Time Level 3 | - (perf related) |
+| 2016-10-24 | UI Events KeyboardEvent code Values | - |
+| 2016-10-24 | UI Events KeyboardEvent key Values | - |
+| 2016-10-11 | Service Workers 1 | ✕ |
+| 2016-09-21 | Identifiers for WebRTC's Statistics API | - |
+| 2016-09-13 | Accelerometer Sensor | ✕ |
+| 2016-09-13 | Gyroscope Sensor | ✕ |
+| 2016-09-13 | Magnetometer Sensor | ✕ |
+| 2016-08-30 | Ambient Light Sensor | ✕ |
+| 2016-08-30 | Media Capture from DOM Elements | - (media related) |
+| 2016-08-30 | Generic Sensor API | ✕ |
+| 2016-08-03 | Wake Lock API | ✕ |
+| 2016-07-19 | Proximity Sensor | ✕ |
+| 2016-07-19 | Pointer Events - Level 2 | - |
+| 2016-07-14 | Screen Capture | ✕ |
+| 2016-07-12 | Media Capture Depth Stream Extensions | - (media related) |
+| 2016-05-17 | Cooperative Scheduling of Background Tasks | ✕ |
+| 2016-04-22 | Navigation Timing Level 2 | - (perf related) |
+| 2016-04-03 | Clipboard API and events | ✕ `clipboard` module |
+| 2015-12-15 | Push API | ✕ |
+| 2015-12-08 | Web Audio API | - (media related) |
+| 2015-10-15 | FindText API | - |
+| 2015-09-24 | Web Workers | ✕ |
+| 2015-04-21 | File API | ✕ |
+| 2014-02-20 | Network Service Discovery | ✕ |
+| 2012-03-06 | MediaStream Capture Scenarios | - (media related) |
+| 2011-12-15 | Audio Processing API | - (media related) |
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-weex-site/blob/32a097bf/_draft/web-standards.md
----------------------------------------------------------------------
diff --git a/_draft/web-standards.md b/_draft/web-standards.md
new file mode 100644
index 0000000..3125796
--- /dev/null
+++ b/_draft/web-standards.md
@@ -0,0 +1,585 @@
+---
+title: Web 标准
+type: references
+group: API
+order: 2.7
+version: 2.1
+has_chapter_content: true
+---
+
+# Weex 中的 Web 标准
+
+## HTML
+
+refs: https://www.advancedwebranking.com/html/ 2016-12-11
+
+### Overview
+
+| percentage | name | supported |
+| ---- | ---- | ---- |
+| 98.1% | `<head>` | - |
+| 97.9% | `<body>` | - |
+| 97.9% | `<html>` | - |
+| 97% | `<title>` | - |
+| 93.9% | `<meta>` | - |
+| 89.9% | `<div>` | ✓ |
+| 89.6% | `<a>` | ✓ |
+| 88.5% | `<script>` | ✓ |
+| 86.5% | `<link>` | - |
+| 86.3% | `<img>` | ✓ |
+| 81.5% | `<p>` | - (can be customized) |
+| 75.6% | `<span>` | - (can be customized) |
+| 73.8% | `<li>` | - (can be customized) |
+| 73.7% | `<ul>` | - (can be customized) |
+| 70.3% | `<br>` | ✕ |
+| 60.4% | `<style>` | ✓ |
+| 55.8% | `<h1>` | - (can be customized) |
+| 52.7% | `<h2>` | - (can be customized) |
+| 48.4% | `<input>` | ✓ |
+| 46.9% | `<form>` | ✕ |
+| 44.3% | `<strong>` | - (can be customized) |
+| 43.1% | `<h3>` | - (can be customized) |
+| 30.9% | `<table>` | ✕ |
+| 30.3% | `<tr>` | ✕ |
+| 30.2% | `<td>` | ✕ |
+
+### Forms
+
+| percentage | name | supported |
+| ---- | ---- | ---- |
+| 49.5% | `<option>` | ✕ |
+| 30.2% | `<input>` | ✓ |
+| 16.6% | > `[type="hidden"]` | - |
+| 8% | > `[type="text"]` | ✓ |
+| 4.2% | > `[type="submit"]` | - |
+| 2% | > `[type="checkbox"]` | - (`<switch>`) |
+| 1.2% | > `[type="email"]` | ✓ |
+| 1.1% | > `[type="radio"]` | ✕ |
+| 0.9% | > `[type="image"]` | - |
+| 0.8% | > `[type="button"]` | - |
+| 0.6% | > `[type="search"]` | ✕ |
+| 0.6% | > `[type="password"]` | ✓ |
+| 0.1% | > `[type="tel"]` | ✓ |
+| 0.1% | > `[type="number"]` | ✓ |
+| 0% | > `[type="reset"]` | - |
+| 0% | > `[type="file"]` | ✕ |
+| 0% | > `[type="date"]` | ✓ |
+| 0% | > `[type="url"]` | ✓ |
+| 0% | > `[type="range"]` | ✕ |
+| 0% | > `[type="color"]` | ✕ |
+| 0% | > `[type="time"]` | ✓ |
+| 0% | > `[type="datetime-local"]` | ✕ |
+| 7.2% | `<label>` | - |
+| 6.1% | `<form>` | - |
+| 3.7% | `<button>` | - (can be customized) |
+| 2.6% | > `[type="button"]` | - |
+| 1.3% | > `[type="submit"]` | - |
+| 0% | > `[type="reset"]` | - |
+| 1.9% | `<select>` | ✕ |
+| 0.7% | `<textarea>` | ✓ |
+| 0.5% | `<fieldset>` | - |
+| 0.1% | `<optgroup>` | ✕ |
+| 0.1% | `<legend>` | - |
+| 0% | `<progress>` | ✕ |
+| 0% | `<datalist>` | - |
+| 0% | `<output>` | - |
+| 0% | `<meter>` | - |
+
+## CSS Properties
+
+refs: https://www.chromestatus.com/metrics/feature/popularity 2016-12-11
+
+| percentage | name | supported |
+| ---- | ---- | ---- |
+| 90.5115% | display | ✕ `flex` only |
+| 89.8243% | margin | ✓ (not support combo) |
+| 88.7012% | width | ✓ |
+| 88.6468% | overflow | ✓ iOS only, `hidden` only for Android |
+| 88.6432% | background-color | ✓ |
+| 88.0803% | height | ✓ |
+| 87.7648% | font-size | ✓ |
+| 87.3837% | padding | ✓ |
+| 87.2721% | color | ✓ |
+| 86.9788% | text-align | ✓ |
+| 86.6841% | position | ✓ `relative` by default, `static` not supported |
+| 86.6039% | font-family | ✓ |
+| 86.5943% | font-weight | ✓ |
+| 85.0072% | opacity | ✓ |
+| 80.6911% | max-width | ✕ |
+| 79.4476% | box-sizing | ✕ `border-box` only |
+| 75.7623% | max-height | ✕ |
+| 74.9939% | webkit-user-select | ✕ |
+| 57.0292% | align-items | ✓ |
+| 56.8182% | justify-content | ✓ `space-around` not supported well in browser |
+| 50.5941% | flex-direction | ✓ |
+| 48.5052% | border | ✓ |
+| 47.5161% | top | ✓ |
+| 46.9136% | background | ✕ |
+| 46.1552% | cursor | ✕ |
+| 46.1443% | margin-left | ✓ |
+| 46.0956% | left | ✓ |
+| 46.0848% | text-decoration | ✓ |
+| 45.9575% | float | ✕ |
+| 45.8391% | border-bottom | ✓ |
+| 45.7639% | padding-left | ✓ |
+| 45.7128% | margin-top | ✓ |
+| 45.7013% | line-height | ✓ |
+| 45.5836% | background-image | ✕ |
+| 45.0837% | z-index | ✕ |
+| 45.0649% | right | ✓ |
+| 45.0516% | margin-bottom | ✓ |
+| 45.0459% | white-space | ✕ |
+| 44.8710% | margin-right | ✓ |
+| 44.8476% | vertical-align | ✕ |
+| 44.6306% | padding-top | ✓ |
+| 44.1466% | border-radius | ✓ |
+| 44.0136% | border-top | ✓ |
+| 43.9815% | padding-bottom | ✓ |
+| 43.9392% | padding-right | ✓ |
+| 43.8539% | visibility | ✕ |
+| 43.4306% | background-position | ✕ |
+| 43.4098% | background-repeat | ✕ |
+| 43.0391% | clear | ✕ |
+| 42.9100% | bottom | ✓ |
+| 42.2092% | content | ✕ |
+| 42.0690% | box-shadow | ✕ |
+| 41.9004% | border-color | ✓ |
+| 41.7341% | outline | ✕ |
+| 41.4297% | border-right | ✓ |
+| 41.2605% | border-left | ✓ |
+| 41.1127% | min-height | ✕ |
+| 41.0736% | font-style | ✓ |
+| 41.0523% | min-width | ✕ |
+| 40.4298% | list-style | ✕ |
+| 39.7341% | font | ✕ |
+| 38.8999% | background-size | ✕ |
+| 38.7811% | border-width | ✓ |
+| 38.7718% | border-collapse | ✕ |
+| 37.8110% | border-style | ✓ |
+| 37.4962% | text-overflow | ✓ must work with `lines` |
+| 37.3471% | text-transform | ✕ |
+| 37.2154% | transition | ✕ |
+| 36.5155% | overflow-y | ✕ |
+| 36.3025% | transform | ✕ |
+| 36.2488% | text-indent | ✕ |
+| 35.5075% | text-shadow | ✕ |
+| 34.7607% | webkit-appearance | ✕ |
+| 34.1925% | list-style-type | ✕ |
+| 34.0238% | border-spacing | ✕ |
+| 33.6664% | word-wrap | ✕ |
+| 31.9961% | overflow-x | ✕ |
+| 31.9922% | zoom | ✕ |
+| 31.2495% | border-bottom-left-radius | ✕ |
+| 31.1306% | pointer-events | ✕ |
+| 31.1229% | border-top-left-radius | ✕ |
+| 30.2131% | border-bottom-color | ✓ |
+| 29.9608% | border-top-color | ✓ |
+| 29.4297% | border-bottom-right-radius | ✕ |
+| 29.2668% | border-top-right-radius | ✕ |
+| 28.6489% | letter-spacing | ✕ |
+| 27.8327% | animation | ✕ |
+| 26.6738% | border-right-width | ✓ |
+| 26.0169% | src | ✕ |
+| 25.2661% | clip | ✕ |
+| 25.2512% | webkit-font-smoothing | ✕ |
+| 25.1971% | border-bottom-width | ✓ |
+| 25.0246% | border-right-color | ✓ |
+| 24.7790% | direction | ✕ |
+| 24.4094% | webkit-tap-highlight-color | ✕ |
+| 23.9751% | border-left-color | ✓ |
+| 23.9321% | border-top-width | ✓ |
+| 23.7902% | fill | ✕ |
+| 23.2617% | border-left-width | ✓ |
+| 22.7278% | table-layout | ✕ |
+| 21.5766% | word-break | ✕ |
+| 20.4319% | background-clip | ✕ |
+| 19.3198% | transform-origin | ✕ |
+| 18.9233% | filter | ✕ |
+| 17.7879% | resize | ✕ |
+| 16.2501% | flex | ✕ |
+| 15.1656% | font-variant | ✕ |
+| 14.9181% | text-rendering | ✕ |
+| 14.7125% | webkit-filter | ✕ |
+| 14.5263% | transition-duration | ✕ |
+| 14.3966% | transition-property | ✕ |
+| 14.2124% | webkit-box-orient | ✕ |
+| 13.5432% | outline-offset | ✕ |
+| 12.9300% | transition-timing-function | ✕ |
+| 12.2788% | unicode-range | ✕ |
+| 12.0880% | word-spacing | ✕ |
+| 11.9124% | quotes | ✕ |
+| 11.6800% | border-bottom-style | ✓ |
+| 11.4263% | webkit-background-clip | ✕ |
+| 11.0070% | flex-grow | ✕ |
+| 10.5925% | backface-visibility | ✕ |
+| 10.4417% | animation-name | ✕ |
+| 10.4302% | stroke | ✕ |
+| 10.4144% | animation-duration | ✕ |
+| 10.2804% | touch-action | ✕ |
+| 9.9663% | list-style-position | ✕ |
+| 9.8662% | order | ✕ |
+| 9.7770% | outline-width | ✕ |
+| 9.7504% | transition-delay | ✕ |
+| 9.4689% | border-top-style | ✓ |
+| 9.3474% | webkit-box-pack | ✕ |
+| 9.3078% | webkit-box-align | ✕ |
+| 9.2375% | page-break-inside | ✕ |
+| 9.1898% | webkit-line-clamp | ✕ |
+| 8.9350% | list-style-image | ✕ |
+| 8.8339% | page-break-after | ✕ |
+| 8.5735% | speak | ✕ |
+| 8.4754% | unicode-bidi | ✕ |
+| 8.4307% | animation-timing-function | ✕ |
+| 8.1464% | webkit-box-flex | ✕ |
+| 8.0048% | orphans | ✕ |
+| 7.9947% | widows | ✕ |
+| 7.6671% | flex-wrap | ✓ not supported well in browser |
+| 7.5756% | animation-fill-mode | ✕ |
+| 7.4163% | animation-delay | ✕ |
+| 7.3284% | border-left-style | ✓ |
+| 7.1586% | outline-color | ✕ |
+| 6.9102% | flex-shrink | ✕ |
+| 6.7754% | perspective | ✕ |
+| 6.7748% | border-right-style | ✓ |
+| 6.4619% | outline-style | ✕ |
+| 6.0382% | animation-iteration-count | ✕ |
+| 5.9838% | background-origin | ✕ |
+| 5.9714% | fill-opacity | ✕ |
+| 5.9357% | will-change | ✕ |
+| 5.3740% | stroke-width | ✕ |
+| 5.3172% | transform-style | ✕ |
+| 5.2608% | overflow-wrap | ✕ |
+| 5.1730% | background-attachment | ✕ |
+| 4.9039% | counter-increment | ✕ |
+| 4.5950% | counter-reset | ✕ |
+| 4.5031% | align-self | ✕ |
+| 4.4109% | webkit-box-ordinal-group | ✕ |
+| 4.4046% | webkit-animation-direction | ✕ |
+| 3.7598% | background-position-x | ✕ |
+| 3.6867% | border-image | ✕ |
+| 3.6601% | background-position-y | ✕ |
+| 3.5749% | webkit-user-drag | ✕ |
+| 3.3376% | flex-basis | ✕ |
+| 3.1840% | align-content | ✕ |
+| 3.1832% | flex-flow | ✕ |
+| 3.1774% | image-rendering | ✕ |
+| 3.0879% | webkit-margin-start | ✕ |
+| 2.9551% | font-stretch | ✕ |
+| 2.8934% | empty-cells | ✕ |
+| 2.7619% | webkit-margin-after | ✕ |
+| 2.7220% | perspective-origin | ✕ |
+| 2.6125% | webkit-margin-end | ✕ |
+| 2.6089% | column-count | ✕ |
+| 2.5880% | webkit-text-fill-color | ✕ |
+| 2.5466% | webkit-box-direction | ✕ |
+| 2.4618% | font-feature-settings | ✕ |
+| 2.3959% | webkit-mask-image | ✕ |
+| 2.3431% | webkit-padding-end | ✕ |
+| 2.2555% | stroke-dasharray | ✕ |
+| 2.1788% | user-select | ✕ |
+| 2.1679% | object-fit | ✕ |
+| 2.0643% | column-gap | ✕ |
+| 2.0459% | text-size-adjust | ✕ |
+| 2.0253% | caption-side | ✕ |
+| 1.9695% | stroke-dashoffset | ✕ |
+| 1.7923% | stroke-linecap | ✕ |
+| 1.7861% | animation-direction | ✕ |
+| 1.7559% | webkit-font-feature-settings | ✕ |
+| 1.7404% | stroke-opacity | ✕ |
+| 1.5926% | stroke-miterlimit | ✕ |
+| 1.5786% | fill-rule | ✕ |
+| 1.4859% | webkit-user-modify | ✕ |
+| 1.3439% | webkit-border-image | ✕ |
+| 1.3091% | animation-play-state | ✕ |
+| 1.2676% | contain | ✕ |
+| 1.2029% | webkit-padding-start | ✕ |
+| 1.1840% | webkit-margin-before | ✕ |
+| 1.1269% | page-break-before | ✕ |
+| 1.1222% | webkit-margin-top-collapse | ✕ |
+| 1.0418% | columns | ✕ |
+| 1.0354% | webkit-mask-size | ✕ |
+| 0.9650% | border-image-slice | ✕ |
+| 0.9425% | stop-color | ✕ |
+| 0.9408% | webkit-mask-repeat | ✕ |
+| 0.9125% | webkit-box-lines | ✕ |
+| 0.8804% | webkit-column-break-inside | ✕ |
+| 0.8752% | size | ✕ |
+| 0.8334% | font-kerning | ✕ |
+| 0.8034% | stroke-linejoin | ✕ |
+| 0.7869% | tab-size | ✕ |
+| 0.7689% | break-inside | ✕ |
+| 0.7589% | webkit-text-stroke-width | ✕ |
+| 0.7353% | column-width | ✕ |
+| 0.6924% | webkit-mask-position | ✕ |
+| 0.6869% | border-image-width | ✕ |
+| 0.6323% | border-image-repeat | ✕ |
+| 0.5994% | border-image-outset | ✕ |
+| 0.5885% | all | ✕ |
+| 0.5859% | webkit-text-stroke-color | ✕ |
+| 0.5435% | webkit-print-color-adjust | ✕ |
+| 0.5420% | webkit-text-stroke | ✕ |
+| 0.5195% | writing-mode | ✕ |
+| 0.4741% | clip-rule | ✕ |
+| 0.4685% | webkit-clip-path | ✕ |
+| 0.4578% | text-anchor | ✕ |
+| 0.4535% | shape-rendering | ✕ |
+| 0.4526% | webkit-column-break-before | ✕ |
+| 0.4494% | clip-path | ✕ |
+| 0.4452% | webkit-mask | ✕ |
+| 0.4393% | mix-blend-mode | ✕ |
+| 0.4166% | text-align-last | ✕ |
+| 0.4033% | column-rule | ✕ |
+| 0.3990% | webkit-mask-box-image | ✕ |
+| 0.3989% | font-variant-ligatures | ✕ |
+| 0.3881% | column-fill | ✕ |
+| 0.3865% | webkit-line-break | ✕ |
+| 0.3857% | border-image-source | ✕ |
+| 0.3528% | stop-opacity | ✕ |
+| 0.3075% | webkit-perspective-origin-y | ✕ |
+| 0.3054% | webkit-perspective-origin-x | ✕ |
+| 0.2994% | webkit-writing-mode | ✕ |
+| 0.2717% | dominant-baseline | ✕ |
+| 0.2634% | column-rule-color | ✕ |
+| 0.2586% | webkit-box-decoration-break | ✕ |
+| 0.2467% | webkit-text-security | ✕ |
+| 0.2374% | webkit-background-origin | ✕ |
+| 0.2146% | font-variant-caps | ✕ |
+| 0.2005% | column-rule-style | ✕ |
+| 0.1976% | shape-outside | ✕ |
+| 0.1971% | webkit-padding-before | ✕ |
+| 0.1896% | break-after | ✕ |
+| 0.1782% | webkit-padding-after | ✕ |
+| 0.1774% | text-orientation | ✕ |
+| 0.1747% | webkit-text-orientation | ✕ |
+| 0.1655% | mask | ✕ |
+| 0.1626% | alignment-baseline | ✕ |
+| 0.1572% | page | ✕ |
+| 0.1530% | webkit-column-break-after | ✕ |
+| 0.1521% | webkit-box-reflect | ✕ |
+| 0.1504% | webkit-text-emphasis-color | ✕ |
+| 0.1499% | object-position | ✕ |
+| 0.1470% | break-before | ✕ |
+| 0.1455% | webkit-margin-collapse | ✕ |
+| 0.1452% | baseline-shift | ✕ |
+| 0.1451% | hyphens | ✕ |
+| 0.1309% | rx | ✕ |
+| 0.1304% | ry | ✕ |
+| 0.1256% | background-blend-mode | ✕ |
+| 0.1136% | font-variant-numeric | ✕ |
+| 0.1135% | background-repeat-x | ✕ |
+| 0.1123% | background-repeat-y | ✕ |
+| 0.1086% | webkit-text-emphasis | ✕ |
+| 0.1058% | webkit-rtl-ordering | ✕ |
+| 0.1040% | column-rule-width | ✕ |
+| 0.1036% | isolation | ✕ |
+| 0.1002% | webkit-highlight | ✕ |
+| 0.0843% | webkit-transform-origin-y | ✕ |
+| 0.0786% | webkit-transform-origin-x | ✕ |
+| 0.0770% | webkit-app-region | ✕ |
+| 0.0685% | column-span | ✕ |
+| 0.0653% | r | ✕ |
+| 0.0611% | y | ✕ |
+| 0.0602% | x | ✕ |
+| 0.0555% | webkit-border-vertical-spacing | ✕ |
+| 0.0545% | webkit-border-horizontal-spacing | ✕ |
+| 0.0542% | webkit-border-start-width | ✕ |
+| 0.0450% | webkit-border-start-color | ✕ |
+| 0.0424% | webkit-border-after-width | ✕ |
+| 0.0424% | webkit-border-before-width | ✕ |
+| 0.0423% | webkit-border-end-width | ✕ |
+| 0.0351% | marker | ✕ |
+| 0.0349% | webkit-border-end-color | ✕ |
+| 0.0347% | webkit-border-after-color | ✕ |
+| 0.0347% | webkit-border-before-color | ✕ |
+| 0.0342% | mask-type | ✕ |
+| 0.0328% | color-interpolation-filters | ✕ |
+| 0.0325% | webkit-border-end | ✕ |
+| 0.0319% | vector-effect | ✕ |
+| 0.0307% | color-rendering | ✕ |
+
+## CSS Units and Values
+
+refs: https://drafts.csswg.org/css-values/ 2016-12-11
+
+### Textual
+
+* pre-defined keywords
+  * CSS-wide keywords
+    * `initial`
+    * `inherit`
+    * `unset`
+* `<custom-ident>`: author-defined identifiers ✓
+* `<string>`: quoted strings (`"xxx"`)
+* `<url>`: resourec locators (`url()`)
+
+### Numeric
+
+* `<integer>` ✓
+* `<number>` ✓
+* `<percentage>`
+
+### Length `<length>`
+
+* relative
+  * font-relative
+    * `em`
+    * `ex`
+    * `ch`
+    * `ic`
+    * `rem` ✓🔧
+  * viewport-percentage
+    * `vw` ✓🔧
+    * `vh` ✓🔧
+    * `vi`
+    * `vb`
+    * `vmin` ✓🔧
+    * `vmax` ✓🔧
+* absolute
+  * `cm` ✓🔧
+  * `mm` ✓🔧
+  * `Q` ✓🔧
+  * `in` ✓🔧
+  * `pc` ✓🔧
+  * `pt` ✓🔧
+  * `px` autofixed to number
+
+### Quantities
+
+* `<angle>`
+  * `deg`
+  * `grad`
+  * `rad`
+  * `turn`
+* `<time>`
+  * `s`
+  * `ms`
+* `<frequency>`
+  * `Hz`
+  * `kHz`
+* `<resolution>`
+  * `dpi`
+  * `dpcm`
+  * `dppx`
+
+### Elsewhere
+
+* `<color>` ✓
+* `<image>`
+* `<position>`
+
+### Functional
+
+* `calc()`
+* `toggle()`
+* `attr()`
+
+## JS APIs
+
+refs: https://www.w3.org/standards/techs/js 2016-12-11
+
+### Completed Work
+
+#### Standards
+
+| last update | spec | supported |
+| ---- | ---- | ---- |
+| 2016-11-17 | Media Source Extensions™ | - (media related) |
+| 2016-11-08 | Geolocation API Specification 2nd Edition | ✕ developing |
+| 2016-10-27 | Pointer Lock | - |
+| 2016-10-18 | Vibration API (Second Edition) | ✕ |
+| 2016-04-19 | Web Storage (Second Edition) | ✓ async `storage` module |
+| 2015-10-22 | Web Notifications | ✕ |
+| 2015-05-19 | HTML5 Web Messaging | ✕ `BroadcastChannel` developing |
+| 2015-02-24 | Pointer Events | - |
+| 2015-02-10 | Vibration API | ✕ |
+| 2015-02-03 | Server-Sent Events | ✕ |
+| 2015-01-08 | Indexed Database API | ✕ |
+| 2014-03-13 | Metadata API for Media Resources 1.0 | - (media related) |
+| 2014-02-11 | Progress Events | ✕ |
+| 2014-01-16 | JSON-LD 1.0 Processing Algorithms and API | - |
+| 2013-12-12 | Performance Timeline | - (perf related) |
+| 2013-12-12 | User Timing | - (perf related) |
+| 2013-10-31 | Widget Interface | - |
+| 2013-10-29 | Page Visibility (Second Edition) | ✕ `onviewappear`/`onviewdisappear` |
+| 2013-10-10 | Touch Events | ✕ |
+| 2013-02-21 | Selectors API Level 1 | - |
+| 2012-12-17 | Navigation Timing | - (perf related) |
+| 2012-12-17 | High Resolution Time | - (perf related) |
+| 2008-12-22 | Element Traversal Specification | - |
+
+### Drafts
+
+#### Proposed Recommendations
+
+| last update | spec | supported |
+| ---- | ---- | ---- |
+| 2016-09-15 | WebIDL Level 1 | - |
+
+#### Candidate Recommendations
+
+| last update | spec | supported |
+| ---- | ---- | ---- |
+| 2016-12-08 | Performance Timeline Level 2 | - (perf related) |
+| 2016-11-22 | Page Visibility Level 2 | ✕ `onviewappear`/`onviewdisappear` |
+| 2016-11-01 | High Resolution Time Level 2 | - (perf related) |
+| 2016-08-18 | DeviceOrientation Event Specification | ✕ |
+| 2016-07-21 | Resource Timing Level 1 | - (perf related) |
+| 2016-07-14 | Presentation API | - |
+| 2016-07-07 | Battery Status API | ✕ |
+| 2016-07-05 | Encrypted Media Extensions | - |
+| 2016-05-19 | Media Capture and Streams | - (media related) |
+| 2014-12-11 | Web Cryptography API | - |
+| 2014-09-09 | HTML Media Capture | - (media related) |
+| 2012-09-20 | The WebSocket API | ✕ |
+
+#### Last Call Drafts
+
+| last update | spec | supported |
+| ---- | ---- | ---- |
+| 2011-12-01 | Geolocation API Specification Level 2 | ✕ |
+
+#### Other Working Drafts
+
+| last update | spec | supported |
+| ---- | ---- | ---- |
+| 2016-12-09 | MediaStream Image Capture | - (media related) |
+| 2016-12-06 | MediaStream Recording | - (media related) |
+| 2016-12-06 | Selection API | ✕ |
+| 2016-12-05 | Input Events | ✕ |
+| 2016-12-02 | Gamepad | - |
+| 2016-11-29 | WebDriver | - |
+| 2016-11-24 | WebRTC 1.0: Real-time Communication Between Browsers | ✕ |
+| 2016-11-22 | Pointer Lock 2.0 | - |
+| 2016-11-07 | Remote Playback API | - (media related) |
+| 2016-11-03 | Resource Timing Level 2 | - (perf related) |
+| 2016-11-02 | Audio Output Devices API | - (media related) |
+| 2016-11-01 | Indexed Database API 2.0 | ✕ |
+| 2016-11-01 | User Timing Level 2 | - (perf related) |
+| 2016-10-31 | The Screen Orientation API | ✕ |
+| 2016-10-31 | High Resolution Time Level 3 | - (perf related) |
+| 2016-10-24 | UI Events KeyboardEvent code Values | - |
+| 2016-10-24 | UI Events KeyboardEvent key Values | - |
+| 2016-10-11 | Service Workers 1 | ✕ |
+| 2016-09-21 | Identifiers for WebRTC's Statistics API | - |
+| 2016-09-13 | Accelerometer Sensor | ✕ |
+| 2016-09-13 | Gyroscope Sensor | ✕ |
+| 2016-09-13 | Magnetometer Sensor | ✕ |
+| 2016-08-30 | Ambient Light Sensor | ✕ |
+| 2016-08-30 | Media Capture from DOM Elements | - (media related) |
+| 2016-08-30 | Generic Sensor API | ✕ |
+| 2016-08-03 | Wake Lock API | ✕ |
+| 2016-07-19 | Proximity Sensor | ✕ |
+| 2016-07-19 | Pointer Events - Level 2 | - |
+| 2016-07-14 | Screen Capture | ✕ |
+| 2016-07-12 | Media Capture Depth Stream Extensions | - (media related) |
+| 2016-05-17 | Cooperative Scheduling of Background Tasks | ✕ |
+| 2016-04-22 | Navigation Timing Level 2 | - (perf related) |
+| 2016-04-03 | Clipboard API and events | ✕ `clipboard` module |
+| 2015-12-15 | Push API | ✕ |
+| 2015-12-08 | Web Audio API | - (media related) |
+| 2015-10-15 | FindText API | - |
+| 2015-09-24 | Web Workers | ✕ |
+| 2015-04-21 | File API | ✕ |
+| 2014-02-20 | Network Service Discovery | ✕ |
+| 2012-03-06 | MediaStream Capture Scenarios | - (media related) |
+| 2011-12-15 | Audio Processing API | - (media related) |

http://git-wip-us.apache.org/repos/asf/incubator-weex-site/blob/32a097bf/_draft/weex-dom-api.md
----------------------------------------------------------------------
diff --git a/_draft/weex-dom-api.md b/_draft/weex-dom-api.md
new file mode 100644
index 0000000..f18efa0
--- /dev/null
+++ b/_draft/weex-dom-api.md
@@ -0,0 +1,224 @@
+---
+title: Native DOM APIs
+type: references
+group: API
+order: 2.8
+version: 2.1
+has_chapter_content: true
+---
+
+# Native DOM APIs
+
+Weex 在 JS 引擎中,为每个页面都提供了一套 Native DOM APIs,这套接口和 HTML DOM APIs 非常接近,利用这套接口我们可以通过 JavaScript 控制 native 的渲染逻辑。而且 Weex 上层的 Vue 2.0 也是基于这套接口进行适配的。
+
+*绝大多数情况下 JS 框架会把 Native DOM APIs 都封装好,开发者不需要直接对 Native DOM 进行操作。*
+
+* `Document` 类,整个页面文档。
+* `Node` 类,结点的基础类。
+* `Element` 类,元素结点,继承自 `Node`,单个视图单元。
+* `Comment` 类,注释结点,继承自 `Node`,无实际意义,通常用作占位符。
+
+**每个 Weex 页面都有一个 `weex.document` 对象,该对象就是一个 `Document` 类的实例,也是下面所有接口调用的起点。**
+
+接下来详细介绍它们的用法:
+
+## `Document` 类
+
+每个 `Document` 实例在创建的时候都会自动拥有一个 `documentElement` 属性,表示文档结点。该文档结点可以拥有一个 `body`,即文档的主体结点。
+
+**注意事项**: 文档的主体结点只接受 `<div>`、`<list>` 或 `<scroller>` 三种类型的元素结点。
+
+### 构造函数
+
+**`new Document(id: string, url: string?)`**
+
+### 成员方法
+
+**`createElement(tagName: string, props: Object?): Element`**
+
+* 创建一个特定类型 `tagName` 的 `Element` 实例,即一个元素结点。`props` 可以包含 `attr` 对象和 `style` 对象。比如 `createBody('div', {style: {backgroundColor: '#ffffff'}})`。
+
+**`createComment(text: string): Comment`**
+
+* 创建一个 `Comment` 的实例,即一个注释结点,并设置一段文本描述。
+
+**`createBody(tagName: string, props: Object?): Element`**
+
+* 创建文档主体结点,并自动挂载到 `documentElement` 下。
+
+**`fireEvent(el: Element, type: string, e: Object?, domChanges: Object?)`**
+
+* 触发一个特定类型的事件,并附带一个事件对象 `e`。当该事件在产生过程中修改了 DOM 的特性或样式,则第四个参数用来描述这些改变,参数格式和上面 `createElement` 方法的格式相同。
+
+**`destroy()`**
+
+* 销毁当前文档。一旦销毁之后文档将不会再工作。
+
+### 只读成员变量
+
+**`id: string`**
+
+* 每个 `Document` 实例都有一个唯一的 `id`。这同时也是每个 Weex 页面唯一拥有的 `id`。
+
+**`URL: string?`**
+
+* 如果当前 Weex 页面有 JS bundle URL 的话,这里则会返回 这个 URL。
+
+**`body: Element`**
+
+* 文档的主体结点,概念类似 HTML DOM 里的 `document.body`。
+
+**`documentElement: Element`**
+
+* 文档的对应结点,概念类似 HTML DOM 里的 `document.documentElement`。
+* `body` 和 `documentElement` 的关系是:`documentElement` 是 `body` 的父结点。
+
+**`getRef(id): Node`**
+
+* 根据结点 id 获取结点。
+
+## `Node` 类
+
+### 构造函数
+
+**`new Node()`**
+
+### 成员
+
+**`destroy()`**
+
+### 只读成员变量或方法
+
+**`ref: string`**
+
+* 每个 `Node` 实例都有各自的在整个 `Document` 实例中唯一的 `ref` 值。
+
+**`nextSibling: Node?`**
+
+**`previousSibling: Node?`**
+
+**`parentNode: Node?`**
+
+* 上述三个接口和 HTML DOM 的定义吻合。
+
+**`children: Node[]`**
+
+* 该结点拥有的所有子结点的数组。
+
+**`pureChildren: Node[]`**
+
+* 该结点拥有的所有子元素的数组。和 `children` 的区别是,`pureChildren` 只包含了 `Element` 实例而不包含 `Comment` 实例。
+
+## `Element` 类 <small>继承自 `Node`</small>
+
+### 构造函数
+
+**`new Element(type: string, props: Object?)`**
+
+* 创建一个特定类型 `type` 的元素结点,参数 `props` 可以包含 `attr` 对象或 `style` 对象。
+
+### DOM 树操作
+
+**`appendChild(node: Node)`**
+
+**`insertBefore(node: Node, before: Node?)`**
+
+* 上述两个接口类似 HTML DOM。
+
+**`insertAfter(node: Node, after: Node?)`**
+
+* 在一个子结点之前插入新结点 after。
+
+**`removeChild(node: Node, preserved: boolean?)`**
+
+* 删除子结点 `node`,参数 `preserved` 表示立刻从内存中删除还是暂时保留。
+
+**`clear()`**
+
+* 清除所有的子结点。
+
+### DOM 属性本身操作
+
+**`setAttr(key: string, value: string, silent: boolean?)`**
+
+**`setStyle(key: string, value: string, silent: boolean?)`**
+
+* 上述两个接口中,当 `silent` 为真的时候,结点仅更新自己,不会传递命令给客户端渲染层。该参数用来处理用户事件在发生时已经改变结点相关属性的情况下,不会在 Native DOM 也改变之后重复发送命令给客户端。
+
+**`addEvent(type: string, handler: Function)`**
+
+**`removeEvent(type: string)`**
+
+**`fireEvent(type: string, e: any)`**
+
+* 绑定事件、解绑定事件、触发事件。
+
+#### 特定组件类型的组件方法
+
+特殊的:不同组件类型可以拥有自己特有的方法,比如 `<web>` 组件支持 `refresh` 方法,详见各组件的描述,在此情况下,我们会产生特定组件类型的 class,比如 `WebElement`,它继承自 `Element`。
+
+如:
+
+> #### `WebElement` <small>继承自 `Element`</small>
+>
+> 表示在 Weex 页面中嵌入一个 webview
+>
+> **`refresh()`**: 刷新当前 webview
+
+### 只读成员变量或方法
+
+**`ref`, `nextSibling`, `previousSibling`, `parentNode`**
+
+* 继承自 `Node`。
+
+**`nodeType: number`**
+
+* 永远是数字 `1`。
+
+**`type: string`**
+
+* 和构造函数里的 `type` 一致。
+
+**`attr: Object`**
+
+* 当前结点的所有特性的键值对。推荐通过 `setAttr()` 方法进行修改,而不要直接修改这里的对象。
+
+**`style: Object`**
+
+* 当前结点的所有样式的键值对。推荐通过 `setStyle()` 方法进行修改,而不要直接修改这里的对象。
+
+**`event: Object`**
+
+* 当前结点的所有事件绑定。每个事件类型对应一个事件句柄方法。推荐通过 `addEvent()` / `removeEvent()` 方法进行修改,而不要直接修改这里的对象。
+
+**`toJSON(): Object`**
+
+* 返回描述该元素结点的一段 JSON 对象,形如:`{ref: string, type: string, attr: Object, style: Object, event: Array(string), children: Array}`。
+
+## `Comment` 类 <small>继承自 `Node`</small>
+
+### 构造函数
+
+**`new Comment(value: string)`**
+
+### 只读成员变量或方法
+
+**`ref`, `nextSibling`, `previousSibling`, `parentNode`**
+
+* 继承自 `Node`。
+
+**`nodeType: number`**
+
+* 永远是数字 `8`。
+
+**`type: string`**
+
+* 永远是字符串 `'comment'`
+
+**`value: string`**
+
+* 和构造函数里的 `value` 一致。
+
+**`toJSON(): Object`**
+
+* 返回描述该注释结点的一段 JSON 对象,形如:`<!-- value -->`。

http://git-wip-us.apache.org/repos/asf/incubator-weex-site/blob/32a097bf/_draft/write-once.en.md
----------------------------------------------------------------------
diff --git a/_draft/write-once.en.md b/_draft/write-once.en.md
new file mode 100644
index 0000000..673b302
--- /dev/null
+++ b/_draft/write-once.en.md
@@ -0,0 +1,23 @@
+---
+title: Write once, Run Everywhere
+type: guide
+order: 4.4
+version: 2.1
+---
+
+# Write Once, Run Everywhere
+
+Weex is a "Write Once, Run Everywhere" solution.
+
+* First, Weex is based on web dev experience, which includes syntax and project management.
+* Second, all components & modules in Weex are discussed by iOS, Android, web developers together to ensure it's common enough to satisfy every platforms.
+* You only need write the same Weex code for each platforms.
+
+We think about it in these aspects below:
+
+1. Today for almost all mobile apps, one app solves the same problem in different platforms. Weex hope to supply a lightweight way to describe your business logic which works well in all platforms you need.
+2. For the differences of all mobile platforms, we are willing to fill the gap in 3 points:
+    1. Design the same APIs for all platforms to ensure different platforms have the same business logic description.
+    2. Implement the APIs with different style or behaviors to ensure the implementation and user experience matches different platforms.
+    3. Platforms obviously differ among each other. We also have some environment variables to help developers in certain situations.
+3. We trust (web) standard is the best for all features in all platforms.

http://git-wip-us.apache.org/repos/asf/incubator-weex-site/blob/32a097bf/_draft/write-once.md
----------------------------------------------------------------------
diff --git a/_draft/write-once.md b/_draft/write-once.md
new file mode 100644
index 0000000..6c0c62d
--- /dev/null
+++ b/_draft/write-once.md
@@ -0,0 +1,25 @@
+---
+title: 一次撰写,多端运行
+type: wiki
+order: 1.4
+version: 2.1
+---
+
+# 一次撰写,多端运行
+
+Weex 提供了多端一致的技术方案。
+
+* 首先 web 开发体验在各端当中是相同的。包括语法设计和工程链路。
+* 其次,Weex 的组件、模块设计都是 iOS、Android、Web 的开发者共同讨论出来的,有一定的通用性和普遍性。
+* Weex 开发同一份代码,可以在不同的端上分别执行,避免了多端的重复研发成本。
+
+我们这样设计基于以下几点设想:
+
+1. 今天绝大多数的移动应用,虽然要同时出现在不同的移动操作系统平台上,但是要解决的问题和用户的需求是相同或非常接近的。Weex 希望提供的是一个快速直接统一描述业务的通用方式,为业务和产品需求直接服务。
+2. 针对各大操作系统平台差异的现状,我们倾向于通过以下两方面来解决这一问题
+    1. 把不同端的样式和行为设计并描述成为相同的 API,这样上层的业务逻辑是同一份,但是在不同端上可以做到不一样的展现效果。
+    2. 通过横向扩展的方式在不同的端上扩展不一样的功能、特性或表现形式。
+    3. 各端不一致的业务描述也是难免的,我们通过提供更多更丰富的环境变量来帮助开发者在同一套代码里高效适配不同的设备场景。
+3. 我们相信标准和规范的力量
+
+部分功能特性由于 native 特性的关系,会略有不同,我们会在相应的组件、模块、API 文档中做相应的描述和提示。

http://git-wip-us.apache.org/repos/asf/incubator-weex-site/blob/32a097bf/source/blog/index.md
----------------------------------------------------------------------
diff --git a/source/blog/index.md b/source/blog/index.md
deleted file mode 100644
index ef7b31d..0000000
--- a/source/blog/index.md
+++ /dev/null
@@ -1,4 +0,0 @@
-type: blog
-index: true
-layout: blog
----
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-weex-site/blob/32a097bf/source/cn/blog.md
----------------------------------------------------------------------
diff --git a/source/cn/blog.md b/source/cn/blog.md
new file mode 100644
index 0000000..ef7b31d
--- /dev/null
+++ b/source/cn/blog.md
@@ -0,0 +1,4 @@
+type: blog
+index: true
+layout: blog
+---
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-weex-site/blob/32a097bf/source/cn/contributing.md
----------------------------------------------------------------------
diff --git a/source/cn/contributing.md b/source/cn/contributing.md
new file mode 100644
index 0000000..0a36a7c
--- /dev/null
+++ b/source/cn/contributing.md
@@ -0,0 +1,106 @@
+---
+title: 如何参与 Weex 的开发
+type: community
+has_chapter_content: false
+version: 2.1
+---
+
+# 如何参与社区
+
+## 加入 Weex 邮件列表 (Mailing List)
+
+在 Weex 官方社区所有的信息都会汇聚于邮件列表。订阅开发邮件列表的方式是发送邮件到 `dev-subscribe@weex.incubator.apache.org` 然后你的邮箱会收到一封来自 Apache 的回信 (英文),把 Apache 的这封回信再次回复过去,即可完成订阅。
+
+这里需要强调的是 Apache 是一个面向全球的全英文的社区,所以我们希望您能够用英文在邮件列表中跟大家交流。
+
+如果您确实对使用英文存在很大的疑虑或困惑,我们也非常欢迎大家来中文问答平台 [SegmentFault](https://segmentfault.com/t/weex) 提问,这里有非常多热心的开发者一起讨论和解答 Weex 相关的问题。
+
+使用邮件列表的另外一个好处是它可以方便大家随时查阅之前的邮件记录: [http://mail-archives.apache.org/mod_mbox/incubator-weex-dev/](http://mail-archives.apache.org/mod_mbox/incubator-weex-dev/)
+
+*如果您对邮件列表中的内容已经不再感兴趣,这里也有退订邮件列表的方法: 发送邮件至 `dev-unsubscribe@weex.incubator.apache.org` 并根据回信的提示进行二次回复确认,完成退订。*
+
+除了开发 (dev) 邮件列表,我们还有另外几个的邮件列表供大家查阅:[http://mail-archives.apache.org/mod_mbox/#weex.incubator](http://mail-archives.apache.org/mod_mbox/#weex.incubator)
+
+## 分支管理 (英)
+
+```
+release
+ ↑
+release-{version}
+ ↑
+master         <--- PR(feature/hotfix/typo)
+```
+
+0. `master` branch
+    0. `master` is the stable developing branch.
+    0. ***It's RECOMMENDED to commit hotfix (like typo) or feature PR to `master `***.
+0. `release-{version}` branch
+    0. `release-{version}` is used for every version which we consider for stable publish.
+    0. e.g. `release-0.16`
+0. `release` branch
+    0. `release` is the latest release branch,we will make tag and publish version on this branch.
+
+### 用于PR的分支命名
+
+
+```
+{module}-{action}-{shortName}
+```
+
+* `{module}`, see [commit log module](#commit-log)
+* `{action}`
+    * `feature`: checkout from `{module}` and merge to `{module}` later. If `{module}` not exists, merge to `dev`
+    * `bugfix`: like `feature`, for bugfix only
+    * `hotfix`: checkout from `master` or release `tag`, merge to `master` and `{module}` later. If `{module}` not exists, merge to `dev`
+
+for example:
+
+* `android-bugfix-memory`
+* `jsfm-feature-communication`
+* `android-hotfix-compute-layout`
+
+## 提交日志格式 (英)
+
+```
+{action} [{module}] {description}
+```
+
+* `{action}`
+    * `+` add
+    * `*` update or bugfix
+    * `-` remove
+* `{module}`
+    * Including: android, ios, jsfm, html5, component, doc, website, example, test, all
+* `{description}`
+    * Just make it as clear and simple as possible.
+
+for example:
+
+* `+ [android] close #123, add refreshing for WebView`
+* `* [doc] fix #123, update video auto-play property`
+* `- [example] remove abc`
+
+## 发送 Pull Request (英)
+
+You can [create pull requests](https://github.com/apache/incubator-weex/compare) in GitHub.
+
+1. First we suggest you have some discussion with the community (commonly in our mailing list) before you code.
+2. Fork repo from [https://github.com/apache/incubator-weex/](https://github.com/apache/incubator-weex/)
+3. Finish the job you want to do.
+4. Create a pull request.
+
+## 编码规范 (英)
+
+### Objective-C
+
+* Tabs for indentation(not spaces)
+* `*` operator goes with the variable name (e.g. Type *variable;)
+* Function definitions: place each brace on its own line.
+* Other braces: place the open brace on the line preceding the code block; 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.

http://git-wip-us.apache.org/repos/asf/incubator-weex-site/blob/32a097bf/source/cn/download.ejs
----------------------------------------------------------------------
diff --git a/source/cn/download.ejs b/source/cn/download.ejs
deleted file mode 100644
index ef2c86f..0000000
--- a/source/cn/download.ejs
+++ /dev/null
@@ -1,3 +0,0 @@
-layout: download
-type: download
----
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-weex-site/blob/32a097bf/source/cn/faq.md
----------------------------------------------------------------------
diff --git a/source/cn/faq.md b/source/cn/faq.md
deleted file mode 100644
index ba6145b..0000000
--- a/source/cn/faq.md
+++ /dev/null
@@ -1,223 +0,0 @@
----
-title: 常见问题
-type: faq
-layout: post
----
-
-# 常见问题解答
-
-## 如何查阅旧文档?
-
-你可以通过文档左侧目录最后一项 “旧文档” 进入对于的历史文档页面。也可以直接访问以下链接访问:
-
-- [Guide](./v-0.10/guide/index.html)
-- [手册](./v-0.10/references/index.html)
-- [高阶知识](./v-0.10/advanced/index.html)
-- [工具](./v-0.10/tools/index.html)
-
-## Windows 指令错误
-
-请先安装 [Git for Windows](https://git-scm.com/download/win),在 [For Windows](https://github.com/apache/incubator-weex/tree/dev#for-windows) 中查看更多信息。
-
-
-## Android Studio 中 Gradle 错误
-
-下载 `license-gradle-plugin.jar` 可能引发一些错误,比如 `链接被重置(Connection reset)` 和 `证书无效(peer not authenticated)` 。这可能是由于网络问题导致的,请尝试使用代理或VPN。
-
-## 使用本地图片
-
-Weex 的原生运行机制支持从设备中加载图片,你只需要设置文件 url,例如 `file:///sdcard/image_new0.png` 这样的格式。但是 Weex 暂时还不支持加载你工程中的图片文件。
-
-## Windows 错误 `The header content contains invalid characters ` (头中包含非法字符)
-
-这是由于 weex-toolkit 的依赖 http-server 导致的,http-server 的老版本在中文 windows 中的支持不是很好。我们已经修复了这个问题,请在使用前升级 weex-toolkit 版本。
-
-## Playground 应用在扫面后什么都没有显示(白屏)
-
-最好的方法是查看 debug 日志来查找原因,你可以按照 [这篇文档](./guide/how-to/debug-with-devtools.html) 中的说明来查明导致这一问题的原因。
-
-## 关于 ECMAScript 版本问题
-
-Weex 在 iOS 中使用 JSCore ,在 Android 中使用 v8,因此他们都支持 ECMAScript 5。另外,我们还在原生环境中加了一些 polyfills:
-
--  `Promise` in iOS/Android
--  `Timer APIs` (setTimeout/clearTimeout/setInterval/clearInterval`) in iOS/Android
--  `console` in iOS/Android
-
-在浏览器中我们暂时是包含了一个 `Promise` 的 polyfill。
-
-在未来,开发者可以选择是否通过 configurations 来导入一个 polyfill。
-
-你也可以通过带有 `webpack` 的 `babel` 来写 ES6,这个加载器能够自动将 ES6 转换为 ES5。
-
-如果你还想要更多的 ES6 polyfills,你可以把他们引入到 JS Bundle 中。
-
-## 前端依赖
-
-在 Weex 中你有很多方法来 import/require 一个组件或者一个 JS 模块。以 ES5 为例:
-
--   `require('xxx.js')` : 依赖一个 JS 文件
--  `require('npm-module-name')` : 依赖一个 NPM 模块
--   `require('xxx.we')` : 包含一个 `.we` 文件来注册一个 Weex 自定义组件
--  `require('@weex-module/xxx')` : 依赖一个 Weex 原生模块。注意这只支持 `*.we` 文件而不支持 `*.js` 文件。如果你想要在一个 `*.js` 文件中使用 Weex 原生模块,暂时你可以这样写:
-
-```js
-// use this piece of code below to get Weex native module "modal"
-var modal
-__weex_define__('@weex-temp/x', function (__weex_require__) {
-  modal = __weex_require__('@weex-module/modal')
-})
-
-// use APIs in "modal" module
-modal.toast({message: 'hello'})
-```
-
-以后我们会给大家带来一个更好的设计。
-
-## iOS 文本 `line-height` 样式不正常
-
-`line-height`  样式在 `<text>` 组件中的表现与 H5 和 Android 不同,文本不会在行内居中,而是贴近行底部,因为这里使用的 iOS 原生 API。我们正在努力优化,与其他两端保持一致。
-
-## Android 只支持 `overflow:hidden`
-
-`overflow` 样式在 Android 默认为 `hidden` 并且无法修改,原因是 Android View framework 限制。这个问题只出现在 Android 端,iOS 端和 H5 正常。
-
-## 如何取消 750 像素自适应并以宽高比计算真实像素?
-
-`this.$getConfig()` 方法会返回一个对象,这个对象的 `deviceHeight` 和 `deviceWidth` 属性即实际设备宽度/高度(以像素为单位),而不是以 750 适配的。
-
-因此,您可以使用它们来计算实际像素的宽度/高度。
-
-假设您需要显示固定为 88 px 的导航栏,该导航栏的高度将是:
-
-``` javascript
-var height = 88 * 750 / env.deviceWidth 
-```
-
-## 如何在 JavaScript 中检测是否支持某个原生的 module/component
-
-### 检测原生 module
-
-```javascript
-var xxx = require('@weex-module/xxx')
-if (xxx) {
-  // todo: use this module
-}
-else {
-  // todo: handle the exception
-}
-```
-
-### 检测原生 component
-
-```html
-<template>
-  <component is="{{type}}"></component>
-</template>
-
-<script>
-  var type = 'xxx'
-  var xxx = require('@weex-component/xxx')
-  if (!xxx) {
-    type = 'div' // downgrade to <div>
-  }
-  module.exports = {
-    data: function () {
-      return {
-        type: type
-      }
-    }
-  }
-</script>
-```
-
-## 如何在 pages 之间传递数据
-
-如果你有两个页面,A 页面和 B 页面
-
-1. A -> B,使用 [getConfig api](/references/api.md#getconfig) or [storage module](/modules/storage.md) 传递数据;
-2. B -> A,使用 [storage module](/modules/storage.md) 传递数据。
-
-
-## 父子组件之间进行 repeat 操作
-
-如果你有需求,在父子组件之间进行 repeat 操作,需要注意,必须严格按照官网文档的语法来书写代码。如果缺少子组件定义 data 数据,或者是没有指定需要向下传递的 props,都会导致页面不正常渲染。
-
-错误示例:
-
-```html
-<element name="child">
-  <template>
-    <div>
-      <text style="font-size:100">{{title}}</text>
-    </div>
-  </template>
-</element>
-
-<template>
-  <div>
-    <child repeat="item in lists"></child>
-  </div>
-</template>
-<script>
-  module.exports = {
-    data: {
-      lists: [
-        { title: 'A' },
-        { title: 'B' },
-        { title: 'C' }
-      ]
-    },
-    ready: function () {
-      this.lists.splice(0, 1)
-    }
-  }
-</script>
-```
-
-以上示例的理想执行情况,应该是页面上第一个元素 A 被删除,剩下 B、C 两个元素。
-但是,由于错误的写法,导致列表执行 splice 操作之后,出现错误的更新情况:页面最后一个元素 C 被删除。
-
-正确的写法如下:
-
-```html
-<element name="child">
-  <template>
-    <div>
-      <text style="font-size:100">{{title}}</text>
-    </div>
-  </template>
-  
-  <script>
-    module.exports = {
-      data: {
-        title: null
-      }
-    }
-  </script>
-</element>
-
-<template>
-  <div>
-    <child repeat="item in lists" title="{{ item.title }}"></child>
-  </div>
-</template>
-<script>
-  module.exports = {
-    data: {
-      lists: [
-        { title: 'A' },
-        { title: 'B' },
-        { title: 'C' }
-      ]
-    },
-    ready: function () {
-      this.lists.splice(0, 1)
-    }
-  }
-</script>
-```
-
-在线示例请见:
-
-* [错误示例](http://dotwe.org/de97cf2c1b7ec09a53728edc9c27ad2a)

http://git-wip-us.apache.org/repos/asf/incubator-weex-site/blob/32a097bf/source/cn/guide/advanced/app-architecture.md
----------------------------------------------------------------------
diff --git a/source/cn/guide/advanced/app-architecture.md b/source/cn/guide/advanced/app-architecture.md
new file mode 100644
index 0000000..b19a97e
--- /dev/null
+++ b/source/cn/guide/advanced/app-architecture.md
@@ -0,0 +1,62 @@
+---
+title: 用 Weex 构建完整移动应用
+type: guide
+group: 高阶特性
+order: 8.5
+version: 2.1
+---
+
+# 用 Weex 构建移动应用
+
+## 今天的移动应用
+
+这里谈一谈 Weex 对移动应用的理解。
+
+### 移动应用需要支撑并行研发
+
+如今移动应用的开发需要并行研发的能力,当一个移动应用发展到一定规模的时候,能否支撑大规模的并行研发就成为了一件非常关键而又重要的事情。否则很容易变成工程瓶颈。
+
+### 移动应用需要动态性
+
+如今移动应用不论从研发节奏、部署的灵活性和时效性、包大小、还是从研发到发布再到反馈的迭代周期上,都和移动互联网的发展速度极不相符。移动应用需要更简单轻量的研发模型,需要摆脱版本部署和分发的笨重过程。
+
+### 移动应用需要开放互联
+
+如今移动应用的内容和信息都是相互孤立的,应用之间的交流变得非常复杂和困难,也缺乏一定的标准和规范化的容器来承载。
+
+## 整体结构设计
+
+我们认为一个具有高并行研发能力、动态化和标准化规范化的移动应用应该由以下几个方面构成:
+
+```
+|------|------|------|------| |-----|
+| page | page | page | page | | api |
+|------|------|------|------| | api |
+| page | page | page | page | | api |
+|------|------|------|------| | api |
+| page | page | page | page | | api |
+|---------------------------| | api |
+|           router          | | api |
+|---------------------------| |-----|
+```
+
+* 页面:首先移动应用应该可以被拆解成若干个页面,每个页面相对解耦独立,同时每个页面都有一个 URL 进行唯一标识。
+* 路由:这些页面将会通过路由机制有机的串联起来,页面之间的关系是通过路由来进行调度的。常见的移动应用路由包括导航栏、tab 切换等。
+* 设备能力:以各种 API 或服务的方式提供出来,供页面自由使用。
+
+这样的话,在构建一个完整的移动应用之前,先确定你的应用有多少页面,每个页面分别是什么 URL,页面之间的关联和跳转逻辑是怎样的,然后梳理整个移动应用需要的所有 API 和服务。
+
+然后通过 Weex 创建不同的页面,并分别进行开发、调试和发布。
+
+**相关链接**
+
+* [页面结构](./page-architecture.html)
+
+如果你已经有一个做好的移动应用,只想用 Weex 开发其中的一部分页面甚至仅仅其中的一两个页面,这对 Weex 来说完全不是问题。Weex 只是一个 SDK,对整体的移动应用架构不会产生任何侵入性。并且完全可以和纯 native 界面或 hybrid 页面共存。
+
+如果需要 WeexSDK 额外的组件、模块或其它功能,可以通过 Weex 的扩展机制进行扩展。这部分工作需要 native 的研发知识,但是随着 Weex 组件和模块的丰富以及业务迭代的深入,这部分成本会承下降和收敛的趋势。
+
+**相关链接**
+
+* [如何扩展 iOS](../../references/advanced/extend-to-ios.html)
+* [如何扩展 Android](../../references/advanced/extend-to-android.html)

http://git-wip-us.apache.org/repos/asf/incubator-weex-site/blob/32a097bf/source/cn/guide/advanced/downgrade.md
----------------------------------------------------------------------
diff --git a/source/cn/guide/advanced/downgrade.md b/source/cn/guide/advanced/downgrade.md
new file mode 100644
index 0000000..99149c6
--- /dev/null
+++ b/source/cn/guide/advanced/downgrade.md
@@ -0,0 +1,12 @@
+---
+title: 降级方案
+type: guide
+group: 高阶特性
+order: 8.2
+version: 2.1
+---
+
+# 降级方案
+
+Weex 2.0 降级方案改成模块的形式支持,具体请参考[downgrade](https://www.npmjs.com/package/@weex-project/downgrade)
+

http://git-wip-us.apache.org/repos/asf/incubator-weex-site/blob/32a097bf/source/cn/guide/advanced/page-architecture.md
----------------------------------------------------------------------
diff --git a/source/cn/guide/advanced/page-architecture.md b/source/cn/guide/advanced/page-architecture.md
new file mode 100644
index 0000000..2321040
--- /dev/null
+++ b/source/cn/guide/advanced/page-architecture.md
@@ -0,0 +1,49 @@
+---
+title: Weex 页面结构
+type: guide
+group: 高阶特性
+order: 8.6
+version: 2.1
+---
+
+# Weex 页面结构
+
+一个 Weex 页面就是一个相对独立解耦的移动应用界面,它不仅包括了界面展示、更包含了逻辑处理、设备能力使用、生命周期管理等部分。
+
+## 界面
+
+### DOM 模型
+
+Weex 页面通过类似 HTML DOM 的方式管理界面,首先页面会被分解为一个 DOM 树,,每个 DOM 结点都代表了一个相对独立的 native 视图的单元。然后不同的视图单元之间通过树形结构组合在了一起,构成一个完整的页面。
+
+**相关链接**
+
+* [Weex Native DOM APIs](../../references/native-dom-api.html)
+
+### 组件
+
+Weex 支持文字、图片、视频等内容型组件,也支持 div、list、scroller 等容器型组件,还包括 slider、input、textarea、switch 等多种特殊的组件。Weex 的界面就是由这些组件以 DOM 树的方式构建出来的。
+
+**相关链接**
+
+* [Weex 组件列表](../../references/components/index.html)
+
+### 布局系统
+
+Weex 页面中的组件会按照一定的布局规范来进行排布,我们这里提供了 CSS 中的盒模型、flexbox 和 绝对/相对/固定/吸附布局这三大块布局模型。
+
+* 盒模型:通过宽、高、边框、内外边距、边框等 CSS 属性描述一个组件本身的尺寸。
+* flexbox:通过 CSS 3 Flexbox 布局规范定义和描述组件之间的空间分布情况。
+* position:支持 CSS position 属性中的 `absolute`, `relative`, `fixed`, `sticky` 位置类型,其中 `relative` 是默认值。
+
+## 功能
+
+Weex 提供了非常丰富的系统功能 API,包括弹出存储、网络、导航、弹对话框和 toast 等,开发者可以在 Weex 页面通过获取一个 native module 的方式引入并调用这些客户端功能 API。
+
+**相关链接**
+
+* [Weex 模块列表](../../references/modules/index.html)
+
+## 生命周期
+
+每个 Weex 页面都有其自身的生命周期,页面从开始被创建到最后被销毁,会经历到整个过程。这是通过对 Weex 页面的创建和销毁,在路由中通过 SDK 自行定义并实现的。

http://git-wip-us.apache.org/repos/asf/incubator-weex-site/blob/32a097bf/source/cn/guide/advanced/path.md
----------------------------------------------------------------------
diff --git a/source/cn/guide/advanced/path.md b/source/cn/guide/advanced/path.md
new file mode 100644
index 0000000..f3963ef
--- /dev/null
+++ b/source/cn/guide/advanced/path.md
@@ -0,0 +1,44 @@
+---
+title: 资源路径
+type: guide
+group: 高阶特性
+order: 8.1
+version: 2.1
+has_chapter_content: true
+---
+
+# Path
+
+<span class="weex-version">v0.9+</span>
+
+本文将介绍 Weex 中 uri(url) 的用法。包括使用图像、字体等资源,处理相对路径以及如何访问本地及打包的资源文件。
+
+## Schemes
+
+* 本地资源
+
+  Weex SDK 提供 `local`  scheme 来访问打包在应用程序中的资源,此 scheme 无法在 H5 环境下使用。目前,开发者可以在 `image` 组件和字体文件中使用本地资源。
+
+  * 在 iOS 中,Weex 会在 `bundle resources` 中查找。例如,`image` 组件的 `src` 属性为 `local:///app_icon'`, Weex 会加载 `bundle resouce` 中名为 `app_icon` 的图像资源,而字体文件也以相同的方式工作。
+
+  * 在 Android 中,`image` 组件将从 `drawable` 资源文件夹加载,如  `res/drawable-xxx`。但加载字体文件是不同的,Android 框架无法从 `res` 加载字体文件,因此 SDK 将从 `asserts` 文件夹加载它。
+
+* HTTP/HTTPS
+
+  它的工作方式与 web 相同,Weex 一直支持这种方式。
+
+* File
+
+使用 `file`  scheme 访问本地磁盘文件。这个方案有其局限性:你不应该在源页面中硬编码文件 url。因为不管它是否在不同的平台(iOS,Android)上运行,内容将在另一个设备上完全不同,这取决于具体的设备。
+
+所以一种可行的方案是在运行时动态获取文件 url,你可以使用它来显示本地磁盘的图像,或者稍后上传它。
+
+## 相对路径
+
+[与我们在 HTML 中的用法类似](https://www.w3.org/TR/html4/types.html#type-uri),Weex 以相同的方式处理相对路径。以`/`、`.`、`..`、`//` 开头的相对 URI 将相对于 bunle url 解析。
+
+这意味着, 一个以 `/` 开头的路径将是相对于 JS Bundle 文件的根文件夹。`.` 则是当前文件夹,`..` 是父文件夹。 `//` 则被解析为与 JS Bundle 相同的 scheme。
+
+## URI Adapter
+
+以上所有是默认实现,开发者可以通过提供一个 `URI Adapter` 来扩展或覆盖默认实现。与其他 Adapter 相同,应在 Weex SDK 初始化之前设置自定义 Adapter。

http://git-wip-us.apache.org/repos/asf/incubator-weex-site/blob/32a097bf/source/cn/guide/advanced/use-vuex-and-vue-router.md
----------------------------------------------------------------------
diff --git a/source/cn/guide/advanced/use-vuex-and-vue-router.md b/source/cn/guide/advanced/use-vuex-and-vue-router.md
new file mode 100644
index 0000000..844f8fb
--- /dev/null
+++ b/source/cn/guide/advanced/use-vuex-and-vue-router.md
@@ -0,0 +1,88 @@
+---
+title: 使用 Vuex 和 vue-router
+type: guide
+group: 高阶特性
+order: 8.4
+version: 2.1
+---
+
+# 使用 Vuex 和 vue-router
+
+Vue.js 也有较多周边技术产品,如 [Vuex](https://github.com/vuejs/vuex) 和 [vue-router](https://github.com/vuejs/vue-router) 等,这些库也可以在 Weex 中很好的工作。
+
+> 我们基于 Weex 和 Vue 开发了一个的完整项目 [weex-hackernews](https://github.com/weexteam/weex-hackernews) ,在项目中使用了 Vuex 和 vue-router ,能够实现同一份代码,在 iOS、Android、Web 下都能完整地工作。
+
+## 使用 Vuex
+
+![Vuex](//vuex.vuejs.org/zh-cn/images/vuex.png)
+
+Vuex 是一个专为 Vue.js 应用程序开发的状态管理工具库,可以利用 Vue.js 的细粒度数据响应机制来进行高效的状态更新。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
+
+由于在 Vuex 本身就是平台无关的,有较强的移植能力,完全可以在 Weex 中正常地使用 Vuex ,阅读其[官方文档](https://vuex.vuejs.org/zh-cn/)可以了解详细的使用方法。
+
+Vuex 也集成到了其官方调试工具 [devtools extension](https://github.com/vuejs/vue-devtools)中,提供了诸如 time-travel 调试、状态快照导入导出等高级调试功能。这些工具在 Web 平台中可以一如既往地工作。
+
+## 使用 vue-router
+
+vue-router 是专为 Vue.js 开发的便于实现单页应用的工具库,能够以声明式的方法编写页面的导航和跳转信息。
+
+由于 Weex 的运行环境不只是浏览器,通常是以移动端原生环境为主,然而在 Android 和 iOS 中都没有浏览器的 History API,也不存在 DOM,因此如果想在 Weex 环境中使用 vue-router ,有些功能受到了限制,使用时应该注意。
+
+### 路由模式
+
+vue-router 提供了三种运行模式:
+
++ `hash`: 使用 URL hash 值来作路由。默认模式。
++ `history`: 依赖 HTML5 History API 和服务器配置。查看 [HTML5 History 模式](https://router.vuejs.org/zh-cn/essentials/history-mode.html)。
++ `abstract`: 支持所有 JavaScript 运行环境,如 Node.js 服务器端。
+
+配置方法是在定义路由时,传递 `mode` 属性:
+
+```js
+new Router({
+  mode: 'abstract',
+  // ...
+})
+```
+
+从三种模式的介绍中也可以看出来,Weex 环境中只支持使用 abstract 模式。不过,vue-router 自身会对环境做校验,**如果发现没有浏览器的 API,vue-router 会自动强制进入 abstract 模式**,所以在使用时只要不写 `mode` 配置即可。默认 vue-router 会在浏览器环境中使用 hash 模式,在移动端原生环境中使用 abstract 模式。
+
+### 编程式导航
+
+vue-router 中使用 `<router-link>` 创建导航链接,不过在其中使用了基于 DOM 事件的一些特性,在 Weex 原生环境中并不能很好的工作。在 Weex 中,你必须使用[编程式导航](https://router.vuejs.org/zh-cn/essentials/navigation.html)来编写页面跳转逻辑。
+
+编程式导航其实就是通过主动调用 router 实例上的 `push` 方法实现跳转。
+
+使用 `<router-link>` 的代码示例:
+
+```html
+<!-- 只能在 Web 中使用,Native 环境不支持! -->
+<template>
+  <div>
+    <router-link to="profile">
+      <text>Profile</text>
+    </router-link>
+  </div>
+</template>
+```
+
+在 Weex 中,需要写成这个样子:
+
+```html
+<template>
+  <div>
+    <text @click="jump">Profile</text>
+  </div>
+</template>
+
+<script>
+  import router from './path/to/router'
+  export default {
+    methods: {
+      jump () {
+        router.push('profile')
+      }
+    }
+  }
+</script>
+```

http://git-wip-us.apache.org/repos/asf/incubator-weex-site/blob/32a097bf/source/cn/guide/contributing.md
----------------------------------------------------------------------
diff --git a/source/cn/guide/contributing.md b/source/cn/guide/contributing.md
deleted file mode 100644
index 32e735b..0000000
--- a/source/cn/guide/contributing.md
+++ /dev/null
@@ -1,107 +0,0 @@
----
-title: 如何参与社区
-type: guide
-order: 6
-has_chapter_content: true
-version: 2.1
----
-
-# 如何参与社区
-
-## 加入 Weex 邮件列表 (Mailing List)
-
-在 Weex 官方社区所有的信息都会汇聚于邮件列表。订阅开发邮件列表的方式是发送邮件到 `dev-subscribe@weex.incubator.apache.org` 然后你的邮箱会收到一封来自 Apache 的回信 (英文),把 Apache 的这封回信再次回复过去,即可完成订阅。
-
-这里需要强调的是 Apache 是一个面向全球的全英文的社区,所以我们希望您能够用英文在邮件列表中跟大家交流。
-
-如果您确实对使用英文存在很大的疑虑或困惑,我们也非常欢迎大家来中文问答平台 [SegmentFault](https://segmentfault.com/t/weex) 提问,这里有非常多热心的开发者一起讨论和解答 Weex 相关的问题。
-
-使用邮件列表的另外一个好处是它可以方便大家随时查阅之前的邮件记录: [http://mail-archives.apache.org/mod_mbox/incubator-weex-dev/](http://mail-archives.apache.org/mod_mbox/incubator-weex-dev/)
-
-*如果您对邮件列表中的内容已经不再感兴趣,这里也有退订邮件列表的方法: 发送邮件至 `dev-unsubscribe@weex.incubator.apache.org` 并根据回信的提示进行二次回复确认,完成退订。*
-
-除了开发 (dev) 邮件列表,我们还有另外几个的邮件列表供大家查阅:[http://mail-archives.apache.org/mod_mbox/#weex.incubator](http://mail-archives.apache.org/mod_mbox/#weex.incubator)
-
-## 分支管理 (英)
-
-```
-release
- ↑
-release-{version}
- ↑
-master         <--- PR(feature/hotfix/typo)
-```
-
-0. `master` branch
-    0. `master` is the stable developing branch.
-    0. ***It's RECOMMENDED to commit hotfix (like typo) or feature PR to `master `***.
-0. `release-{version}` branch
-    0. `release-{version}` is used for every version which we consider for stable publish.
-    0. e.g. `release-0.16`
-0. `release` branch
-    0. `release` is the latest release branch,we will make tag and publish version on this branch.
-
-### 用于PR的分支命名
-
-
-```
-{module}-{action}-{shortName}
-```
-
-* `{module}`, see [commit log module](#commit-log)
-* `{action}`
-    * `feature`: checkout from `{module}` and merge to `{module}` later. If `{module}` not exists, merge to `dev`
-    * `bugfix`: like `feature`, for bugfix only
-    * `hotfix`: checkout from `master` or release `tag`, merge to `master` and `{module}` later. If `{module}` not exists, merge to `dev`
-
-for example:
-
-* `android-bugfix-memory`
-* `jsfm-feature-communication`
-* `android-hotfix-compute-layout`
-
-## 提交日志格式 (英)
-
-```
-{action} [{module}] {description}
-```
-
-* `{action}`
-    * `+` add
-    * `*` update or bugfix
-    * `-` remove
-* `{module}`
-    * Including: android, ios, jsfm, html5, component, doc, website, example, test, all 
-* `{description}`
-    * Just make it as clear and simple as possible.
-
-for example:
-
-* `+ [android] close #123, add refreshing for WebView`
-* `* [doc] fix #123, update video auto-play property`
-* `- [example] remove abc`
-
-## 发送 Pull Request (英)
-
-You can [create pull requests](https://github.com/apache/incubator-weex/compare) in GitHub.
-
-1. First we suggest you have some discussion with the community (commonly in our mailing list) before you code.
-2. Fork repo from [https://github.com/apache/incubator-weex/](https://github.com/apache/incubator-weex/)
-3. Finish the job you want to do.
-4. Create a pull request.
-
-## 编码规范 (英)
-
-### Objective-C
-
-* Tabs for indentation(not spaces)
-* `*` operator goes with the variable name (e.g. Type *variable;)
-* Function definitions: place each brace on its own line.
-* Other braces: place the open brace on the line preceding the code block; 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.