You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by GitBox <gi...@apache.org> on 2022/03/10 14:05:48 UTC

[GitHub] [apisix] kwanhur opened a new pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

kwanhur opened a new pull request #6568:
URL: https://github.com/apache/apisix/pull/6568


   ### What this PR does / why we need it:
   <!--- Why is this change required? What problem does it solve? -->
   * add Chinese copywriting lint job
   * autocorrect fix docs/zh/latest/**/*.md
   * fix CHANGELOG.md conflict between markdownlint and autocorrect
   
   <!--- If it fixes an open issue, please link to the issue here. -->
   #6528
   ### Pre-submission checklist:
   
   <!--
   Please follow the PR manners:
   1. Use Draft if the PR is not ready to be reviewed
   2. Test is required for the feat/fix PR, unless you have a good reason
   3. Doc is required for the feat PR
   4. Use a new commit to resolve review instead of `push -f`
   5. If you need to resolve merge conflicts after the PR is reviewed, please merge master but do not rebase
   6. Use "request review" to notify the reviewer once you have resolved the review
   7. Only reviewer can click "Resolve conversation" to mark the reviewer's review resolved
   -->
   
   * [x] Did you explain what problem does this PR solve? Or what new features have been added?
   * [ ] Have you added corresponding test cases?
   * [ ] Have you modified the corresponding document?
   * [x] Is this PR backward compatible? **If it is not backward compatible, please discuss on the [mailing list](https://github.com/apache/apisix/tree/master#community) first**
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] kwanhur commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
kwanhur commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r827627810



##########
File path: docs/zh/latest/plugins/gzip.md
##########
@@ -25,7 +25,7 @@ title: gzip
 
 `gzip` 插件能动态设置 `Nginx` 的压缩行为。
 
-**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤6:为-apache-apisix-构建-openresty) 上。**
+**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤 6:为-apache-apisix-构建-openresty) 上。**

Review comment:
       The [en docs](https://github.com/apache/apisix/blob/master/docs/en/latest/how-to-build.md#step-1-install-apache-apisix) also place one space before numbers, it works fine.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] juzhiyuan commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
juzhiyuan commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r832872804



##########
File path: .github/workflows/doc-lint.yml
##########
@@ -34,3 +34,15 @@ jobs:
             echo "You need to run ./utils/fix-zh-doc-segment.py to fix them."
             exit 1
           fi
+
+  Chinse-Copywriting-lint:
+    name: Chinese Copywriting
+    runs-on: ubuntu-latest
+    timeout-minutes: 1
+    steps:
+      - uses: actions/checkout@v3
+      - name: check Chinese copywriting
+        run: |
+          curl -sSL https://git.io/JcGER | bash
+          autocorrect --version

Review comment:
       Hi @kwanhur, significant changes! 🎉
   
   I just reviewed what apisix-dashboard does, the submodule uses a specific commit id, but `get_latest_release` will always get the latest releases. If this repo releases a new version with unexpected codes, it will not look good for us either.
   
   Hope you can understand and use a specific version/commit instead of the latest. ❤️
   
   ![image](https://user-images.githubusercontent.com/2106987/159632416-6575272f-bcae-456e-bd39-46f1d28f787b.png)
   




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] juzhiyuan commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
juzhiyuan commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r830830909



##########
File path: .github/workflows/doc-lint.yml
##########
@@ -34,3 +34,15 @@ jobs:
             echo "You need to run ./utils/fix-zh-doc-segment.py to fix them."
             exit 1
           fi
+
+  Chinse-Copywriting-lint:
+    name: Chinese Copywriting
+    runs-on: ubuntu-latest
+    timeout-minutes: 1
+    steps:
+      - uses: actions/checkout@v3
+      - name: check Chinese copywriting
+        run: |
+          curl -sSL https://git.io/JcGER | bash
+          autocorrect --version

Review comment:
       According to ASF's policies, we have to use a submodule instead of cURL a link, bcoz we can't control the link and its service :(




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] juzhiyuan commented on pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
juzhiyuan commented on pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#issuecomment-1073402228


   Hi @kwanhur, I try to resolve those conflicts, but I don't know which change I should keep. Please resolve them 🙏


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] kwanhur commented on pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
kwanhur commented on pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#issuecomment-1073414567


   > Hi @kwanhur, I try to resolve those conflicts, but I don't know which change I should keep. Please resolve them 🙏
   
   Had resolved conflicts. Some ci jobs need to re-run manually, trigger them plz.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] Yiyiyimu commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
Yiyiyimu commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r832833474



##########
File path: .github/workflows/doc-lint.yml
##########
@@ -34,3 +34,15 @@ jobs:
             echo "You need to run ./utils/fix-zh-doc-segment.py to fix them."
             exit 1
           fi
+
+  Chinse-Copywriting-lint:
+    name: Chinese Copywriting
+    runs-on: ubuntu-latest
+    timeout-minutes: 1
+    steps:
+      - uses: actions/checkout@v3
+      - name: check Chinese copywriting
+        run: |
+          curl -sSL https://git.io/JcGER | bash
+          autocorrect --version

Review comment:
       versioned link LGTM and yes it would be equivalent with local submodule (with the aim of bind us with certain version but not the latest)




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] Yiyiyimu commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
Yiyiyimu commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r832833474



##########
File path: .github/workflows/doc-lint.yml
##########
@@ -34,3 +34,15 @@ jobs:
             echo "You need to run ./utils/fix-zh-doc-segment.py to fix them."
             exit 1
           fi
+
+  Chinse-Copywriting-lint:
+    name: Chinese Copywriting
+    runs-on: ubuntu-latest
+    timeout-minutes: 1
+    steps:
+      - uses: actions/checkout@v3
+      - name: check Chinese copywriting
+        run: |
+          curl -sSL https://git.io/JcGER | bash
+          autocorrect --version

Review comment:
       versioned link LGTM




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] juzhiyuan commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
juzhiyuan commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r827656616



##########
File path: .github/workflows/doc-lint.yml
##########
@@ -34,3 +34,15 @@ jobs:
             echo "You need to run ./utils/fix-zh-doc-segment.py to fix them."
             exit 1
           fi
+
+  Chinse-Copywriting-lint:
+    name: Chinese Copywriting
+    runs-on: ubuntu-latest
+    timeout-minutes: 1
+    steps:
+      - uses: actions/checkout@v3
+      - name: check Chinese copywriting
+        run: |
+          curl -sSL https://git.io/JcGER | bash
+          autocorrect --version

Review comment:
       see https://github.com/apache/apisix-dashboard/tree/master/.github/actions
   
   We're using submodule in dashboard project 😅




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] spacewander merged pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
spacewander merged pull request #6568:
URL: https://github.com/apache/apisix/pull/6568


   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] kwanhur commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
kwanhur commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r827846938



##########
File path: docs/zh/latest/plugins/gzip.md
##########
@@ -25,7 +25,7 @@ title: gzip
 
 `gzip` 插件能动态设置 `Nginx` 的压缩行为。
 
-**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤6:为-apache-apisix-构建-openresty) 上。**
+**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤 6:为-apache-apisix-构建-openresty) 上。**

Review comment:
       I had fixed these broken links, but it doesn't work fine originally by `[APISIX-OpenResty](../how-to-build.md#步骤6:为-apache-apisix-构建-openresty)` and fixed `[APISIX-OpenResty](../how-to-build.md#步骤-6:为-apache-apisix-构建-openresty)`.
   
   It works on `[APISIX-OpenResty](../how-to-build.md#步骤-6为-apache-apisix-构建-openresty)`, but this not correct for rule `place one space after number`. 
   
   Needs better solution.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] juzhiyuan commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
juzhiyuan commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r830710508



##########
File path: docs/zh/latest/plugins/traffic-split.md
##########
@@ -40,7 +40,7 @@ traffic-split 插件使用户可以逐步引导各个上游之间的流量百分
 | upstream.hash_on               | enum   | 可选   | vars | | `hash_on` 支持的类型有 `vars`(Nginx 内置变量),`header`(自定义 header),`cookie`,`consumer`,`vars_combinations`,默认值为 `vars`。更多详细信息请参考 [upstream](../admin-api.md#upstream) 用法。|
 | upstream.key                   | string | 可选   |      |    |  该选项只有类型是 `chash` 才有效。根据 `key` 来查找对应的 node `id`,相同的 `key` 在同一个对象中,永远返回相同 id。更多详细信息请参考 [upstream](../admin-api.md#upstream) 用法。 |
 | upstream.nodes                 | object | 可选   |        |        | 哈希表,内部元素的 key 是上游机器地址 列表,格式为地址 + Port,其中地址部 分可以是 IP 也可以是域名,⽐如 192.168.1.100:80、foo.com:80 等。 value 则是节点的权重,特别的,当权重 值为 0 有特殊含义,通常代表该上游节点 失效,永远不希望被选中。 |
-| upstream.timeout               | object | 可选   |  15     |        | 设置连接、发送消息、接收消息的超时时间(时间单位:秒,都默认为 15 秒)。 |
+| upstream.timeout               | object | 可选   |  15     |        | 设置连接、发送消息、接收消息的超时时间 (时间单位:秒,都默认为 15 秒)。 |
 | upstream.pass_host             | enum   | 可选   | "pass"   | ["pass", "node", "rewrite"]  | `pass`: 将客户端的 host 透传给上游; `node`: 使用 `upstream`  node 中配置的 host; `rewrite`: 使用配置项 `upstream_host` 的值 |

Review comment:
       Hi @yzeng25, could you please have a review and resolve some conversions?




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] kwanhur commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
kwanhur commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r828950840



##########
File path: docs/zh/latest/stream-proxy.md
##########
@@ -23,9 +23,9 @@ title: TCP/UDP 动态代理
 
 众多的闻名的应用和服务,像 LDAP、 MYSQL 和 RTMP ,选择 TCP 作为通信协议。 但是像 DNS、 syslog 和 RADIUS 这类非事务性的应用,他们选择了 UDP 协议。
 
-APISIX 可以对 TCP/UDP 协议进行代理并实现动态负载均衡。 在 nginx 世界,称 TCP/UDP 代理为 stream 代理,在 APISIX 这里我们也遵循了这个声明.
+APISIX 可以对 TCP/UDP 协议进行代理并实现动态负载均衡。 在 nginx 世界,称 TCP/UDP 代理为 stream 代理,在 APISIX 这里我们也遵循了这个声明。
 
-## 如何开启 Stream 代理?
+## 如何开启 Stream 代理?

Review comment:
       Better to remove the question mark, right?
   From the literal, meanings had been out.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] leslie-tsang commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
leslie-tsang commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r828955407



##########
File path: docs/zh/latest/stream-proxy.md
##########
@@ -23,9 +23,9 @@ title: TCP/UDP 动态代理
 
 众多的闻名的应用和服务,像 LDAP、 MYSQL 和 RTMP ,选择 TCP 作为通信协议。 但是像 DNS、 syslog 和 RADIUS 这类非事务性的应用,他们选择了 UDP 协议。
 
-APISIX 可以对 TCP/UDP 协议进行代理并实现动态负载均衡。 在 nginx 世界,称 TCP/UDP 代理为 stream 代理,在 APISIX 这里我们也遵循了这个声明.
+APISIX 可以对 TCP/UDP 协议进行代理并实现动态负载均衡。 在 nginx 世界,称 TCP/UDP 代理为 stream 代理,在 APISIX 这里我们也遵循了这个声明。
 
-## 如何开启 Stream 代理?
+## 如何开启 Stream 代理?

Review comment:
       Yep.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] yzeng25 commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
yzeng25 commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r828957022



##########
File path: docs/zh/latest/stream-proxy.md
##########
@@ -23,9 +23,9 @@ title: TCP/UDP 动态代理
 
 众多的闻名的应用和服务,像 LDAP、 MYSQL 和 RTMP ,选择 TCP 作为通信协议。 但是像 DNS、 syslog 和 RADIUS 这类非事务性的应用,他们选择了 UDP 协议。
 
-APISIX 可以对 TCP/UDP 协议进行代理并实现动态负载均衡。 在 nginx 世界,称 TCP/UDP 代理为 stream 代理,在 APISIX 这里我们也遵循了这个声明.
+APISIX 可以对 TCP/UDP 协议进行代理并实现动态负载均衡。 在 nginx 世界,称 TCP/UDP 代理为 stream 代理,在 APISIX 这里我们也遵循了这个声明。
 
-## 如何开启 Stream 代理?
+## 如何开启 Stream 代理?

Review comment:
       Sure




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] juzhiyuan commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
juzhiyuan commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r827627556



##########
File path: docs/zh/latest/plugins/gzip.md
##########
@@ -25,7 +25,7 @@ title: gzip
 
 `gzip` 插件能动态设置 `Nginx` 的压缩行为。
 
-**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤6:为-apache-apisix-构建-openresty) 上。**
+**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤 6:为-apache-apisix-构建-openresty) 上。**

Review comment:
       Please check this file: https://github.com/kwanhur/apisix/blob/typo-zh-copywriting/docs/zh/latest/plugins/gzip.md
   
   😅




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] kwanhur commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
kwanhur commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r827629740



##########
File path: docs/zh/latest/plugins/gzip.md
##########
@@ -25,7 +25,7 @@ title: gzip
 
 `gzip` 插件能动态设置 `Nginx` 的压缩行为。
 
-**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤6:为-apache-apisix-构建-openresty) 上。**
+**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤 6:为-apache-apisix-构建-openresty) 上。**

Review comment:
       > Please check this file: https://github.com/kwanhur/apisix/blob/typo-zh-copywriting/docs/zh/latest/plugins/gzip.md
   > 
   > 😅
   
   Oh, I got it. Let me think how to fix.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] juzhiyuan commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
juzhiyuan commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r830490022



##########
File path: docs/zh/latest/plugins/gzip.md
##########
@@ -25,7 +25,7 @@ title: gzip
 
 `gzip` 插件能动态设置 `Nginx` 的压缩行为。
 
-**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤6:为-apache-apisix-构建-openresty) 上。**
+**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤 6:为-apache-apisix-构建-openresty) 上。**

Review comment:
       It seems a little "tricky" but works, LGTM 😅 




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] kwanhur commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
kwanhur commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r830802880



##########
File path: docs/zh/latest/stream-proxy.md
##########
@@ -23,9 +23,9 @@ title: TCP/UDP 动态代理
 
 众多的闻名的应用和服务,像 LDAP、 MYSQL 和 RTMP ,选择 TCP 作为通信协议。 但是像 DNS、 syslog 和 RADIUS 这类非事务性的应用,他们选择了 UDP 协议。
 
-APISIX 可以对 TCP/UDP 协议进行代理并实现动态负载均衡。 在 nginx 世界,称 TCP/UDP 代理为 stream 代理,在 APISIX 这里我们也遵循了这个声明.
+APISIX 可以对 TCP/UDP 协议进行代理并实现动态负载均衡。 在 nginx 世界,称 TCP/UDP 代理为 stream 代理,在 APISIX 这里我们也遵循了这个声明。
 
-## 如何开启 Stream 代理?
+## 如何开启 Stream 代理?

Review comment:
       I'm sure it had been fixed, see it [here](https://github.com/kwanhur/apisix/blob/typo-zh-copywriting/docs/zh/latest/stream-proxy.md#%E5%A6%82%E4%BD%95%E5%BC%80%E5%90%AF-stream-%E4%BB%A3%E7%90%86).




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] kwanhur commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
kwanhur commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r832830870



##########
File path: .github/workflows/doc-lint.yml
##########
@@ -34,3 +34,15 @@ jobs:
             echo "You need to run ./utils/fix-zh-doc-segment.py to fix them."
             exit 1
           fi
+
+  Chinse-Copywriting-lint:
+    name: Chinese Copywriting
+    runs-on: ubuntu-latest
+    timeout-minutes: 1
+    steps:
+      - uses: actions/checkout@v3
+      - name: check Chinese copywriting
+        run: |
+          curl -sSL https://git.io/JcGER | bash
+          autocorrect --version

Review comment:
       It had been changed.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] juzhiyuan commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
juzhiyuan commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r827628842



##########
File path: docs/zh/latest/plugins/gzip.md
##########
@@ -25,7 +25,7 @@ title: gzip
 
 `gzip` 插件能动态设置 `Nginx` 的压缩行为。
 
-**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤6:为-apache-apisix-构建-openresty) 上。**
+**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤 6:为-apache-apisix-构建-openresty) 上。**

Review comment:
       [docs/zh/latest/plugins/gzip.md](https://github.com/apache/apisix/pull/6568/files/feaf3d0c20e9612a63882b6a414b6a50148dbbc3#diff-642ed4e3cc78101ac869166d3568f8910fdca52ab5483c241c775e6411eaf985)
   
   But this file is `gzip.md` 😂 not `how-to-build.md`




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] juzhiyuan commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
juzhiyuan commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r827628063



##########
File path: .github/workflows/doc-lint.yml
##########
@@ -34,3 +34,15 @@ jobs:
             echo "You need to run ./utils/fix-zh-doc-segment.py to fix them."
             exit 1
           fi
+
+  Chinse-Copywriting-lint:
+    name: Chinese Copywriting
+    runs-on: ubuntu-latest
+    timeout-minutes: 1
+    steps:
+      - uses: actions/checkout@v3
+      - name: check Chinese copywriting
+        run: |
+          curl -sSL https://git.io/JcGER | bash
+          autocorrect --version

Review comment:
       Check this https://github.com/apache/apisix/issues/6528#issuecomment-1062579469




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] spacewander commented on pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
spacewander commented on pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#issuecomment-1076962767


   @kwanhur 
   Let's solve the merge conflict before we can merge it.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] yzeng25 commented on pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
yzeng25 commented on pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#issuecomment-1070508639


   @kwanhur impressive!


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] kwanhur commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
kwanhur commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r828879535



##########
File path: docs/zh/latest/admin-api.md
##########
@@ -566,12 +566,12 @@ APISIX 的 Upstream 除了基本的负载均衡算法选择外,还支持对上
 `hash_on` 比较复杂,这里专门说明下:
 
 1. 设为 `vars` 时,`key` 为必传参数,目前支持的 Nginx 内置变量有 `uri, server_name, server_addr, request_uri, remote_port, remote_addr, query_string, host, hostname, arg_***`,其中 `arg_***` 是来自 URL 的请求参数,[Nginx 变量列表](http://nginx.org/en/docs/varindex.html)
-2. 设为 `header` 时, `key` 为必传参数,其值为自定义的 header name, 即 "http\_`key`"
-3. 设为 `cookie` 时, `key` 为必传参数,其值为自定义的 cookie name,即 "cookie\_`key`"。请注意 cookie name 是**区分大小写字母**的。例如:"cookie_x_foo" 与 "cookie_X_Foo" 表示不同的 `cookie`。
+2. 设为 `header` 时,`key` 为必传参数,其值为自定义的 header name,即 "http\_`key`"
+3. 设为 `cookie` 时,`key` 为必传参数,其值为自定义的 cookie name,即 "cookie\_`key`"。请注意 cookie name 是**区分大小写字母**的。例如:"cookie_x_foo" 与 "cookie_X_Foo" 表示不同的 `cookie`。
 4. 设为 `consumer` 时,`key` 不需要设置。此时哈希算法采用的 `key` 为认证通过的 `consumer_name`。
 5. 如果指定的 `hash_on` 和 `key` 获取不到值时,就是用默认值:`remote_addr`。
 
-以下特性需要 APISIX 运行于 [APISIX-OpenResty](./how-to-build.md#步骤6:为-apache-apisix-构建-openresty):
+以下特性需要 APISIX 运行于 [APISIX-OpenResty](./how-to-build.md#步骤-6:为-apache-apisix-构建-openresty):

Review comment:
       The picture shows broken link because docs' changes still take no effect.
   
   Original link `./how-to-build.md#步骤6:为` is also broken at [github repo](https://github.com/apache/apisix/blob/master/docs/zh/latest/how-to-build.md#%E6%AD%A5%E9%AA%A46%EF%BC%9A%E4%B8%BA-apache-apisix-%E6%9E%84%E5%BB%BA-openresty), but it works at [apisix site](https://apisix.apache.org/zh/docs/apisix/how-to-build#%E6%AD%A5%E9%AA%A46%EF%BC%9A%E4%B8%BA-Apache-APISIX-%E6%9E%84%E5%BB%BA-OpenResty)
   
   Rule `Place one space before/after number`, `./how-to-build.md#步骤6:为` not matched.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] kwanhur commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
kwanhur commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r827609859



##########
File path: docs/zh/latest/plugins/gzip.md
##########
@@ -25,7 +25,7 @@ title: gzip
 
 `gzip` 插件能动态设置 `Nginx` 的压缩行为。
 
-**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤6:为-apache-apisix-构建-openresty) 上。**
+**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤 6:为-apache-apisix-构建-openresty) 上。**

Review comment:
       1. according to [place-one-space-beforeafter-numbers](https://sparanoid.com/note/chinese-copywriting-guidelines/#place-one-space-beforeafter-numbers), autocorrect not support to ignore specified lines. :-(
   2. [demo](https://github.com/kwanhur/apisix/blob/typo-zh-copywriting/docs/zh/latest/how-to-build.md) seems not breaking Markdown's Heading?




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] kwanhur commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
kwanhur commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r828865819



##########
File path: .github/workflows/doc-lint.yml
##########
@@ -34,3 +34,15 @@ jobs:
             echo "You need to run ./utils/fix-zh-doc-segment.py to fix them."
             exit 1
           fi
+
+  Chinse-Copywriting-lint:
+    name: Chinese Copywriting
+    runs-on: ubuntu-latest
+    timeout-minutes: 1
+    steps:
+      - uses: actions/checkout@v3
+      - name: check Chinese copywriting
+        run: |
+          curl -sSL https://git.io/JcGER | bash
+          autocorrect --version

Review comment:
       > Hi, will this change PR's contents?
   
   No, it won't change PR's content.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] juzhiyuan commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
juzhiyuan commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r829025065



##########
File path: docs/zh/latest/plugins/gzip.md
##########
@@ -25,7 +25,7 @@ title: gzip
 
 `gzip` 插件能动态设置 `Nginx` 的压缩行为。
 
-**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤6:为-apache-apisix-构建-openresty) 上。**
+**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤 6:为-apache-apisix-构建-openresty) 上。**

Review comment:
       I don't have other better ways, we have to make a trade off here :>

##########
File path: docs/zh/latest/plugins/gzip.md
##########
@@ -25,7 +25,7 @@ title: gzip
 
 `gzip` 插件能动态设置 `Nginx` 的压缩行为。
 
-**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤6:为-apache-apisix-构建-openresty) 上。**
+**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤 6:为-apache-apisix-构建-openresty) 上。**

Review comment:
       I don't have other better ways, we have to make a tradeoff here :>




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] juzhiyuan commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
juzhiyuan commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r826741259



##########
File path: docs/zh/latest/plugins/proxy-control.md
##########
@@ -25,7 +25,7 @@ title: proxy-control
 
 `proxy-control` 能够动态地控制 Nginx 代理的行为。
 
-**这个插件需要APISIX在 [APISIX-OpenResty](../how-to-build.md#步骤6:为-apache-apisix-构建-openresty)上运行。**
+**这个插件需要 APISIX 在 [APISIX-OpenResty](../how-to-build.md#步骤 6:为-apache-apisix-构建-openresty) 上运行。**

Review comment:
       ditto

##########
File path: docs/zh/latest/plugins/gzip.md
##########
@@ -25,7 +25,7 @@ title: gzip
 
 `gzip` 插件能动态设置 `Nginx` 的压缩行为。
 
-**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤6:为-apache-apisix-构建-openresty) 上。**
+**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤 6:为-apache-apisix-构建-openresty) 上。**

Review comment:
       🤔 We'd better use English and Number as Markdown's Heading IDs

##########
File path: .github/workflows/doc-lint.yml
##########
@@ -34,3 +34,15 @@ jobs:
             echo "You need to run ./utils/fix-zh-doc-segment.py to fix them."
             exit 1
           fi
+
+  Chinse-Copywriting-lint:
+    name: Chinese Copywriting
+    runs-on: ubuntu-latest
+    timeout-minutes: 1
+    steps:
+      - uses: actions/checkout@v3
+      - name: check Chinese copywriting
+        run: |
+          curl -sSL https://git.io/JcGER | bash
+          autocorrect --version

Review comment:
       Hi, will this change PR's contents?

##########
File path: docs/zh/latest/plugins/real-ip.md
##########
@@ -27,7 +27,7 @@ title: real-ip
 
 它工作方式和 `Nginx` 里 `ngx_http_realip_module` 模块一样,并且更为灵活。
 
-**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤6:为-apache-apisix-构建-openresty) 上。**
+**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤 6:为-apache-apisix-构建-openresty) 上。**

Review comment:
       ditto

##########
File path: .github/workflows/doc-lint.yml
##########
@@ -34,3 +34,15 @@ jobs:
             echo "You need to run ./utils/fix-zh-doc-segment.py to fix them."
             exit 1
           fi
+
+  Chinse-Copywriting-lint:
+    name: Chinese Copywriting
+    runs-on: ubuntu-latest
+    timeout-minutes: 1
+    steps:
+      - uses: actions/checkout@v3
+      - name: check Chinese copywriting
+        run: |
+          curl -sSL https://git.io/JcGER | bash
+          autocorrect --version

Review comment:
       Also, could we use a submodule to execute this CI for security considerations?




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] kwanhur commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
kwanhur commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r827630866



##########
File path: .github/workflows/doc-lint.yml
##########
@@ -34,3 +34,15 @@ jobs:
             echo "You need to run ./utils/fix-zh-doc-segment.py to fix them."
             exit 1
           fi
+
+  Chinse-Copywriting-lint:
+    name: Chinese Copywriting
+    runs-on: ubuntu-latest
+    timeout-minutes: 1
+    steps:
+      - uses: actions/checkout@v3
+      - name: check Chinese copywriting
+        run: |
+          curl -sSL https://git.io/JcGER | bash
+          autocorrect --version

Review comment:
       > Check this [#6528 (comment)](https://github.com/apache/apisix/issues/6528#issuecomment-1062579469)
   
   I checked this. 
   
   Above all, action as submodule had different opinions, we have to wait for other advices.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] juzhiyuan commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
juzhiyuan commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r828711025



##########
File path: docs/zh/latest/plugins/gzip.md
##########
@@ -25,7 +25,7 @@ title: gzip
 
 `gzip` 插件能动态设置 `Nginx` 的压缩行为。
 
-**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤6:为-apache-apisix-构建-openresty) 上。**
+**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤 6:为-apache-apisix-构建-openresty) 上。**

Review comment:
       Why not use English and Number as Heading IDs?




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] yzeng25 commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
yzeng25 commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r828781535



##########
File path: docs/zh/latest/README.md
##########
@@ -44,117 +44,117 @@ Apache APISIX 的技术架构如下图所示:
 - ![Twitter Follow](https://img.shields.io/twitter/follow/ApacheAPISIX?style=social) - 使用标签 `#ApacheAPISIX` 关注我们并与我们互动。
 - [哔哩哔哩](https://space.bilibili.com/551921247)
 - **新手任务列表**
-  - [Apache APISIX®](https://github.com/apache/apisix/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Ingress Controller](https://github.com/apache/apisix-ingress-controller/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® dashboard](https://github.com/apache/apisix-dashboard/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Helm Chart](https://github.com/apache/apisix-helm-chart/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Docker distribution for Apache APISIX®](https://github.com/apache/apisix-docker/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Website](https://github.com/apache/apisix-website/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Java Plugin Runner](https://github.com/apache/apisix-java-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Go Plugin Runner](https://github.com/apache/apisix-go-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Python Plugin Runner](https://github.com/apache/apisix-python-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
+    - [Apache APISIX®](https://github.com/apache/apisix/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Ingress Controller](https://github.com/apache/apisix-ingress-controller/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® dashboard](https://github.com/apache/apisix-dashboard/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Helm Chart](https://github.com/apache/apisix-helm-chart/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Docker distribution for Apache APISIX®](https://github.com/apache/apisix-docker/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Website](https://github.com/apache/apisix-website/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Java Plugin Runner](https://github.com/apache/apisix-java-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Go Plugin Runner](https://github.com/apache/apisix-go-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Python Plugin Runner](https://github.com/apache/apisix-python-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
 - **微信公众号**
-   <br/>![wechat official account](../../assets/images/OA.jpg)
+  <br/>![wechat official account](../../assets/images/OA.jpg)
 - **微信视频号**
-   <br/>![wechat video account](../../assets/images/MA.jpeg)
+  <br/>![wechat video account](../../assets/images/MA.jpeg)
 
 ## 特性
 
 你可以把 Apache APISIX 当做流量入口,来处理所有的业务数据,包括动态路由、动态上游、动态证书、
-A/B 测试、金丝雀发布(灰度发布)、蓝绿部署、限流限速、抵御恶意攻击、监控报警、服务可观测性、服务治理等。
+A/B 测试、金丝雀发布 (灰度发布)、蓝绿部署、限流限速、抵御恶意攻击、监控报警、服务可观测性、服务治理等。

Review comment:
       ```suggestion
   A/B 测试、金丝雀发布(灰度发布)、蓝绿部署、限流限速、抵御恶意攻击、监控报警、服务可观测性、服务治理等。
   ```

##########
File path: docs/zh/latest/README.md
##########
@@ -44,117 +44,117 @@ Apache APISIX 的技术架构如下图所示:
 - ![Twitter Follow](https://img.shields.io/twitter/follow/ApacheAPISIX?style=social) - 使用标签 `#ApacheAPISIX` 关注我们并与我们互动。
 - [哔哩哔哩](https://space.bilibili.com/551921247)
 - **新手任务列表**
-  - [Apache APISIX®](https://github.com/apache/apisix/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Ingress Controller](https://github.com/apache/apisix-ingress-controller/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® dashboard](https://github.com/apache/apisix-dashboard/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Helm Chart](https://github.com/apache/apisix-helm-chart/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Docker distribution for Apache APISIX®](https://github.com/apache/apisix-docker/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Website](https://github.com/apache/apisix-website/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Java Plugin Runner](https://github.com/apache/apisix-java-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Go Plugin Runner](https://github.com/apache/apisix-go-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Python Plugin Runner](https://github.com/apache/apisix-python-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
+    - [Apache APISIX®](https://github.com/apache/apisix/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Ingress Controller](https://github.com/apache/apisix-ingress-controller/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® dashboard](https://github.com/apache/apisix-dashboard/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Helm Chart](https://github.com/apache/apisix-helm-chart/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Docker distribution for Apache APISIX®](https://github.com/apache/apisix-docker/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Website](https://github.com/apache/apisix-website/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Java Plugin Runner](https://github.com/apache/apisix-java-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Go Plugin Runner](https://github.com/apache/apisix-go-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Python Plugin Runner](https://github.com/apache/apisix-python-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
 - **微信公众号**
-   <br/>![wechat official account](../../assets/images/OA.jpg)
+  <br/>![wechat official account](../../assets/images/OA.jpg)
 - **微信视频号**
-   <br/>![wechat video account](../../assets/images/MA.jpeg)
+  <br/>![wechat video account](../../assets/images/MA.jpeg)
 
 ## 特性
 
 你可以把 Apache APISIX 当做流量入口,来处理所有的业务数据,包括动态路由、动态上游、动态证书、
-A/B 测试、金丝雀发布(灰度发布)、蓝绿部署、限流限速、抵御恶意攻击、监控报警、服务可观测性、服务治理等。
+A/B 测试、金丝雀发布 (灰度发布)、蓝绿部署、限流限速、抵御恶意攻击、监控报警、服务可观测性、服务治理等。
 
 - **全平台**
 
-  - 云原生: 平台无关,没有供应商锁定,无论裸机还是 Kubernetes,APISIX 都可以运行。
-  - 支持 ARM64: 不用担心底层技术的锁定。
+    - 云原生:平台无关,没有供应商锁定,无论裸机还是 Kubernetes,APISIX 都可以运行。
+    - 支持 ARM64: 不用担心底层技术的锁定。
 
 - **多协议**
 
-  - [TCP/UDP 代理](stream-proxy.md): 动态 TCP/UDP 代理。
-  - [Dubbo 代理](plugins/dubbo-proxy.md): 动态代理 HTTP 请求到 Dubbo 后端。
-  - [动态 MQTT 代理](plugins/mqtt-proxy.md): 支持用 `client_id` 对 MQTT 进行负载均衡,同时支持 MQTT [3.1.\*](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html) 和 [5.0](https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html) 两个协议标准。
-  - [gRPC 代理](grpc-proxy.md):通过 APISIX 代理 gRPC 连接,并使用 APISIX 的大部分特性管理你的 gRPC 服务。
-  - [gRPC Web 代理](plugins/grpc-web.md):通过 APISIX 代理 gRPC Web 请求到上游 gRPC 服务。
-  - [gRPC 协议转换](plugins/grpc-transcode.md):支持协议的转换,这样客户端可以通过 HTTP/JSON 来访问你的 gRPC API。
-  - Websocket 代理
-  - Proxy Protocol
-  - HTTP(S) 反向代理
-  - [SSL](certificate.md):动态加载 SSL 证书。
+    - [TCP/UDP 代理](stream-proxy.md): 动态 TCP/UDP 代理。
+    - [Dubbo 代理](plugins/dubbo-proxy.md): 动态代理 HTTP 请求到 Dubbo 后端。
+    - [动态 MQTT 代理](plugins/mqtt-proxy.md): 支持用 `client_id` 对 MQTT 进行负载均衡,同时支持 MQTT [3.1.\*](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html) 和 [5.0](https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html) 两个协议标准。
+    - [gRPC 代理](grpc-proxy.md):通过 APISIX 代理 gRPC 连接,并使用 APISIX 的大部分特性管理你的 gRPC 服务。
+    - [gRPC Web 代理](plugins/grpc-web.md):通过 APISIX 代理 gRPC Web 请求到上游 gRPC 服务。
+    - [gRPC 协议转换](plugins/grpc-transcode.md):支持协议的转换,这样客户端可以通过 HTTP/JSON 来访问你的 gRPC API。
+    - Websocket 代理
+    - Proxy Protocol
+    - HTTP(S) 反向代理
+    - [SSL](certificate.md):动态加载 SSL 证书。
 
 - **全动态能力**
 
-  - [热更新和热插件](architecture-design/plugin.md): 无需重启服务,就可以持续更新配置和插件。
-  - [代理请求重写](plugins/proxy-rewrite.md): 支持重写请求上游的`host`、`uri`、`schema`、`enable_websocket`、`headers`信息。
-  - [输出内容重写](plugins/response-rewrite.md): 支持自定义修改返回内容的 `status code`、`body`、`headers`。
-  - [Serverless](plugins/serverless.md): 在 APISIX 的每一个阶段,你都可以添加并调用自己编写的函数。
-  - 动态负载均衡:动态支持有权重的 round-robin 负载平衡。
-  - 支持一致性 hash 的负载均衡:动态支持一致性 hash 的负载均衡。
-  - [健康检查](health-check.md):启用上游节点的健康检查,将在负载均衡期间自动过滤不健康的节点,以确保系统稳定性。
-  - 熔断器: 智能跟踪不健康上游服务。
-  - [代理镜像](plugins/proxy-mirror.md): 提供镜像客户端请求的能力。
-  - [流量拆分](plugins/traffic-split.md): 允许用户逐步控制各个上游之间的流量百分比。
+    - [热更新和热插件](architecture-design/plugin.md): 无需重启服务,就可以持续更新配置和插件。
+    - [代理请求重写](plugins/proxy-rewrite.md): 支持重写请求上游的`host`、`uri`、`schema`、`enable_websocket`、`headers`信息。
+    - [输出内容重写](plugins/response-rewrite.md): 支持自定义修改返回内容的 `status code`、`body`、`headers`。
+    - [Serverless](plugins/serverless.md): 在 APISIX 的每一个阶段,你都可以添加并调用自己编写的函数。
+    - 动态负载均衡:动态支持有权重的 round-robin 负载平衡。
+    - 支持一致性 hash 的负载均衡:动态支持一致性 hash 的负载均衡。
+    - [健康检查](health-check.md):启用上游节点的健康检查,将在负载均衡期间自动过滤不健康的节点,以确保系统稳定性。
+    - 熔断器:智能跟踪不健康上游服务。
+    - [代理镜像](plugins/proxy-mirror.md): 提供镜像客户端请求的能力。
+    - [流量拆分](plugins/traffic-split.md): 允许用户逐步控制各个上游之间的流量百分比。
 
 - **精细化路由**
 
-  - [支持全路径匹配和前缀匹配](../../en/latest/router-radixtree.md#how-to-use-libradixtree-in-apisix)
-  - [支持使用 Nginx 所有内置变量做为路由的条件](../../en/latest/router-radixtree.md#how-to-filter-route-by-nginx-builtin-variable),所以你可以使用 `cookie`, `args` 等做为路由的条件,来实现灰度发布、A/B 测试等功能
-  - 支持[各类操作符做为路由的判断条件](https://github.com/api7/lua-resty-radixtree#operator-list),比如 `{"arg_age", ">", 24}`
-  - 支持[自定义路由匹配函数](https://github.com/api7/lua-resty-radixtree/blob/master/t/filter-fun.t#L10)
-  - IPv6:支持使用 IPv6 格式匹配路由
-  - 支持路由的[自动过期(TTL)](admin-api.md#route)
-  - [支持路由的优先级](../../en/latest/router-radixtree.md#3-match-priority)
-  - [支持批量 Http 请求](plugins/batch-requests.md)
-  - [支持通过GraphQL属性过滤路由](../../en/latest/router-radixtree.md#how-to-filter-route-by-graphql-attributes)
+    - [支持全路径匹配和前缀匹配](../../en/latest/router-radixtree.md#how-to-use-libradixtree-in-apisix)
+    - [支持使用 Nginx 所有内置变量做为路由的条件](../../en/latest/router-radixtree.md#how-to-filter-route-by-nginx-builtin-variable),所以你可以使用 `cookie`, `args` 等做为路由的条件,来实现灰度发布、A/B 测试等功能
+    - 支持[各类操作符做为路由的判断条件](https://github.com/api7/lua-resty-radixtree#operator-list),比如 `{"arg_age", ">", 24}`
+    - 支持[自定义路由匹配函数](https://github.com/api7/lua-resty-radixtree/blob/master/t/filter-fun.t#L10)
+    - IPv6:支持使用 IPv6 格式匹配路由
+    - 支持路由的[自动过期 (TTL)](admin-api.md#route)
+    - [支持路由的优先级](../../en/latest/router-radixtree.md#3-match-priority)
+    - [支持批量 Http 请求](plugins/batch-requests.md)
+    - [支持通过 GraphQL 属性过滤路由](../../en/latest/router-radixtree.md#how-to-filter-route-by-graphql-attributes)
 
 - **安全防护**
 
-  - 多种身份认证方式: [key-auth](plugins/key-auth.md), [JWT](plugins/jwt-auth.md), [basic-auth](plugins/basic-auth.md), [wolf-rbac](plugins/wolf-rbac.md), casbin, [keycloak](plugins/authz-keycloak.md)。
-  - [IP 黑白名单](plugins/ip-restriction.md)
-  - [Referer 黑白名单](plugins/referer-restriction.md)
-  - [IdP 支持](plugins/openid-connect.md): 支持外部的身份认证服务,比如 Auth0,Okta,Authing 等,用户可以借此来对接 Oauth2.0 等认证方式。
-  - [限制速率](plugins/limit-req.md)
-  - [限制请求数](plugins/limit-count.md)
-  - [限制并发](plugins/limit-conn.md)
-  - 防御 ReDoS(正则表达式拒绝服务):内置策略,无需配置即可抵御 ReDoS。
-  - [CORS](plugins/cors.md):为你的 API 启用 CORS。
-  - [URI 拦截器](plugins/uri-blocker.md):根据 URI 拦截用户请求。
-  - [请求验证器](plugins/request-validation.md)。
-  - [CSRF](plugins/csrf.md):基于 [`Double Submit Cookie`](https://en.wikipedia.org/wiki/Cross-site_request_forgery#Double_Submit_Cookie) 的方式保护你的 API 远离 CSRF 攻击。
+    - 多种身份认证方式:[key-auth](plugins/key-auth.md), [JWT](plugins/jwt-auth.md), [basic-auth](plugins/basic-auth.md), [wolf-rbac](plugins/wolf-rbac.md), casbin, [keycloak](plugins/authz-keycloak.md)。
+    - [IP 黑白名单](plugins/ip-restriction.md)
+    - [Referer 黑白名单](plugins/referer-restriction.md)
+    - [IdP 支持](plugins/openid-connect.md): 支持外部的身份认证服务,比如 Auth0,Okta,Authing 等,用户可以借此来对接 Oauth2.0 等认证方式。
+    - [限制速率](plugins/limit-req.md)
+    - [限制请求数](plugins/limit-count.md)
+    - [限制并发](plugins/limit-conn.md)
+    - 防御 ReDoS(正则表达式拒绝服务):内置策略,无需配置即可抵御 ReDoS。
+    - [CORS](plugins/cors.md):为你的 API 启用 CORS。
+    - [URI 拦截器](plugins/uri-blocker.md):根据 URI 拦截用户请求。
+    - [请求验证器](plugins/request-validation.md)。
+    - [CSRF](plugins/csrf.md):基于 [`Double Submit Cookie`](https://en.wikipedia.org/wiki/Cross-site_request_forgery#Double_Submit_Cookie) 的方式保护你的 API 远离 CSRF 攻击。
 
 - **运维友好**
 
-  - OpenTracing 可观测性: 支持 [Apache Skywalking](plugins/skywalking.md) 和 [Zipkin](plugins/zipkin.md)。
-  - 对接外部服务发现:除了内置的 etcd 外,还支持 [Consul](../../en/latest/discovery/consul_kv.md) 和 [Nacos](../../en/latest/discovery/nacos.md),以及 [Eureka](discovery.md)。
-  - 监控和指标: [Prometheus](plugins/prometheus.md)
-  - 集群:APISIX 节点是无状态的,创建配置中心集群请参考 [etcd Clustering Guide](https://etcd.io/docs/v3.5/op-guide/clustering/)。
-  - 高可用:支持配置同一个集群内的多个 etcd 地址。
-  - [控制台](https://github.com/apache/apisix-dashboard): 操作 APISIX 集群。
-  - 版本控制:支持操作的多次回滚。
-  - CLI: 使用命令行来启动、关闭和重启 APISIX。
-  - [单机模式](stand-alone.md): 支持从本地配置文件中加载路由规则,在 kubernetes(k8s) 等环境下更友好。
-  - [全局规则](architecture-design/global-rule.md):允许对所有请求执行插件,比如黑白名单、限流限速等。
-  - 高性能:在单核上 QPS 可以达到 18k,同时延迟只有 0.2 毫秒。
-  - [故障注入](plugins/fault-injection.md)
-  - [REST Admin API](admin-api.md): 使用 REST Admin API 来控制 Apache APISIX,默认只允许 127.0.0.1 访问,你可以修改 `conf/config.yaml` 中的 `allow_admin` 字段,指定允许调用 Admin API 的 IP 列表。同时需要注意的是,Admin API 使用 key auth 来校验调用者身份,**在部署前需要修改 `conf/config.yaml` 中的 `admin_key` 字段,来保证安全。**
-  - 外部日志记录器:将访问日志导出到外部日志管理工具。([HTTP Logger](plugins/http-logger.md)、[TCP Logger](plugins/tcp-logger.md)、[Kafka Logger](plugins/kafka-logger.md)、[UDP Logger](plugins/udp-logger.md)、[RocketMQ Logger](plugins/rocketmq-logger.md)、[SkyWalking Logger](plugins/skywalking-logger.md)、[Alibaba Cloud Logging(SLS)](plugins/sls-logger.md)、[Google Cloud Logging](plugins/google-cloud-logging.md)、[Splunk HEC Logging](plugins/splunk-hec-logging.md)、[File Logger](plugins/file-logger.md))
-  - [Helm charts](https://github.com/apache/apisix-helm-chart)
+    - OpenTracing 可观测性:支持 [Apache Skywalking](plugins/skywalking.md) 和 [Zipkin](plugins/zipkin.md)。
+    - 对接外部服务发现:除了内置的 etcd 外,还支持 [Consul](../../en/latest/discovery/consul_kv.md) 和 [Nacos](../../en/latest/discovery/nacos.md),以及 [Eureka](discovery.md)。
+    - 监控和指标:[Prometheus](plugins/prometheus.md)
+    - 集群:APISIX 节点是无状态的,创建配置中心集群请参考 [etcd Clustering Guide](https://etcd.io/docs/v3.5/op-guide/clustering/)。
+    - 高可用:支持配置同一个集群内的多个 etcd 地址。
+    - [控制台](https://github.com/apache/apisix-dashboard): 操作 APISIX 集群。
+    - 版本控制:支持操作的多次回滚。
+    - CLI: 使用命令行来启动、关闭和重启 APISIX。

Review comment:
       ```suggestion
       - CLI:使用命令行来启动、关闭和重启 APISIX。
   ```

##########
File path: docs/zh/latest/architecture-design/router.md
##########
@@ -27,7 +27,7 @@ APISIX 区别于其他 API 网关的一大特点是允许用户选择不同 Rout
 
 - `apisix.router.http`: HTTP 请求路由。
 
-  - `radixtree_uri`: (默认)只使用 `uri` 作为主索引。基于 `radixtree` 引擎,支持全量和深前缀匹配,更多见 [如何使用 router-radixtree](../../../en/latest/router-radixtree.md)。
+  - `radixtree_uri`:(默认)只使用 `uri` 作为主索引。基于 `radixtree` 引擎,支持全量和深前缀匹配,更多见 [如何使用 router-radixtree](../../../en/latest/router-radixtree.md)。

Review comment:
       ```suggestion
     - `radixtree_uri`:默认)只使用 `uri` 作为主索引。基于 `radixtree` 引擎,支持全量和深前缀匹配,更多见 [如何使用 router-radixtree](../../../en/latest/router-radixtree.md)。
   ```

##########
File path: docs/zh/latest/benchmark.md
##########
@@ -39,13 +39,13 @@ title: 压力测试
 
 #### 延时
 
-请注意 y 轴延时的单位是**微秒(μs)**,而不是毫秒:
+请注意 y 轴延时的单位是**微秒 (μs)**,而不是毫秒:

Review comment:
       ```suggestion
   请注意 y 轴延时的单位是**微秒 (μs)**,而不是毫秒:
   ```

##########
File path: docs/zh/latest/plugins/api-breaker.md
##########
@@ -29,15 +29,15 @@ title: api-breaker
 
 由代码逻辑自动按**触发不健康状态**的次数递增运算:
 
-每当上游服务返回 `unhealthy.http_statuses` 配置中的状态码(比如:500),达到 `unhealthy.failures` 次时(比如:3 次),认为上游服务处于不健康状态。
+每当上游服务返回 `unhealthy.http_statuses` 配置中的状态码 (比如:500),达到 `unhealthy.failures` 次时 (比如:3 次),认为上游服务处于不健康状态。
 
 第一次触发不健康状态,**熔断 2 秒**。
 
 然后,2 秒过后重新开始转发请求到上游服务,如果继续返回 `unhealthy.http_statuses` 状态码,记数再次达到 `unhealthy.failures` 次时,**熔断 4 秒**(倍数方式)。
 
-依次类推,2, 4, 8, 16, 32, 64, ..., 256, 最大到 300。 300 是 `max_breaker_sec` 的最大值,允许自定义修改。
+依次类推,2, 4, 8, 16, 32, 64, ..., 256,最大到 300。 300 是 `max_breaker_sec` 的最大值,允许自定义修改。
 
-在不健康状态时,当转发请求到上游服务并返回 `healthy.http_statuses` 配置中的状态码(比如:200),达到 `healthy.successes` 次时(比如:3 次),认为上游服务恢复健康状态。
+在不健康状态时,当转发请求到上游服务并返回 `healthy.http_statuses` 配置中的状态码 (比如:200),达到 `healthy.successes` 次时 (比如:3 次),认为上游服务恢复健康状态。

Review comment:
       ```suggestion
   在不健康状态时,当转发请求到上游服务并返回 `healthy.http_statuses` 配置中的状态码(比如:200),达到 `healthy.successes` 次时(比如:3 次),认为上游服务恢复健康状态。
   ```

##########
File path: docs/zh/latest/plugins/csrf.md
##########
@@ -32,7 +32,7 @@ title: csrf
 | Name             | Type    | Requirement | Default | Valid | Description                                                  |
 | ---------------- | ------- | ----------- | ------- | ----- | ------------------------------------------------------------ |
 |   name   |  string |    optional    | `apisix-csrf-token`  |    | 生成的 Cookie 中的 token 的名字,需要使用这个名字在请求头携带 Cookie 中的内容 |
-| expires |  number | optional | `7200` | | CSRF Cookie 的过期时间(秒) |
+| expires |  number | optional | `7200` | | CSRF Cookie 的过期时间 (秒) |

Review comment:
       ```suggestion
   | expires |  number | optional | `7200` | | CSRF Cookie 的过期时间(秒) |
   ```

##########
File path: docs/zh/latest/plugins/response-rewrite.md
##########
@@ -27,7 +27,7 @@ title: response-rewrite
 
 使用场景:
 
-1、可以设置 `Access-Control-Allow-*` 等 header 信息,来实现 CORS (跨域资源共享)的功能。
+1、可以设置 `Access-Control-Allow-*` 等 header 信息,来实现 CORS(跨域资源共享)的功能。
 
 2、另外也可以通过配置 status_code 和 header 里面的 Location 来实现重定向,当然如果只是需要重定向功能,最好使用 [redirect](redirect.md) 插件。

Review comment:
       ```suggestion
   2. 另外也可以通过配置 status_code 和 header 里面的 Location 来实现重定向,当然如果只是需要重定向功能,最好使用 [redirect](redirect.md) 插件。
   ```

##########
File path: docs/zh/latest/plugins/response-rewrite.md
##########
@@ -27,7 +27,7 @@ title: response-rewrite
 
 使用场景:
 
-1、可以设置 `Access-Control-Allow-*` 等 header 信息,来实现 CORS (跨域资源共享)的功能。
+1、可以设置 `Access-Control-Allow-*` 等 header 信息,来实现 CORS(跨域资源共享)的功能。

Review comment:
       ```suggestion
   1. 可以设置 `Access-Control-Allow-*` 等 header 信息,来实现 CORS(跨域资源共享)的功能。
   ```

##########
File path: docs/zh/latest/README.md
##########
@@ -44,117 +44,117 @@ Apache APISIX 的技术架构如下图所示:
 - ![Twitter Follow](https://img.shields.io/twitter/follow/ApacheAPISIX?style=social) - 使用标签 `#ApacheAPISIX` 关注我们并与我们互动。
 - [哔哩哔哩](https://space.bilibili.com/551921247)
 - **新手任务列表**
-  - [Apache APISIX®](https://github.com/apache/apisix/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Ingress Controller](https://github.com/apache/apisix-ingress-controller/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® dashboard](https://github.com/apache/apisix-dashboard/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Helm Chart](https://github.com/apache/apisix-helm-chart/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Docker distribution for Apache APISIX®](https://github.com/apache/apisix-docker/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Website](https://github.com/apache/apisix-website/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Java Plugin Runner](https://github.com/apache/apisix-java-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Go Plugin Runner](https://github.com/apache/apisix-go-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Python Plugin Runner](https://github.com/apache/apisix-python-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
+    - [Apache APISIX®](https://github.com/apache/apisix/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Ingress Controller](https://github.com/apache/apisix-ingress-controller/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® dashboard](https://github.com/apache/apisix-dashboard/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Helm Chart](https://github.com/apache/apisix-helm-chart/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Docker distribution for Apache APISIX®](https://github.com/apache/apisix-docker/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Website](https://github.com/apache/apisix-website/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Java Plugin Runner](https://github.com/apache/apisix-java-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Go Plugin Runner](https://github.com/apache/apisix-go-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Python Plugin Runner](https://github.com/apache/apisix-python-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
 - **微信公众号**
-   <br/>![wechat official account](../../assets/images/OA.jpg)
+  <br/>![wechat official account](../../assets/images/OA.jpg)
 - **微信视频号**
-   <br/>![wechat video account](../../assets/images/MA.jpeg)
+  <br/>![wechat video account](../../assets/images/MA.jpeg)
 
 ## 特性
 
 你可以把 Apache APISIX 当做流量入口,来处理所有的业务数据,包括动态路由、动态上游、动态证书、
-A/B 测试、金丝雀发布(灰度发布)、蓝绿部署、限流限速、抵御恶意攻击、监控报警、服务可观测性、服务治理等。
+A/B 测试、金丝雀发布 (灰度发布)、蓝绿部署、限流限速、抵御恶意攻击、监控报警、服务可观测性、服务治理等。
 
 - **全平台**
 
-  - 云原生: 平台无关,没有供应商锁定,无论裸机还是 Kubernetes,APISIX 都可以运行。
-  - 支持 ARM64: 不用担心底层技术的锁定。
+    - 云原生:平台无关,没有供应商锁定,无论裸机还是 Kubernetes,APISIX 都可以运行。
+    - 支持 ARM64: 不用担心底层技术的锁定。
 
 - **多协议**
 
-  - [TCP/UDP 代理](stream-proxy.md): 动态 TCP/UDP 代理。
-  - [Dubbo 代理](plugins/dubbo-proxy.md): 动态代理 HTTP 请求到 Dubbo 后端。
-  - [动态 MQTT 代理](plugins/mqtt-proxy.md): 支持用 `client_id` 对 MQTT 进行负载均衡,同时支持 MQTT [3.1.\*](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html) 和 [5.0](https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html) 两个协议标准。
-  - [gRPC 代理](grpc-proxy.md):通过 APISIX 代理 gRPC 连接,并使用 APISIX 的大部分特性管理你的 gRPC 服务。
-  - [gRPC Web 代理](plugins/grpc-web.md):通过 APISIX 代理 gRPC Web 请求到上游 gRPC 服务。
-  - [gRPC 协议转换](plugins/grpc-transcode.md):支持协议的转换,这样客户端可以通过 HTTP/JSON 来访问你的 gRPC API。
-  - Websocket 代理
-  - Proxy Protocol
-  - HTTP(S) 反向代理
-  - [SSL](certificate.md):动态加载 SSL 证书。
+    - [TCP/UDP 代理](stream-proxy.md): 动态 TCP/UDP 代理。
+    - [Dubbo 代理](plugins/dubbo-proxy.md): 动态代理 HTTP 请求到 Dubbo 后端。
+    - [动态 MQTT 代理](plugins/mqtt-proxy.md): 支持用 `client_id` 对 MQTT 进行负载均衡,同时支持 MQTT [3.1.\*](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html) 和 [5.0](https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html) 两个协议标准。
+    - [gRPC 代理](grpc-proxy.md):通过 APISIX 代理 gRPC 连接,并使用 APISIX 的大部分特性管理你的 gRPC 服务。
+    - [gRPC Web 代理](plugins/grpc-web.md):通过 APISIX 代理 gRPC Web 请求到上游 gRPC 服务。
+    - [gRPC 协议转换](plugins/grpc-transcode.md):支持协议的转换,这样客户端可以通过 HTTP/JSON 来访问你的 gRPC API。
+    - Websocket 代理
+    - Proxy Protocol
+    - HTTP(S) 反向代理
+    - [SSL](certificate.md):动态加载 SSL 证书。
 
 - **全动态能力**
 
-  - [热更新和热插件](architecture-design/plugin.md): 无需重启服务,就可以持续更新配置和插件。
-  - [代理请求重写](plugins/proxy-rewrite.md): 支持重写请求上游的`host`、`uri`、`schema`、`enable_websocket`、`headers`信息。
-  - [输出内容重写](plugins/response-rewrite.md): 支持自定义修改返回内容的 `status code`、`body`、`headers`。
-  - [Serverless](plugins/serverless.md): 在 APISIX 的每一个阶段,你都可以添加并调用自己编写的函数。
-  - 动态负载均衡:动态支持有权重的 round-robin 负载平衡。
-  - 支持一致性 hash 的负载均衡:动态支持一致性 hash 的负载均衡。
-  - [健康检查](health-check.md):启用上游节点的健康检查,将在负载均衡期间自动过滤不健康的节点,以确保系统稳定性。
-  - 熔断器: 智能跟踪不健康上游服务。
-  - [代理镜像](plugins/proxy-mirror.md): 提供镜像客户端请求的能力。
-  - [流量拆分](plugins/traffic-split.md): 允许用户逐步控制各个上游之间的流量百分比。
+    - [热更新和热插件](architecture-design/plugin.md): 无需重启服务,就可以持续更新配置和插件。
+    - [代理请求重写](plugins/proxy-rewrite.md): 支持重写请求上游的`host`、`uri`、`schema`、`enable_websocket`、`headers`信息。
+    - [输出内容重写](plugins/response-rewrite.md): 支持自定义修改返回内容的 `status code`、`body`、`headers`。
+    - [Serverless](plugins/serverless.md): 在 APISIX 的每一个阶段,你都可以添加并调用自己编写的函数。
+    - 动态负载均衡:动态支持有权重的 round-robin 负载平衡。
+    - 支持一致性 hash 的负载均衡:动态支持一致性 hash 的负载均衡。
+    - [健康检查](health-check.md):启用上游节点的健康检查,将在负载均衡期间自动过滤不健康的节点,以确保系统稳定性。
+    - 熔断器:智能跟踪不健康上游服务。
+    - [代理镜像](plugins/proxy-mirror.md): 提供镜像客户端请求的能力。
+    - [流量拆分](plugins/traffic-split.md): 允许用户逐步控制各个上游之间的流量百分比。
 
 - **精细化路由**
 
-  - [支持全路径匹配和前缀匹配](../../en/latest/router-radixtree.md#how-to-use-libradixtree-in-apisix)
-  - [支持使用 Nginx 所有内置变量做为路由的条件](../../en/latest/router-radixtree.md#how-to-filter-route-by-nginx-builtin-variable),所以你可以使用 `cookie`, `args` 等做为路由的条件,来实现灰度发布、A/B 测试等功能
-  - 支持[各类操作符做为路由的判断条件](https://github.com/api7/lua-resty-radixtree#operator-list),比如 `{"arg_age", ">", 24}`
-  - 支持[自定义路由匹配函数](https://github.com/api7/lua-resty-radixtree/blob/master/t/filter-fun.t#L10)
-  - IPv6:支持使用 IPv6 格式匹配路由
-  - 支持路由的[自动过期(TTL)](admin-api.md#route)
-  - [支持路由的优先级](../../en/latest/router-radixtree.md#3-match-priority)
-  - [支持批量 Http 请求](plugins/batch-requests.md)
-  - [支持通过GraphQL属性过滤路由](../../en/latest/router-radixtree.md#how-to-filter-route-by-graphql-attributes)
+    - [支持全路径匹配和前缀匹配](../../en/latest/router-radixtree.md#how-to-use-libradixtree-in-apisix)
+    - [支持使用 Nginx 所有内置变量做为路由的条件](../../en/latest/router-radixtree.md#how-to-filter-route-by-nginx-builtin-variable),所以你可以使用 `cookie`, `args` 等做为路由的条件,来实现灰度发布、A/B 测试等功能
+    - 支持[各类操作符做为路由的判断条件](https://github.com/api7/lua-resty-radixtree#operator-list),比如 `{"arg_age", ">", 24}`
+    - 支持[自定义路由匹配函数](https://github.com/api7/lua-resty-radixtree/blob/master/t/filter-fun.t#L10)
+    - IPv6:支持使用 IPv6 格式匹配路由
+    - 支持路由的[自动过期 (TTL)](admin-api.md#route)
+    - [支持路由的优先级](../../en/latest/router-radixtree.md#3-match-priority)
+    - [支持批量 Http 请求](plugins/batch-requests.md)
+    - [支持通过 GraphQL 属性过滤路由](../../en/latest/router-radixtree.md#how-to-filter-route-by-graphql-attributes)
 
 - **安全防护**
 
-  - 多种身份认证方式: [key-auth](plugins/key-auth.md), [JWT](plugins/jwt-auth.md), [basic-auth](plugins/basic-auth.md), [wolf-rbac](plugins/wolf-rbac.md), casbin, [keycloak](plugins/authz-keycloak.md)。
-  - [IP 黑白名单](plugins/ip-restriction.md)
-  - [Referer 黑白名单](plugins/referer-restriction.md)
-  - [IdP 支持](plugins/openid-connect.md): 支持外部的身份认证服务,比如 Auth0,Okta,Authing 等,用户可以借此来对接 Oauth2.0 等认证方式。
-  - [限制速率](plugins/limit-req.md)
-  - [限制请求数](plugins/limit-count.md)
-  - [限制并发](plugins/limit-conn.md)
-  - 防御 ReDoS(正则表达式拒绝服务):内置策略,无需配置即可抵御 ReDoS。
-  - [CORS](plugins/cors.md):为你的 API 启用 CORS。
-  - [URI 拦截器](plugins/uri-blocker.md):根据 URI 拦截用户请求。
-  - [请求验证器](plugins/request-validation.md)。
-  - [CSRF](plugins/csrf.md):基于 [`Double Submit Cookie`](https://en.wikipedia.org/wiki/Cross-site_request_forgery#Double_Submit_Cookie) 的方式保护你的 API 远离 CSRF 攻击。
+    - 多种身份认证方式:[key-auth](plugins/key-auth.md), [JWT](plugins/jwt-auth.md), [basic-auth](plugins/basic-auth.md), [wolf-rbac](plugins/wolf-rbac.md), casbin, [keycloak](plugins/authz-keycloak.md)。
+    - [IP 黑白名单](plugins/ip-restriction.md)
+    - [Referer 黑白名单](plugins/referer-restriction.md)
+    - [IdP 支持](plugins/openid-connect.md): 支持外部的身份认证服务,比如 Auth0,Okta,Authing 等,用户可以借此来对接 Oauth2.0 等认证方式。
+    - [限制速率](plugins/limit-req.md)
+    - [限制请求数](plugins/limit-count.md)
+    - [限制并发](plugins/limit-conn.md)
+    - 防御 ReDoS(正则表达式拒绝服务):内置策略,无需配置即可抵御 ReDoS。
+    - [CORS](plugins/cors.md):为你的 API 启用 CORS。
+    - [URI 拦截器](plugins/uri-blocker.md):根据 URI 拦截用户请求。
+    - [请求验证器](plugins/request-validation.md)。
+    - [CSRF](plugins/csrf.md):基于 [`Double Submit Cookie`](https://en.wikipedia.org/wiki/Cross-site_request_forgery#Double_Submit_Cookie) 的方式保护你的 API 远离 CSRF 攻击。
 
 - **运维友好**
 
-  - OpenTracing 可观测性: 支持 [Apache Skywalking](plugins/skywalking.md) 和 [Zipkin](plugins/zipkin.md)。
-  - 对接外部服务发现:除了内置的 etcd 外,还支持 [Consul](../../en/latest/discovery/consul_kv.md) 和 [Nacos](../../en/latest/discovery/nacos.md),以及 [Eureka](discovery.md)。
-  - 监控和指标: [Prometheus](plugins/prometheus.md)
-  - 集群:APISIX 节点是无状态的,创建配置中心集群请参考 [etcd Clustering Guide](https://etcd.io/docs/v3.5/op-guide/clustering/)。
-  - 高可用:支持配置同一个集群内的多个 etcd 地址。
-  - [控制台](https://github.com/apache/apisix-dashboard): 操作 APISIX 集群。
-  - 版本控制:支持操作的多次回滚。
-  - CLI: 使用命令行来启动、关闭和重启 APISIX。
-  - [单机模式](stand-alone.md): 支持从本地配置文件中加载路由规则,在 kubernetes(k8s) 等环境下更友好。
-  - [全局规则](architecture-design/global-rule.md):允许对所有请求执行插件,比如黑白名单、限流限速等。
-  - 高性能:在单核上 QPS 可以达到 18k,同时延迟只有 0.2 毫秒。
-  - [故障注入](plugins/fault-injection.md)
-  - [REST Admin API](admin-api.md): 使用 REST Admin API 来控制 Apache APISIX,默认只允许 127.0.0.1 访问,你可以修改 `conf/config.yaml` 中的 `allow_admin` 字段,指定允许调用 Admin API 的 IP 列表。同时需要注意的是,Admin API 使用 key auth 来校验调用者身份,**在部署前需要修改 `conf/config.yaml` 中的 `admin_key` 字段,来保证安全。**
-  - 外部日志记录器:将访问日志导出到外部日志管理工具。([HTTP Logger](plugins/http-logger.md)、[TCP Logger](plugins/tcp-logger.md)、[Kafka Logger](plugins/kafka-logger.md)、[UDP Logger](plugins/udp-logger.md)、[RocketMQ Logger](plugins/rocketmq-logger.md)、[SkyWalking Logger](plugins/skywalking-logger.md)、[Alibaba Cloud Logging(SLS)](plugins/sls-logger.md)、[Google Cloud Logging](plugins/google-cloud-logging.md)、[Splunk HEC Logging](plugins/splunk-hec-logging.md)、[File Logger](plugins/file-logger.md))
-  - [Helm charts](https://github.com/apache/apisix-helm-chart)
+    - OpenTracing 可观测性:支持 [Apache Skywalking](plugins/skywalking.md) 和 [Zipkin](plugins/zipkin.md)。
+    - 对接外部服务发现:除了内置的 etcd 外,还支持 [Consul](../../en/latest/discovery/consul_kv.md) 和 [Nacos](../../en/latest/discovery/nacos.md),以及 [Eureka](discovery.md)。
+    - 监控和指标:[Prometheus](plugins/prometheus.md)
+    - 集群:APISIX 节点是无状态的,创建配置中心集群请参考 [etcd Clustering Guide](https://etcd.io/docs/v3.5/op-guide/clustering/)。
+    - 高可用:支持配置同一个集群内的多个 etcd 地址。
+    - [控制台](https://github.com/apache/apisix-dashboard): 操作 APISIX 集群。
+    - 版本控制:支持操作的多次回滚。
+    - CLI: 使用命令行来启动、关闭和重启 APISIX。
+    - [单机模式](stand-alone.md): 支持从本地配置文件中加载路由规则,在 kubernetes(k8s) 等环境下更友好。

Review comment:
       ```suggestion
       - [单机模式](stand-alone.md):支持从本地配置文件中加载路由规则,在 kubernetes(k8s) 等环境下更友好。
   ```

##########
File path: docs/zh/latest/architecture-design/router.md
##########
@@ -36,4 +36,4 @@ APISIX 区别于其他 API 网关的一大特点是允许用户选择不同 Rout
   - `radixtree_host_uri`: 使用 `host + uri` 作为主索引(基于 `radixtree` 引擎),对当前请求会同时匹配 host 和 uri,支持的匹配条件与 `radixtree_uri` 基本一致。
 
 - `apisix.router.ssl`: SSL 加载匹配路由。
-  - `radixtree_sni`: (默认)使用 `SNI` (Server Name Indication) 作为主索引(基于 radixtree 引擎)。
+  - `radixtree_sni`:(默认)使用 `SNI` (Server Name Indication) 作为主索引(基于 radixtree 引擎)。

Review comment:
       ```suggestion
     - `radixtree_sni`:(默认)使用 `SNI` (Server Name Indication) 作为主索引(基于 radixtree 引擎)。
   ```

##########
File path: docs/zh/latest/admin-api.md
##########
@@ -71,7 +71,7 @@ Admin API 是为 Apache APISIX 服务的一组 API,我们可以将参数传递
 | desc             | 可选                               | 辅助     | 标识描述、使用场景等。                                                                                                                                                                                                                                                                                                                                     | 路由 xxxx                                            |
 | host             | 可选,不能与 `hosts` 一起使用         | 匹配规则 | 当前请求域名,比如 `foo.com`;也支持泛域名,比如 `*.foo.com`。                                                                                                                                                                                                                                                                                             | "foo.com"                                            |
 | hosts            | 可选,不能与 `host` 一起使用          | 匹配规则 | 非空列表形态的 `host`,表示允许有多个不同 `host`,匹配其中任意一个即可。                                                                                                                                                                                                                                                                                   | ["foo.com", "\*.bar.com"]                            |
-| remote_addr      | 可选,不能与 `remote_addrs` 一起使用  | 匹配规则 | 客户端请求 IP 地址: `192.168.1.101`、`192.168.1.102` 以及 CIDR 格式的支持 `192.168.1.0/24`。特别的,APISIX 也完整支持 IPv6 地址匹配:`::1`,`fe80::1`, `fe80::1/64` 等。                                                                                                                                                                                   | "192.168.1.0/24"                                     |
+| remote_addr      | 可选,不能与 `remote_addrs` 一起使用  | 匹配规则 | 客户端请求 IP 地址:`192.168.1.101`、`192.168.1.102` 以及 CIDR 格式的支持 `192.168.1.0/24`。特别的,APISIX 也完整支持 IPv6 地址匹配:`::1`,`fe80::1`, `fe80::1/64` 等。                                                                                                                                                                                   | "192.168.1.0/24"                                     |
 | remote_addrs     | 可选,不能与 `remote_addr` 一起使用   | 匹配规则 | 非空列表形态的 `remote_addr`,表示允许有多个不同 IP 地址,符合其中任意一个即可。                                                                                                                                                                                                                                                                           | ["127.0.0.1", "192.0.0.0/8", "::1"]                  |
 | methods          | 可选                               | 匹配规则 | 如果为空或没有该选项,代表没有任何 `method` 限制,也可以是一个或多个的组合:`GET`, `POST`, `PUT`, `DELETE`, `PATCH`, `HEAD`, `OPTIONS`,`CONNECT`,`TRACE`。                                                                                                                                                                                               | ["GET", "POST"]                                      |

Review comment:
       ```suggestion
   | methods          | 可选                               | 匹配规则 | 如果为空或没有该选项,代表没有任何 `method` 限制,也可以是一个或多个的组合:`GET`,`POST`,`PUT`,`DELETE`,`PATCH`,`HEAD`,`OPTIONS`,`CONNECT`,`TRACE`。                                                                                                                                                                                               | ["GET", "POST"]                                      |
   ```

##########
File path: docs/zh/latest/certificate.md
##########
@@ -23,7 +23,7 @@ title: 证书
 
 `APISIX` 支持通过 TLS 扩展 SNI 实现加载特定的 SSL 证书以实现对 https 的支持。
 
-SNI(Server Name Indication)是用来改善 SSL 和 TLS 的一项特性,它允许客户端在服务器端向其发送证书之前向服务器端发送请求的域名,服务器端根据客户端请求的域名选择合适的 SSL 证书发送给客户端。
+SNI(Server Name Indication) 是用来改善 SSL 和 TLS 的一项特性,它允许客户端在服务器端向其发送证书之前向服务器端发送请求的域名,服务器端根据客户端请求的域名选择合适的 SSL 证书发送给客户端。

Review comment:
       ```suggestion
   SNI(Server Name Indication)是用来改善 SSL 和 TLS 的一项特性,它允许客户端在服务器端向其发送证书之前向服务器端发送请求的域名,服务器端根据客户端请求的域名选择合适的 SSL 证书发送给客户端。
   ```

##########
File path: docs/zh/latest/control-api.md
##########
@@ -86,7 +86,7 @@ APISIX 中一些插件添加了自己的 control API。如果你对他们感兴
 }
 ```
 
-只有启用了的插件才会被包含在返回结果中 `plugins` 部分。(返回结果中的)一些插件可能会缺失如 `consumer_schema` 或者 `type` 字段,这取决于插件的定义。
+只有启用了的插件才会被包含在返回结果中 `plugins` 部分。(返回结果中的) 一些插件可能会缺失如 `consumer_schema` 或者 `type` 字段,这取决于插件的定义。

Review comment:
       ```suggestion
   只有启用了的插件才会被包含在返回结果中 `plugins` 部分。(返回结果中的)一些插件可能会缺失如 `consumer_schema` 或者 `type` 字段,这取决于插件的定义。
   ```

##########
File path: docs/zh/latest/README.md
##########
@@ -44,117 +44,117 @@ Apache APISIX 的技术架构如下图所示:
 - ![Twitter Follow](https://img.shields.io/twitter/follow/ApacheAPISIX?style=social) - 使用标签 `#ApacheAPISIX` 关注我们并与我们互动。
 - [哔哩哔哩](https://space.bilibili.com/551921247)
 - **新手任务列表**
-  - [Apache APISIX®](https://github.com/apache/apisix/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Ingress Controller](https://github.com/apache/apisix-ingress-controller/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® dashboard](https://github.com/apache/apisix-dashboard/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Helm Chart](https://github.com/apache/apisix-helm-chart/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Docker distribution for Apache APISIX®](https://github.com/apache/apisix-docker/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Website](https://github.com/apache/apisix-website/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Java Plugin Runner](https://github.com/apache/apisix-java-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Go Plugin Runner](https://github.com/apache/apisix-go-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
-  - [Apache APISIX® Python Plugin Runner](https://github.com/apache/apisix-python-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
+    - [Apache APISIX®](https://github.com/apache/apisix/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Ingress Controller](https://github.com/apache/apisix-ingress-controller/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® dashboard](https://github.com/apache/apisix-dashboard/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Helm Chart](https://github.com/apache/apisix-helm-chart/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Docker distribution for Apache APISIX®](https://github.com/apache/apisix-docker/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Website](https://github.com/apache/apisix-website/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Java Plugin Runner](https://github.com/apache/apisix-java-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Go Plugin Runner](https://github.com/apache/apisix-go-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
+    - [Apache APISIX® Python Plugin Runner](https://github.com/apache/apisix-python-plugin-runner/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
 - **微信公众号**
-   <br/>![wechat official account](../../assets/images/OA.jpg)
+  <br/>![wechat official account](../../assets/images/OA.jpg)
 - **微信视频号**
-   <br/>![wechat video account](../../assets/images/MA.jpeg)
+  <br/>![wechat video account](../../assets/images/MA.jpeg)
 
 ## 特性
 
 你可以把 Apache APISIX 当做流量入口,来处理所有的业务数据,包括动态路由、动态上游、动态证书、
-A/B 测试、金丝雀发布(灰度发布)、蓝绿部署、限流限速、抵御恶意攻击、监控报警、服务可观测性、服务治理等。
+A/B 测试、金丝雀发布 (灰度发布)、蓝绿部署、限流限速、抵御恶意攻击、监控报警、服务可观测性、服务治理等。
 
 - **全平台**
 
-  - 云原生: 平台无关,没有供应商锁定,无论裸机还是 Kubernetes,APISIX 都可以运行。
-  - 支持 ARM64: 不用担心底层技术的锁定。
+    - 云原生:平台无关,没有供应商锁定,无论裸机还是 Kubernetes,APISIX 都可以运行。
+    - 支持 ARM64: 不用担心底层技术的锁定。
 
 - **多协议**
 
-  - [TCP/UDP 代理](stream-proxy.md): 动态 TCP/UDP 代理。
-  - [Dubbo 代理](plugins/dubbo-proxy.md): 动态代理 HTTP 请求到 Dubbo 后端。
-  - [动态 MQTT 代理](plugins/mqtt-proxy.md): 支持用 `client_id` 对 MQTT 进行负载均衡,同时支持 MQTT [3.1.\*](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html) 和 [5.0](https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html) 两个协议标准。
-  - [gRPC 代理](grpc-proxy.md):通过 APISIX 代理 gRPC 连接,并使用 APISIX 的大部分特性管理你的 gRPC 服务。
-  - [gRPC Web 代理](plugins/grpc-web.md):通过 APISIX 代理 gRPC Web 请求到上游 gRPC 服务。
-  - [gRPC 协议转换](plugins/grpc-transcode.md):支持协议的转换,这样客户端可以通过 HTTP/JSON 来访问你的 gRPC API。
-  - Websocket 代理
-  - Proxy Protocol
-  - HTTP(S) 反向代理
-  - [SSL](certificate.md):动态加载 SSL 证书。
+    - [TCP/UDP 代理](stream-proxy.md): 动态 TCP/UDP 代理。
+    - [Dubbo 代理](plugins/dubbo-proxy.md): 动态代理 HTTP 请求到 Dubbo 后端。
+    - [动态 MQTT 代理](plugins/mqtt-proxy.md): 支持用 `client_id` 对 MQTT 进行负载均衡,同时支持 MQTT [3.1.\*](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html) 和 [5.0](https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html) 两个协议标准。
+    - [gRPC 代理](grpc-proxy.md):通过 APISIX 代理 gRPC 连接,并使用 APISIX 的大部分特性管理你的 gRPC 服务。
+    - [gRPC Web 代理](plugins/grpc-web.md):通过 APISIX 代理 gRPC Web 请求到上游 gRPC 服务。
+    - [gRPC 协议转换](plugins/grpc-transcode.md):支持协议的转换,这样客户端可以通过 HTTP/JSON 来访问你的 gRPC API。
+    - Websocket 代理
+    - Proxy Protocol
+    - HTTP(S) 反向代理
+    - [SSL](certificate.md):动态加载 SSL 证书。
 
 - **全动态能力**
 
-  - [热更新和热插件](architecture-design/plugin.md): 无需重启服务,就可以持续更新配置和插件。
-  - [代理请求重写](plugins/proxy-rewrite.md): 支持重写请求上游的`host`、`uri`、`schema`、`enable_websocket`、`headers`信息。
-  - [输出内容重写](plugins/response-rewrite.md): 支持自定义修改返回内容的 `status code`、`body`、`headers`。
-  - [Serverless](plugins/serverless.md): 在 APISIX 的每一个阶段,你都可以添加并调用自己编写的函数。
-  - 动态负载均衡:动态支持有权重的 round-robin 负载平衡。
-  - 支持一致性 hash 的负载均衡:动态支持一致性 hash 的负载均衡。
-  - [健康检查](health-check.md):启用上游节点的健康检查,将在负载均衡期间自动过滤不健康的节点,以确保系统稳定性。
-  - 熔断器: 智能跟踪不健康上游服务。
-  - [代理镜像](plugins/proxy-mirror.md): 提供镜像客户端请求的能力。
-  - [流量拆分](plugins/traffic-split.md): 允许用户逐步控制各个上游之间的流量百分比。
+    - [热更新和热插件](architecture-design/plugin.md): 无需重启服务,就可以持续更新配置和插件。
+    - [代理请求重写](plugins/proxy-rewrite.md): 支持重写请求上游的`host`、`uri`、`schema`、`enable_websocket`、`headers`信息。
+    - [输出内容重写](plugins/response-rewrite.md): 支持自定义修改返回内容的 `status code`、`body`、`headers`。
+    - [Serverless](plugins/serverless.md): 在 APISIX 的每一个阶段,你都可以添加并调用自己编写的函数。
+    - 动态负载均衡:动态支持有权重的 round-robin 负载平衡。
+    - 支持一致性 hash 的负载均衡:动态支持一致性 hash 的负载均衡。
+    - [健康检查](health-check.md):启用上游节点的健康检查,将在负载均衡期间自动过滤不健康的节点,以确保系统稳定性。
+    - 熔断器:智能跟踪不健康上游服务。
+    - [代理镜像](plugins/proxy-mirror.md): 提供镜像客户端请求的能力。
+    - [流量拆分](plugins/traffic-split.md): 允许用户逐步控制各个上游之间的流量百分比。
 
 - **精细化路由**
 
-  - [支持全路径匹配和前缀匹配](../../en/latest/router-radixtree.md#how-to-use-libradixtree-in-apisix)
-  - [支持使用 Nginx 所有内置变量做为路由的条件](../../en/latest/router-radixtree.md#how-to-filter-route-by-nginx-builtin-variable),所以你可以使用 `cookie`, `args` 等做为路由的条件,来实现灰度发布、A/B 测试等功能
-  - 支持[各类操作符做为路由的判断条件](https://github.com/api7/lua-resty-radixtree#operator-list),比如 `{"arg_age", ">", 24}`
-  - 支持[自定义路由匹配函数](https://github.com/api7/lua-resty-radixtree/blob/master/t/filter-fun.t#L10)
-  - IPv6:支持使用 IPv6 格式匹配路由
-  - 支持路由的[自动过期(TTL)](admin-api.md#route)
-  - [支持路由的优先级](../../en/latest/router-radixtree.md#3-match-priority)
-  - [支持批量 Http 请求](plugins/batch-requests.md)
-  - [支持通过GraphQL属性过滤路由](../../en/latest/router-radixtree.md#how-to-filter-route-by-graphql-attributes)
+    - [支持全路径匹配和前缀匹配](../../en/latest/router-radixtree.md#how-to-use-libradixtree-in-apisix)
+    - [支持使用 Nginx 所有内置变量做为路由的条件](../../en/latest/router-radixtree.md#how-to-filter-route-by-nginx-builtin-variable),所以你可以使用 `cookie`, `args` 等做为路由的条件,来实现灰度发布、A/B 测试等功能
+    - 支持[各类操作符做为路由的判断条件](https://github.com/api7/lua-resty-radixtree#operator-list),比如 `{"arg_age", ">", 24}`
+    - 支持[自定义路由匹配函数](https://github.com/api7/lua-resty-radixtree/blob/master/t/filter-fun.t#L10)
+    - IPv6:支持使用 IPv6 格式匹配路由
+    - 支持路由的[自动过期 (TTL)](admin-api.md#route)
+    - [支持路由的优先级](../../en/latest/router-radixtree.md#3-match-priority)
+    - [支持批量 Http 请求](plugins/batch-requests.md)
+    - [支持通过 GraphQL 属性过滤路由](../../en/latest/router-radixtree.md#how-to-filter-route-by-graphql-attributes)
 
 - **安全防护**
 
-  - 多种身份认证方式: [key-auth](plugins/key-auth.md), [JWT](plugins/jwt-auth.md), [basic-auth](plugins/basic-auth.md), [wolf-rbac](plugins/wolf-rbac.md), casbin, [keycloak](plugins/authz-keycloak.md)。
-  - [IP 黑白名单](plugins/ip-restriction.md)
-  - [Referer 黑白名单](plugins/referer-restriction.md)
-  - [IdP 支持](plugins/openid-connect.md): 支持外部的身份认证服务,比如 Auth0,Okta,Authing 等,用户可以借此来对接 Oauth2.0 等认证方式。
-  - [限制速率](plugins/limit-req.md)
-  - [限制请求数](plugins/limit-count.md)
-  - [限制并发](plugins/limit-conn.md)
-  - 防御 ReDoS(正则表达式拒绝服务):内置策略,无需配置即可抵御 ReDoS。
-  - [CORS](plugins/cors.md):为你的 API 启用 CORS。
-  - [URI 拦截器](plugins/uri-blocker.md):根据 URI 拦截用户请求。
-  - [请求验证器](plugins/request-validation.md)。
-  - [CSRF](plugins/csrf.md):基于 [`Double Submit Cookie`](https://en.wikipedia.org/wiki/Cross-site_request_forgery#Double_Submit_Cookie) 的方式保护你的 API 远离 CSRF 攻击。
+    - 多种身份认证方式:[key-auth](plugins/key-auth.md), [JWT](plugins/jwt-auth.md), [basic-auth](plugins/basic-auth.md), [wolf-rbac](plugins/wolf-rbac.md), casbin, [keycloak](plugins/authz-keycloak.md)。
+    - [IP 黑白名单](plugins/ip-restriction.md)
+    - [Referer 黑白名单](plugins/referer-restriction.md)
+    - [IdP 支持](plugins/openid-connect.md): 支持外部的身份认证服务,比如 Auth0,Okta,Authing 等,用户可以借此来对接 Oauth2.0 等认证方式。
+    - [限制速率](plugins/limit-req.md)
+    - [限制请求数](plugins/limit-count.md)
+    - [限制并发](plugins/limit-conn.md)
+    - 防御 ReDoS(正则表达式拒绝服务):内置策略,无需配置即可抵御 ReDoS。
+    - [CORS](plugins/cors.md):为你的 API 启用 CORS。
+    - [URI 拦截器](plugins/uri-blocker.md):根据 URI 拦截用户请求。
+    - [请求验证器](plugins/request-validation.md)。
+    - [CSRF](plugins/csrf.md):基于 [`Double Submit Cookie`](https://en.wikipedia.org/wiki/Cross-site_request_forgery#Double_Submit_Cookie) 的方式保护你的 API 远离 CSRF 攻击。
 
 - **运维友好**
 
-  - OpenTracing 可观测性: 支持 [Apache Skywalking](plugins/skywalking.md) 和 [Zipkin](plugins/zipkin.md)。
-  - 对接外部服务发现:除了内置的 etcd 外,还支持 [Consul](../../en/latest/discovery/consul_kv.md) 和 [Nacos](../../en/latest/discovery/nacos.md),以及 [Eureka](discovery.md)。
-  - 监控和指标: [Prometheus](plugins/prometheus.md)
-  - 集群:APISIX 节点是无状态的,创建配置中心集群请参考 [etcd Clustering Guide](https://etcd.io/docs/v3.5/op-guide/clustering/)。
-  - 高可用:支持配置同一个集群内的多个 etcd 地址。
-  - [控制台](https://github.com/apache/apisix-dashboard): 操作 APISIX 集群。
-  - 版本控制:支持操作的多次回滚。
-  - CLI: 使用命令行来启动、关闭和重启 APISIX。
-  - [单机模式](stand-alone.md): 支持从本地配置文件中加载路由规则,在 kubernetes(k8s) 等环境下更友好。
-  - [全局规则](architecture-design/global-rule.md):允许对所有请求执行插件,比如黑白名单、限流限速等。
-  - 高性能:在单核上 QPS 可以达到 18k,同时延迟只有 0.2 毫秒。
-  - [故障注入](plugins/fault-injection.md)
-  - [REST Admin API](admin-api.md): 使用 REST Admin API 来控制 Apache APISIX,默认只允许 127.0.0.1 访问,你可以修改 `conf/config.yaml` 中的 `allow_admin` 字段,指定允许调用 Admin API 的 IP 列表。同时需要注意的是,Admin API 使用 key auth 来校验调用者身份,**在部署前需要修改 `conf/config.yaml` 中的 `admin_key` 字段,来保证安全。**
-  - 外部日志记录器:将访问日志导出到外部日志管理工具。([HTTP Logger](plugins/http-logger.md)、[TCP Logger](plugins/tcp-logger.md)、[Kafka Logger](plugins/kafka-logger.md)、[UDP Logger](plugins/udp-logger.md)、[RocketMQ Logger](plugins/rocketmq-logger.md)、[SkyWalking Logger](plugins/skywalking-logger.md)、[Alibaba Cloud Logging(SLS)](plugins/sls-logger.md)、[Google Cloud Logging](plugins/google-cloud-logging.md)、[Splunk HEC Logging](plugins/splunk-hec-logging.md)、[File Logger](plugins/file-logger.md))
-  - [Helm charts](https://github.com/apache/apisix-helm-chart)
+    - OpenTracing 可观测性:支持 [Apache Skywalking](plugins/skywalking.md) 和 [Zipkin](plugins/zipkin.md)。
+    - 对接外部服务发现:除了内置的 etcd 外,还支持 [Consul](../../en/latest/discovery/consul_kv.md) 和 [Nacos](../../en/latest/discovery/nacos.md),以及 [Eureka](discovery.md)。
+    - 监控和指标:[Prometheus](plugins/prometheus.md)
+    - 集群:APISIX 节点是无状态的,创建配置中心集群请参考 [etcd Clustering Guide](https://etcd.io/docs/v3.5/op-guide/clustering/)。
+    - 高可用:支持配置同一个集群内的多个 etcd 地址。
+    - [控制台](https://github.com/apache/apisix-dashboard): 操作 APISIX 集群。
+    - 版本控制:支持操作的多次回滚。
+    - CLI: 使用命令行来启动、关闭和重启 APISIX。
+    - [单机模式](stand-alone.md): 支持从本地配置文件中加载路由规则,在 kubernetes(k8s) 等环境下更友好。
+    - [全局规则](architecture-design/global-rule.md):允许对所有请求执行插件,比如黑白名单、限流限速等。
+    - 高性能:在单核上 QPS 可以达到 18k,同时延迟只有 0.2 毫秒。
+    - [故障注入](plugins/fault-injection.md)
+    - [REST Admin API](admin-api.md): 使用 REST Admin API 来控制 Apache APISIX,默认只允许 127.0.0.1 访问,你可以修改 `conf/config.yaml` 中的 `allow_admin` 字段,指定允许调用 Admin API 的 IP 列表。同时需要注意的是,Admin API 使用 key auth 来校验调用者身份,**在部署前需要修改 `conf/config.yaml` 中的 `admin_key` 字段,来保证安全。**
+    - 外部日志记录器:将访问日志导出到外部日志管理工具。([HTTP Logger](plugins/http-logger.md)、[TCP Logger](plugins/tcp-logger.md)、[Kafka Logger](plugins/kafka-logger.md)、[UDP Logger](plugins/udp-logger.md)、[RocketMQ Logger](plugins/rocketmq-logger.md)、[SkyWalking Logger](plugins/skywalking-logger.md)、[Alibaba Cloud Logging(SLS)](plugins/sls-logger.md)、[Google Cloud Logging](plugins/google-cloud-logging.md)、[Splunk HEC Logging](plugins/splunk-hec-logging.md)、[File Logger](plugins/file-logger.md))
+    - [Helm charts](https://github.com/apache/apisix-helm-chart)
 
 - **高度可扩展**
-  - [自定义插件](plugin-develop.md): 允许挂载常见阶段,例如`init`, `rewrite`,`access`,`balancer`,`header filter`,`body filter` 和 `log` 阶段。
-  - [插件可以用 Java/Go/Python 编写](../../zh/latest/external-plugin.md)
-  - 自定义负载均衡算法:可以在 `balancer` 阶段使用自定义负载均衡算法。
-  - 自定义路由: 支持用户自己实现路由算法。
+    - [自定义插件](plugin-develop.md): 允许挂载常见阶段,例如`init`, `rewrite`,`access`,`balancer`,`header filter`,`body filter` 和 `log` 阶段。

Review comment:
       ```suggestion
       - [自定义插件](plugin-develop.md):允许挂载常见阶段,例如`init`, `rewrite`,`access`,`balancer`,`header filter`,`body filter` 和 `log` 阶段。
   ```

##########
File path: docs/zh/latest/how-to-build.md
##########
@@ -351,13 +351,13 @@ Content-Type: text/html
 {"node":{...},"action":"get"}
 ```
 
-## 步骤6:为 Apache APISIX 构建 OpenResty
+## 步骤 6:为 Apache APISIX 构建 OpenResty

Review comment:
       Oh I see, please ignore the above comments on the url suffixes on this part, my bad.

##########
File path: docs/zh/latest/admin-api.md
##########
@@ -566,12 +566,12 @@ APISIX 的 Upstream 除了基本的负载均衡算法选择外,还支持对上
 `hash_on` 比较复杂,这里专门说明下:
 
 1. 设为 `vars` 时,`key` 为必传参数,目前支持的 Nginx 内置变量有 `uri, server_name, server_addr, request_uri, remote_port, remote_addr, query_string, host, hostname, arg_***`,其中 `arg_***` 是来自 URL 的请求参数,[Nginx 变量列表](http://nginx.org/en/docs/varindex.html)
-2. 设为 `header` 时, `key` 为必传参数,其值为自定义的 header name, 即 "http\_`key`"
-3. 设为 `cookie` 时, `key` 为必传参数,其值为自定义的 cookie name,即 "cookie\_`key`"。请注意 cookie name 是**区分大小写字母**的。例如:"cookie_x_foo" 与 "cookie_X_Foo" 表示不同的 `cookie`。
+2. 设为 `header` 时,`key` 为必传参数,其值为自定义的 header name,即 "http\_`key`"
+3. 设为 `cookie` 时,`key` 为必传参数,其值为自定义的 cookie name,即 "cookie\_`key`"。请注意 cookie name 是**区分大小写字母**的。例如:"cookie_x_foo" 与 "cookie_X_Foo" 表示不同的 `cookie`。
 4. 设为 `consumer` 时,`key` 不需要设置。此时哈希算法采用的 `key` 为认证通过的 `consumer_name`。
 5. 如果指定的 `hash_on` 和 `key` 获取不到值时,就是用默认值:`remote_addr`。
 
-以下特性需要 APISIX 运行于 [APISIX-OpenResty](./how-to-build.md#步骤6:为-apache-apisix-构建-openresty):
+以下特性需要 APISIX 运行于 [APISIX-OpenResty](./how-to-build.md#步骤-6:为-apache-apisix-构建-openresty):

Review comment:
       Not sure if this works. I see https://apisix.apache.org/zh/docs/apisix/how-to-build/#%E6%AD%A5%E9%AA%A46%EF%BC%9A%E4%B8%BA-apache-apisix-%E6%9E%84%E5%BB%BA-openresty is listed as `#步骤6:为-apache-apisix-构建-openresty`, maybe we should follow it?
   
   ![image](https://user-images.githubusercontent.com/36651058/158748094-385c1f05-61de-4a9a-89d4-472fb15752ec.png)
   
   
   ```suggestion
   以下特性需要 APISIX 运行于 [APISIX-OpenResty](./how-to-build.md#步骤6:为-apache-apisix-构建-openresty):
   ```

##########
File path: docs/zh/latest/plugins/batch-requests.md
##########
@@ -133,7 +133,7 @@ $ curl http://127.0.0.1:9080/apisix/admin/routes/br -H 'X-API-KEY: edd1c9f034335
 }'
 ```
 
-之后,你就可以将要访问的请求信息传到网关的批量请求接口( `/apisix/batch-requests` )了,网关会以 [http pipeline](https://en.wikipedia.org/wiki/HTTP_pipelining) 的方式自动帮你完成请求。
+之后,你就可以将要访问的请求信息传到网关的批量请求接口 ( `/apisix/batch-requests` ) 了,网关会以 [http pipeline](https://en.wikipedia.org/wiki/HTTP_pipelining) 的方式自动帮你完成请求。

Review comment:
       ```suggestion
   之后,你就可以将要访问的请求信息传到网关的批量请求接口(`/apisix/batch-requests`)了,网关会以 [http pipeline](https://en.wikipedia.org/wiki/HTTP_pipelining) 的方式自动帮你完成请求。
   ```

##########
File path: docs/zh/latest/plugins/api-breaker.md
##########
@@ -29,15 +29,15 @@ title: api-breaker
 
 由代码逻辑自动按**触发不健康状态**的次数递增运算:
 
-每当上游服务返回 `unhealthy.http_statuses` 配置中的状态码(比如:500),达到 `unhealthy.failures` 次时(比如:3 次),认为上游服务处于不健康状态。
+每当上游服务返回 `unhealthy.http_statuses` 配置中的状态码 (比如:500),达到 `unhealthy.failures` 次时 (比如:3 次),认为上游服务处于不健康状态。

Review comment:
       ```suggestion
   每当上游服务返回 `unhealthy.http_statuses` 配置中的状态码(比如:500),达到 `unhealthy.failures` 次时 (比如:3 次),认为上游服务处于不健康状态。
   ```

##########
File path: docs/zh/latest/benchmark.md
##########
@@ -61,11 +61,11 @@ title: 压力测试
 
 #### Latency
 
-请注意 y 轴延时的单位是**微秒(μs)**,而不是毫秒:
+请注意 y 轴延时的单位是**微秒 (μs)**,而不是毫秒:

Review comment:
       ```suggestion
   请注意 y 轴延时的单位是**微秒 (μs)**,而不是毫秒:
   ```

##########
File path: docs/zh/latest/discovery/kubernetes.md
##########
@@ -96,25 +96,25 @@ discovery:
 # Kubernetes 服务发现插件的使用
 
 Kubernetes 服务发现插件提供与其他服务发现插件相同的查询接口 -> nodes(service_name) \
-service_name 的 pattern 如下:
+service_name 的 pattern 如下:
 > _[namespace]/[name]:[portName]_
 
 如果 kubernetes Endpoint 没有定义 portName, Kubernetes 服务发现插件会依次使用 targetPort, port 代替
 
 # Q&A
 
 > Q: 为什么只支持配置 token 来访问 Kubernetes ApiServer \
-> A: 通常情况下,我们会使用三种方式与 Kubernetes ApiServer 通信 :
+> A: 通常情况下,我们会使用三种方式与 Kubernetes ApiServer 通信 :

Review comment:
       ```suggestion
   > A:通常情况下,我们会使用三种方式与 Kubernetes ApiServer 通信:
   ```

##########
File path: docs/zh/latest/admin-api.md
##########
@@ -580,7 +580,7 @@ APISIX 的 Upstream 除了基本的负载均衡算法选择外,还支持对上
 
 `keepalive_pool` 允许 upstream 对象有自己单独的连接池。
 它下属的字段,比如 `requests`,可以用了配置上游连接保持的参数。
-这个特性需要 APISIX 运行于 [APISIX-OpenResty](./how-to-build.md#步骤6:为-apache-apisix-构建-openresty)。
+这个特性需要 APISIX 运行于 [APISIX-OpenResty](./how-to-build.md#步骤-6:为-apache-apisix-构建-openresty)。

Review comment:
       ditto, I think the original url suffix works, but after changing it, it fails.

##########
File path: docs/zh/latest/certificate.md
##########
@@ -33,7 +33,7 @@ SNI(Server Name Indication)是用来改善 SSL 和 TLS 的一项特性,它允
 * `key`: SSL 密钥对的私钥,pem 格式
 * `snis`: SSL 证书所指定的一个或多个域名,注意在设置这个参数之前,你需要确保这个证书对应的私钥是有效的。

Review comment:
       ```suggestion
   * `key`:SSL 密钥对的私钥,pem 格式
   * `snis`:SSL 证书所指定的一个或多个域名,注意在设置这个参数之前,你需要确保这个证书对应的私钥是有效的。
   ```

##########
File path: docs/zh/latest/plugins/authz-keycloak.md
##########
@@ -34,13 +34,13 @@ title: authz-keycloak
 | audience                    | string        | 可选   |             |                             | 客户端应用访问相应的资源服务器时所需提供的身份信息。当 permissions 参数有值时这个参数是必填的。 |
 | permissions                 | array[string] | 可选   |             |                             | 描述客户端应用所需访问的资源和权限范围的字符串。格式必须为:`RESOURCE_ID#SCOPE_ID`              |
 | timeout                     | integer       | 可选   | 3000        | [1000, ...]                 | 与身份认证服务器的 http 连接的超时时间                                                          |
-| access_token_expires_in     | integer       | 可选   | 300         | [1, ...]                            | access token 的过期时间(秒)
-| access_token_expires_leeway | integer       | 可选   | 0           | [0, ...]                            | access token 提前更新时间(秒,如果设置了此值,允许在该时间段内使用相同的 access token 令牌来解决潜在的网络并发问题)        |
-| refresh_token_expires_in    | integer       | 可选   | 3600        | [1, ...]                            | refresh token 的过期时间(秒)                                                                               |
-| refresh_token_expires_leeway| integer       | 可选   | 0           | [0, ...]                            | refresh token 提前更新时间(秒,如果设置了此值,允许在该时间段内使用相同的 refresh token 令牌来解决潜在的网络并发问题)                                                                   |
+| access_token_expires_in     | integer       | 可选   | 300         | [1, ...]                            | access token 的过期时间 (秒) |

Review comment:
       ```suggestion
   | access_token_expires_in     | integer       | 可选   | 300         | [1, ...]                            | access token 的过期时间(秒) |
   ```

##########
File path: docs/zh/latest/plugins/authz-keycloak.md
##########
@@ -34,13 +34,13 @@ title: authz-keycloak
 | audience                    | string        | 可选   |             |                             | 客户端应用访问相应的资源服务器时所需提供的身份信息。当 permissions 参数有值时这个参数是必填的。 |
 | permissions                 | array[string] | 可选   |             |                             | 描述客户端应用所需访问的资源和权限范围的字符串。格式必须为:`RESOURCE_ID#SCOPE_ID`              |
 | timeout                     | integer       | 可选   | 3000        | [1000, ...]                 | 与身份认证服务器的 http 连接的超时时间                                                          |
-| access_token_expires_in     | integer       | 可选   | 300         | [1, ...]                            | access token 的过期时间(秒)
-| access_token_expires_leeway | integer       | 可选   | 0           | [0, ...]                            | access token 提前更新时间(秒,如果设置了此值,允许在该时间段内使用相同的 access token 令牌来解决潜在的网络并发问题)        |
-| refresh_token_expires_in    | integer       | 可选   | 3600        | [1, ...]                            | refresh token 的过期时间(秒)                                                                               |
-| refresh_token_expires_leeway| integer       | 可选   | 0           | [0, ...]                            | refresh token 提前更新时间(秒,如果设置了此值,允许在该时间段内使用相同的 refresh token 令牌来解决潜在的网络并发问题)                                                                   |
+| access_token_expires_in     | integer       | 可选   | 300         | [1, ...]                            | access token 的过期时间 (秒) |
+| access_token_expires_leeway | integer       | 可选   | 0           | [0, ...]                            | access token 提前更新时间(秒,如果设置了此值,允许在该时间段内使用相同的 access token 令牌来解决潜在的网络并发问题)|
+| refresh_token_expires_in    | integer       | 可选   | 3600        | [1, ...]                            | refresh token 的过期时间 (秒) |

Review comment:
       ```suggestion
   | refresh_token_expires_in    | integer       | 可选   | 3600        | [1, ...]                            | refresh token 的过期时间(秒) |
   ```

##########
File path: docs/zh/latest/debug-function.md
##########
@@ -72,7 +72,7 @@ $ curl http://127.0.0.1:9080/hello -v
 
 具有 `X-APISIX-Upstream-Status: 502` 的响应头。
 
-示例2: `502` 响应状态码来源于 `APISIX`
+示例 2: `502` 响应状态码来源于 `APISIX`

Review comment:
       ```suggestion
   示例 2:`502` 响应状态码来源于 `APISIX`
   ```

##########
File path: docs/zh/latest/plugins/traffic-split.md
##########
@@ -40,7 +40,7 @@ traffic-split 插件使用户可以逐步引导各个上游之间的流量百分
 | upstream.hash_on               | enum   | 可选   | vars | | `hash_on` 支持的类型有 `vars`(Nginx 内置变量),`header`(自定义 header),`cookie`,`consumer`,`vars_combinations`,默认值为 `vars`。更多详细信息请参考 [upstream](../admin-api.md#upstream) 用法。|
 | upstream.key                   | string | 可选   |      |    |  该选项只有类型是 `chash` 才有效。根据 `key` 来查找对应的 node `id`,相同的 `key` 在同一个对象中,永远返回相同 id。更多详细信息请参考 [upstream](../admin-api.md#upstream) 用法。 |
 | upstream.nodes                 | object | 可选   |        |        | 哈希表,内部元素的 key 是上游机器地址 列表,格式为地址 + Port,其中地址部 分可以是 IP 也可以是域名,⽐如 192.168.1.100:80、foo.com:80 等。 value 则是节点的权重,特别的,当权重 值为 0 有特殊含义,通常代表该上游节点 失效,永远不希望被选中。 |
-| upstream.timeout               | object | 可选   |  15     |        | 设置连接、发送消息、接收消息的超时时间(时间单位:秒,都默认为 15 秒)。 |
+| upstream.timeout               | object | 可选   |  15     |        | 设置连接、发送消息、接收消息的超时时间 (时间单位:秒,都默认为 15 秒)。 |

Review comment:
       ```suggestion
   | upstream.timeout               | object | 可选   |  15     |        | 设置连接、发送消息、接收消息的超时时间)时间单位:秒,都默认为 15 秒)。 |
   ```

##########
File path: docs/zh/latest/plugins/limit-conn.md
##########
@@ -31,7 +31,7 @@ title: limit-conn
 | ------------------ | ------- | -------- | ------ | ----------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
 | conn               | integer | required |        | conn > 0                                                                                  | 允许的最大并发请求数。超过 `conn` 的限制、但是低于 `conn` + `burst` 的请求,将被延迟处理。                                                                                                                                                                                                                                                                                                                                                    |
 | burst              | integer | required |        | burst >= 0                                                                                | 允许被延迟处理的并发请求数。                                                                                                                                                                                                                                                                                                                                                                                                                  |
-| default_conn_delay | number  | required |        | default_conn_delay > 0                                                                    | 默认的典型连接(或请求)的处理延迟时间。                                                                                                                                                                                                                                                                                                                                                                                                        |
+| default_conn_delay | number  | required |        | default_conn_delay > 0                                                                    | 默认的典型连接 (或请求) 的处理延迟时间。                                                                                                                                                                                                                                                                                                                                                                                                        |

Review comment:
       ```suggestion
   | default_conn_delay | number  | required |        | default_conn_delay > 0                                                                    | 默认的典型连接(或请求)的处理延迟时间。                                                                                                                                                                                                                                                                                                                                                                                                        |
   ```

##########
File path: docs/zh/latest/plugins/consumer-restriction.md
##########
@@ -29,12 +29,12 @@ title: consumer-restriction
 
 | 参数名     | 类型          | 可选项   | 默认值            | 有效值                           | 描述                                                       |
 | --------- | ------------- | ------ | -----------------| --------------------------------| ----------------------------------------------------------|
-| type      |     string    | 可选    | consumer_name    | ["consumer_name", "service_id", "route_id"] | 根据不同的对象做相应的限制,支持 `consumer_name`、`service_id`、`route_id`。     |
+| type      |     string    | 可选    | consumer_name    | ["consumer_name", "service_id", "route_id"] | 根据不同的对象做相应的限制,支持 `consumer_name`、`service_id`、`route_id`。     |
 | whitelist | array[string] | 必选    |                  |                                 | 与`blacklist`二选一,只能单独启用白名单或黑名单,两个不能一起使用。 |
 | blacklist | array[string] | 必选    |                  |                                 | 与`whitelist`二选一,只能单独启用白名单或黑名单,两个不能一起使用。 |
 | rejected_code | integer   | 可选    | 403              | [200,...]                       | 当请求被拒绝时,返回的 HTTP 状态码。|
 | rejected_msg | String   | 可选    |               |                        | 当请求被拒绝时,返回的消息内容。|
-| allowed_by_methods | array[object] | 可选     |            |                        | 为用户设置允许的HTTP methods列表 , HTTP methods 可以为 `["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS", "CONNECT", "TRACE"]`                                                                        |
+| allowed_by_methods | array[object] | 可选     |            |                        | 为用户设置允许的 HTTP methods 列表 , HTTP methods 可以为 `["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS", "CONNECT", "TRACE"]`                                                                        |

Review comment:
       ```suggestion
   | allowed_by_methods | array[object] | 可选     |            |                        | 为用户设置允许的 HTTP methods 列表, HTTP methods 可以为 `["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS", "CONNECT", "TRACE"]`                                                                        |
   ```

##########
File path: docs/zh/latest/plugins/traffic-split.md
##########
@@ -40,7 +40,7 @@ traffic-split 插件使用户可以逐步引导各个上游之间的流量百分
 | upstream.hash_on               | enum   | 可选   | vars | | `hash_on` 支持的类型有 `vars`(Nginx 内置变量),`header`(自定义 header),`cookie`,`consumer`,`vars_combinations`,默认值为 `vars`。更多详细信息请参考 [upstream](../admin-api.md#upstream) 用法。|
 | upstream.key                   | string | 可选   |      |    |  该选项只有类型是 `chash` 才有效。根据 `key` 来查找对应的 node `id`,相同的 `key` 在同一个对象中,永远返回相同 id。更多详细信息请参考 [upstream](../admin-api.md#upstream) 用法。 |
 | upstream.nodes                 | object | 可选   |        |        | 哈希表,内部元素的 key 是上游机器地址 列表,格式为地址 + Port,其中地址部 分可以是 IP 也可以是域名,⽐如 192.168.1.100:80、foo.com:80 等。 value 则是节点的权重,特别的,当权重 值为 0 有特殊含义,通常代表该上游节点 失效,永远不希望被选中。 |
-| upstream.timeout               | object | 可选   |  15     |        | 设置连接、发送消息、接收消息的超时时间(时间单位:秒,都默认为 15 秒)。 |
+| upstream.timeout               | object | 可选   |  15     |        | 设置连接、发送消息、接收消息的超时时间 (时间单位:秒,都默认为 15 秒)。 |
 | upstream.pass_host             | enum   | 可选   | "pass"   | ["pass", "node", "rewrite"]  | `pass`: 将客户端的 host 透传给上游; `node`: 使用 `upstream`  node 中配置的 host; `rewrite`: 使用配置项 `upstream_host` 的值 |

Review comment:
       ```suggestion
   | upstream.pass_host             | enum   | 可选   | "pass"   | ["pass", "node", "rewrite"]  | `pass`:将客户端的 host 透传给上游; `node`:使用 `upstream`  node 中配置的 host; `rewrite`:使用配置项 `upstream_host` 的值 |
   ```

##########
File path: docs/zh/latest/admin-api.md
##########
@@ -80,7 +80,7 @@ Admin API 是为 Apache APISIX 服务的一组 API,我们可以将参数传递
 | labels           | 可选                               | 匹配规则 | 标识附加属性的键值对                                                                                                                                                                                                                                                                                                                                       | {"version":"v2","build":"16","env":"production"}     |
 | timeout          | 可选                               | 辅助     | 为 route 设置 upstream 的连接、发送消息、接收消息的超时时间。这个配置将会覆盖在 upstream 中 配置的 [timeout](#upstream) 选项                                                                                                                                                                        | {"connect": 3, "send": 3, "read": 3}              |
 | enable_websocket | 可选                               | 辅助     | 是否启用 `websocket`(boolean), 缺省 `false`.                                                                                                                                                                                                                                                                                                               |                                                      |

Review comment:
       ```suggestion
   | enable_websocket | 可选                               | 辅助     | 是否启用 `websocket`(boolean), 缺省 `false`。                                                                                                                                                                                                                                                                                                               |                                                      |
   ```




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] leslie-tsang commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
leslie-tsang commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r828920366



##########
File path: docs/zh/latest/plugins/wolf-rbac.md
##########
@@ -46,11 +46,11 @@ rbac 功能由 [wolf](https://github.com/iGeeky/wolf) 提供, 有关 `wolf` 的
 
 ## 依赖项
 
-### 安装 wolf, 并启动服务
+### 安装 wolf,并启动服务
 
 [Wolf 快速起步](https://github.com/iGeeky/wolf/blob/master/quick-start-with-docker/README-CN.md)
 
-### 添加应用, 管理员, 普通用户, 权限, 资源 及给用户授权.
+### 添加应用,管理员,普通用户,权限,资源 及给用户授权。

Review comment:
       ```suggestion
   ### 添加应用,管理员,普通用户,权限,资源 及给用户授权
   ```
   Seems we don't need "。" in section title, right ?

##########
File path: docs/zh/latest/stream-proxy.md
##########
@@ -55,7 +55,7 @@ apisix:
 
 ## 如何设置 route ?

Review comment:
       ```suggestion
   ## 如何设置 route ?
   ```

##########
File path: docs/zh/latest/stream-proxy.md
##########
@@ -23,9 +23,9 @@ title: TCP/UDP 动态代理
 
 众多的闻名的应用和服务,像 LDAP、 MYSQL 和 RTMP ,选择 TCP 作为通信协议。 但是像 DNS、 syslog 和 RADIUS 这类非事务性的应用,他们选择了 UDP 协议。
 
-APISIX 可以对 TCP/UDP 协议进行代理并实现动态负载均衡。 在 nginx 世界,称 TCP/UDP 代理为 stream 代理,在 APISIX 这里我们也遵循了这个声明.
+APISIX 可以对 TCP/UDP 协议进行代理并实现动态负载均衡。 在 nginx 世界,称 TCP/UDP 代理为 stream 代理,在 APISIX 这里我们也遵循了这个声明。
 
-## 如何开启 Stream 代理?
+## 如何开启 Stream 代理?

Review comment:
       ```suggestion
   ## 如何开启 Stream 代理 ?
   ```




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] kwanhur commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
kwanhur commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r830488447



##########
File path: docs/zh/latest/plugins/gzip.md
##########
@@ -25,7 +25,7 @@ title: gzip
 
 `gzip` 插件能动态设置 `Nginx` 的压缩行为。
 
-**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤6:为-apache-apisix-构建-openresty) 上。**
+**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤 6:为-apache-apisix-构建-openresty) 上。**

Review comment:
       What about remove the colon in the header?
   
    `## 步骤 6:为 Apache APISIX 构建 OpenResty` --> `## 步骤 6 为 Apache APISIX 构建 OpenResty`
   
   Then the anchor `../how-to-build.md#步骤-6-为-apache-apisix-构建-openresty` works fine both on apisix repo and site.
   
   cc @juzhiyuan @yzeng25 




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] yzeng25 commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
yzeng25 commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r830788108



##########
File path: docs/zh/latest/stream-proxy.md
##########
@@ -23,9 +23,9 @@ title: TCP/UDP 动态代理
 
 众多的闻名的应用和服务,像 LDAP、 MYSQL 和 RTMP ,选择 TCP 作为通信协议。 但是像 DNS、 syslog 和 RADIUS 这类非事务性的应用,他们选择了 UDP 协议。
 
-APISIX 可以对 TCP/UDP 协议进行代理并实现动态负载均衡。 在 nginx 世界,称 TCP/UDP 代理为 stream 代理,在 APISIX 这里我们也遵循了这个声明.
+APISIX 可以对 TCP/UDP 协议进行代理并实现动态负载均衡。 在 nginx 世界,称 TCP/UDP 代理为 stream 代理,在 APISIX 这里我们也遵循了这个声明。
 
-## 如何开启 Stream 代理?
+## 如何开启 Stream 代理?

Review comment:
       Could you fix this as well? `如何开启 Stream 代理` should be fine.

##########
File path: docs/zh/latest/stream-proxy.md
##########
@@ -55,7 +55,7 @@ apisix:
 
 ## 如何设置 route ?

Review comment:
       Could you fix this as well? `如何设置 route` should be fine.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] kwanhur commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
kwanhur commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r828870658



##########
File path: docs/zh/latest/plugins/gzip.md
##########
@@ -25,7 +25,7 @@ title: gzip
 
 `gzip` 插件能动态设置 `Nginx` 的压缩行为。
 
-**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤6:为-apache-apisix-构建-openresty) 上。**
+**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤 6:为-apache-apisix-构建-openresty) 上。**

Review comment:
       You mean use English and Number in `how-to-build` zh version? It seems not such satisfied.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] yzeng25 commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
yzeng25 commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r828956862



##########
File path: docs/zh/latest/stream-proxy.md
##########
@@ -55,7 +55,7 @@ apisix:
 
 ## 如何设置 route ?

Review comment:
       Sure




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] kwanhur commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
kwanhur commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r827612380



##########
File path: .github/workflows/doc-lint.yml
##########
@@ -34,3 +34,15 @@ jobs:
             echo "You need to run ./utils/fix-zh-doc-segment.py to fix them."
             exit 1
           fi
+
+  Chinse-Copywriting-lint:
+    name: Chinese Copywriting
+    runs-on: ubuntu-latest
+    timeout-minutes: 1
+    steps:
+      - uses: actions/checkout@v3
+      - name: check Chinese copywriting
+        run: |
+          curl -sSL https://git.io/JcGER | bash
+          autocorrect --version

Review comment:
       > Also, could we use a submodule to execute this CI for security considerations?
   
   https://github.com/apache/apisix/pull/6340#issuecomment-1043880615 No suggestions on submodule.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] kwanhur commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
kwanhur commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r832159092



##########
File path: .github/workflows/doc-lint.yml
##########
@@ -34,3 +34,15 @@ jobs:
             echo "You need to run ./utils/fix-zh-doc-segment.py to fix them."
             exit 1
           fi
+
+  Chinse-Copywriting-lint:
+    name: Chinese Copywriting
+    runs-on: ubuntu-latest
+    timeout-minutes: 1
+    steps:
+      - uses: actions/checkout@v3
+      - name: check Chinese copywriting
+        run: |
+          curl -sSL https://git.io/JcGER | bash
+          autocorrect --version

Review comment:
       Oh, the key point is on the link `https://git.io/JcGER`, I can change it with GitHub release link.
   
   Example `curl -Lo autocorrect-latest.tar.gz https://github.com/huacnlee/autocorrect/releases/download/v1.5.6/autocorrect-linux-amd64.tar.gz`.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] kwanhur commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
kwanhur commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r831872269



##########
File path: .github/workflows/doc-lint.yml
##########
@@ -34,3 +34,15 @@ jobs:
             echo "You need to run ./utils/fix-zh-doc-segment.py to fix them."
             exit 1
           fi
+
+  Chinse-Copywriting-lint:
+    name: Chinese Copywriting
+    runs-on: ubuntu-latest
+    timeout-minutes: 1
+    steps:
+      - uses: actions/checkout@v3
+      - name: check Chinese copywriting
+        run: |
+          curl -sSL https://git.io/JcGER | bash
+          autocorrect --version

Review comment:
       > According to ASF's policies, we have to use a submodule instead of cURL a link, bcoz we can't control the link and its service :(
   
   Thx, I known it. We should indicate which is the acceptable. The target download link or the submodule?
   
   Note it: local action equals to download link. Autocorrect no supports for all kinds of package managers.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] kwanhur commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
kwanhur commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r832987928



##########
File path: .github/workflows/doc-lint.yml
##########
@@ -34,3 +34,15 @@ jobs:
             echo "You need to run ./utils/fix-zh-doc-segment.py to fix them."
             exit 1
           fi
+
+  Chinse-Copywriting-lint:
+    name: Chinese Copywriting
+    runs-on: ubuntu-latest
+    timeout-minutes: 1
+    steps:
+      - uses: actions/checkout@v3
+      - name: check Chinese copywriting
+        run: |
+          curl -sSL https://git.io/JcGER | bash
+          autocorrect --version

Review comment:
       Had specified fixed version.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] juzhiyuan commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
juzhiyuan commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r832113398



##########
File path: .github/workflows/doc-lint.yml
##########
@@ -34,3 +34,15 @@ jobs:
             echo "You need to run ./utils/fix-zh-doc-segment.py to fix them."
             exit 1
           fi
+
+  Chinse-Copywriting-lint:
+    name: Chinese Copywriting
+    runs-on: ubuntu-latest
+    timeout-minutes: 1
+    steps:
+      - uses: actions/checkout@v3
+      - name: check Chinese copywriting
+        run: |
+          curl -sSL https://git.io/JcGER | bash
+          autocorrect --version

Review comment:
       I'm only concerned about whether the link `https://git.io/JcGER` will contain not good codes? 😄 Because it's not versioned (that's why the ASF asks to use a specified submodule instead).
   
   cc @bzp2010 @Yiyiyimu to have a confirmation. If it's good to go, then let't merge this PR with honor! 😄




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] juzhiyuan commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
juzhiyuan commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r832765769



##########
File path: .github/workflows/doc-lint.yml
##########
@@ -34,3 +34,15 @@ jobs:
             echo "You need to run ./utils/fix-zh-doc-segment.py to fix them."
             exit 1
           fi
+
+  Chinse-Copywriting-lint:
+    name: Chinese Copywriting
+    runs-on: ubuntu-latest
+    timeout-minutes: 1
+    steps:
+      - uses: actions/checkout@v3
+      - name: check Chinese copywriting
+        run: |
+          curl -sSL https://git.io/JcGER | bash
+          autocorrect --version

Review comment:
       That's good!




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] yzeng25 commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
yzeng25 commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r830707772



##########
File path: docs/zh/latest/plugins/gzip.md
##########
@@ -25,7 +25,7 @@ title: gzip
 
 `gzip` 插件能动态设置 `Nginx` 的压缩行为。
 
-**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤6:为-apache-apisix-构建-openresty) 上。**
+**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤 6:为-apache-apisix-构建-openresty) 上。**

Review comment:
       Sure. Please modify other steps (i.e. step 1 ~ step 5) as well.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] kwanhur commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
kwanhur commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r830803145



##########
File path: docs/zh/latest/stream-proxy.md
##########
@@ -55,7 +55,7 @@ apisix:
 
 ## 如何设置 route ?

Review comment:
       I'm sure it had been fixed, see [here](https://github.com/kwanhur/apisix/blob/typo-zh-copywriting/docs/zh/latest/stream-proxy.md#%E5%A6%82%E4%BD%95%E8%AE%BE%E7%BD%AE-route).




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] juzhiyuan commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
juzhiyuan commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r830832776



##########
File path: .github/workflows/doc-lint.yml
##########
@@ -34,3 +34,15 @@ jobs:
             echo "You need to run ./utils/fix-zh-doc-segment.py to fix them."
             exit 1
           fi
+
+  Chinse-Copywriting-lint:
+    name: Chinese Copywriting
+    runs-on: ubuntu-latest
+    timeout-minutes: 1
+    steps:
+      - uses: actions/checkout@v3
+      - name: check Chinese copywriting
+        run: |
+          curl -sSL https://git.io/JcGER | bash
+          autocorrect --version

Review comment:
       cc @spacewander @moonming  to have a confirmation.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix] juzhiyuan commented on a change in pull request #6568: docs(lint): import Chinese copywriting autocorrect linter

Posted by GitBox <gi...@apache.org>.
juzhiyuan commented on a change in pull request #6568:
URL: https://github.com/apache/apisix/pull/6568#discussion_r829025065



##########
File path: docs/zh/latest/plugins/gzip.md
##########
@@ -25,7 +25,7 @@ title: gzip
 
 `gzip` 插件能动态设置 `Nginx` 的压缩行为。
 
-**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤6:为-apache-apisix-构建-openresty) 上。**
+**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤 6:为-apache-apisix-构建-openresty) 上。**

Review comment:
       I don't have other better ways, we have to make a trade off here :>

##########
File path: docs/zh/latest/plugins/gzip.md
##########
@@ -25,7 +25,7 @@ title: gzip
 
 `gzip` 插件能动态设置 `Nginx` 的压缩行为。
 
-**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤6:为-apache-apisix-构建-openresty) 上。**
+**该插件要求 `APISIX` 运行在 [APISIX-OpenResty](../how-to-build.md#步骤 6:为-apache-apisix-构建-openresty) 上。**

Review comment:
       I don't have other better ways, we have to make a tradeoff here :>




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org