This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 3f3b29a  Deploy to GitHub pages
3f3b29a is described below

commit 3f3b29ab94e2363e683276012892569dc23855f8
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Wed Nov 11 02:49:34 2020 +0000

    Deploy to GitHub pages
---
 2fa.html                                       |   2 +-
 2fa/index.html                                 |   2 +-
 apisix/README.html                             |   2 --
 apisix/README/index.html                       |   2 --
 apisix/admin-api.html                          |   7 +++++--
 apisix/admin-api/index.html                    |   7 +++++--
 apisix/architecture-design.html                |   2 --
 apisix/architecture-design/index.html          |   2 --
 apisix/plugins/batch-requests.html             |   2 +-
 apisix/plugins/batch-requests/index.html       |   2 +-
 apisix/plugins/jwt-auth.html                   |   2 +-
 apisix/plugins/jwt-auth/index.html             |   2 +-
 apisix/plugins/prometheus.html                 |   2 +-
 apisix/plugins/prometheus/index.html           |   2 +-
 apisix/plugins/proxy-cache.html                |   2 +-
 apisix/plugins/proxy-cache/index.html          |   2 +-
 apisix/plugins/wolf-rbac.html                  |   2 +-
 apisix/plugins/wolf-rbac/index.html            |   2 +-
 apisix/zh-cn/README.html                       |   1 -
 apisix/zh-cn/README/index.html                 |   1 -
 apisix/zh-cn/admin-api.html                    |   7 +++++--
 apisix/zh-cn/admin-api/index.html              |   7 +++++--
 apisix/zh-cn/architecture-design.html          |   2 --
 apisix/zh-cn/architecture-design/index.html    |   2 --
 apisix/zh-cn/plugins/batch-requests.html       |   2 +-
 apisix/zh-cn/plugins/batch-requests/index.html |   2 +-
 apisix/zh-cn/plugins/jwt-auth.html             |   2 +-
 apisix/zh-cn/plugins/jwt-auth/index.html       |   2 +-
 apisix/zh-cn/plugins/prometheus.html           |   2 +-
 apisix/zh-cn/plugins/prometheus/index.html     |   2 +-
 apisix/zh-cn/plugins/wolf-rbac.html            |   2 +-
 apisix/zh-cn/plugins/wolf-rbac/index.html      |   2 +-
 committer-guide.html                           |   2 +-
 committer-guide/index.html                     |   2 +-
 contributor-guide.html                         |   2 +-
 contributor-guide/index.html                   |   2 +-
 downloads.html                                 |   2 +-
 downloads/index.html                           |   2 +-
 images/apache.png                              | Bin 0 -> 7718 bytes
 images/apisix.png                              | Bin 0 -> 111730 bytes
 images/benchmark-1.jpg                         | Bin 0 -> 46823 bytes
 images/benchmark-2.jpg                         | Bin 0 -> 46767 bytes
 images/consumer-internal.png                   | Bin 0 -> 32911 bytes
 images/consumer-who.png                        | Bin 0 -> 21044 bytes
 images/contributor-over-time.png               | Bin 0 -> 78386 bytes
 images/dashboard.png                           | Bin 0 -> 29182 bytes
 images/discovery-cn.png                        | Bin 0 -> 25676 bytes
 images/discovery.png                           | Bin 0 -> 27216 bytes
 images/flamegraph-1.jpg                        | Bin 0 -> 197526 bytes
 images/flamegraph-2.jpg                        | Bin 0 -> 217043 bytes
 images/flow-load-plugin.png                    | Bin 0 -> 298303 bytes
 images/flow-plugin-internal.png                | Bin 0 -> 88216 bytes
 images/latency-1.jpg                           | Bin 0 -> 41942 bytes
 images/latency-2.jpg                           | Bin 0 -> 43001 bytes
 images/plugin/authz-keycloak.png               | Bin 0 -> 45440 bytes
 images/plugin/basic-auth-1.png                 | Bin 0 -> 12725 bytes
 images/plugin/basic-auth-2.png                 | Bin 0 -> 24145 bytes
 images/plugin/grafana_1.png                    | Bin 0 -> 76557 bytes
 images/plugin/grafana_2.png                    | Bin 0 -> 86866 bytes
 images/plugin/grafana_3.png                    | Bin 0 -> 32059 bytes
 images/plugin/jwt-auth-1.png                   | Bin 0 -> 18775 bytes
 images/plugin/jwt-auth-2.png                   | Bin 0 -> 152137 bytes
 images/plugin/key-auth-1.png                   | Bin 0 -> 18476 bytes
 images/plugin/key-auth-2.png                   | Bin 0 -> 118760 bytes
 images/plugin/limit-conn-1.png                 | Bin 0 -> 33239 bytes
 images/plugin/limit-conn-2.png                 | Bin 0 -> 215818 bytes
 images/plugin/limit-count-1.png                | Bin 0 -> 37725 bytes
 images/plugin/limit-count-2.png                | Bin 0 -> 67413 bytes
 images/plugin/limit-req-1.png                  | Bin 0 -> 32730 bytes
 images/plugin/limit-req-2.png                  | Bin 0 -> 192690 bytes
 images/plugin/oauth-1.png                      | Bin 0 -> 34012 bytes
 images/plugin/prometheus-1.png                 | Bin 0 -> 32700 bytes
 images/plugin/prometheus-2.png                 | Bin 0 -> 153398 bytes
 images/plugin/prometheus01.png                 | Bin 0 -> 85848 bytes
 images/plugin/prometheus02.png                 | Bin 0 -> 115220 bytes
 images/plugin/skywalking-1.png                 | Bin 0 -> 17465 bytes
 images/plugin/skywalking-2.png                 | Bin 0 -> 23238 bytes
 images/plugin/skywalking-3.png                 | Bin 0 -> 40995 bytes
 images/plugin/skywalking-4.png                 | Bin 0 -> 25096 bytes
 images/plugin/skywalking-5.png                 | Bin 0 -> 38241 bytes
 images/plugin/wolf-rbac-1.png                  | Bin 0 -> 46136 bytes
 images/plugin/wolf-rbac-2.png                  | Bin 0 -> 46638 bytes
 images/plugin/zipkin-1.jpg                     | Bin 0 -> 197361 bytes
 images/plugin/zipkin-1.png                     | Bin 0 -> 36854 bytes
 images/plugin/zipkin-2.jpg                     | Bin 0 -> 93062 bytes
 images/plugin/zipkin-2.png                     | Bin 0 -> 184217 bytes
 images/routes-example.png                      | Bin 0 -> 56920 bytes
 images/service-example.png                     | Bin 0 -> 64100 bytes
 images/upstream-example.png                    | Bin 0 -> 65898 bytes
 release-guide.html                             |   2 +-
 release-guide/index.html                       |   2 +-
 security.html                                  |   2 +-
 security/index.html                            |   2 +-
 sitemap.xml                                    |   2 +-
 subscrbe-guide.html                            |   2 +-
 subscrbe-guide/index.html                      |   2 +-
 team.html                                      |   2 +-
 team/index.html                                |   2 +-
 98 files changed, 55 insertions(+), 57 deletions(-)

diff --git a/2fa.html b/2fa.html
index c544b3e..71a6be6 100644
--- a/2fa.html
+++ b/2fa.html
@@ -70,7 +70,7 @@
 <h2><a class="anchor" aria-hidden="true" id="how-to-submit-codes"></a><a 
href="#how-to-submit-codes" aria-hidden="true" class="hash-link"><svg 
class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 
0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 
0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 
3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 
9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.2 [...]
 <p>After enabling 2FA, you need to generate a private access Token to perform 
operations such as git submit and so on. At this time, you will use username + 
private access Token in replace of username + password to submit codes.</p>
 <p>For detailed operations, please refer to Create a Private Token.</p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 
11/10/2020 by 琚致远</em></div><div class="docs-prevnext"><a class="docs-prev 
button" href="/committer-guide"><span class="arrow-prev">← 
</span><span>Committer Guide</span></a><a class="docs-next button" 
href="/release-guide"><span>Release Guide</span><span class="arrow-next"> 
→</span></a></div></div></div><nav class="onPageNav"><ul 
class="toc-headings"><li><a href="#two-factor-authentication2fa">Two-factor 
authenti [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 
11/11/2020 by 琚致远</em></div><div class="docs-prevnext"><a class="docs-prev 
button" href="/committer-guide"><span class="arrow-prev">← 
</span><span>Committer Guide</span></a><a class="docs-next button" 
href="/release-guide"><span>Release Guide</span><span class="arrow-next"> 
→</span></a></div></div></div><nav class="onPageNav"><ul 
class="toc-headings"><li><a href="#two-factor-authentication2fa">Two-factor 
authenti [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/2fa/index.html b/2fa/index.html
index c544b3e..71a6be6 100644
--- a/2fa/index.html
+++ b/2fa/index.html
@@ -70,7 +70,7 @@
 <h2><a class="anchor" aria-hidden="true" id="how-to-submit-codes"></a><a 
href="#how-to-submit-codes" aria-hidden="true" class="hash-link"><svg 
class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 
0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 
0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 
3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 
9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.2 [...]
 <p>After enabling 2FA, you need to generate a private access Token to perform 
operations such as git submit and so on. At this time, you will use username + 
private access Token in replace of username + password to submit codes.</p>
 <p>For detailed operations, please refer to Create a Private Token.</p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 
11/10/2020 by 琚致远</em></div><div class="docs-prevnext"><a class="docs-prev 
button" href="/committer-guide"><span class="arrow-prev">← 
</span><span>Committer Guide</span></a><a class="docs-next button" 
href="/release-guide"><span>Release Guide</span><span class="arrow-next"> 
→</span></a></div></div></div><nav class="onPageNav"><ul 
class="toc-headings"><li><a href="#two-factor-authentication2fa">Two-factor 
authenti [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 
11/11/2020 by 琚致远</em></div><div class="docs-prevnext"><a class="docs-prev 
button" href="/committer-guide"><span class="arrow-prev">← 
</span><span>Committer Guide</span></a><a class="docs-next button" 
href="/release-guide"><span>Release Guide</span><span class="arrow-next"> 
→</span></a></div></div></div><nav class="onPageNav"><ul 
class="toc-headings"><li><a href="#two-factor-authentication2fa">Two-factor 
authenti [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/apisix/README.html b/apisix/README.html
index 9ef56e7..0ee9b19 100644
--- a/apisix/README.html
+++ b/apisix/README.html
@@ -63,7 +63,6 @@
 <li><a href="/apisix/plugins/key-auth">key-auth</a>: User authentication based 
on Key Authentication.</li>
 <li><a href="/apisix/plugins/jwt-auth">JWT-auth</a>: User authentication based 
on <a href="https://jwt.io/";>JWT</a> (JSON Web Tokens) Authentication.</li>
 <li><a href="/apisix/plugins/basic-auth">basic-auth</a>: User authentication 
based on Basic Authentication.</li>
-<li><a href="plugins/oauth.md">oauth</a>: Provides OAuth 2 authentication and 
introspection.</li>
 <li><a href="/apisix/plugins/authz-keycloak">authz-keycloak</a>: Authorization 
with Keycloak Identity Server.</li>
 <li><a href="/apisix/plugins/wolf-rbac">wolf-rbac</a> User Authentication and 
Authorization based on <em>RBAC</em>.</li>
 <li><a href="/apisix/plugins/openid-connect">openid-connect</a></li>
@@ -103,7 +102,6 @@
 <h2><a class="anchor" aria-hidden="true" id="deploy"></a><a href="#deploy" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <h3><a class="anchor" aria-hidden="true" id="aws"></a><a href="#aws" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <p>The recommended approach is to deploy APISIX with <a 
href="https://aws.amazon.com/cdk/";>AWS CDK</a> on <a 
href="https://aws.amazon.com/fargate/";>AWS Fargate</a> which helps you decouple 
the APISIX layer and the upstream layer on top of a fully-managed and secure 
serverless container compute environment with autoscaling capabilities.</p>
-<p>See <a 
href="https://github.com/pahud/cdk-samples/blob/master/typescript/apisix/README.md";>this
 guide</a> by <a href="https://github.com/pahud";>Pahud Hsieh</a> and learn how 
to provision the recommended architecture 100% in AWS CDK.</p>
 <h3><a class="anchor" aria-hidden="true" id="kubernetes"></a><a 
href="#kubernetes" aria-hidden="true" class="hash-link"><svg 
class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 
0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 
0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 
3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 
9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 
[...]
 <p>See <a href="../kubernetes/README.md">this guide</a> and learn how to 
deploy apisix in Kubernetes.</p>
 </span></div></article></div><div class="docs-prevnext"></div></div></div><nav 
class="onPageNav"><ul class="toc-headings"><li><a 
href="#reference-documentation">Reference Documentation</a></li><li><a 
href="#plugins">Plugins</a><ul class="toc-headings"><li><a 
href="#general">General</a></li><li><a 
href="#transformation">Transformation</a></li><li><a 
href="#authentication">Authentication</a></li><li><a 
href="#security">Security</a></li><li><a href="#traffic">Traffic</a></li><li><a 
href="#m [...]
diff --git a/apisix/README/index.html b/apisix/README/index.html
index 9ef56e7..0ee9b19 100644
--- a/apisix/README/index.html
+++ b/apisix/README/index.html
@@ -63,7 +63,6 @@
 <li><a href="/apisix/plugins/key-auth">key-auth</a>: User authentication based 
on Key Authentication.</li>
 <li><a href="/apisix/plugins/jwt-auth">JWT-auth</a>: User authentication based 
on <a href="https://jwt.io/";>JWT</a> (JSON Web Tokens) Authentication.</li>
 <li><a href="/apisix/plugins/basic-auth">basic-auth</a>: User authentication 
based on Basic Authentication.</li>
-<li><a href="plugins/oauth.md">oauth</a>: Provides OAuth 2 authentication and 
introspection.</li>
 <li><a href="/apisix/plugins/authz-keycloak">authz-keycloak</a>: Authorization 
with Keycloak Identity Server.</li>
 <li><a href="/apisix/plugins/wolf-rbac">wolf-rbac</a> User Authentication and 
Authorization based on <em>RBAC</em>.</li>
 <li><a href="/apisix/plugins/openid-connect">openid-connect</a></li>
@@ -103,7 +102,6 @@
 <h2><a class="anchor" aria-hidden="true" id="deploy"></a><a href="#deploy" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <h3><a class="anchor" aria-hidden="true" id="aws"></a><a href="#aws" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <p>The recommended approach is to deploy APISIX with <a 
href="https://aws.amazon.com/cdk/";>AWS CDK</a> on <a 
href="https://aws.amazon.com/fargate/";>AWS Fargate</a> which helps you decouple 
the APISIX layer and the upstream layer on top of a fully-managed and secure 
serverless container compute environment with autoscaling capabilities.</p>
-<p>See <a 
href="https://github.com/pahud/cdk-samples/blob/master/typescript/apisix/README.md";>this
 guide</a> by <a href="https://github.com/pahud";>Pahud Hsieh</a> and learn how 
to provision the recommended architecture 100% in AWS CDK.</p>
 <h3><a class="anchor" aria-hidden="true" id="kubernetes"></a><a 
href="#kubernetes" aria-hidden="true" class="hash-link"><svg 
class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 
0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 
0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 
3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 
9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 
[...]
 <p>See <a href="../kubernetes/README.md">this guide</a> and learn how to 
deploy apisix in Kubernetes.</p>
 </span></div></article></div><div class="docs-prevnext"></div></div></div><nav 
class="onPageNav"><ul class="toc-headings"><li><a 
href="#reference-documentation">Reference Documentation</a></li><li><a 
href="#plugins">Plugins</a><ul class="toc-headings"><li><a 
href="#general">General</a></li><li><a 
href="#transformation">Transformation</a></li><li><a 
href="#authentication">Authentication</a></li><li><a 
href="#security">Security</a></li><li><a href="#traffic">Traffic</a></li><li><a 
href="#m [...]
diff --git a/apisix/admin-api.html b/apisix/admin-api.html
index 5e8caa2..7a9ac0e 100644
--- a/apisix/admin-api.html
+++ b/apisix/admin-api.html
@@ -87,6 +87,7 @@
 <tr><td>service_id</td><td>False</td><td>Service</td><td>Binded Service 
configuration, see <a href="/apisix/architecture-design#service">Service</a> 
for more</td><td></td></tr>
 <tr><td>service_protocol</td><td>False</td><td>Upstream protocol 
type</td><td>only <code>grpc</code> and <code>http</code> are 
supported</td><td><code>http</code> is the default value; Must set 
<code>grpc</code> if using <code>gRPC proxy</code> or <code>gRPC 
transcode</code></td></tr>
 <tr><td>labels</td><td>False</td><td>Match Rules</td><td>Key/value pairs to 
specify 
attributes</td><td>{&quot;version&quot;:&quot;v2&quot;,&quot;build&quot;:&quot;16&quot;,&quot;env&quot;:&quot;production&quot;}</td></tr>
+<tr><td>enable_websocket</td><td>False</td><td>Auxiliary</td><td>enable 
<code>websocket</code>(boolean), default <code>false</code>.</td><td></td></tr>
 </tbody>
 </table>
 <p>For the same type of parameters, such as <code>host</code> and 
<code>hosts</code>, <code>remote_addr</code> and <code>remote_addrs</code> 
cannot exist at the same time, only one of them can be selected. If enabled at 
the same time, the API will response an error.</p>
@@ -118,6 +119,7 @@
     "hosts": ["foo.com", "*.bar.com"],
     "remote_addrs": ["127.0.0.0/8"],
     "methods": ["PUT", "GET"],
+    "enable_websocket": true,
     "upstream": {
         "type": "roundrobin",
         "nodes": {
@@ -305,6 +307,7 @@ After successful execution, methods will not retain the 
original data, and the e
 <tr><td>name</td><td>False</td><td>Auxiliary</td><td>Identifies service 
names.</td><td>customer-xxxx</td></tr>
 <tr><td>desc</td><td>False</td><td>Auxiliary</td><td>service usage scenarios, 
and more.</td><td>customer xxxx</td></tr>
 <tr><td>labels</td><td>False</td><td>Match Rules</td><td>Key/value pairs to 
specify 
attributes</td><td>{&quot;version&quot;:&quot;v2&quot;,&quot;build&quot;:&quot;16&quot;,&quot;env&quot;:&quot;production&quot;}</td></tr>
+<tr><td>enable_websocket</td><td>False</td><td>Auxiliary</td><td>enable 
<code>websocket</code>(boolean), default <code>false</code>.</td><td></td></tr>
 </tbody>
 </table>
 <p>Config Example:</p>
@@ -315,6 +318,7 @@ After successful execution, methods will not retain the 
original data, and the e
     "upstream": {},     # upstream, not recommended
     "name": "service-test",
     "desc": "hello world",
+    "enable_websocket": true,
 }
 </code></pre>
 <p>Example:</p>
@@ -328,6 +332,7 @@ After successful execution, methods will not retain the 
original data, and the e
             "key": "remote_addr"
         }
     },
+    "enable_websocket": true,
     "upstream": {
         "type": "roundrobin",
         "nodes": {
@@ -516,7 +521,6 @@ Date: Thu, 26 Dec 2019 08:17:49 GMT
 <tr><td>key</td><td>optional</td><td>This option is only valid if the 
<code>type</code> is <code>chash</code>. Find the corresponding node 
<code>id</code> according to <code>hash_on</code> and <code>key</code>. When 
<code>hash_on</code> is set as <code>vars</code>, <code>key</code> is the 
required parameter, for now, it support nginx built-in variables like 
<code>uri, server_name, server_addr, request_uri, remote_port, remote_addr, 
query_string, host, hostname, arg_***</code>, <code>arg_ [...]
 <tr><td>checks</td><td>optional</td><td>Configure the parameters of the health 
check. For details, refer to <a 
href="/apisix/health-check">health-check</a>.</td></tr>
 <tr><td>retries</td><td>optional</td><td>Pass the request to the next upstream 
using the underlying Nginx retry mechanism, the retry mechanism is enabled by 
default and set the number of retries according to the number of backend nodes. 
If <code>retries</code> option is explicitly set, it will override the default 
value. <code>0</code> means disable retry mechanism.</td></tr>
-<tr><td>enable_websocket</td><td>optional</td><td>enable 
<code>websocket</code>(boolean), default <code>false</code>.</td></tr>
 <tr><td>timeout</td><td>optional</td><td>Set the timeout for connection, 
sending and receiving messages.</td></tr>
 <tr><td>name</td><td>optional</td><td>Identifies upstream names</td></tr>
 <tr><td>desc</td><td>optional</td><td>upstream usage scenarios, and 
more.</td></tr>
@@ -534,7 +538,6 @@ Date: Thu, 26 Dec 2019 08:17:49 GMT
         "send":15,
         "read":15,
     },
-    "enable_websocket": true,
     "nodes": {"host:80": 100},  # Upstream machine address list, the format is 
`Address + Port`
     "k8s_deployment_info": {    # kubernetes deployment info
         "namespace": "test-namespace",
diff --git a/apisix/admin-api/index.html b/apisix/admin-api/index.html
index 5e8caa2..7a9ac0e 100644
--- a/apisix/admin-api/index.html
+++ b/apisix/admin-api/index.html
@@ -87,6 +87,7 @@
 <tr><td>service_id</td><td>False</td><td>Service</td><td>Binded Service 
configuration, see <a href="/apisix/architecture-design#service">Service</a> 
for more</td><td></td></tr>
 <tr><td>service_protocol</td><td>False</td><td>Upstream protocol 
type</td><td>only <code>grpc</code> and <code>http</code> are 
supported</td><td><code>http</code> is the default value; Must set 
<code>grpc</code> if using <code>gRPC proxy</code> or <code>gRPC 
transcode</code></td></tr>
 <tr><td>labels</td><td>False</td><td>Match Rules</td><td>Key/value pairs to 
specify 
attributes</td><td>{&quot;version&quot;:&quot;v2&quot;,&quot;build&quot;:&quot;16&quot;,&quot;env&quot;:&quot;production&quot;}</td></tr>
+<tr><td>enable_websocket</td><td>False</td><td>Auxiliary</td><td>enable 
<code>websocket</code>(boolean), default <code>false</code>.</td><td></td></tr>
 </tbody>
 </table>
 <p>For the same type of parameters, such as <code>host</code> and 
<code>hosts</code>, <code>remote_addr</code> and <code>remote_addrs</code> 
cannot exist at the same time, only one of them can be selected. If enabled at 
the same time, the API will response an error.</p>
@@ -118,6 +119,7 @@
     "hosts": ["foo.com", "*.bar.com"],
     "remote_addrs": ["127.0.0.0/8"],
     "methods": ["PUT", "GET"],
+    "enable_websocket": true,
     "upstream": {
         "type": "roundrobin",
         "nodes": {
@@ -305,6 +307,7 @@ After successful execution, methods will not retain the 
original data, and the e
 <tr><td>name</td><td>False</td><td>Auxiliary</td><td>Identifies service 
names.</td><td>customer-xxxx</td></tr>
 <tr><td>desc</td><td>False</td><td>Auxiliary</td><td>service usage scenarios, 
and more.</td><td>customer xxxx</td></tr>
 <tr><td>labels</td><td>False</td><td>Match Rules</td><td>Key/value pairs to 
specify 
attributes</td><td>{&quot;version&quot;:&quot;v2&quot;,&quot;build&quot;:&quot;16&quot;,&quot;env&quot;:&quot;production&quot;}</td></tr>
+<tr><td>enable_websocket</td><td>False</td><td>Auxiliary</td><td>enable 
<code>websocket</code>(boolean), default <code>false</code>.</td><td></td></tr>
 </tbody>
 </table>
 <p>Config Example:</p>
@@ -315,6 +318,7 @@ After successful execution, methods will not retain the 
original data, and the e
     "upstream": {},     # upstream, not recommended
     "name": "service-test",
     "desc": "hello world",
+    "enable_websocket": true,
 }
 </code></pre>
 <p>Example:</p>
@@ -328,6 +332,7 @@ After successful execution, methods will not retain the 
original data, and the e
             "key": "remote_addr"
         }
     },
+    "enable_websocket": true,
     "upstream": {
         "type": "roundrobin",
         "nodes": {
@@ -516,7 +521,6 @@ Date: Thu, 26 Dec 2019 08:17:49 GMT
 <tr><td>key</td><td>optional</td><td>This option is only valid if the 
<code>type</code> is <code>chash</code>. Find the corresponding node 
<code>id</code> according to <code>hash_on</code> and <code>key</code>. When 
<code>hash_on</code> is set as <code>vars</code>, <code>key</code> is the 
required parameter, for now, it support nginx built-in variables like 
<code>uri, server_name, server_addr, request_uri, remote_port, remote_addr, 
query_string, host, hostname, arg_***</code>, <code>arg_ [...]
 <tr><td>checks</td><td>optional</td><td>Configure the parameters of the health 
check. For details, refer to <a 
href="/apisix/health-check">health-check</a>.</td></tr>
 <tr><td>retries</td><td>optional</td><td>Pass the request to the next upstream 
using the underlying Nginx retry mechanism, the retry mechanism is enabled by 
default and set the number of retries according to the number of backend nodes. 
If <code>retries</code> option is explicitly set, it will override the default 
value. <code>0</code> means disable retry mechanism.</td></tr>
-<tr><td>enable_websocket</td><td>optional</td><td>enable 
<code>websocket</code>(boolean), default <code>false</code>.</td></tr>
 <tr><td>timeout</td><td>optional</td><td>Set the timeout for connection, 
sending and receiving messages.</td></tr>
 <tr><td>name</td><td>optional</td><td>Identifies upstream names</td></tr>
 <tr><td>desc</td><td>optional</td><td>upstream usage scenarios, and 
more.</td></tr>
@@ -534,7 +538,6 @@ Date: Thu, 26 Dec 2019 08:17:49 GMT
         "send":15,
         "read":15,
     },
-    "enable_websocket": true,
     "nodes": {"host:80": 100},  # Upstream machine address list, the format is 
`Address + Port`
     "k8s_deployment_info": {    # kubernetes deployment info
         "namespace": "test-namespace",
diff --git a/apisix/architecture-design.html b/apisix/architecture-design.html
index 378769d..3d7e3c8 100644
--- a/apisix/architecture-design.html
+++ b/apisix/architecture-design.html
@@ -209,7 +209,6 @@ curl http://127.0.0.1:9080/apisix/admin/routes/101 -H 
'X-API-KEY: edd1c9f034335f
 <tr><td>key</td><td>required</td><td>This option is only valid if the 
<code>type</code> is <code>chash</code>. Find the corresponding node 
<code>id</code> according to <code>hash_on</code> and <code>key</code>. When 
<code>hash_on</code> is set as <code>vars</code>, <code>key</code> is the 
required parameter, for now, it support nginx built-in variables like 
<code>uri, server_name, server_addr, request_uri, remote_port, remote_addr, 
query_string, host, hostname, arg_***</code>, <code>arg_ [...]
 <tr><td>checks</td><td>optional</td><td>Configure the parameters of the health 
check. For details, refer to <a 
href="/apisix/health-check">health-check</a>.</td></tr>
 <tr><td>retries</td><td>optional</td><td>Pass the request to the next upstream 
using the underlying Nginx retry mechanism, the retry mechanism is enabled by 
default and set the number of retries according to the number of backend nodes. 
If <code>retries</code> option is explicitly set, it will override the default 
value.</td></tr>
-<tr><td>enable_websocket</td><td>optional</td><td>enable 
<code>websocket</code>(boolean), default <code>false</code>.</td></tr>
 <tr><td>timeout</td><td>optional</td><td>Set the timeout for connection, 
sending and receiving messages.</td></tr>
 <tr><td>desc</td><td>optional</td><td>Identifies route names, usage scenarios, 
and more.</td></tr>
 <tr><td>labels</td><td>optional</td><td>The key/value pairs to specify 
attributes.</td></tr>
@@ -234,7 +233,6 @@ curl http://127.0.0.1:9080/apisix/admin/upstreams/2 -H 
'X-API-KEY: edd1c9f034335
 {
     "type": "chash",
     "key": "remote_addr",
-    "enable_websocket": true,
     "nodes": {
         "127.0.0.1:80": 1,
         "foo.com:80": 2
diff --git a/apisix/architecture-design/index.html 
b/apisix/architecture-design/index.html
index 378769d..3d7e3c8 100644
--- a/apisix/architecture-design/index.html
+++ b/apisix/architecture-design/index.html
@@ -209,7 +209,6 @@ curl http://127.0.0.1:9080/apisix/admin/routes/101 -H 
'X-API-KEY: edd1c9f034335f
 <tr><td>key</td><td>required</td><td>This option is only valid if the 
<code>type</code> is <code>chash</code>. Find the corresponding node 
<code>id</code> according to <code>hash_on</code> and <code>key</code>. When 
<code>hash_on</code> is set as <code>vars</code>, <code>key</code> is the 
required parameter, for now, it support nginx built-in variables like 
<code>uri, server_name, server_addr, request_uri, remote_port, remote_addr, 
query_string, host, hostname, arg_***</code>, <code>arg_ [...]
 <tr><td>checks</td><td>optional</td><td>Configure the parameters of the health 
check. For details, refer to <a 
href="/apisix/health-check">health-check</a>.</td></tr>
 <tr><td>retries</td><td>optional</td><td>Pass the request to the next upstream 
using the underlying Nginx retry mechanism, the retry mechanism is enabled by 
default and set the number of retries according to the number of backend nodes. 
If <code>retries</code> option is explicitly set, it will override the default 
value.</td></tr>
-<tr><td>enable_websocket</td><td>optional</td><td>enable 
<code>websocket</code>(boolean), default <code>false</code>.</td></tr>
 <tr><td>timeout</td><td>optional</td><td>Set the timeout for connection, 
sending and receiving messages.</td></tr>
 <tr><td>desc</td><td>optional</td><td>Identifies route names, usage scenarios, 
and more.</td></tr>
 <tr><td>labels</td><td>optional</td><td>The key/value pairs to specify 
attributes.</td></tr>
@@ -234,7 +233,6 @@ curl http://127.0.0.1:9080/apisix/admin/upstreams/2 -H 
'X-API-KEY: edd1c9f034335
 {
     "type": "chash",
     "key": "remote_addr",
-    "enable_websocket": true,
     "nodes": {
         "127.0.0.1:80": 1,
         "foo.com:80": 2
diff --git a/apisix/plugins/batch-requests.html 
b/apisix/plugins/batch-requests.html
index 38c0148..d73c961 100644
--- a/apisix/plugins/batch-requests.html
+++ b/apisix/plugins/batch-requests.html
@@ -46,7 +46,7 @@
 <p>None</p>
 <h2><a class="anchor" aria-hidden="true" id="api"></a><a href="#api" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <p>This plugin will add <code>/apisix/batch-requests</code> as the endpoint.
-You may need to use <a href="plugin-interceptors.md">interceptors</a> to 
protect it.</p>
+You may need to use <a href="/apisix/plugin-interceptors">interceptors</a> to 
protect it.</p>
 <h2><a class="anchor" aria-hidden="true" id="how-to-enable"></a><a 
href="#how-to-enable" aria-hidden="true" class="hash-link"><svg 
class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 
0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 
0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 
3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 
9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Default enabled</p>
 <h2><a class="anchor" aria-hidden="true" id="how-to-configure"></a><a 
href="#how-to-configure" aria-hidden="true" class="hash-link"><svg 
class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 
0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 
0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 
3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 
9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
diff --git a/apisix/plugins/batch-requests/index.html 
b/apisix/plugins/batch-requests/index.html
index 38c0148..d73c961 100644
--- a/apisix/plugins/batch-requests/index.html
+++ b/apisix/plugins/batch-requests/index.html
@@ -46,7 +46,7 @@
 <p>None</p>
 <h2><a class="anchor" aria-hidden="true" id="api"></a><a href="#api" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <p>This plugin will add <code>/apisix/batch-requests</code> as the endpoint.
-You may need to use <a href="plugin-interceptors.md">interceptors</a> to 
protect it.</p>
+You may need to use <a href="/apisix/plugin-interceptors">interceptors</a> to 
protect it.</p>
 <h2><a class="anchor" aria-hidden="true" id="how-to-enable"></a><a 
href="#how-to-enable" aria-hidden="true" class="hash-link"><svg 
class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 
0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 
0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 
3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 
9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>Default enabled</p>
 <h2><a class="anchor" aria-hidden="true" id="how-to-configure"></a><a 
href="#how-to-configure" aria-hidden="true" class="hash-link"><svg 
class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 
0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 
0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 
3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 
9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
diff --git a/apisix/plugins/jwt-auth.html b/apisix/plugins/jwt-auth.html
index 3f512b0..d5c9e2e 100644
--- a/apisix/plugins/jwt-auth.html
+++ b/apisix/plugins/jwt-auth.html
@@ -54,7 +54,7 @@
 </table>
 <h2><a class="anchor" aria-hidden="true" id="api"></a><a href="#api" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <p>This plugin will add <code>/apisix/plugin/jwt/sign</code> to sign.
-You may need to use <a href="plugin-interceptors.md">interceptors</a> to 
protect it.</p>
+You may need to use <a href="/apisix/plugin-interceptors">interceptors</a> to 
protect it.</p>
 <h2><a class="anchor" aria-hidden="true" id="how-to-enable"></a><a 
href="#how-to-enable" aria-hidden="true" class="hash-link"><svg 
class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 
0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 
0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 
3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 
9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <ol>
 <li>set a consumer and config the value of the <code>jwt-auth</code> 
option</li>
diff --git a/apisix/plugins/jwt-auth/index.html 
b/apisix/plugins/jwt-auth/index.html
index 3f512b0..d5c9e2e 100644
--- a/apisix/plugins/jwt-auth/index.html
+++ b/apisix/plugins/jwt-auth/index.html
@@ -54,7 +54,7 @@
 </table>
 <h2><a class="anchor" aria-hidden="true" id="api"></a><a href="#api" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <p>This plugin will add <code>/apisix/plugin/jwt/sign</code> to sign.
-You may need to use <a href="plugin-interceptors.md">interceptors</a> to 
protect it.</p>
+You may need to use <a href="/apisix/plugin-interceptors">interceptors</a> to 
protect it.</p>
 <h2><a class="anchor" aria-hidden="true" id="how-to-enable"></a><a 
href="#how-to-enable" aria-hidden="true" class="hash-link"><svg 
class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 
0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 
0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 
3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 
9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <ol>
 <li>set a consumer and config the value of the <code>jwt-auth</code> 
option</li>
diff --git a/apisix/plugins/prometheus.html b/apisix/plugins/prometheus.html
index 98e32fc..b7ebefa 100644
--- a/apisix/plugins/prometheus.html
+++ b/apisix/plugins/prometheus.html
@@ -31,7 +31,7 @@
 <p>none.</p>
 <h2><a class="anchor" aria-hidden="true" id="api"></a><a href="#api" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <p>This plugin will add <code>/apisix/prometheus/metrics</code> to expose the 
metrics.
-You may need to use <a href="plugin-interceptors.md">interceptors</a> to 
protect it.</p>
+You may need to use <a href="/apisix/plugin-interceptors">interceptors</a> to 
protect it.</p>
 <h2><a class="anchor" aria-hidden="true" id="how-to-enable-it"></a><a 
href="#how-to-enable-it" aria-hidden="true" class="hash-link"><svg 
class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 
0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 
0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 
3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 
9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
 <p><code>prometheus</code> plugin can be enable with empty table, because it 
doesn't have
 any options yet.</p>
diff --git a/apisix/plugins/prometheus/index.html 
b/apisix/plugins/prometheus/index.html
index 98e32fc..b7ebefa 100644
--- a/apisix/plugins/prometheus/index.html
+++ b/apisix/plugins/prometheus/index.html
@@ -31,7 +31,7 @@
 <p>none.</p>
 <h2><a class="anchor" aria-hidden="true" id="api"></a><a href="#api" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <p>This plugin will add <code>/apisix/prometheus/metrics</code> to expose the 
metrics.
-You may need to use <a href="plugin-interceptors.md">interceptors</a> to 
protect it.</p>
+You may need to use <a href="/apisix/plugin-interceptors">interceptors</a> to 
protect it.</p>
 <h2><a class="anchor" aria-hidden="true" id="how-to-enable-it"></a><a 
href="#how-to-enable-it" aria-hidden="true" class="hash-link"><svg 
class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 
0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 
0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 
3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 
9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
 <p><code>prometheus</code> plugin can be enable with empty table, because it 
doesn't have
 any options yet.</p>
diff --git a/apisix/plugins/proxy-cache.html b/apisix/plugins/proxy-cache.html
index fb2c6ca..0425420 100644
--- a/apisix/plugins/proxy-cache.html
+++ b/apisix/plugins/proxy-cache.html
@@ -23,7 +23,7 @@
 #
 -->
 <ul>
-<li><a href="/doc/zh-cn/plugins/proxy-cache.md">中文</a></li>
+<li><a href="/apisix/zh-cn/plugins/proxy-cache">中文</a></li>
 </ul>
 <h1><a class="anchor" aria-hidden="true" id="proxy-cache"></a><a 
href="#proxy-cache" aria-hidden="true" class="hash-link"><svg 
class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 
0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 
0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 
3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 
9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 
[...]
 <p>The proxy-cache plugin, which provides the ability to cache upstream 
response data and can be used with other plugins. The plugin supports 
disk-based caching and will support the memory-based caching in the future. The 
data that needs to be cached can be determined by the response code or request 
method and more complex caching policies can be configured by no_cache and 
cache_bypass attributes.</p>
diff --git a/apisix/plugins/proxy-cache/index.html 
b/apisix/plugins/proxy-cache/index.html
index fb2c6ca..0425420 100644
--- a/apisix/plugins/proxy-cache/index.html
+++ b/apisix/plugins/proxy-cache/index.html
@@ -23,7 +23,7 @@
 #
 -->
 <ul>
-<li><a href="/doc/zh-cn/plugins/proxy-cache.md">中文</a></li>
+<li><a href="/apisix/zh-cn/plugins/proxy-cache">中文</a></li>
 </ul>
 <h1><a class="anchor" aria-hidden="true" id="proxy-cache"></a><a 
href="#proxy-cache" aria-hidden="true" class="hash-link"><svg 
class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 
0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 
0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 
3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 
9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 
[...]
 <p>The proxy-cache plugin, which provides the ability to cache upstream 
response data and can be used with other plugins. The plugin supports 
disk-based caching and will support the memory-based caching in the future. The 
data that needs to be cached can be determined by the response code or request 
method and more complex caching policies can be configured by no_cache and 
cache_bypass attributes.</p>
diff --git a/apisix/plugins/wolf-rbac.html b/apisix/plugins/wolf-rbac.html
index 6226fa6..7847d75 100644
--- a/apisix/plugins/wolf-rbac.html
+++ b/apisix/plugins/wolf-rbac.html
@@ -55,7 +55,7 @@ The rbac feature is provided by <a 
href="https://github.com/iGeeky/wolf";>wolf</a
 <li>/apisix/plugin/wolf-rbac/change_pwd</li>
 <li>/apisix/plugin/wolf-rbac/user_info</li>
 </ul>
-<p>You may need to use <a href="plugin-interceptors.md">interceptors</a> to 
protect it.</p>
+<p>You may need to use <a href="/apisix/plugin-interceptors">interceptors</a> 
to protect it.</p>
 <h2><a class="anchor" aria-hidden="true" id="dependencies"></a><a 
href="#dependencies" aria-hidden="true" class="hash-link"><svg 
class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 
0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 
0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 
3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 
9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
 <h3><a class="anchor" aria-hidden="true" 
id="install-wolf-and-start-the-service"></a><a 
href="#install-wolf-and-start-the-service" aria-hidden="true" 
class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" 
version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 
9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 
3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 
9zm9-3h-1v1h1c1 0 2 1.22 2 2.5 [...]
 <p><a 
href="https://github.com/iGeeky/wolf/blob/master/quick-start-with-docker/README.md";>Wolf
 quick start</a></p>
diff --git a/apisix/plugins/wolf-rbac/index.html 
b/apisix/plugins/wolf-rbac/index.html
index 6226fa6..7847d75 100644
--- a/apisix/plugins/wolf-rbac/index.html
+++ b/apisix/plugins/wolf-rbac/index.html
@@ -55,7 +55,7 @@ The rbac feature is provided by <a 
href="https://github.com/iGeeky/wolf";>wolf</a
 <li>/apisix/plugin/wolf-rbac/change_pwd</li>
 <li>/apisix/plugin/wolf-rbac/user_info</li>
 </ul>
-<p>You may need to use <a href="plugin-interceptors.md">interceptors</a> to 
protect it.</p>
+<p>You may need to use <a href="/apisix/plugin-interceptors">interceptors</a> 
to protect it.</p>
 <h2><a class="anchor" aria-hidden="true" id="dependencies"></a><a 
href="#dependencies" aria-hidden="true" class="hash-link"><svg 
class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 
0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 
0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 
3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 
9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
 <h3><a class="anchor" aria-hidden="true" 
id="install-wolf-and-start-the-service"></a><a 
href="#install-wolf-and-start-the-service" aria-hidden="true" 
class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" 
version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 
9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 
3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 
9zm9-3h-1v1h1c1 0 2 1.22 2 2.5 [...]
 <p><a 
href="https://github.com/iGeeky/wolf/blob/master/quick-start-with-docker/README.md";>Wolf
 quick start</a></p>
diff --git a/apisix/zh-cn/README.html b/apisix/zh-cn/README.html
index 1bbb6d0..1e53a5a 100644
--- a/apisix/zh-cn/README.html
+++ b/apisix/zh-cn/README.html
@@ -102,7 +102,6 @@
 <h2><a class="anchor" aria-hidden="true" id="部署"></a><a href="#部署" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <h3><a class="anchor" aria-hidden="true" id="aws"></a><a href="#aws" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <p>推荐的方法是在 <a href="https://aws.amazon.com/fargate/";>AWS Fargate</a> 上使用  <a 
href="https://aws.amazon.com/cdk/";>AWS CDK</a> 部署 APISIX,这有助于将 APISIX 
层和上游层分离到具有自动缩放功能的完全托管和安全的无服务器容器计算环境之上。</p>
-<p>请参阅 <a href="https://github.com/pahud";>Pahud Hsieh</a> 撰写的<a 
href="https://github.com/pahud/cdk-samples/blob/master/typescript/apisix/README.md";>指南</a>,了解如何在
 AWS CDK 中 100% 配置推荐的架构。</p>
 <h3><a class="anchor" aria-hidden="true" id="kubernetes"></a><a 
href="#kubernetes" aria-hidden="true" class="hash-link"><svg 
class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 
0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 
0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 
3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 
9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 
[...]
 <p>请参阅<a href="../../kubernetes/README.md">指南</a>并了解如何在 Kubernetes 中部署 
APISIX。</p>
 </span></div></article></div><div class="docs-prevnext"></div></div></div><nav 
class="onPageNav"><ul class="toc-headings"><li><a 
href="#参考文档">参考文档</a></li><li><a href="#插件">插件</a><ul 
class="toc-headings"><li><a href="#general">General</a></li><li><a 
href="#transformation">Transformation</a></li><li><a 
href="#authentication">Authentication</a></li><li><a 
href="#security">Security</a></li><li><a href="#traffic">Traffic</a></li><li><a 
href="#monitoring">Monitoring</a></li><li><a href="#logg [...]
diff --git a/apisix/zh-cn/README/index.html b/apisix/zh-cn/README/index.html
index 1bbb6d0..1e53a5a 100644
--- a/apisix/zh-cn/README/index.html
+++ b/apisix/zh-cn/README/index.html
@@ -102,7 +102,6 @@
 <h2><a class="anchor" aria-hidden="true" id="部署"></a><a href="#部署" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <h3><a class="anchor" aria-hidden="true" id="aws"></a><a href="#aws" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <p>推荐的方法是在 <a href="https://aws.amazon.com/fargate/";>AWS Fargate</a> 上使用  <a 
href="https://aws.amazon.com/cdk/";>AWS CDK</a> 部署 APISIX,这有助于将 APISIX 
层和上游层分离到具有自动缩放功能的完全托管和安全的无服务器容器计算环境之上。</p>
-<p>请参阅 <a href="https://github.com/pahud";>Pahud Hsieh</a> 撰写的<a 
href="https://github.com/pahud/cdk-samples/blob/master/typescript/apisix/README.md";>指南</a>,了解如何在
 AWS CDK 中 100% 配置推荐的架构。</p>
 <h3><a class="anchor" aria-hidden="true" id="kubernetes"></a><a 
href="#kubernetes" aria-hidden="true" class="hash-link"><svg 
class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 
0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 
0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 
3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 
9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 
[...]
 <p>请参阅<a href="../../kubernetes/README.md">指南</a>并了解如何在 Kubernetes 中部署 
APISIX。</p>
 </span></div></article></div><div class="docs-prevnext"></div></div></div><nav 
class="onPageNav"><ul class="toc-headings"><li><a 
href="#参考文档">参考文档</a></li><li><a href="#插件">插件</a><ul 
class="toc-headings"><li><a href="#general">General</a></li><li><a 
href="#transformation">Transformation</a></li><li><a 
href="#authentication">Authentication</a></li><li><a 
href="#security">Security</a></li><li><a href="#traffic">Traffic</a></li><li><a 
href="#monitoring">Monitoring</a></li><li><a href="#logg [...]
diff --git a/apisix/zh-cn/admin-api.html b/apisix/zh-cn/admin-api.html
index 2791889..bf91000 100644
--- a/apisix/zh-cn/admin-api.html
+++ b/apisix/zh-cn/admin-api.html
@@ -89,6 +89,7 @@
 <tr><td>vars</td><td>可选</td><td>匹配规则</td><td>由一个或多个<code>{var, operator, 
val}</code>元素组成的列表,类似这样:<code>{{var, operator, val}, {var, operator, val}, 
...}}</code>。例如:<code>{&quot;arg_name&quot;, &quot;==&quot;, 
&quot;json&quot;}</code>,表示当前请求参数 <code>name</code> 是 <code>json</code>。这里的 
<code>var</code> 与 Nginx 内部自身变量命名是保持一致,所以也可以使用 
<code>request_uri</code>、<code>host</code> 等;对于 <code>operator</code> 
部分,目前已支持的运算符有 
<code>==</code>、<code>~=</code>、<code>&gt;</code>、<code>&lt;</code> 和 <code> 
[...]
 
<tr><td>filter_func</td><td>可选</td><td>匹配规则</td><td>用户自定义的过滤函数。可以使用它来实现特殊场景的匹配要求实现。该函数默认接受一个名为
 vars 的输入参数,可以用它来获取 Nginx 变量。</td><td>function(vars) return 
vars[&quot;arg_name&quot;] == &quot;json&quot; end</td></tr>
 
<tr><td>labels</td><td>可选</td><td>匹配规则</td><td>标识附加属性的键值对</td><td>{&quot;version&quot;:&quot;v2&quot;,&quot;build&quot;:&quot;16&quot;,&quot;env&quot;:&quot;production&quot;}</td></tr>
+<tr><td>enable_websocket</td><td>可选</td><td>辅助</td><td>是否启用 
<code>websocket</code>(boolean), 缺省 <code>false</code>.</td><td></td></tr>
 </tbody>
 </table>
 <p>有两点需要特别注意:</p>
@@ -124,6 +125,7 @@
     "hosts": ["foo.com", "*.bar.com"],
     "remote_addrs": ["127.0.0.0/8"],
     "methods": ["PUT", "GET"],
+    "enable_websocket": true,
     "upstream": {
         "type": "roundrobin",
         "nodes": {
@@ -313,6 +315,7 @@ HTTP/1.1 200 OK
 <tr><td>name</td><td>可选</td><td>辅助</td><td>标识服务名称。</td><td></td></tr>
 <tr><td>desc</td><td>可选</td><td>辅助</td><td>服务描述、使用场景等。</td><td></td></tr>
 
<tr><td>labels</td><td>可选</td><td>匹配规则</td><td>标识附加属性的键值对</td><td>{&quot;version&quot;:&quot;v2&quot;,&quot;build&quot;:&quot;16&quot;,&quot;env&quot;:&quot;production&quot;}</td></tr>
+<tr><td>enable_websocket</td><td>可选</td><td>辅助</td><td>是否启用 
<code>websocket</code>(boolean), 缺省 <code>false</code>.</td><td></td></tr>
 </tbody>
 </table>
 <p>serivce 对象 json 配置内容:</p>
@@ -323,6 +326,7 @@ HTTP/1.1 200 OK
     "upstream": {},         # upstream 信息对象,不建议使用
     "name": "测试svc",  # service 名称
     "desc": "hello world",  # service 描述
+    "enable_websocket": true, #启动 websocket 功能
 }
 </code></pre>
 <p>具体示例:</p>
@@ -337,6 +341,7 @@ HTTP/1.1 200 OK
             "key": "remote_addr"
         }
     },
+    "enable_websocket": true,
     "upstream": {
         "type": "roundrobin",
         "nodes": {
@@ -528,7 +533,6 @@ Date: Thu, 26 Dec 2019 08:17:49 GMT
 <tr><td>checks</td><td>可选</td><td>health_checker</td><td>配置健康检查的参数,详细可参考<a 
href="/apisix/health-check">health-check</a></td><td></td></tr>
 <tr><td>retries</td><td>可选</td><td>整型</td><td>使用底层的 Nginx 
重试机制将请求传递给下一个上游,默认启用重试且次数为后端 node 数量。如果指定了具体重试次数,它将覆盖默认值。<code>0</code> 
代表不启用重试机制</td><td></td></tr>
 
<tr><td>timeout</td><td>可选</td><td>超时时间对象</td><td>设置连接、发送消息、接收消息的超时时间</td><td></td></tr>
-<tr><td>enable_websocket</td><td>可选</td><td>辅助</td><td>是否允许启用 websocket 
能力</td><td></td></tr>
 <tr><td>hash_on</td><td>可选</td><td>辅助</td><td>该参数作为一致性 hash 
的入参</td><td></td></tr>
 <tr><td>name</td><td>可选</td><td>辅助</td><td>标识上游服务名称、使用场景等。</td><td></td></tr>
 <tr><td>desc</td><td>可选</td><td>辅助</td><td>上游服务描述、使用场景等。</td><td></td></tr>
@@ -546,7 +550,6 @@ Date: Thu, 26 Dec 2019 08:17:49 GMT
         "send":15,
         "read":15,
     },
-    "enable_websocket": true,
     "nodes": {"host:80": 100},  # 上游机器地址列表,格式为`地址 + Port`
     "k8s_deployment_info": {    # k8s deployment 信息
         "namespace": "test-namespace",
diff --git a/apisix/zh-cn/admin-api/index.html 
b/apisix/zh-cn/admin-api/index.html
index 2791889..bf91000 100644
--- a/apisix/zh-cn/admin-api/index.html
+++ b/apisix/zh-cn/admin-api/index.html
@@ -89,6 +89,7 @@
 <tr><td>vars</td><td>可选</td><td>匹配规则</td><td>由一个或多个<code>{var, operator, 
val}</code>元素组成的列表,类似这样:<code>{{var, operator, val}, {var, operator, val}, 
...}}</code>。例如:<code>{&quot;arg_name&quot;, &quot;==&quot;, 
&quot;json&quot;}</code>,表示当前请求参数 <code>name</code> 是 <code>json</code>。这里的 
<code>var</code> 与 Nginx 内部自身变量命名是保持一致,所以也可以使用 
<code>request_uri</code>、<code>host</code> 等;对于 <code>operator</code> 
部分,目前已支持的运算符有 
<code>==</code>、<code>~=</code>、<code>&gt;</code>、<code>&lt;</code> 和 <code> 
[...]
 
<tr><td>filter_func</td><td>可选</td><td>匹配规则</td><td>用户自定义的过滤函数。可以使用它来实现特殊场景的匹配要求实现。该函数默认接受一个名为
 vars 的输入参数,可以用它来获取 Nginx 变量。</td><td>function(vars) return 
vars[&quot;arg_name&quot;] == &quot;json&quot; end</td></tr>
 
<tr><td>labels</td><td>可选</td><td>匹配规则</td><td>标识附加属性的键值对</td><td>{&quot;version&quot;:&quot;v2&quot;,&quot;build&quot;:&quot;16&quot;,&quot;env&quot;:&quot;production&quot;}</td></tr>
+<tr><td>enable_websocket</td><td>可选</td><td>辅助</td><td>是否启用 
<code>websocket</code>(boolean), 缺省 <code>false</code>.</td><td></td></tr>
 </tbody>
 </table>
 <p>有两点需要特别注意:</p>
@@ -124,6 +125,7 @@
     "hosts": ["foo.com", "*.bar.com"],
     "remote_addrs": ["127.0.0.0/8"],
     "methods": ["PUT", "GET"],
+    "enable_websocket": true,
     "upstream": {
         "type": "roundrobin",
         "nodes": {
@@ -313,6 +315,7 @@ HTTP/1.1 200 OK
 <tr><td>name</td><td>可选</td><td>辅助</td><td>标识服务名称。</td><td></td></tr>
 <tr><td>desc</td><td>可选</td><td>辅助</td><td>服务描述、使用场景等。</td><td></td></tr>
 
<tr><td>labels</td><td>可选</td><td>匹配规则</td><td>标识附加属性的键值对</td><td>{&quot;version&quot;:&quot;v2&quot;,&quot;build&quot;:&quot;16&quot;,&quot;env&quot;:&quot;production&quot;}</td></tr>
+<tr><td>enable_websocket</td><td>可选</td><td>辅助</td><td>是否启用 
<code>websocket</code>(boolean), 缺省 <code>false</code>.</td><td></td></tr>
 </tbody>
 </table>
 <p>serivce 对象 json 配置内容:</p>
@@ -323,6 +326,7 @@ HTTP/1.1 200 OK
     "upstream": {},         # upstream 信息对象,不建议使用
     "name": "测试svc",  # service 名称
     "desc": "hello world",  # service 描述
+    "enable_websocket": true, #启动 websocket 功能
 }
 </code></pre>
 <p>具体示例:</p>
@@ -337,6 +341,7 @@ HTTP/1.1 200 OK
             "key": "remote_addr"
         }
     },
+    "enable_websocket": true,
     "upstream": {
         "type": "roundrobin",
         "nodes": {
@@ -528,7 +533,6 @@ Date: Thu, 26 Dec 2019 08:17:49 GMT
 <tr><td>checks</td><td>可选</td><td>health_checker</td><td>配置健康检查的参数,详细可参考<a 
href="/apisix/health-check">health-check</a></td><td></td></tr>
 <tr><td>retries</td><td>可选</td><td>整型</td><td>使用底层的 Nginx 
重试机制将请求传递给下一个上游,默认启用重试且次数为后端 node 数量。如果指定了具体重试次数,它将覆盖默认值。<code>0</code> 
代表不启用重试机制</td><td></td></tr>
 
<tr><td>timeout</td><td>可选</td><td>超时时间对象</td><td>设置连接、发送消息、接收消息的超时时间</td><td></td></tr>
-<tr><td>enable_websocket</td><td>可选</td><td>辅助</td><td>是否允许启用 websocket 
能力</td><td></td></tr>
 <tr><td>hash_on</td><td>可选</td><td>辅助</td><td>该参数作为一致性 hash 
的入参</td><td></td></tr>
 <tr><td>name</td><td>可选</td><td>辅助</td><td>标识上游服务名称、使用场景等。</td><td></td></tr>
 <tr><td>desc</td><td>可选</td><td>辅助</td><td>上游服务描述、使用场景等。</td><td></td></tr>
@@ -546,7 +550,6 @@ Date: Thu, 26 Dec 2019 08:17:49 GMT
         "send":15,
         "read":15,
     },
-    "enable_websocket": true,
     "nodes": {"host:80": 100},  # 上游机器地址列表,格式为`地址 + Port`
     "k8s_deployment_info": {    # k8s deployment 信息
         "namespace": "test-namespace",
diff --git a/apisix/zh-cn/architecture-design.html 
b/apisix/zh-cn/architecture-design.html
index 56f2e84..1385ae3 100644
--- a/apisix/zh-cn/architecture-design.html
+++ b/apisix/zh-cn/architecture-design.html
@@ -220,7 +220,6 @@ curl http://127.0.0.1:9080/apisix/admin/routes/101 -H 
'X-API-KEY: edd1c9f034335f
 <tr><td>hash_on</td><td>可选</td><td><code>hash_on</code> 支持的类型有 
<code>vars</code>(Nginx内置变量),<code>header</code>(自定义header),<code>cookie</code>,<code>consumer</code>,默认值为
 <code>vars</code></td></tr>
 <tr><td>checks</td><td>可选</td><td>配置健康检查的参数,详细可参考<a 
href="/apisix/health-check">health-check</a></td></tr>
 <tr><td>retries</td><td>可选</td><td>使用底层的 Nginx 重试机制将请求传递给下一个上游,默认 APISIX 
会启用重试机制,根据配置的后端节点个数设置重试次数,如果此参数显式被设置将会覆盖系统默认设置的重试次数。</td></tr>
-<tr><td>enable_websocket</td><td>可选</td><td>是否启用 
<code>websocket</code>(布尔值),默认不启用</td></tr>
 <tr><td>labels</td><td>可选</td><td>用于标识属性的键值对。</td></tr>
 <tr><td>pass_host</td><td>可选</td><td><code>pass</code> 透传客户端请求的 host, 
<code>node</code> 不透传客户端请求的 host, 使用 upstream node 配置的 host, 
<code>rewrite</code> 使用 <code>upstream_host</code> 配置的值重写 host 。</td></tr>
 <tr><td>upstream_host</td><td>可选</td><td>只在 <code>pass_host</code> 配置为 
<code>rewrite</code> 时有效。</td></tr>
@@ -251,7 +250,6 @@ curl http://127.0.0.1:9080/apisix/admin/upstreams/2 -H 
'X-API-KEY: edd1c9f034335
 {
     "type": "chash",
     "key": "remote_addr",
-    "enable_websocket": true,
     "nodes": {
         "127.0.0.1:80": 1,
         "foo.com:80": 2
diff --git a/apisix/zh-cn/architecture-design/index.html 
b/apisix/zh-cn/architecture-design/index.html
index 56f2e84..1385ae3 100644
--- a/apisix/zh-cn/architecture-design/index.html
+++ b/apisix/zh-cn/architecture-design/index.html
@@ -220,7 +220,6 @@ curl http://127.0.0.1:9080/apisix/admin/routes/101 -H 
'X-API-KEY: edd1c9f034335f
 <tr><td>hash_on</td><td>可选</td><td><code>hash_on</code> 支持的类型有 
<code>vars</code>(Nginx内置变量),<code>header</code>(自定义header),<code>cookie</code>,<code>consumer</code>,默认值为
 <code>vars</code></td></tr>
 <tr><td>checks</td><td>可选</td><td>配置健康检查的参数,详细可参考<a 
href="/apisix/health-check">health-check</a></td></tr>
 <tr><td>retries</td><td>可选</td><td>使用底层的 Nginx 重试机制将请求传递给下一个上游,默认 APISIX 
会启用重试机制,根据配置的后端节点个数设置重试次数,如果此参数显式被设置将会覆盖系统默认设置的重试次数。</td></tr>
-<tr><td>enable_websocket</td><td>可选</td><td>是否启用 
<code>websocket</code>(布尔值),默认不启用</td></tr>
 <tr><td>labels</td><td>可选</td><td>用于标识属性的键值对。</td></tr>
 <tr><td>pass_host</td><td>可选</td><td><code>pass</code> 透传客户端请求的 host, 
<code>node</code> 不透传客户端请求的 host, 使用 upstream node 配置的 host, 
<code>rewrite</code> 使用 <code>upstream_host</code> 配置的值重写 host 。</td></tr>
 <tr><td>upstream_host</td><td>可选</td><td>只在 <code>pass_host</code> 配置为 
<code>rewrite</code> 时有效。</td></tr>
@@ -251,7 +250,6 @@ curl http://127.0.0.1:9080/apisix/admin/upstreams/2 -H 
'X-API-KEY: edd1c9f034335
 {
     "type": "chash",
     "key": "remote_addr",
-    "enable_websocket": true,
     "nodes": {
         "127.0.0.1:80": 1,
         "foo.com:80": 2
diff --git a/apisix/zh-cn/plugins/batch-requests.html 
b/apisix/zh-cn/plugins/batch-requests.html
index c8e16f9..e647391 100644
--- a/apisix/zh-cn/plugins/batch-requests.html
+++ b/apisix/zh-cn/plugins/batch-requests.html
@@ -45,7 +45,7 @@
 <h2><a class="anchor" aria-hidden="true" id="属性"></a><a href="#属性" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <p>无</p>
 <h2><a class="anchor" aria-hidden="true" id="接口"></a><a href="#接口" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>插件会增加 <code>/apisix/batch-requests</code> 这个接口,你可能需要通过 <a 
href="plugin-interceptors.md">interceptors</a>
+<p>插件会增加 <code>/apisix/batch-requests</code> 这个接口,你可能需要通过 <a 
href="/apisix/plugin-interceptors">interceptors</a>
 来保护它。</p>
 <h2><a class="anchor" aria-hidden="true" id="如何启用"></a><a href="#如何启用" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
 <p>本插件默认启用。</p>
diff --git a/apisix/zh-cn/plugins/batch-requests/index.html 
b/apisix/zh-cn/plugins/batch-requests/index.html
index c8e16f9..e647391 100644
--- a/apisix/zh-cn/plugins/batch-requests/index.html
+++ b/apisix/zh-cn/plugins/batch-requests/index.html
@@ -45,7 +45,7 @@
 <h2><a class="anchor" aria-hidden="true" id="属性"></a><a href="#属性" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <p>无</p>
 <h2><a class="anchor" aria-hidden="true" id="接口"></a><a href="#接口" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>插件会增加 <code>/apisix/batch-requests</code> 这个接口,你可能需要通过 <a 
href="plugin-interceptors.md">interceptors</a>
+<p>插件会增加 <code>/apisix/batch-requests</code> 这个接口,你可能需要通过 <a 
href="/apisix/plugin-interceptors">interceptors</a>
 来保护它。</p>
 <h2><a class="anchor" aria-hidden="true" id="如何启用"></a><a href="#如何启用" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
 <p>本插件默认启用。</p>
diff --git a/apisix/zh-cn/plugins/jwt-auth.html 
b/apisix/zh-cn/plugins/jwt-auth.html
index 0f17b91..098b088 100644
--- a/apisix/zh-cn/plugins/jwt-auth.html
+++ b/apisix/zh-cn/plugins/jwt-auth.html
@@ -53,7 +53,7 @@
 </tbody>
 </table>
 <h2><a class="anchor" aria-hidden="true" id="接口"></a><a href="#接口" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>插件会增加 <code>/apisix/plugin/jwt/sign</code> 这个接口,你可能需要通过 <a 
href="plugin-interceptors.md">interceptors</a>
+<p>插件会增加 <code>/apisix/plugin/jwt/sign</code> 这个接口,你可能需要通过 <a 
href="/apisix/plugin-interceptors">interceptors</a>
 来保护它。</p>
 <h2><a class="anchor" aria-hidden="true" id="如何启用"></a><a href="#如何启用" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
 <ol>
diff --git a/apisix/zh-cn/plugins/jwt-auth/index.html 
b/apisix/zh-cn/plugins/jwt-auth/index.html
index 0f17b91..098b088 100644
--- a/apisix/zh-cn/plugins/jwt-auth/index.html
+++ b/apisix/zh-cn/plugins/jwt-auth/index.html
@@ -53,7 +53,7 @@
 </tbody>
 </table>
 <h2><a class="anchor" aria-hidden="true" id="接口"></a><a href="#接口" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>插件会增加 <code>/apisix/plugin/jwt/sign</code> 这个接口,你可能需要通过 <a 
href="plugin-interceptors.md">interceptors</a>
+<p>插件会增加 <code>/apisix/plugin/jwt/sign</code> 这个接口,你可能需要通过 <a 
href="/apisix/plugin-interceptors">interceptors</a>
 来保护它。</p>
 <h2><a class="anchor" aria-hidden="true" id="如何启用"></a><a href="#如何启用" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
 <ol>
diff --git a/apisix/zh-cn/plugins/prometheus.html 
b/apisix/zh-cn/plugins/prometheus.html
index b41c7c6..d56a907 100644
--- a/apisix/zh-cn/plugins/prometheus.html
+++ b/apisix/zh-cn/plugins/prometheus.html
@@ -30,7 +30,7 @@
 <h2><a class="anchor" aria-hidden="true" id="属性"></a><a href="#属性" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <p>无</p>
 <h2><a class="anchor" aria-hidden="true" id="接口"></a><a href="#接口" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>插件会增加 <code>/apisix/prometheus/metrics</code> 这个接口,你可能需要通过 <a 
href="plugin-interceptors.md">interceptors</a>
+<p>插件会增加 <code>/apisix/prometheus/metrics</code> 这个接口,你可能需要通过 <a 
href="/apisix/plugin-interceptors">interceptors</a>
 来保护它。</p>
 <h2><a class="anchor" aria-hidden="true" id="如何开启插件"></a><a href="#如何开启插件" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <p><code>prometheus</code> 插件用空{}就可以开启了,他没有任何的选项。</p>
diff --git a/apisix/zh-cn/plugins/prometheus/index.html 
b/apisix/zh-cn/plugins/prometheus/index.html
index b41c7c6..d56a907 100644
--- a/apisix/zh-cn/plugins/prometheus/index.html
+++ b/apisix/zh-cn/plugins/prometheus/index.html
@@ -30,7 +30,7 @@
 <h2><a class="anchor" aria-hidden="true" id="属性"></a><a href="#属性" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <p>无</p>
 <h2><a class="anchor" aria-hidden="true" id="接口"></a><a href="#接口" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>插件会增加 <code>/apisix/prometheus/metrics</code> 这个接口,你可能需要通过 <a 
href="plugin-interceptors.md">interceptors</a>
+<p>插件会增加 <code>/apisix/prometheus/metrics</code> 这个接口,你可能需要通过 <a 
href="/apisix/plugin-interceptors">interceptors</a>
 来保护它。</p>
 <h2><a class="anchor" aria-hidden="true" id="如何开启插件"></a><a href="#如何开启插件" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <p><code>prometheus</code> 插件用空{}就可以开启了,他没有任何的选项。</p>
diff --git a/apisix/zh-cn/plugins/wolf-rbac.html 
b/apisix/zh-cn/plugins/wolf-rbac.html
index a8a3d17..b11e657 100644
--- a/apisix/zh-cn/plugins/wolf-rbac.html
+++ b/apisix/zh-cn/plugins/wolf-rbac.html
@@ -55,7 +55,7 @@ rbac功能由<a href="https://github.com/iGeeky/wolf";>wolf</a>提供, 
有关 <co
 <li>/apisix/plugin/wolf-rbac/change_pwd</li>
 <li>/apisix/plugin/wolf-rbac/user_info</li>
 </ul>
-<p>你可能需要通过 <a href="plugin-interceptors.md">interceptors</a> 来保护它们。</p>
+<p>你可能需要通过 <a href="/apisix/plugin-interceptors">interceptors</a> 来保护它们。</p>
 <h2><a class="anchor" aria-hidden="true" id="依赖项"></a><a href="#依赖项" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <h3><a class="anchor" aria-hidden="true" id="安装-wolf-并启动服务"></a><a 
href="#安装-wolf-并启动服务" aria-hidden="true" class="hash-link"><svg 
class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 
0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 
0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 
3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 
9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p><a 
href="https://github.com/iGeeky/wolf/blob/master/quick-start-with-docker/README-CN.md";>Wolf快速起步</a></p>
diff --git a/apisix/zh-cn/plugins/wolf-rbac/index.html 
b/apisix/zh-cn/plugins/wolf-rbac/index.html
index a8a3d17..b11e657 100644
--- a/apisix/zh-cn/plugins/wolf-rbac/index.html
+++ b/apisix/zh-cn/plugins/wolf-rbac/index.html
@@ -55,7 +55,7 @@ rbac功能由<a href="https://github.com/iGeeky/wolf";>wolf</a>提供, 
有关 <co
 <li>/apisix/plugin/wolf-rbac/change_pwd</li>
 <li>/apisix/plugin/wolf-rbac/user_info</li>
 </ul>
-<p>你可能需要通过 <a href="plugin-interceptors.md">interceptors</a> 来保护它们。</p>
+<p>你可能需要通过 <a href="/apisix/plugin-interceptors">interceptors</a> 来保护它们。</p>
 <h2><a class="anchor" aria-hidden="true" id="依赖项"></a><a href="#依赖项" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.2 [...]
 <h3><a class="anchor" aria-hidden="true" id="安装-wolf-并启动服务"></a><a 
href="#安装-wolf-并启动服务" aria-hidden="true" class="hash-link"><svg 
class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 
0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 
0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 
3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 
9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p><a 
href="https://github.com/iGeeky/wolf/blob/master/quick-start-with-docker/README-CN.md";>Wolf快速起步</a></p>
diff --git a/committer-guide.html b/committer-guide.html
index 69191cf..1b4d8a2 100644
--- a/committer-guide.html
+++ b/committer-guide.html
@@ -100,7 +100,7 @@
 <h2><a class="anchor" aria-hidden="true" 
id="how-to-become-a-apisix-pmc"></a><a href="#how-to-become-a-apisix-pmc" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H [...]
 <p>In APISIX community, if a committer who have earned even more merit, can be 
invited to be a part of the Project Management Committee (PMC).</p>
 <p>One thing that is sometimes hard to understand when you are new to the open 
development process used at the ASF, is that we value the community more than 
the code. A strong and healthy community will be respectful and be a fun and 
rewarding place. More importantly, a diverse and healthy community can continue 
to support the code over the longer term, even as individual companies come and 
go from the field.</p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 
11/10/2020 by 琚致远</em></div><div class="docs-prevnext"><a class="docs-prev 
button" href="/contributor-guide"><span class="arrow-prev">← 
</span><span>Contributor Guide</span></a><a class="docs-next button" 
href="/2fa"><span>2FA</span><span class="arrow-next"> 
→</span></a></div></div></div><nav class="onPageNav"><ul 
class="toc-headings"><li><a href="#what-can-i-contribute">What can I 
contribute?</a></li><li><a href [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 
11/11/2020 by 琚致远</em></div><div class="docs-prevnext"><a class="docs-prev 
button" href="/contributor-guide"><span class="arrow-prev">← 
</span><span>Contributor Guide</span></a><a class="docs-next button" 
href="/2fa"><span>2FA</span><span class="arrow-next"> 
→</span></a></div></div></div><nav class="onPageNav"><ul 
class="toc-headings"><li><a href="#what-can-i-contribute">What can I 
contribute?</a></li><li><a href [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/committer-guide/index.html b/committer-guide/index.html
index 69191cf..1b4d8a2 100644
--- a/committer-guide/index.html
+++ b/committer-guide/index.html
@@ -100,7 +100,7 @@
 <h2><a class="anchor" aria-hidden="true" 
id="how-to-become-a-apisix-pmc"></a><a href="#how-to-become-a-apisix-pmc" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H [...]
 <p>In APISIX community, if a committer who have earned even more merit, can be 
invited to be a part of the Project Management Committee (PMC).</p>
 <p>One thing that is sometimes hard to understand when you are new to the open 
development process used at the ASF, is that we value the community more than 
the code. A strong and healthy community will be respectful and be a fun and 
rewarding place. More importantly, a diverse and healthy community can continue 
to support the code over the longer term, even as individual companies come and 
go from the field.</p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 
11/10/2020 by 琚致远</em></div><div class="docs-prevnext"><a class="docs-prev 
button" href="/contributor-guide"><span class="arrow-prev">← 
</span><span>Contributor Guide</span></a><a class="docs-next button" 
href="/2fa"><span>2FA</span><span class="arrow-next"> 
→</span></a></div></div></div><nav class="onPageNav"><ul 
class="toc-headings"><li><a href="#what-can-i-contribute">What can I 
contribute?</a></li><li><a href [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 
11/11/2020 by 琚致远</em></div><div class="docs-prevnext"><a class="docs-prev 
button" href="/contributor-guide"><span class="arrow-prev">← 
</span><span>Contributor Guide</span></a><a class="docs-next button" 
href="/2fa"><span>2FA</span><span class="arrow-next"> 
→</span></a></div></div></div><nav class="onPageNav"><ul 
class="toc-headings"><li><a href="#what-can-i-contribute">What can I 
contribute?</a></li><li><a href [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/contributor-guide.html b/contributor-guide.html
index d3599b3..1e9e191 100644
--- a/contributor-guide.html
+++ b/contributor-guide.html
@@ -115,7 +115,7 @@ $ git push origin --delete issueNo
 <pre><code class="hljs css language-sh">$ git config --global user.name <span 
class="hljs-string">"username"</span>
 $ git config --global user.email <span class="hljs-string">"mail 
address"</span>
 </code></pre>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 
11/10/2020 by 琚致远</em></div><div class="docs-prevnext"><a class="docs-prev 
button" href="/subscrbe-guide"><span class="arrow-prev">← 
</span><span>Subscribe Guide</span></a><a class="docs-next button" 
href="/committer-guide"><span>Committer Guide</span><span class="arrow-next"> 
→</span></a></div></div></div><nav class="onPageNav"><ul 
class="toc-headings"><li><a href="#submit-an-issue">Submit an 
issue</a></li><li>< [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 
11/11/2020 by 琚致远</em></div><div class="docs-prevnext"><a class="docs-prev 
button" href="/subscrbe-guide"><span class="arrow-prev">← 
</span><span>Subscribe Guide</span></a><a class="docs-next button" 
href="/committer-guide"><span>Committer Guide</span><span class="arrow-next"> 
→</span></a></div></div></div><nav class="onPageNav"><ul 
class="toc-headings"><li><a href="#submit-an-issue">Submit an 
issue</a></li><li>< [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/contributor-guide/index.html b/contributor-guide/index.html
index d3599b3..1e9e191 100644
--- a/contributor-guide/index.html
+++ b/contributor-guide/index.html
@@ -115,7 +115,7 @@ $ git push origin --delete issueNo
 <pre><code class="hljs css language-sh">$ git config --global user.name <span 
class="hljs-string">"username"</span>
 $ git config --global user.email <span class="hljs-string">"mail 
address"</span>
 </code></pre>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 
11/10/2020 by 琚致远</em></div><div class="docs-prevnext"><a class="docs-prev 
button" href="/subscrbe-guide"><span class="arrow-prev">← 
</span><span>Subscribe Guide</span></a><a class="docs-next button" 
href="/committer-guide"><span>Committer Guide</span><span class="arrow-next"> 
→</span></a></div></div></div><nav class="onPageNav"><ul 
class="toc-headings"><li><a href="#submit-an-issue">Submit an 
issue</a></li><li>< [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 
11/11/2020 by 琚致远</em></div><div class="docs-prevnext"><a class="docs-prev 
button" href="/subscrbe-guide"><span class="arrow-prev">← 
</span><span>Subscribe Guide</span></a><a class="docs-next button" 
href="/committer-guide"><span>Committer Guide</span><span class="arrow-next"> 
→</span></a></div></div></div><nav class="onPageNav"><ul 
class="toc-headings"><li><a href="#submit-an-issue">Submit an 
issue</a></li><li>< [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/downloads.html b/downloads.html
index 17f492a..6eee53d 100644
--- a/downloads.html
+++ b/downloads.html
@@ -57,7 +57,7 @@ or
 
 pgp apache-apisix-**\*\*\*\***.asc
 </code></pre>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 
11/10/2020 by 琚致远</em></div><div class="docs-prevnext"></div></div></div><nav 
class="onPageNav"><ul class="toc-headings"><li><a 
href="#apisix">APISIX™</a></li><li><a href="#apisix-dashboard">APISIX™ 
Dashboard</a></li><li><a href="#verify-the-releases">Verify the 
releases</a></li></ul></nav></div><footer class="nav-footer" 
id="footer"><section class="sitemap"><a href="/" 
class="nav-home"></a><div><h5>ASF</h5><a hr [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 
11/11/2020 by 琚致远</em></div><div class="docs-prevnext"></div></div></div><nav 
class="onPageNav"><ul class="toc-headings"><li><a 
href="#apisix">APISIX™</a></li><li><a href="#apisix-dashboard">APISIX™ 
Dashboard</a></li><li><a href="#verify-the-releases">Verify the 
releases</a></li></ul></nav></div><footer class="nav-footer" 
id="footer"><section class="sitemap"><a href="/" 
class="nav-home"></a><div><h5>ASF</h5><a hr [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/downloads/index.html b/downloads/index.html
index 17f492a..6eee53d 100644
--- a/downloads/index.html
+++ b/downloads/index.html
@@ -57,7 +57,7 @@ or
 
 pgp apache-apisix-**\*\*\*\***.asc
 </code></pre>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 
11/10/2020 by 琚致远</em></div><div class="docs-prevnext"></div></div></div><nav 
class="onPageNav"><ul class="toc-headings"><li><a 
href="#apisix">APISIX™</a></li><li><a href="#apisix-dashboard">APISIX™ 
Dashboard</a></li><li><a href="#verify-the-releases">Verify the 
releases</a></li></ul></nav></div><footer class="nav-footer" 
id="footer"><section class="sitemap"><a href="/" 
class="nav-home"></a><div><h5>ASF</h5><a hr [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 
11/11/2020 by 琚致远</em></div><div class="docs-prevnext"></div></div></div><nav 
class="onPageNav"><ul class="toc-headings"><li><a 
href="#apisix">APISIX™</a></li><li><a href="#apisix-dashboard">APISIX™ 
Dashboard</a></li><li><a href="#verify-the-releases">Verify the 
releases</a></li></ul></nav></div><footer class="nav-footer" 
id="footer"><section class="sitemap"><a href="/" 
class="nav-home"></a><div><h5>ASF</h5><a hr [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/images/apache.png b/images/apache.png
new file mode 100644
index 0000000..ff81814
Binary files /dev/null and b/images/apache.png differ
diff --git a/images/apisix.png b/images/apisix.png
new file mode 100644
index 0000000..db4a689
Binary files /dev/null and b/images/apisix.png differ
diff --git a/images/benchmark-1.jpg b/images/benchmark-1.jpg
new file mode 100644
index 0000000..99071d1
Binary files /dev/null and b/images/benchmark-1.jpg differ
diff --git a/images/benchmark-2.jpg b/images/benchmark-2.jpg
new file mode 100644
index 0000000..e479398
Binary files /dev/null and b/images/benchmark-2.jpg differ
diff --git a/images/consumer-internal.png b/images/consumer-internal.png
new file mode 100644
index 0000000..ff6dd70
Binary files /dev/null and b/images/consumer-internal.png differ
diff --git a/images/consumer-who.png b/images/consumer-who.png
new file mode 100644
index 0000000..daf7878
Binary files /dev/null and b/images/consumer-who.png differ
diff --git a/images/contributor-over-time.png b/images/contributor-over-time.png
new file mode 100644
index 0000000..caf56ab
Binary files /dev/null and b/images/contributor-over-time.png differ
diff --git a/images/dashboard.png b/images/dashboard.png
new file mode 100644
index 0000000..5dd4a37
Binary files /dev/null and b/images/dashboard.png differ
diff --git a/images/discovery-cn.png b/images/discovery-cn.png
new file mode 100644
index 0000000..8e79115
Binary files /dev/null and b/images/discovery-cn.png differ
diff --git a/images/discovery.png b/images/discovery.png
new file mode 100644
index 0000000..b610a02
Binary files /dev/null and b/images/discovery.png differ
diff --git a/images/flamegraph-1.jpg b/images/flamegraph-1.jpg
new file mode 100644
index 0000000..377a938
Binary files /dev/null and b/images/flamegraph-1.jpg differ
diff --git a/images/flamegraph-2.jpg b/images/flamegraph-2.jpg
new file mode 100644
index 0000000..e6917de
Binary files /dev/null and b/images/flamegraph-2.jpg differ
diff --git a/images/flow-load-plugin.png b/images/flow-load-plugin.png
new file mode 100644
index 0000000..6ba3f10
Binary files /dev/null and b/images/flow-load-plugin.png differ
diff --git a/images/flow-plugin-internal.png b/images/flow-plugin-internal.png
new file mode 100644
index 0000000..fe90ee6
Binary files /dev/null and b/images/flow-plugin-internal.png differ
diff --git a/images/latency-1.jpg b/images/latency-1.jpg
new file mode 100644
index 0000000..07f3811
Binary files /dev/null and b/images/latency-1.jpg differ
diff --git a/images/latency-2.jpg b/images/latency-2.jpg
new file mode 100644
index 0000000..44b5d81
Binary files /dev/null and b/images/latency-2.jpg differ
diff --git a/images/plugin/authz-keycloak.png b/images/plugin/authz-keycloak.png
new file mode 100644
index 0000000..326779c
Binary files /dev/null and b/images/plugin/authz-keycloak.png differ
diff --git a/images/plugin/basic-auth-1.png b/images/plugin/basic-auth-1.png
new file mode 100644
index 0000000..5636608
Binary files /dev/null and b/images/plugin/basic-auth-1.png differ
diff --git a/images/plugin/basic-auth-2.png b/images/plugin/basic-auth-2.png
new file mode 100644
index 0000000..009bf0a
Binary files /dev/null and b/images/plugin/basic-auth-2.png differ
diff --git a/images/plugin/grafana_1.png b/images/plugin/grafana_1.png
new file mode 100644
index 0000000..8481c57
Binary files /dev/null and b/images/plugin/grafana_1.png differ
diff --git a/images/plugin/grafana_2.png b/images/plugin/grafana_2.png
new file mode 100644
index 0000000..0feed47
Binary files /dev/null and b/images/plugin/grafana_2.png differ
diff --git a/images/plugin/grafana_3.png b/images/plugin/grafana_3.png
new file mode 100644
index 0000000..09ce102
Binary files /dev/null and b/images/plugin/grafana_3.png differ
diff --git a/images/plugin/jwt-auth-1.png b/images/plugin/jwt-auth-1.png
new file mode 100644
index 0000000..f5b618d
Binary files /dev/null and b/images/plugin/jwt-auth-1.png differ
diff --git a/images/plugin/jwt-auth-2.png b/images/plugin/jwt-auth-2.png
new file mode 100644
index 0000000..e6af7c6
Binary files /dev/null and b/images/plugin/jwt-auth-2.png differ
diff --git a/images/plugin/key-auth-1.png b/images/plugin/key-auth-1.png
new file mode 100644
index 0000000..de338e4
Binary files /dev/null and b/images/plugin/key-auth-1.png differ
diff --git a/images/plugin/key-auth-2.png b/images/plugin/key-auth-2.png
new file mode 100644
index 0000000..4916069
Binary files /dev/null and b/images/plugin/key-auth-2.png differ
diff --git a/images/plugin/limit-conn-1.png b/images/plugin/limit-conn-1.png
new file mode 100644
index 0000000..8eb37ec
Binary files /dev/null and b/images/plugin/limit-conn-1.png differ
diff --git a/images/plugin/limit-conn-2.png b/images/plugin/limit-conn-2.png
new file mode 100644
index 0000000..9ea1622
Binary files /dev/null and b/images/plugin/limit-conn-2.png differ
diff --git a/images/plugin/limit-count-1.png b/images/plugin/limit-count-1.png
new file mode 100644
index 0000000..da3e4f7
Binary files /dev/null and b/images/plugin/limit-count-1.png differ
diff --git a/images/plugin/limit-count-2.png b/images/plugin/limit-count-2.png
new file mode 100644
index 0000000..6f218f1
Binary files /dev/null and b/images/plugin/limit-count-2.png differ
diff --git a/images/plugin/limit-req-1.png b/images/plugin/limit-req-1.png
new file mode 100644
index 0000000..31fc211
Binary files /dev/null and b/images/plugin/limit-req-1.png differ
diff --git a/images/plugin/limit-req-2.png b/images/plugin/limit-req-2.png
new file mode 100644
index 0000000..6bc3fea
Binary files /dev/null and b/images/plugin/limit-req-2.png differ
diff --git a/images/plugin/oauth-1.png b/images/plugin/oauth-1.png
new file mode 100644
index 0000000..9d65d7c
Binary files /dev/null and b/images/plugin/oauth-1.png differ
diff --git a/images/plugin/prometheus-1.png b/images/plugin/prometheus-1.png
new file mode 100644
index 0000000..43b30de
Binary files /dev/null and b/images/plugin/prometheus-1.png differ
diff --git a/images/plugin/prometheus-2.png b/images/plugin/prometheus-2.png
new file mode 100644
index 0000000..f5b5954
Binary files /dev/null and b/images/plugin/prometheus-2.png differ
diff --git a/images/plugin/prometheus01.png b/images/plugin/prometheus01.png
new file mode 100644
index 0000000..492a30b
Binary files /dev/null and b/images/plugin/prometheus01.png differ
diff --git a/images/plugin/prometheus02.png b/images/plugin/prometheus02.png
new file mode 100644
index 0000000..bdbf2b5
Binary files /dev/null and b/images/plugin/prometheus02.png differ
diff --git a/images/plugin/skywalking-1.png b/images/plugin/skywalking-1.png
new file mode 100644
index 0000000..2969f06
Binary files /dev/null and b/images/plugin/skywalking-1.png differ
diff --git a/images/plugin/skywalking-2.png b/images/plugin/skywalking-2.png
new file mode 100644
index 0000000..7b693b0
Binary files /dev/null and b/images/plugin/skywalking-2.png differ
diff --git a/images/plugin/skywalking-3.png b/images/plugin/skywalking-3.png
new file mode 100644
index 0000000..45a0f22
Binary files /dev/null and b/images/plugin/skywalking-3.png differ
diff --git a/images/plugin/skywalking-4.png b/images/plugin/skywalking-4.png
new file mode 100644
index 0000000..1b436cc
Binary files /dev/null and b/images/plugin/skywalking-4.png differ
diff --git a/images/plugin/skywalking-5.png b/images/plugin/skywalking-5.png
new file mode 100644
index 0000000..55ce995
Binary files /dev/null and b/images/plugin/skywalking-5.png differ
diff --git a/images/plugin/wolf-rbac-1.png b/images/plugin/wolf-rbac-1.png
new file mode 100644
index 0000000..37d3dfa
Binary files /dev/null and b/images/plugin/wolf-rbac-1.png differ
diff --git a/images/plugin/wolf-rbac-2.png b/images/plugin/wolf-rbac-2.png
new file mode 100644
index 0000000..eb9d69b
Binary files /dev/null and b/images/plugin/wolf-rbac-2.png differ
diff --git a/images/plugin/zipkin-1.jpg b/images/plugin/zipkin-1.jpg
new file mode 100644
index 0000000..04a8bd7
Binary files /dev/null and b/images/plugin/zipkin-1.jpg differ
diff --git a/images/plugin/zipkin-1.png b/images/plugin/zipkin-1.png
new file mode 100644
index 0000000..7c9676b
Binary files /dev/null and b/images/plugin/zipkin-1.png differ
diff --git a/images/plugin/zipkin-2.jpg b/images/plugin/zipkin-2.jpg
new file mode 100644
index 0000000..9a2aee2
Binary files /dev/null and b/images/plugin/zipkin-2.jpg differ
diff --git a/images/plugin/zipkin-2.png b/images/plugin/zipkin-2.png
new file mode 100644
index 0000000..0198160
Binary files /dev/null and b/images/plugin/zipkin-2.png differ
diff --git a/images/routes-example.png b/images/routes-example.png
new file mode 100644
index 0000000..69ee8a7
Binary files /dev/null and b/images/routes-example.png differ
diff --git a/images/service-example.png b/images/service-example.png
new file mode 100644
index 0000000..9b53a42
Binary files /dev/null and b/images/service-example.png differ
diff --git a/images/upstream-example.png b/images/upstream-example.png
new file mode 100644
index 0000000..b6c3bd6
Binary files /dev/null and b/images/upstream-example.png differ
diff --git a/release-guide.html b/release-guide.html
index 5554813..b74a02c 100644
--- a/release-guide.html
+++ b/release-guide.html
@@ -232,7 +232,7 @@ Committed revision 37435.
 <p>Remove <code>rc</code> from the package name, move KEYS and package to 
address</p>
 <h3><a class="anchor" aria-hidden="true" id="update-download-page"></a><a 
href="#update-download-page" aria-hidden="true" class="hash-link"><svg 
class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 
0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 
0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 
3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 
9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1 [...]
 <p>update address , source repo is <a 
href="https://github.com/apache/apisix-website";>https://github.com/apache/apisix-website</a></p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 
11/10/2020 by 琚致远</em></div><div class="docs-prevnext"><a class="docs-prev 
button" href="/2fa"><span class="arrow-prev">← 
</span><span>2FA</span></a></div></div></div><nav class="onPageNav"><ul 
class="toc-headings"><li><a href="#gpg-settings">GPG Settings</a><ul 
class="toc-headings"><li><a href="#install-gpg">Install GPG</a></li><li><a 
href="#create-key">Create Key</a></li><li><a href="#view-the-generated-key">Vi 
[...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 
11/11/2020 by 琚致远</em></div><div class="docs-prevnext"><a class="docs-prev 
button" href="/2fa"><span class="arrow-prev">← 
</span><span>2FA</span></a></div></div></div><nav class="onPageNav"><ul 
class="toc-headings"><li><a href="#gpg-settings">GPG Settings</a><ul 
class="toc-headings"><li><a href="#install-gpg">Install GPG</a></li><li><a 
href="#create-key">Create Key</a></li><li><a href="#view-the-generated-key">Vi 
[...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/release-guide/index.html b/release-guide/index.html
index 5554813..b74a02c 100644
--- a/release-guide/index.html
+++ b/release-guide/index.html
@@ -232,7 +232,7 @@ Committed revision 37435.
 <p>Remove <code>rc</code> from the package name, move KEYS and package to 
address</p>
 <h3><a class="anchor" aria-hidden="true" id="update-download-page"></a><a 
href="#update-download-page" aria-hidden="true" class="hash-link"><svg 
class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 
0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 
0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 
3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 
9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1 [...]
 <p>update address , source repo is <a 
href="https://github.com/apache/apisix-website";>https://github.com/apache/apisix-website</a></p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 
11/10/2020 by 琚致远</em></div><div class="docs-prevnext"><a class="docs-prev 
button" href="/2fa"><span class="arrow-prev">← 
</span><span>2FA</span></a></div></div></div><nav class="onPageNav"><ul 
class="toc-headings"><li><a href="#gpg-settings">GPG Settings</a><ul 
class="toc-headings"><li><a href="#install-gpg">Install GPG</a></li><li><a 
href="#create-key">Create Key</a></li><li><a href="#view-the-generated-key">Vi 
[...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 
11/11/2020 by 琚致远</em></div><div class="docs-prevnext"><a class="docs-prev 
button" href="/2fa"><span class="arrow-prev">← 
</span><span>2FA</span></a></div></div></div><nav class="onPageNav"><ul 
class="toc-headings"><li><a href="#gpg-settings">GPG Settings</a><ul 
class="toc-headings"><li><a href="#install-gpg">Install GPG</a></li><li><a 
href="#create-key">Create Key</a></li><li><a href="#view-the-generated-key">Vi 
[...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/security.html b/security.html
index 823ba9c..552225b 100644
--- a/security.html
+++ b/security.html
@@ -63,7 +63,7 @@
         </script></nav></div><div class="container mainContainer 
docsContainer"><div class="wrapper"><div class="post"><header 
class="postHeader"><h1 id="__docusaurus" 
class="postHeaderTitle">Security</h1></header><article><div><span><p>The Apache 
Software Foundation takes a rigorous stance on eliminating security issues in 
its software projects. Apache APISIX is also very concerned Security issues 
related to its features and functionality.</p>
 <p>If you have apprehensions regarding APISIX’s security or you discover 
vulnerability or potential threat, don’t hesitate to get in touch with the 
Apache Security Team by dropping a mail at <a 
href="mailto:[email protected]";>[email protected]</a>. Please specify the 
project name as APISIX and its product name APISIX or APISIX-Dashboard in the 
email and provide a description of the relevant problem or potential threat. 
You are also urged to recommend the way to reproduce and replicat [...]
 <p>Please pay attention to report the security issue on the security email 
before disclosing it on public domain.</p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 
11/10/2020 by 琚致远</em></div><div class="docs-prevnext"><a class="docs-next 
button" href="/subscrbe-guide"><span>Subscribe Guide</span><span 
class="arrow-next"> →</span></a></div></div></div><nav 
class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section 
class="sitemap"><a href="/" class="nav-home"></a><div><h5>ASF</h5><a 
href="https://www.apache.org/";>Foundation</a><a href="https://www.apache.o [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 
11/11/2020 by 琚致远</em></div><div class="docs-prevnext"><a class="docs-next 
button" href="/subscrbe-guide"><span>Subscribe Guide</span><span 
class="arrow-next"> →</span></a></div></div></div><nav 
class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section 
class="sitemap"><a href="/" class="nav-home"></a><div><h5>ASF</h5><a 
href="https://www.apache.org/";>Foundation</a><a href="https://www.apache.o [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/security/index.html b/security/index.html
index 823ba9c..552225b 100644
--- a/security/index.html
+++ b/security/index.html
@@ -63,7 +63,7 @@
         </script></nav></div><div class="container mainContainer 
docsContainer"><div class="wrapper"><div class="post"><header 
class="postHeader"><h1 id="__docusaurus" 
class="postHeaderTitle">Security</h1></header><article><div><span><p>The Apache 
Software Foundation takes a rigorous stance on eliminating security issues in 
its software projects. Apache APISIX is also very concerned Security issues 
related to its features and functionality.</p>
 <p>If you have apprehensions regarding APISIX’s security or you discover 
vulnerability or potential threat, don’t hesitate to get in touch with the 
Apache Security Team by dropping a mail at <a 
href="mailto:[email protected]";>[email protected]</a>. Please specify the 
project name as APISIX and its product name APISIX or APISIX-Dashboard in the 
email and provide a description of the relevant problem or potential threat. 
You are also urged to recommend the way to reproduce and replicat [...]
 <p>Please pay attention to report the security issue on the security email 
before disclosing it on public domain.</p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 
11/10/2020 by 琚致远</em></div><div class="docs-prevnext"><a class="docs-next 
button" href="/subscrbe-guide"><span>Subscribe Guide</span><span 
class="arrow-next"> →</span></a></div></div></div><nav 
class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section 
class="sitemap"><a href="/" class="nav-home"></a><div><h5>ASF</h5><a 
href="https://www.apache.org/";>Foundation</a><a href="https://www.apache.o [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 
11/11/2020 by 琚致远</em></div><div class="docs-prevnext"><a class="docs-next 
button" href="/subscrbe-guide"><span>Subscribe Guide</span><span 
class="arrow-next"> →</span></a></div></div></div><nav 
class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section 
class="sitemap"><a href="/" class="nav-home"></a><div><h5>ASF</h5><a 
href="https://www.apache.org/";>Foundation</a><a href="https://www.apache.o [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/sitemap.xml b/sitemap.xml
index b8884b5..9b85e47 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="UTF-8"?><urlset 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"; 
xmlns:news="http://www.google.com/schemas/sitemap-news/0.9"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml"; 
xmlns:mobile="http://www.google.com/schemas/sitemap-mobile/1.0"; 
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"; 
xmlns:video="http://www.google.com/schemas/sitemap-video/1.1";><url><loc>https://apisix.apache.org/help</loc><changefreq>weekly</changefreq><priority>0.5</priority><x
 [...]
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?><urlset 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"; 
xmlns:news="http://www.google.com/schemas/sitemap-news/0.9"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml"; 
xmlns:mobile="http://www.google.com/schemas/sitemap-mobile/1.0"; 
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"; 
xmlns:video="http://www.google.com/schemas/sitemap-video/1.1";><url><loc>https://apisix.apache.org/help</loc><changefreq>weekly</changefreq><priority>0.5</priority><x
 [...]
\ No newline at end of file
diff --git a/subscrbe-guide.html b/subscrbe-guide.html
index 2ed098c..4083dec 100644
--- a/subscrbe-guide.html
+++ b/subscrbe-guide.html
@@ -67,7 +67,7 @@
 <li><p>Receive the Welcome e-mail. After finishing the two steps above, an 
e-mail with the subject of WELCOME to <a 
href="mailto:[email protected]";>[email protected]</a> will be sent to 
your e-mail address. Until now, you have succeeded in subscribing Apache APISIX 
mailing-list.</p></li>
 <li><p>Until now, you can interact with community by your subscribed email or 
track email conversations by Archived email list.</p></li>
 </ol>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 
11/10/2020 by 琚致远</em></div><div class="docs-prevnext"><a class="docs-prev 
button" href="/security"><span class="arrow-prev">← 
</span><span>Security</span></a><a class="docs-next button" 
href="/contributor-guide"><span>Contributor Guide</span><span 
class="arrow-next"> →</span></a></div></div></div><nav 
class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section 
class="sitemap"><a href="/" class= [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 
11/11/2020 by 琚致远</em></div><div class="docs-prevnext"><a class="docs-prev 
button" href="/security"><span class="arrow-prev">← 
</span><span>Security</span></a><a class="docs-next button" 
href="/contributor-guide"><span>Contributor Guide</span><span 
class="arrow-next"> →</span></a></div></div></div><nav 
class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section 
class="sitemap"><a href="/" class= [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/subscrbe-guide/index.html b/subscrbe-guide/index.html
index 2ed098c..4083dec 100644
--- a/subscrbe-guide/index.html
+++ b/subscrbe-guide/index.html
@@ -67,7 +67,7 @@
 <li><p>Receive the Welcome e-mail. After finishing the two steps above, an 
e-mail with the subject of WELCOME to <a 
href="mailto:[email protected]";>[email protected]</a> will be sent to 
your e-mail address. Until now, you have succeeded in subscribing Apache APISIX 
mailing-list.</p></li>
 <li><p>Until now, you can interact with community by your subscribed email or 
track email conversations by Archived email list.</p></li>
 </ol>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 
11/10/2020 by 琚致远</em></div><div class="docs-prevnext"><a class="docs-prev 
button" href="/security"><span class="arrow-prev">← 
</span><span>Security</span></a><a class="docs-next button" 
href="/contributor-guide"><span>Contributor Guide</span><span 
class="arrow-next"> →</span></a></div></div></div><nav 
class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section 
class="sitemap"><a href="/" class= [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 
11/11/2020 by 琚致远</em></div><div class="docs-prevnext"><a class="docs-prev 
button" href="/security"><span class="arrow-prev">← 
</span><span>Security</span></a><a class="docs-next button" 
href="/contributor-guide"><span>Contributor Guide</span><span 
class="arrow-next"> →</span></a></div></div></div><nav 
class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section 
class="sitemap"><a href="/" class= [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/team.html b/team.html
index 27d93e3..973bf8a 100644
--- a/team.html
+++ b/team.html
@@ -72,7 +72,7 @@
 <h2><a class="anchor" aria-hidden="true" id="becoming-a-committer"></a><a 
href="#becoming-a-committer" aria-hidden="true" class="hash-link"><svg 
class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 
0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 
0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 
3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 
9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1 [...]
 <p>The Apache APISIX community follows the Apache Community’s process on 
accepting a new committer. After a contributor participates APISIX's community 
actively, PMC and Committers will make decisions to invite the contributor join 
Committers and PMC.</p>
 <p>You can read <a href="../docs/contributor-guide">Contributor Guide</a> to 
participate the community, and can get more information on <a 
href="../docs/committer-guide">Committer Guide</a>.</p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 
11/10/2020 by 琚致远</em></div><div class="docs-prevnext"></div></div></div><nav 
class="onPageNav"><ul class="toc-headings"><li><a 
href="#members">Members</a><ul class="toc-headings"><li><a 
href="#pmc">PMC</a></li><li><a 
href="#committer">Committer</a></li></ul></li><li><a 
href="#mentors">Mentors</a></li><li><a 
href="#contributors">Contributors</a></li><li><a 
href="#becoming-a-committer">Becoming a Committer</a></li [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 
11/11/2020 by 琚致远</em></div><div class="docs-prevnext"></div></div></div><nav 
class="onPageNav"><ul class="toc-headings"><li><a 
href="#members">Members</a><ul class="toc-headings"><li><a 
href="#pmc">PMC</a></li><li><a 
href="#committer">Committer</a></li></ul></li><li><a 
href="#mentors">Mentors</a></li><li><a 
href="#contributors">Contributors</a></li><li><a 
href="#becoming-a-committer">Becoming a Committer</a></li [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/team/index.html b/team/index.html
index 27d93e3..973bf8a 100644
--- a/team/index.html
+++ b/team/index.html
@@ -72,7 +72,7 @@
 <h2><a class="anchor" aria-hidden="true" id="becoming-a-committer"></a><a 
href="#becoming-a-committer" aria-hidden="true" class="hash-link"><svg 
class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 
0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 
0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 
3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 
9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1 [...]
 <p>The Apache APISIX community follows the Apache Community’s process on 
accepting a new committer. After a contributor participates APISIX's community 
actively, PMC and Committers will make decisions to invite the contributor join 
Committers and PMC.</p>
 <p>You can read <a href="../docs/contributor-guide">Contributor Guide</a> to 
participate the community, and can get more information on <a 
href="../docs/committer-guide">Committer Guide</a>.</p>
-</span></div></article></div><div class="docLastUpdate"><em>Last updated on 
11/10/2020 by 琚致远</em></div><div class="docs-prevnext"></div></div></div><nav 
class="onPageNav"><ul class="toc-headings"><li><a 
href="#members">Members</a><ul class="toc-headings"><li><a 
href="#pmc">PMC</a></li><li><a 
href="#committer">Committer</a></li></ul></li><li><a 
href="#mentors">Mentors</a></li><li><a 
href="#contributors">Contributors</a></li><li><a 
href="#becoming-a-committer">Becoming a Committer</a></li [...]
+</span></div></article></div><div class="docLastUpdate"><em>Last updated on 
11/11/2020 by 琚致远</em></div><div class="docs-prevnext"></div></div></div><nav 
class="onPageNav"><ul class="toc-headings"><li><a 
href="#members">Members</a><ul class="toc-headings"><li><a 
href="#pmc">PMC</a></li><li><a 
href="#committer">Committer</a></li></ul></li><li><a 
href="#mentors">Mentors</a></li><li><a 
href="#contributors">Contributors</a></li><li><a 
href="#becoming-a-committer">Becoming a Committer</a></li [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;

Reply via email to