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

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


The following commit(s) were added to refs/heads/asf-site by this push:
     new 92a72c3  Automated deployment: cd7b8330137c016f6e59be2d5dfac36a93d8076d
92a72c3 is described below

commit 92a72c3b4b9fe402aaff945140e853a69f341c03
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
AuthorDate: Mon Nov 29 07:07:30 2021 +0000

    Automated deployment: cd7b8330137c016f6e59be2d5dfac36a93d8076d
---
 build/development.md.45dc3a5.js                    |   1 +
 build/development.md.fea2a50.js                    |   1 -
 en-us/community/development/api-standard.html      | 124 --------------------
 .../{have-questions.html => api-standard.html}     | 129 +++++++++++++--------
 .../{community => }/development/api-standard.json  |   2 +-
 en-us/development/architecture-design.html         |   4 +-
 .../backend/mechanism/global-parameter.html        |   4 +-
 en-us/development/backend/mechanism/overview.html  |   4 +-
 .../development/backend/mechanism/task/switch.html |   4 +-
 en-us/development/backend/spi/alert.html           |   4 +-
 en-us/development/backend/spi/plugin.html          |   4 +-
 en-us/development/backend/spi/registry.html        |   4 +-
 en-us/development/backend/spi/task.html            |   4 +-
 .../development/development-environment-setup.html |   4 +-
 en-us/development/frontend-development.html        |   4 +-
 en-us/development/have-questions.html              |   4 +-
 zh-cn/community/development/api-standard.html      | 123 --------------------
 .../{have-questions.html => api-standard.html}     | 129 ++++++++++++---------
 .../{community => }/development/api-standard.json  |   2 +-
 zh-cn/development/architecture-design.html         |   4 +-
 .../backend/mechanism/global-parameter.html        |   4 +-
 zh-cn/development/backend/mechanism/overview.html  |   4 +-
 .../development/backend/mechanism/task/switch.html |   4 +-
 zh-cn/development/backend/spi/alert.html           |   4 +-
 zh-cn/development/backend/spi/plugin.html          |   4 +-
 zh-cn/development/backend/spi/registry.html        |   4 +-
 zh-cn/development/backend/spi/task.html            |   4 +-
 .../development/development-environment-setup.html |   4 +-
 zh-cn/development/frontend-development.html        |   4 +-
 zh-cn/development/have-questions.html              |   4 +-
 30 files changed, 202 insertions(+), 397 deletions(-)

diff --git a/build/development.md.45dc3a5.js b/build/development.md.45dc3a5.js
new file mode 100644
index 0000000..9be3a3b
--- /dev/null
+++ b/build/development.md.45dc3a5.js
@@ -0,0 +1 @@
+webpackJsonp([7],{1:function(e,t){e.exports=React},2:function(e,t){e.exports=ReactDOM},415:function(e,t,n){"use
 strict";function l(e){return e&&e.__esModule?e:{default:e}}function 
i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a 
function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been 
initialised - super() hasn't been called");return!t||"object"!=typeof 
t&&"function"!=typeof t?e:t}function r(e,t){if("function"!=typeof 
t&&null!==t)throw new Type [...]
\ No newline at end of file
diff --git a/build/development.md.fea2a50.js b/build/development.md.fea2a50.js
deleted file mode 100644
index 5d7fee6..0000000
--- a/build/development.md.fea2a50.js
+++ /dev/null
@@ -1 +0,0 @@
-webpackJsonp([7],{1:function(e,t){e.exports=React},2:function(e,t){e.exports=ReactDOM},415:function(e,t,n){"use
 strict";function l(e){return e&&e.__esModule?e:{default:e}}function 
i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a 
function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been 
initialised - super() hasn't been called");return!t||"object"!=typeof 
t&&"function"!=typeof t?e:t}function r(e,t){if("function"!=typeof 
t&&null!==t)throw new Type [...]
\ No newline at end of file
diff --git a/en-us/community/development/api-standard.html 
b/en-us/community/development/api-standard.html
deleted file mode 100644
index 52af8d0..0000000
--- a/en-us/community/development/api-standard.html
+++ /dev/null
@@ -1,124 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-  <meta charset="UTF-8">
-  <meta name="viewport" content="width=device-width, initial-scale=1.0, 
maximum-scale=1.0, user-scalable=no">
-  <meta name="keywords" content="api-standard">
-  <meta name="description" content="api-standard">
-  <title>api-standard</title>
-  <link rel="shortcut icon" href="/img/favicon.ico">
-  <link rel="stylesheet" href="/build/vendor.e328afe.css">
-</head>
-<body>
-  <div id="root"><div class="md2html community-page" data-reactroot=""><header 
class="header-container header-container-dark"><div class="header-body"><a 
href="/en-us/index.html"><img class="logo" src="/img/hlogo_white.svg"/></a><div 
class="search search-dark"><span class="icon-search"></span></div><span 
class="language-switch language-switch-dark">中</span><div 
class="header-menu"><img class="header-menu-toggle" 
src="/img/system/menu_white.png"/><div><ul class="ant-menu whiteClass ant-me 
[...]
-<p>A standardized and unified API is the cornerstone of project design.The API 
of DolphinScheduler follows the REST ful standard. REST ful is currently the 
most popular Internet software architecture. It has a clear structure, conforms 
to standards, is easy to understand and extend.</p>
-<p>This article uses the DolphinScheduler API as an example to explain how to 
construct a Restful API.</p>
-<h2>1. URI design</h2>
-<p>REST is &quot;Representational State Transfer&quot;.The design of Restful 
URI is based on resources.The resource corresponds to an entity on the network, 
for example: a piece of text, a picture, and a service. And each resource 
corresponds to a URI.</p>
-<ul>
-<li>One Kind of Resource: expressed in the plural, such as 
<code>task-instances</code>、<code>groups</code> ;</li>
-<li>A Resource: expressed in the singular, or use the ID to represent the 
corresponding resource, such as 
<code>group</code>、<code>groups/{groupId}</code>;</li>
-<li>Sub Resources: Resources under a certain resource, such as 
<code>/instances/{instanceId}/tasks</code>;</li>
-<li>A Sub Resource:<code>/instances/{instanceId}/tasks/{taskId}</code>;</li>
-</ul>
-<h2>2. Method design</h2>
-<p>We need to locate a certain resource by URI, and then use Method or declare 
actions in the path suffix to reflect the operation of the resource.</p>
-<h3>① Query - GET</h3>
-<p>Use URI to locate the resource, and use GET to indicate query.</p>
-<ul>
-<li>When the URI is a type of resource, it means to query a type of resource. 
For example, the following example indicates paging query 
<code>alter-groups</code>.</li>
-</ul>
-<pre><code>Method: GET
-/api/dolphinscheduler/alert-groups
-</code></pre>
-<ul>
-<li>When the URI is a single resource, it means to query this resource. For 
example, the following example means to query the specified 
<code>alter-group</code>.</li>
-</ul>
-<pre><code>Method: GET
-/api/dolphinscheduler/alter-groups/{id}
-</code></pre>
-<ul>
-<li>In addition, we can also express query sub-resources based on URI, as 
follows:</li>
-</ul>
-<pre><code>Method: GET
-/api/dolphinscheduler/projects/{projectId}/tasks
-</code></pre>
-<p><strong>The above examples all represent paging query. If we need to query 
all data, we need to add <code>/list</code> after the URI to distinguish. Do 
not mix the same API for both paged query and query.</strong></p>
-<pre><code>Method: GET
-/api/dolphinscheduler/alert-groups/list
-</code></pre>
-<h3>② Create - POST</h3>
-<p>Use URI to locate the resource, use POST to indicate create, and then 
return the created id to requester.</p>
-<ul>
-<li>create an <code>alter-group</code>:</li>
-</ul>
-<pre><code>Method: POST
-/api/dolphinscheduler/alter-groups
-</code></pre>
-<ul>
-<li>create sub-resources is also the same as above.</li>
-</ul>
-<pre><code>Method: POST
-/api/dolphinscheduler/alter-groups/{alterGroupId}/tasks
-</code></pre>
-<h3>③ Modify - PUT</h3>
-<p>Use URI to locate the resource, use PUT to indicate modify.</p>
-<ul>
-<li>modify an <code>alert-group</code></li>
-</ul>
-<pre><code>Method: PUT
-/api/dolphinscheduler/alter-groups/{alterGroupId}
-</code></pre>
-<h3>④ Delete -DELETE</h3>
-<p>Use URI to locate the resource, use DELETE to indicate delete.</p>
-<ul>
-<li>delete an <code>alert-group</code></li>
-</ul>
-<pre><code>Method: DELETE
-/api/dolphinscheduler/alter-groups/{alterGroupId}
-</code></pre>
-<ul>
-<li>batch deletion: batch delete the id array,we should use POST. <strong>(Do 
not use the DELETE method, because the body of the DELETE request has no 
semantic meaning, and it is possible that some gateways, proxies, and firewalls 
will directly strip off the request body after receiving the DELETE 
request.)</strong></li>
-</ul>
-<pre><code>Method: POST
-/api/dolphinscheduler/alter-groups/batch-delete
-</code></pre>
-<h3>⑤ Others</h3>
-<p>In addition to creating, deleting, modifying and quering, we also locate 
the corresponding resource through url, and then append operations to it after 
the path, such as:</p>
-<pre><code>/api/dolphinscheduler/alert-groups/verify-name
-/api/dolphinscheduler/projects/{projectCode}/process-instances/{code}/view-gantt
-</code></pre>
-<h2>3. Parameter design</h2>
-<p>There are two types of parameters, one is request parameter and the other 
is path parameter. And the parameter must use small hump.</p>
-<p>In the case of paging, if the parameter entered by the user is less than 1, 
the front end needs to automatically turn to 1, indicating that the first page 
is requested; When the backend finds that the parameter entered by the user is 
greater than the total number of pages, it should directly return to the last 
page.</p>
-<h2>4. Others design</h2>
-<h3>base URL</h3>
-<p>The URI of the project needs to use <code>/api/&lt;project_name&gt;</code> 
as the base path, so as to identify that these APIs are under this project.</p>
-<pre><code>/api/dolphinscheduler
-</code></pre>
-</div></section><footer class="footer-container"><div 
class="footer-body"><div><h3>About us</h3><h4>Do you need feedback? Please 
contact us through the following ways.</h4></div><div 
class="contact-container"><ul><li><img class="img-base" 
src="/img/emailgray.png"/><img class="img-change" src="/img/emailblue.png"/><a 
href="/en-us/community/development/subscribe.html"><p>Email 
List</p></a></li><li><img class="img-base" src="/img/twittergray.png"/><img 
class="img-change" src="/img/twitterbl [...]
-  <script 
src="//cdn.jsdelivr.net/npm/[email protected]/dist/react-with-addons.min.js"></script>
-  <script 
src="//cdn.jsdelivr.net/npm/[email protected]/dist/react-dom.min.js"></script>
-  <script>window.rootPath = '';</script>
-  <script src="/build/vendor.24099eb.js"></script>
-  <script src="/build/community.md.e1524ff.js"></script>
-  <script>
-    var _hmt = _hmt || [];
-    (function() {
-      var hm = document.createElement("script");
-      hm.src = "https://hm.baidu.com/hm.js?4e7b4b400dd31fa015018a435c64d06f";;
-      var s = document.getElementsByTagName("script")[0];
-      s.parentNode.insertBefore(hm, s);
-    })();
-  </script>
-  <!-- Global site tag (gtag.js) - Google Analytics -->
-  <script async 
src="https://www.googletagmanager.com/gtag/js?id=G-899J8PYKJZ";></script>
-  <script>
-    window.dataLayer = window.dataLayer || [];
-    function gtag(){dataLayer.push(arguments);}
-    gtag('js', new Date());
-
-    gtag('config', 'G-899J8PYKJZ');
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/en-us/development/have-questions.html 
b/en-us/development/api-standard.html
similarity index 59%
copy from en-us/development/have-questions.html
copy to en-us/development/api-standard.html
index 9f8c657..479d426 100644
--- a/en-us/development/have-questions.html
+++ b/en-us/development/api-standard.html
@@ -3,78 +3,105 @@
 <head>
   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0, 
maximum-scale=1.0, user-scalable=no">
-  <meta name="keywords" content="have-questions">
-  <meta name="description" content="have-questions">
-  <title>have-questions</title>
+  <meta name="keywords" content="api-standard">
+  <meta name="description" content="api-standard">
+  <title>api-standard</title>
   <link rel="shortcut icon" href="/img/favicon.ico">
   <link rel="stylesheet" href="/build/vendor.e328afe.css">
 </head>
 <body>
-  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/en-us/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">中</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant- [...]
-<h2>StackOverflow</h2>
-<p>For usage questions, it is recommended you use the StackOverflow tag <a 
href="https://stackoverflow.com/questions/tagged/apache-dolphinscheduler";>apache-dolphinscheduler</a>
 as it is an active forum for DolphinScheduler users’ questions and answers.</p>
-<p>Some quick tips when using StackOverflow:</p>
+  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/en-us/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">中</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant- [...]
+<p>A standardized and unified API is the cornerstone of project design.The API 
of DolphinScheduler follows the REST ful standard. REST ful is currently the 
most popular Internet software architecture. It has a clear structure, conforms 
to standards, is easy to understand and extend.</p>
+<p>This article uses the DolphinScheduler API as an example to explain how to 
construct a Restful API.</p>
+<h2>1. URI design</h2>
+<p>REST is &quot;Representational State Transfer&quot;.The design of Restful 
URI is based on resources.The resource corresponds to an entity on the network, 
for example: a piece of text, a picture, and a service. And each resource 
corresponds to a URI.</p>
 <ul>
-<li>Prior to asking submitting questions, please:
+<li>One Kind of Resource: expressed in the plural, such as 
<code>task-instances</code>、<code>groups</code> ;</li>
+<li>A Resource: expressed in the singular, or use the ID to represent the 
corresponding resource, such as 
<code>group</code>、<code>groups/{groupId}</code>;</li>
+<li>Sub Resources: Resources under a certain resource, such as 
<code>/instances/{instanceId}/tasks</code>;</li>
+<li>A Sub Resource:<code>/instances/{instanceId}/tasks/{taskId}</code>;</li>
+</ul>
+<h2>2. Method design</h2>
+<p>We need to locate a certain resource by URI, and then use Method or declare 
actions in the path suffix to reflect the operation of the resource.</p>
+<h3>① Query - GET</h3>
+<p>Use URI to locate the resource, and use GET to indicate query.</p>
+<ul>
+<li>When the URI is a type of resource, it means to query a type of resource. 
For example, the following example indicates paging query 
<code>alter-groups</code>.</li>
+</ul>
+<pre><code>Method: GET
+/api/dolphinscheduler/alert-groups
+</code></pre>
 <ul>
-<li>Search StackOverflow’s <a 
href="https://stackoverflow.com/questions/tagged/apache-dolphinscheduler";>apache-dolphinscheduler</a>
 tag to see if your question has already been answered</li>
+<li>When the URI is a single resource, it means to query this resource. For 
example, the following example means to query the specified 
<code>alter-group</code>.</li>
 </ul>
-</li>
-<li>Please follow the StackOverflow <a 
href="https://stackoverflow.com/help/how-to-ask";>code of conduct</a></li>
-<li>Always use the apache-dolphinscheduler tag when asking questions</li>
-<li>Please do not cross-post between <a 
href="https://stackoverflow.com/questions/tagged/apache-dolphinscheduler";>StackOverflow</a>
 and <a 
href="https://github.com/apache/dolphinscheduler/issues/new/choose";>GitHub 
issues</a></li>
+<pre><code>Method: GET
+/api/dolphinscheduler/alter-groups/{id}
+</code></pre>
+<ul>
+<li>In addition, we can also express query sub-resources based on URI, as 
follows:</li>
 </ul>
-<p>Question template:</p>
-<blockquote>
-<p><strong>Describe the question</strong></p>
-<p>A clear and concise description of what the question is.</p>
-<p><strong>Which version of DolphinScheduler:</strong></p>
-<p>-[1.3.0-preview]</p>
-<p><strong>Additional context</strong></p>
-<p>Add any other context about the problem here.</p>
-<p><strong>Requirement or improvement</strong></p>
-<p>- Please describe about your requirements or improvement suggestions.</p>
-</blockquote>
-<p>For broad, opinion based, ask for external resources, debug issues, bugs, 
contributing to the project, and scenarios, it is recommended you use the<a 
href="https://github.com/apache/dolphinscheduler/issues/new/choose";> GitHub 
issues </a>or <a 
href="mailto:[email protected]";>[email protected]</a>
 mailing list.</p>
-<h2>Mailing Lists</h2>
+<pre><code>Method: GET
+/api/dolphinscheduler/projects/{projectId}/tasks
+</code></pre>
+<p><strong>The above examples all represent paging query. If we need to query 
all data, we need to add <code>/list</code> after the URI to distinguish. Do 
not mix the same API for both paged query and query.</strong></p>
+<pre><code>Method: GET
+/api/dolphinscheduler/alert-groups/list
+</code></pre>
+<h3>② Create - POST</h3>
+<p>Use URI to locate the resource, use POST to indicate create, and then 
return the created id to requester.</p>
 <ul>
-<li><a 
href="https://lists.apache.org/[email protected]";>[email protected]</a>
 is for people who want to contribute code to DolphinScheduler. <a 
href="mailto:[email protected]?subject=(send%20this%20email%20to%20subscribe)">(subscribe)</a>
 <a 
href="mailto:[email protected]?subject=(send%20this%20email%20to%20unsubscribe)">(unsubscribe)</a>
 <a href="http://lists.apache.org/list.html?dev@dolphinschedule [...]
+<li>create an <code>alter-group</code>:</li>
 </ul>
-<p>Some quick tips when using email:</p>
+<pre><code>Method: POST
+/api/dolphinscheduler/alter-groups
+</code></pre>
 <ul>
-<li>
-<p>Prior to asking submitting questions, please:</p>
+<li>create sub-resources is also the same as above.</li>
+</ul>
+<pre><code>Method: POST
+/api/dolphinscheduler/alter-groups/{alterGroupId}/tasks
+</code></pre>
+<h3>③ Modify - PUT</h3>
+<p>Use URI to locate the resource, use PUT to indicate modify.</p>
 <ul>
-<li>Search StackOverflow at <a 
href="https://stackoverflow.com/questions/tagged/apache-dolphinscheduler";>apache-dolphinscheduler</a>
 to see if your question has already been answered</li>
+<li>modify an <code>alert-group</code></li>
 </ul>
-</li>
-<li>
-<p>Tagging the subject line of your email will help you get a faster response, 
e.g. [api-server]: How to get open api interface?</p>
-</li>
-<li>
-<p>Tags may help identify a topic by:</p>
+<pre><code>Method: PUT
+/api/dolphinscheduler/alter-groups/{alterGroupId}
+</code></pre>
+<h3>④ Delete -DELETE</h3>
+<p>Use URI to locate the resource, use DELETE to indicate delete.</p>
 <ul>
-<li>Component: MasterServer,ApiServer,WorkerServer,AlertServer, etc</li>
-<li>Level: Beginner, Intermediate, Advanced</li>
-<li>Scenario: Debug, How-to</li>
+<li>delete an <code>alert-group</code></li>
 </ul>
-</li>
-<li>
-<p>For error logs or long code examples, please use <a 
href="https://gist.github.com/";>GitHub gist</a> and include only a few lines of 
the pertinent code / log within the email.</p>
-</li>
+<pre><code>Method: DELETE
+/api/dolphinscheduler/alter-groups/{alterGroupId}
+</code></pre>
+<ul>
+<li>batch deletion: batch delete the id array,we should use POST. <strong>(Do 
not use the DELETE method, because the body of the DELETE request has no 
semantic meaning, and it is possible that some gateways, proxies, and firewalls 
will directly strip off the request body after receiving the DELETE 
request.)</strong></li>
 </ul>
-<h2>Chat Rooms</h2>
-<p>Chat rooms are great for quick questions or discussions on specialized 
topics.</p>
-<p>The following chat rooms are officially part of Apache DolphinScheduler:</p>
-<p>​   The Slack workspace URL: <a 
href="http://asf-dolphinscheduler.slack.com/";>http://asf-dolphinscheduler.slack.com/</a>.</p>
-<p>​   You can join through invitation url: <a 
href="https://s.apache.org/dolphinscheduler-slack";>https://s.apache.org/dolphinscheduler-slack</a>.</p>
-<p>This chat room is used for questions and discussions related to using 
DolphinScheduler.</p>
+<pre><code>Method: POST
+/api/dolphinscheduler/alter-groups/batch-delete
+</code></pre>
+<h3>⑤ Others</h3>
+<p>In addition to creating, deleting, modifying and quering, we also locate 
the corresponding resource through url, and then append operations to it after 
the path, such as:</p>
+<pre><code>/api/dolphinscheduler/alert-groups/verify-name
+/api/dolphinscheduler/projects/{projectCode}/process-instances/{code}/view-gantt
+</code></pre>
+<h2>3. Parameter design</h2>
+<p>There are two types of parameters, one is request parameter and the other 
is path parameter. And the parameter must use small hump.</p>
+<p>In the case of paging, if the parameter entered by the user is less than 1, 
the front end needs to automatically turn to 1, indicating that the first page 
is requested; When the backend finds that the parameter entered by the user is 
greater than the total number of pages, it should directly return to the last 
page.</p>
+<h2>4. Others design</h2>
+<h3>base URL</h3>
+<p>The URI of the project needs to use <code>/api/&lt;project_name&gt;</code> 
as the base path, so as to identify that these APIs are under this project.</p>
+<pre><code>/api/dolphinscheduler
+</code></pre>
 </div></section><footer class="footer-container"><div 
class="footer-body"><div><h3>About us</h3><h4>Do you need feedback? Please 
contact us through the following ways.</h4></div><div 
class="contact-container"><ul><li><img class="img-base" 
src="/img/emailgray.png"/><img class="img-change" src="/img/emailblue.png"/><a 
href="/en-us/community/development/subscribe.html"><p>Email 
List</p></a></li><li><img class="img-base" src="/img/twittergray.png"/><img 
class="img-change" src="/img/twitterbl [...]
   <script 
src="//cdn.jsdelivr.net/npm/[email protected]/dist/react-with-addons.min.js"></script>
   <script 
src="//cdn.jsdelivr.net/npm/[email protected]/dist/react-dom.min.js"></script>
   <script>window.rootPath = '';</script>
   <script src="/build/vendor.24099eb.js"></script>
-  <script src="/build/development.md.fea2a50.js"></script>
+  <script src="/build/development.md.45dc3a5.js"></script>
   <script>
     var _hmt = _hmt || [];
     (function() {
diff --git a/en-us/community/development/api-standard.json 
b/en-us/development/api-standard.json
similarity index 98%
rename from en-us/community/development/api-standard.json
rename to en-us/development/api-standard.json
index 46342e9..f1a0154 100644
--- a/en-us/community/development/api-standard.json
+++ b/en-us/development/api-standard.json
@@ -1,6 +1,6 @@
 {
   "filename": "api-standard.md",
   "__html": "<h1>API design standard</h1>\n<p>A standardized and unified API 
is the cornerstone of project design.The API of DolphinScheduler follows the 
REST ful standard. REST ful is currently the most popular Internet software 
architecture. It has a clear structure, conforms to standards, is easy to 
understand and extend.</p>\n<p>This article uses the DolphinScheduler API as an 
example to explain how to construct a Restful API.</p>\n<h2>1. URI 
design</h2>\n<p>REST is &quot;Representat [...]
-  "link": "/dist/en-us/community/development/api-standard.html",
+  "link": "/dist/en-us/development/api-standard.html",
   "meta": {}
 }
\ No newline at end of file
diff --git a/en-us/development/architecture-design.html 
b/en-us/development/architecture-design.html
index 1d0d16f..3c6abd6 100644
--- a/en-us/development/architecture-design.html
+++ b/en-us/development/architecture-design.html
@@ -10,7 +10,7 @@
   <link rel="stylesheet" href="/build/vendor.e328afe.css">
 </head>
 <body>
-  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/en-us/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">中</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant- [...]
+  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/en-us/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">中</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant- [...]
 <p>Before explaining the architecture of the schedule system, let us first 
understand the common nouns of the schedule system.</p>
 <h3>1.Noun Interpretation</h3>
 <p><strong>DAG:</strong> Full name Directed Acyclic Graph,referred to as 
DAG。Tasks in the workflow are assembled in the form of directed acyclic graphs, 
which are topologically traversed from nodes with zero indegrees of ingress 
until there are no successor nodes. For example, the following picture:</p>
@@ -292,7 +292,7 @@ Public <span class="hljs-class"><span 
class="hljs-keyword">class</span> <span cl
   <script 
src="//cdn.jsdelivr.net/npm/[email protected]/dist/react-dom.min.js"></script>
   <script>window.rootPath = '';</script>
   <script src="/build/vendor.24099eb.js"></script>
-  <script src="/build/development.md.fea2a50.js"></script>
+  <script src="/build/development.md.45dc3a5.js"></script>
   <script>
     var _hmt = _hmt || [];
     (function() {
diff --git a/en-us/development/backend/mechanism/global-parameter.html 
b/en-us/development/backend/mechanism/global-parameter.html
index 86091ea..23c3ae9 100644
--- a/en-us/development/backend/mechanism/global-parameter.html
+++ b/en-us/development/backend/mechanism/global-parameter.html
@@ -10,7 +10,7 @@
   <link rel="stylesheet" href="/build/vendor.e328afe.css">
 </head>
 <body>
-  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/en-us/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">中</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant- [...]
+  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/en-us/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">中</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant- [...]
 <p>After the user defines the parameter with the direction OUT, it is saved in 
the localParam of the task.</p>
 <h2>Usage of parameters</h2>
 <p>Getting the direct predecessor node <code>preTasks</code> of the current 
<code>taskInstance</code> to be created from the DAG, get the 
<code>varPool</code> of <code>preTasks</code>, merge this varPool (List) into 
one <code>varPool</code>, and in the merging process, if parameters with the 
same parameter name are found, they will be handled according to the following 
logics:</p>
@@ -61,7 +61,7 @@
   <script 
src="//cdn.jsdelivr.net/npm/[email protected]/dist/react-dom.min.js"></script>
   <script>window.rootPath = '';</script>
   <script src="/build/vendor.24099eb.js"></script>
-  <script src="/build/development.md.fea2a50.js"></script>
+  <script src="/build/development.md.45dc3a5.js"></script>
   <script>
     var _hmt = _hmt || [];
     (function() {
diff --git a/en-us/development/backend/mechanism/overview.html 
b/en-us/development/backend/mechanism/overview.html
index 3828fe3..3aca496 100644
--- a/en-us/development/backend/mechanism/overview.html
+++ b/en-us/development/backend/mechanism/overview.html
@@ -10,7 +10,7 @@
   <link rel="stylesheet" href="/build/vendor.e328afe.css">
 </head>
 <body>
-  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/en-us/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">中</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant- [...]
+  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/en-us/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">中</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant- [...]
 <!-- TODO Since the side menu does not support multiple levels, add new page 
to keep all sub page here -->
 <ul>
 <li><a href="global-parameter.md">Global Parameter</a></li>
@@ -21,7 +21,7 @@
   <script 
src="//cdn.jsdelivr.net/npm/[email protected]/dist/react-dom.min.js"></script>
   <script>window.rootPath = '';</script>
   <script src="/build/vendor.24099eb.js"></script>
-  <script src="/build/development.md.fea2a50.js"></script>
+  <script src="/build/development.md.45dc3a5.js"></script>
   <script>
     var _hmt = _hmt || [];
     (function() {
diff --git a/en-us/development/backend/mechanism/task/switch.html 
b/en-us/development/backend/mechanism/task/switch.html
index 6388c4e..82b874e 100644
--- a/en-us/development/backend/mechanism/task/switch.html
+++ b/en-us/development/backend/mechanism/task/switch.html
@@ -10,7 +10,7 @@
   <link rel="stylesheet" href="/build/vendor.e328afe.css">
 </head>
 <body>
-  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/en-us/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">中</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant- [...]
+  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/en-us/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">中</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant- [...]
 <p>Switch task workflow step as follows</p>
 <ul>
 <li>User-defined expressions and branch information are stored in 
<code>taskParams</code> in <code>taskdefinition</code>. When the switch is 
executed, it will be formatted as <code>SwitchParameters</code></li>
@@ -23,7 +23,7 @@
   <script 
src="//cdn.jsdelivr.net/npm/[email protected]/dist/react-dom.min.js"></script>
   <script>window.rootPath = '';</script>
   <script src="/build/vendor.24099eb.js"></script>
-  <script src="/build/development.md.fea2a50.js"></script>
+  <script src="/build/development.md.45dc3a5.js"></script>
   <script>
     var _hmt = _hmt || [];
     (function() {
diff --git a/en-us/development/backend/spi/alert.html 
b/en-us/development/backend/spi/alert.html
index 342a232..eaec01a 100644
--- a/en-us/development/backend/spi/alert.html
+++ b/en-us/development/backend/spi/alert.html
@@ -10,7 +10,7 @@
   <link rel="stylesheet" href="/build/vendor.e328afe.css">
 </head>
 <body>
-  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/en-us/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">中</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant- [...]
+  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/en-us/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">中</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant- [...]
 <h4>DolphinScheduler SPI Design</h4>
 <p>The architecture of microkernel &amp; plug-in of DolphinScheduler is 
changing. All core capabilities such as tasks, resource storage, registry, etc. 
will be designed to be extensions, and we want to improve the flexibility as 
well as the friendliness (extensibility) of DolphinScheduler itself through 
SPI.</p>
 <p>You can read the relevant code under the dolphinscheduler-spi module as a 
reference. The extended interface of the associated plug-in is under the 
module, and when we need to implement the relevant function plug-in, it is 
recommended to read this code block first. Of course, you are welcomed to read 
the documentation, which will save a lot less time. However, the documentation 
has a certain lag and when it is missing, it is suggested to take the source 
code as the reference (If you ar [...]
@@ -92,7 +92,7 @@ This package contains the plug-in parameter definitions. We 
use alpacajs, a fron
   <script 
src="//cdn.jsdelivr.net/npm/[email protected]/dist/react-dom.min.js"></script>
   <script>window.rootPath = '';</script>
   <script src="/build/vendor.24099eb.js"></script>
-  <script src="/build/development.md.fea2a50.js"></script>
+  <script src="/build/development.md.45dc3a5.js"></script>
   <script>
     var _hmt = _hmt || [];
     (function() {
diff --git a/en-us/development/backend/spi/plugin.html 
b/en-us/development/backend/spi/plugin.html
index 73b1cb5..c227d7e 100644
--- a/en-us/development/backend/spi/plugin.html
+++ b/en-us/development/backend/spi/plugin.html
@@ -10,7 +10,7 @@
   <link rel="stylesheet" href="/build/vendor.e328afe.css">
 </head>
 <body>
-  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/en-us/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">中</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant- [...]
+  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/en-us/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">中</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant- [...]
 <p>Remind:Currently, task plugin development does not support hot 
deployment.</p>
 <h3>Shell-based tasks</h3>
 <h4>YARN-based calculations (see MapReduceTask)</h4>
@@ -69,7 +69,7 @@
   <script 
src="//cdn.jsdelivr.net/npm/[email protected]/dist/react-dom.min.js"></script>
   <script>window.rootPath = '';</script>
   <script src="/build/vendor.24099eb.js"></script>
-  <script src="/build/development.md.fea2a50.js"></script>
+  <script src="/build/development.md.45dc3a5.js"></script>
   <script>
     var _hmt = _hmt || [];
     (function() {
diff --git a/en-us/development/backend/spi/registry.html 
b/en-us/development/backend/spi/registry.html
index 30e4712..1c43ff4 100644
--- a/en-us/development/backend/spi/registry.html
+++ b/en-us/development/backend/spi/registry.html
@@ -10,7 +10,7 @@
   <link rel="stylesheet" href="/build/vendor.e328afe.css">
 </head>
 <body>
-  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/en-us/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">中</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant- [...]
+  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/en-us/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">中</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant- [...]
 <h4>How to use it?</h4>
 <p>Note: <strong>${VERSION}</strong> needs to be manually modified according 
to the current version.</p>
 <p>First you need to execute the <code>mvn -U install -Prelease 
-Dmaven.test.skip=true</code> to install the plugin for generating the plugin 
JAR of the registry. The directory is: 
dolphinscheduler-dist/target/dolphinscheduler-dist-${VERSION}/lib/plugin/registry.</p>
@@ -57,7 +57,7 @@
   <script 
src="//cdn.jsdelivr.net/npm/[email protected]/dist/react-dom.min.js"></script>
   <script>window.rootPath = '';</script>
   <script src="/build/vendor.24099eb.js"></script>
-  <script src="/build/development.md.fea2a50.js"></script>
+  <script src="/build/development.md.45dc3a5.js"></script>
   <script>
     var _hmt = _hmt || [];
     (function() {
diff --git a/en-us/development/backend/spi/task.html 
b/en-us/development/backend/spi/task.html
index 8f85af1..40b8856 100644
--- a/en-us/development/backend/spi/task.html
+++ b/en-us/development/backend/spi/task.html
@@ -10,7 +10,7 @@
   <link rel="stylesheet" href="/build/vendor.e328afe.css">
 </head>
 <body>
-  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/en-us/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">中</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant- [...]
+  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/en-us/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">中</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant- [...]
 <h4>How to use development environment?</h4>
 <p>Note: <strong>${VERSION}</strong> needs to be manually modified according 
to the current version.</p>
 <p>First you need to execute the <code>mvn -U install 
-Dmaven.test.skip=true</code> to install the plugin for generating the plugin 
JAR of the registry. The directory is: 
dolphinscheduler-dist/target/dolphinscheduler-dist-${VERSION}/lib/plugin/task 
(The version number will follow the change of the main version number)</p>
@@ -35,7 +35,7 @@ 
task.plugin.binding=./dolphinscheduler-task-plugin/dolphinscheduler-task-shell/p
   <script 
src="//cdn.jsdelivr.net/npm/[email protected]/dist/react-dom.min.js"></script>
   <script>window.rootPath = '';</script>
   <script src="/build/vendor.24099eb.js"></script>
-  <script src="/build/development.md.fea2a50.js"></script>
+  <script src="/build/development.md.45dc3a5.js"></script>
   <script>
     var _hmt = _hmt || [];
     (function() {
diff --git a/en-us/development/development-environment-setup.html 
b/en-us/development/development-environment-setup.html
index b764efc..b9fb0ba 100644
--- a/en-us/development/development-environment-setup.html
+++ b/en-us/development/development-environment-setup.html
@@ -10,7 +10,7 @@
   <link rel="stylesheet" href="/build/vendor.e328afe.css">
 </head>
 <body>
-  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/en-us/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">中</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant- [...]
+  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/en-us/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">中</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant- [...]
 <h2>Software Requests</h2>
 <p>Before setting up the DolphinScheduler development environment, please make 
sure you have installed the software as below:</p>
 <ul>
@@ -154,7 +154,7 @@ npm run start
   <script 
src="//cdn.jsdelivr.net/npm/[email protected]/dist/react-dom.min.js"></script>
   <script>window.rootPath = '';</script>
   <script src="/build/vendor.24099eb.js"></script>
-  <script src="/build/development.md.fea2a50.js"></script>
+  <script src="/build/development.md.45dc3a5.js"></script>
   <script>
     var _hmt = _hmt || [];
     (function() {
diff --git a/en-us/development/frontend-development.html 
b/en-us/development/frontend-development.html
index 4766a84..597f8ec 100644
--- a/en-us/development/frontend-development.html
+++ b/en-us/development/frontend-development.html
@@ -10,7 +10,7 @@
   <link rel="stylesheet" href="/build/vendor.e328afe.css">
 </head>
 <body>
-  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/en-us/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">中</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant- [...]
+  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/en-us/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">中</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant- [...]
 <h3>Technical selection</h3>
 <pre><code>Vue mvvm framework
 
@@ -515,7 +515,7 @@ Interface parameter transfer needs to be changed to the 
following way</p>
   <script 
src="//cdn.jsdelivr.net/npm/[email protected]/dist/react-dom.min.js"></script>
   <script>window.rootPath = '';</script>
   <script src="/build/vendor.24099eb.js"></script>
-  <script src="/build/development.md.fea2a50.js"></script>
+  <script src="/build/development.md.45dc3a5.js"></script>
   <script>
     var _hmt = _hmt || [];
     (function() {
diff --git a/en-us/development/have-questions.html 
b/en-us/development/have-questions.html
index 9f8c657..2f4e2e1 100644
--- a/en-us/development/have-questions.html
+++ b/en-us/development/have-questions.html
@@ -10,7 +10,7 @@
   <link rel="stylesheet" href="/build/vendor.e328afe.css">
 </head>
 <body>
-  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/en-us/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">中</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant- [...]
+  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/en-us/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">中</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant- [...]
 <h2>StackOverflow</h2>
 <p>For usage questions, it is recommended you use the StackOverflow tag <a 
href="https://stackoverflow.com/questions/tagged/apache-dolphinscheduler";>apache-dolphinscheduler</a>
 as it is an active forum for DolphinScheduler users’ questions and answers.</p>
 <p>Some quick tips when using StackOverflow:</p>
@@ -74,7 +74,7 @@
   <script 
src="//cdn.jsdelivr.net/npm/[email protected]/dist/react-dom.min.js"></script>
   <script>window.rootPath = '';</script>
   <script src="/build/vendor.24099eb.js"></script>
-  <script src="/build/development.md.fea2a50.js"></script>
+  <script src="/build/development.md.45dc3a5.js"></script>
   <script>
     var _hmt = _hmt || [];
     (function() {
diff --git a/zh-cn/community/development/api-standard.html 
b/zh-cn/community/development/api-standard.html
deleted file mode 100644
index c555ec9..0000000
--- a/zh-cn/community/development/api-standard.html
+++ /dev/null
@@ -1,123 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-  <meta charset="UTF-8">
-  <meta name="viewport" content="width=device-width, initial-scale=1.0, 
maximum-scale=1.0, user-scalable=no">
-  <meta name="keywords" content="api-standard">
-  <meta name="description" content="api-standard">
-  <title>api-standard</title>
-  <link rel="shortcut icon" href="/img/favicon.ico">
-  <link rel="stylesheet" href="/build/vendor.e328afe.css">
-</head>
-<body>
-  <div id="root"><div class="md2html community-page" data-reactroot=""><header 
class="header-container header-container-dark"><div class="header-body"><a 
href="/zh-cn/index.html"><img class="logo" src="/img/hlogo_white.svg"/></a><div 
class="search search-dark"><span class="icon-search"></span></div><span 
class="language-switch language-switch-dark">En</span><div 
class="header-menu"><img class="header-menu-toggle" 
src="/img/system/menu_white.png"/><div><ul class="ant-menu whiteClass ant-m 
[...]
-<p>规范统一的 API 是项目设计的基石。DolphinScheduler 的 API 遵循 REST ful 标准,REST ful 
是目前最流行的一种互联网软件架构,它结构清晰,符合标准,易于理解,扩展方便。</p>
-<p>本文以 DolphinScheduler 项目的接口为样例,讲解如何构造具有 Restful 风格的 API。</p>
-<h2>1. URI 设计</h2>
-<p>REST 即为 Representational State Transfer 的缩写,即“表现层状态转化”。</p>
-<p>“表现层”指的就是“资源”。资源对应网络上的一种实体,例如:一段文本,一张图片,一种服务。且每种资源都对应一个特定的 URI。</p>
-<p>Restful URI 的设计基于资源:</p>
-<ul>
-<li>一类资源:用复数表示,如 <code>task-instances</code>、<code>groups</code> 等;</li>
-<li>单个资源:用单数,或是用 id 值表示某类资源下的一个,如 
<code>group</code>、<code>groups/{groupId}</code>;</li>
-<li>子资源:某个资源下的资源:<code>/instances/{instanceId}/tasks</code>;</li>
-<li>子资源下的单个资源:<code>/instances/{instanceId}/tasks/{taskId}</code>;</li>
-</ul>
-<h2>2. Method 设计</h2>
-<p>我们需要通过 URI 来定位某种资源,再通过 Method,或者在路径后缀声明动作来体现对资源的操作。</p>
-<h3>① 查询操作 - GET</h3>
-<p>通过 URI 来定位要资源,通过 GET 表示查询。</p>
-<ul>
-<li>当 URI 为一类资源时表示查询一类资源,例如下面样例表示分页查询 <code>alter-groups</code>。</li>
-</ul>
-<pre><code>Method: GET
-/api/dolphinscheduler/alert-groups
-</code></pre>
-<ul>
-<li>当 URI 为单个资源时表示查询此资源,例如下面样例表示查询对应的 <code>alter-group</code>。</li>
-</ul>
-<pre><code>Method: GET
-/api/dolphinscheduler/alter-groups/{id}
-</code></pre>
-<ul>
-<li>此外,我们还可以根据 URI 来表示查询子资源,如下:</li>
-</ul>
-<pre><code>Method: GET
-/api/dolphinscheduler/projects/{projectId}/tasks
-</code></pre>
-<p><strong>上述的关于查询的方式都表示分页查询,如果我们需要查询全部数据的话,则需在 URI 的后面加 <code>/list</code> 
来区分。分页查询和查询全部不要混用一个 API。</strong></p>
-<pre><code>Method: GET
-/api/dolphinscheduler/alert-groups/list
-</code></pre>
-<h3>② 创建操作 - POST</h3>
-<p>通过 URI 来定位要创建的资源类型,通过 POST 表示创建动作,并且将创建后的 <code>id</code> 返回给请求者。</p>
-<ul>
-<li>下面样例表示创建一个 <code>alter-group</code>:</li>
-</ul>
-<pre><code>Method: POST
-/api/dolphinscheduler/alter-groups
-</code></pre>
-<ul>
-<li>创建子资源也是类似的操作:</li>
-</ul>
-<pre><code>Method: POST
-/api/dolphinscheduler/alter-groups/{alterGroupId}/tasks
-</code></pre>
-<h3>③ 修改操作 - PUT</h3>
-<p>通过 URI 来定位某一资源,通过 PUT 指定对其修改。</p>
-<pre><code>Method: PUT
-/api/dolphinscheduler/alter-groups/{alterGroupId}
-</code></pre>
-<h3>④ 删除操作 -DELETE</h3>
-<p>通过 URI 来定位某一资源,通过 DELETE 指定对其删除。</p>
-<ul>
-<li>下面例子表示删除 <code>alterGroupId</code> 对应的资源:</li>
-</ul>
-<pre><code>Method: DELETE
-/api/dolphinscheduler/alter-groups/{alterGroupId}
-</code></pre>
-<ul>
-<li>批量删除:对传入的 id 数组进行批量删除,使用 POST 方法。<strong>(这里不要用 DELETE 方法,因为 DELETE 请求的 
body 在语义上没有任何意义,而且有可能一些网关,代理,防火墙在收到 DELETE 请求后会把请求的 body 直接剥离掉。)</strong></li>
-</ul>
-<pre><code>Method: POST
-/api/dolphinscheduler/alter-groups/batch-delete
-</code></pre>
-<h3>⑤ 其他操作</h3>
-<p>除增删改查外的操作,我们同样也通过 <code>url</code> 定位到对应的资源,然后再在路径后面追加对其进行的操作。例如:</p>
-<pre><code>/api/dolphinscheduler/alert-groups/verify-name
-/api/dolphinscheduler/projects/{projectCode}/process-instances/{code}/view-gantt
-</code></pre>
-<h2>3. 参数设计</h2>
-<p>参数分为两种,一种是请求参数(Request Param 或 Request Body),另一种是路径参数(Path Param)。</p>
-<p>参数变量必须用小驼峰表示,并且在分页场景中,用户输入的参数小于 1,则前端需要返给后端 1 
表示请求第一页;当后端发现用户输入的参数大于总页数时,直接返回最后一页。</p>
-<h2>4. 其他设计</h2>
-<h3>基础路径</h3>
-<p>整个项目的 URI 需要以 <code>/api/&lt;project_name&gt;</code> 作为基础路径,从而标识这类 API 
都是项目下的,即:</p>
-<pre><code>/api/dolphinscheduler
-</code></pre>
-</div></section><footer class="footer-container"><div 
class="footer-body"><div><h3>联系我们</h3><h4>有问题需要反馈?请通过以下方式联系我们。</h4></div><div 
class="contact-container"><ul><li><img class="img-base" 
src="/img/emailgray.png"/><img class="img-change" src="/img/emailblue.png"/><a 
href="/zh-cn/community/development/subscribe.html"><p>邮件列表</p></a></li><li><img 
class="img-base" src="/img/twittergray.png"/><img class="img-change" 
src="/img/twitterblue.png"/><a href="https://twitter.com/dolphinschedule";><p 
[...]
-  <script 
src="//cdn.jsdelivr.net/npm/[email protected]/dist/react-with-addons.min.js"></script>
-  <script 
src="//cdn.jsdelivr.net/npm/[email protected]/dist/react-dom.min.js"></script>
-  <script>window.rootPath = '';</script>
-  <script src="/build/vendor.24099eb.js"></script>
-  <script src="/build/community.md.e1524ff.js"></script>
-  <script>
-    var _hmt = _hmt || [];
-    (function() {
-      var hm = document.createElement("script");
-      hm.src = "https://hm.baidu.com/hm.js?4e7b4b400dd31fa015018a435c64d06f";;
-      var s = document.getElementsByTagName("script")[0];
-      s.parentNode.insertBefore(hm, s);
-    })();
-  </script>
-  <!-- Global site tag (gtag.js) - Google Analytics -->
-  <script async 
src="https://www.googletagmanager.com/gtag/js?id=G-899J8PYKJZ";></script>
-  <script>
-    window.dataLayer = window.dataLayer || [];
-    function gtag(){dataLayer.push(arguments);}
-    gtag('js', new Date());
-
-    gtag('config', 'G-899J8PYKJZ');
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/zh-cn/development/have-questions.html 
b/zh-cn/development/api-standard.html
similarity index 59%
copy from zh-cn/development/have-questions.html
copy to zh-cn/development/api-standard.html
index c8455ef..3a8134e 100644
--- a/zh-cn/development/have-questions.html
+++ b/zh-cn/development/api-standard.html
@@ -3,79 +3,104 @@
 <head>
   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0, 
maximum-scale=1.0, user-scalable=no">
-  <meta name="keywords" content="have-questions">
-  <meta name="description" content="have-questions">
-  <title>have-questions</title>
+  <meta name="keywords" content="api-standard">
+  <meta name="description" content="api-standard">
+  <title>api-standard</title>
   <link rel="shortcut icon" href="/img/favicon.ico">
   <link rel="stylesheet" href="/build/vendor.e328afe.css">
 </head>
 <body>
-  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/zh-cn/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">En</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant [...]
-<h2>StackOverflow</h2>
-<p>如果在使用上有疑问,建议你使用StackOverflow标签 <a 
href="https://stackoverflow.com/questions/tagged/apache-dolphinscheduler";>apache-dolphinscheduler</a>,这是一个DolphinScheduler用户问答的活跃论坛。</p>
-<p>使用StackOverflow时的快速提示:</p>
+  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/zh-cn/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">En</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant [...]
+<p>规范统一的 API 是项目设计的基石。DolphinScheduler 的 API 遵循 REST ful 标准,REST ful 
是目前最流行的一种互联网软件架构,它结构清晰,符合标准,易于理解,扩展方便。</p>
+<p>本文以 DolphinScheduler 项目的接口为样例,讲解如何构造具有 Restful 风格的 API。</p>
+<h2>1. URI 设计</h2>
+<p>REST 即为 Representational State Transfer 的缩写,即“表现层状态转化”。</p>
+<p>“表现层”指的就是“资源”。资源对应网络上的一种实体,例如:一段文本,一张图片,一种服务。且每种资源都对应一个特定的 URI。</p>
+<p>Restful URI 的设计基于资源:</p>
 <ul>
-<li>
-<p>在提交问题之前:</p>
+<li>一类资源:用复数表示,如 <code>task-instances</code>、<code>groups</code> 等;</li>
+<li>单个资源:用单数,或是用 id 值表示某类资源下的一个,如 
<code>group</code>、<code>groups/{groupId}</code>;</li>
+<li>子资源:某个资源下的资源:<code>/instances/{instanceId}/tasks</code>;</li>
+<li>子资源下的单个资源:<code>/instances/{instanceId}/tasks/{taskId}</code>;</li>
+</ul>
+<h2>2. Method 设计</h2>
+<p>我们需要通过 URI 来定位某种资源,再通过 Method,或者在路径后缀声明动作来体现对资源的操作。</p>
+<h3>① 查询操作 - GET</h3>
+<p>通过 URI 来定位要资源,通过 GET 表示查询。</p>
 <ul>
-<li>在StackOverflow的 <a 
href="https://stackoverflow.com/questions/tagged/apache-dolphinscheduler";>apache-dolphinscheduler</a>
 标签下进行搜索,看看你的问题是否已经被回答。</li>
+<li>当 URI 为一类资源时表示查询一类资源,例如下面样例表示分页查询 <code>alter-groups</code>。</li>
 </ul>
-</li>
-<li>
-<p>请遵守StackOverflow的<a 
href="https://stackoverflow.com/help/how-to-ask";>行为准则</a></p>
-</li>
-<li>
-<p>提出问题时,请务必使用apache-dolphinscheduler标签。</p>
-</li>
-<li>
-<p>请不要在 <a 
href="https://stackoverflow.com/questions/tagged/apache-dolphinscheduler";>StackOverflow</a>
 和 <a 
href="https://github.com/apache/dolphinscheduler/issues/new/choose";>GitHub 
issues</a>之间交叉发帖。</p>
-</li>
+<pre><code>Method: GET
+/api/dolphinscheduler/alert-groups
+</code></pre>
+<ul>
+<li>当 URI 为单个资源时表示查询此资源,例如下面样例表示查询对应的 <code>alter-group</code>。</li>
 </ul>
-<p>提问模板:</p>
-<blockquote>
-<p><strong>Describe the question</strong></p>
-<p>对问题的内容进行清晰、简明的描述。</p>
-<p><strong>Which version of DolphinScheduler:</strong></p>
-<p>-[1.3.0-preview]</p>
-<p><strong>Additional context</strong></p>
-<p>在此添加关于该问题的其他背景。</p>
-<p><strong>Requirement or improvement</strong></p>
-<p>在此描述您的要求或改进建议。</p>
-</blockquote>
-<p>如果你的问题较为宽泛、有意见或建议、期望请求外部资源,或是有项目调试、bug提交等相关问题,或者想要对项目做出贡献、对场景进行讨论,建议你提交<a 
href="https://github.com/apache/dolphinscheduler/issues/new/choose";> GitHub 
issues </a>或使用[email protected] 邮件列表进行讨论。</p>
-<h2>邮件列表</h2>
+<pre><code>Method: GET
+/api/dolphinscheduler/alter-groups/{id}
+</code></pre>
 <ul>
-<li><a 
href="https://lists.apache.org/[email protected]";>[email protected]</a>
 是为那些想为DolphinScheduler贡献代码的人准备的。 <a 
href="mailto:[email protected]?subject=(send%20this%20email%20to%20subscribe)">(订阅)</a>
 <a 
href="mailto:[email protected]?subject=(send%20this%20email%20to%20unsubscribe)">(退订)</a>
 <a 
href="http://lists.apache.org/[email protected]";>(存档)</a></li>
+<li>此外,我们还可以根据 URI 来表示查询子资源,如下:</li>
 </ul>
-<p>使用电子邮件时的一些快速提示:</p>
+<pre><code>Method: GET
+/api/dolphinscheduler/projects/{projectId}/tasks
+</code></pre>
+<p><strong>上述的关于查询的方式都表示分页查询,如果我们需要查询全部数据的话,则需在 URI 的后面加 <code>/list</code> 
来区分。分页查询和查询全部不要混用一个 API。</strong></p>
+<pre><code>Method: GET
+/api/dolphinscheduler/alert-groups/list
+</code></pre>
+<h3>② 创建操作 - POST</h3>
+<p>通过 URI 来定位要创建的资源类型,通过 POST 表示创建动作,并且将创建后的 <code>id</code> 返回给请求者。</p>
 <ul>
-<li>在提出问题之前:
+<li>下面样例表示创建一个 <code>alter-group</code>:</li>
+</ul>
+<pre><code>Method: POST
+/api/dolphinscheduler/alter-groups
+</code></pre>
 <ul>
-<li>请在StackOverflow的 <a 
href="https://stackoverflow.com/questions/tagged/apache-dolphinscheduler";>apache-dolphinscheduler</a>
 标签下进行搜索,看看你的问题是否已经被回答。</li>
+<li>创建子资源也是类似的操作:</li>
 </ul>
-</li>
-<li>在你的邮件的主题栏里加上标签会帮助你得到更快的回应,例如:[ApiServer]:如何获得开放的api接口?</li>
-<li>可以通过以下标签定义你的主题。
+<pre><code>Method: POST
+/api/dolphinscheduler/alter-groups/{alterGroupId}/tasks
+</code></pre>
+<h3>③ 修改操作 - PUT</h3>
+<p>通过 URI 来定位某一资源,通过 PUT 指定对其修改。</p>
+<pre><code>Method: PUT
+/api/dolphinscheduler/alter-groups/{alterGroupId}
+</code></pre>
+<h3>④ 删除操作 -DELETE</h3>
+<p>通过 URI 来定位某一资源,通过 DELETE 指定对其删除。</p>
 <ul>
-<li>组件相关:MasterServer、ApiServer、WorkerServer、AlertServer等等。</li>
-<li>级别:Beginner、Intermediate、Advanced</li>
-<li>场景相关:Debug,、How-to</li>
+<li>下面例子表示删除 <code>alterGroupId</code> 对应的资源:</li>
 </ul>
-</li>
-<li>如果内容包括错误日志或长代码,请使用 <a href="https://gist.github.com/";>GitHub 
gist</a>,并在邮件中只附加相关代码/日志的几行。</li>
+<pre><code>Method: DELETE
+/api/dolphinscheduler/alter-groups/{alterGroupId}
+</code></pre>
+<ul>
+<li>批量删除:对传入的 id 数组进行批量删除,使用 POST 方法。<strong>(这里不要用 DELETE 方法,因为 DELETE 请求的 
body 在语义上没有任何意义,而且有可能一些网关,代理,防火墙在收到 DELETE 请求后会把请求的 body 直接剥离掉。)</strong></li>
 </ul>
-<h2>Chat Rooms</h2>
-<p>聊天室是快速提问或讨论具体话题的好地方。</p>
-<p>以下聊天室是Apache DolphinScheduler的正式组成部分:</p>
-<p>​   Slack工作区的网址:<a 
href="http://asf-dolphinscheduler.slack.com/";>http://asf-dolphinscheduler.slack.com/</a></p>
-<p>​   你可以通过该邀请链接加入:<a 
href="https://s.apache.org/dolphinscheduler-slack";>https://s.apache.org/dolphinscheduler-slack</a></p>
-<p>此聊天室用于与DolphinScheduler使用相关的问题讨论。</p>
+<pre><code>Method: POST
+/api/dolphinscheduler/alter-groups/batch-delete
+</code></pre>
+<h3>⑤ 其他操作</h3>
+<p>除增删改查外的操作,我们同样也通过 <code>url</code> 定位到对应的资源,然后再在路径后面追加对其进行的操作。例如:</p>
+<pre><code>/api/dolphinscheduler/alert-groups/verify-name
+/api/dolphinscheduler/projects/{projectCode}/process-instances/{code}/view-gantt
+</code></pre>
+<h2>3. 参数设计</h2>
+<p>参数分为两种,一种是请求参数(Request Param 或 Request Body),另一种是路径参数(Path Param)。</p>
+<p>参数变量必须用小驼峰表示,并且在分页场景中,用户输入的参数小于 1,则前端需要返给后端 1 
表示请求第一页;当后端发现用户输入的参数大于总页数时,直接返回最后一页。</p>
+<h2>4. 其他设计</h2>
+<h3>基础路径</h3>
+<p>整个项目的 URI 需要以 <code>/api/&lt;project_name&gt;</code> 作为基础路径,从而标识这类 API 
都是项目下的,即:</p>
+<pre><code>/api/dolphinscheduler
+</code></pre>
 </div></section><footer class="footer-container"><div 
class="footer-body"><div><h3>联系我们</h3><h4>有问题需要反馈?请通过以下方式联系我们。</h4></div><div 
class="contact-container"><ul><li><img class="img-base" 
src="/img/emailgray.png"/><img class="img-change" src="/img/emailblue.png"/><a 
href="/zh-cn/community/development/subscribe.html"><p>邮件列表</p></a></li><li><img 
class="img-base" src="/img/twittergray.png"/><img class="img-change" 
src="/img/twitterblue.png"/><a href="https://twitter.com/dolphinschedule";><p 
[...]
   <script 
src="//cdn.jsdelivr.net/npm/[email protected]/dist/react-with-addons.min.js"></script>
   <script 
src="//cdn.jsdelivr.net/npm/[email protected]/dist/react-dom.min.js"></script>
   <script>window.rootPath = '';</script>
   <script src="/build/vendor.24099eb.js"></script>
-  <script src="/build/development.md.fea2a50.js"></script>
+  <script src="/build/development.md.45dc3a5.js"></script>
   <script>
     var _hmt = _hmt || [];
     (function() {
diff --git a/zh-cn/community/development/api-standard.json 
b/zh-cn/development/api-standard.json
similarity index 98%
rename from zh-cn/community/development/api-standard.json
rename to zh-cn/development/api-standard.json
index ab947ae..8643f63 100644
--- a/zh-cn/community/development/api-standard.json
+++ b/zh-cn/development/api-standard.json
@@ -1,6 +1,6 @@
 {
   "filename": "api-standard.md",
   "__html": "<h1>API 设计规范</h1>\n<p>规范统一的 API 是项目设计的基石。DolphinScheduler 的 API 
遵循 REST ful 标准,REST ful 是目前最流行的一种互联网软件架构,它结构清晰,符合标准,易于理解,扩展方便。</p>\n<p>本文以 
DolphinScheduler 项目的接口为样例,讲解如何构造具有 Restful 风格的 API。</p>\n<h2>1. URI 
设计</h2>\n<p>REST 即为 Representational State Transfer 
的缩写,即“表现层状态转化”。</p>\n<p>“表现层”指的就是“资源”。资源对应网络上的一种实体,例如:一段文本,一张图片,一种服务。且每种资源都对应一个特定的
 URI。</p>\n<p>Restful URI 的设计基于资源:</p>\n<ul>\n<li>一类资源:用复数表示,如 
<code>task-instances</code>、<code>groups</code> 等;</li>\n<li>单个资源:用单数,或是用 i 
[...]
-  "link": "/dist/zh-cn/community/development/api-standard.html",
+  "link": "/dist/zh-cn/development/api-standard.html",
   "meta": {}
 }
\ No newline at end of file
diff --git a/zh-cn/development/architecture-design.html 
b/zh-cn/development/architecture-design.html
index d285a59..949ee0e 100644
--- a/zh-cn/development/architecture-design.html
+++ b/zh-cn/development/architecture-design.html
@@ -10,7 +10,7 @@
   <link rel="stylesheet" href="/build/vendor.e328afe.css">
 </head>
 <body>
-  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/zh-cn/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">En</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant [...]
+  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/zh-cn/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">En</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant [...]
 <p>在对调度系统架构说明之前,我们先来认识一下调度系统常用的名词</p>
 <h3>1.名词解释</h3>
 <p><strong>DAG:</strong> 全称Directed Acyclic 
Graph,简称DAG。工作流中的Task任务以有向无环图的形式组装起来,从入度为零的节点进行拓扑遍历,直到无后继节点为止。举例如下图:</p>
@@ -304,7 +304,7 @@ ZooKeeper Master容错完成之后则重新由DolphinScheduler中Scheduler线程
   <script 
src="//cdn.jsdelivr.net/npm/[email protected]/dist/react-dom.min.js"></script>
   <script>window.rootPath = '';</script>
   <script src="/build/vendor.24099eb.js"></script>
-  <script src="/build/development.md.fea2a50.js"></script>
+  <script src="/build/development.md.45dc3a5.js"></script>
   <script>
     var _hmt = _hmt || [];
     (function() {
diff --git a/zh-cn/development/backend/mechanism/global-parameter.html 
b/zh-cn/development/backend/mechanism/global-parameter.html
index 8842b9b..68bdae9 100644
--- a/zh-cn/development/backend/mechanism/global-parameter.html
+++ b/zh-cn/development/backend/mechanism/global-parameter.html
@@ -10,7 +10,7 @@
   <link rel="stylesheet" href="/build/vendor.e328afe.css">
 </head>
 <body>
-  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/zh-cn/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">En</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant [...]
+  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/zh-cn/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">En</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant [...]
 <p>用户在定义方向为 OUT 的参数后,会保存在 task 的 localParam 中。</p>
 <h2>参数的使用</h2>
 <p>从 DAG 中获取当前需要创建的 taskInstance 的直接前置节点 preTasks,获取 preTasks 的 varPool,将该 
<code>varPool(List&lt;Property&gt;)</code>合并为一个 
varPool,在合并过程中,如果发现有相同的变量名的变量,按照以下逻辑处理</p>
@@ -60,7 +60,7 @@ Master 接收到 varPool 后,将其中为 OUT 的参数回写到 localParam 
   <script 
src="//cdn.jsdelivr.net/npm/[email protected]/dist/react-dom.min.js"></script>
   <script>window.rootPath = '';</script>
   <script src="/build/vendor.24099eb.js"></script>
-  <script src="/build/development.md.fea2a50.js"></script>
+  <script src="/build/development.md.45dc3a5.js"></script>
   <script>
     var _hmt = _hmt || [];
     (function() {
diff --git a/zh-cn/development/backend/mechanism/overview.html 
b/zh-cn/development/backend/mechanism/overview.html
index 8f79b7b..a182d9d 100644
--- a/zh-cn/development/backend/mechanism/overview.html
+++ b/zh-cn/development/backend/mechanism/overview.html
@@ -10,7 +10,7 @@
   <link rel="stylesheet" href="/build/vendor.e328afe.css">
 </head>
 <body>
-  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/zh-cn/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">En</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant [...]
+  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/zh-cn/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">En</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant [...]
 <!-- TODO 由于 side menu 不支持多个等级,所以新建了一个leading page存放 -->
 <ul>
 <li><a href="global-parameter.md">全局参数</a></li>
@@ -21,7 +21,7 @@
   <script 
src="//cdn.jsdelivr.net/npm/[email protected]/dist/react-dom.min.js"></script>
   <script>window.rootPath = '';</script>
   <script src="/build/vendor.24099eb.js"></script>
-  <script src="/build/development.md.fea2a50.js"></script>
+  <script src="/build/development.md.45dc3a5.js"></script>
   <script>
     var _hmt = _hmt || [];
     (function() {
diff --git a/zh-cn/development/backend/mechanism/task/switch.html 
b/zh-cn/development/backend/mechanism/task/switch.html
index 0116752..e72809c 100644
--- a/zh-cn/development/backend/mechanism/task/switch.html
+++ b/zh-cn/development/backend/mechanism/task/switch.html
@@ -10,7 +10,7 @@
   <link rel="stylesheet" href="/build/vendor.e328afe.css">
 </head>
 <body>
-  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/zh-cn/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">En</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant [...]
+  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/zh-cn/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">En</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant [...]
 <p>Switch任务类型的工作流程如下</p>
 <ul>
 
<li>用户定义的表达式和分支流转的信息存在了taskdefinition中的taskParams中,当switch被执行到时,会被格式化为SwitchParameters。</li>
@@ -23,7 +23,7 @@
   <script 
src="//cdn.jsdelivr.net/npm/[email protected]/dist/react-dom.min.js"></script>
   <script>window.rootPath = '';</script>
   <script src="/build/vendor.24099eb.js"></script>
-  <script src="/build/development.md.fea2a50.js"></script>
+  <script src="/build/development.md.45dc3a5.js"></script>
   <script>
     var _hmt = _hmt || [];
     (function() {
diff --git a/zh-cn/development/backend/spi/alert.html 
b/zh-cn/development/backend/spi/alert.html
index ce0c2e8..c749be6 100644
--- a/zh-cn/development/backend/spi/alert.html
+++ b/zh-cn/development/backend/spi/alert.html
@@ -10,7 +10,7 @@
   <link rel="stylesheet" href="/build/vendor.e328afe.css">
 </head>
 <body>
-  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/zh-cn/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">En</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant [...]
+  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/zh-cn/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">En</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant [...]
 <h4>DolphinScheduler SPI 设计</h4>
 <p>DolphinScheduler 正在处于微内核 + 插件化的架构更改之中,所有核心能力如任务、资源存储、注册中心等都将被设计为扩展点,我们希望通过 
SPI 来提高 DolphinScheduler 本身的灵活性以及友好性(扩展性)。</p>
 <p>相关代码可以参考 dolphinscheduler-spi 
模块。相关插件的扩展接口皆在该模块下,当我们需要实现相关功能的插件化的时候,建议先阅读此块的代码,当然,更建议你阅读文档,这会减少很多时间,不过文档有一定的后滞性,当文档缺失的时候,建议以源码为准(如果有兴趣,我们也欢迎你来提交相关文档),此外,我们几乎不会对扩展接口做变更(不包括新增),除非重大架构调整,出现不兼容升级版本,因此,现有文档一般都能够满足。</p>
@@ -91,7 +91,7 @@
   <script 
src="//cdn.jsdelivr.net/npm/[email protected]/dist/react-dom.min.js"></script>
   <script>window.rootPath = '';</script>
   <script src="/build/vendor.24099eb.js"></script>
-  <script src="/build/development.md.fea2a50.js"></script>
+  <script src="/build/development.md.45dc3a5.js"></script>
   <script>
     var _hmt = _hmt || [];
     (function() {
diff --git a/zh-cn/development/backend/spi/plugin.html 
b/zh-cn/development/backend/spi/plugin.html
index 40ba5e9..262c0be 100644
--- a/zh-cn/development/backend/spi/plugin.html
+++ b/zh-cn/development/backend/spi/plugin.html
@@ -10,7 +10,7 @@
   <link rel="stylesheet" href="/build/vendor.e328afe.css">
 </head>
 <body>
-  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/zh-cn/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">En</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant [...]
+  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/zh-cn/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">En</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant [...]
 <p>提醒:目前任务插件开发暂不支持热部署</p>
 <h3>基于SHELL的任务</h3>
 <h4>基于YARN的计算(参见MapReduceTask)</h4>
@@ -69,7 +69,7 @@
   <script 
src="//cdn.jsdelivr.net/npm/[email protected]/dist/react-dom.min.js"></script>
   <script>window.rootPath = '';</script>
   <script src="/build/vendor.24099eb.js"></script>
-  <script src="/build/development.md.fea2a50.js"></script>
+  <script src="/build/development.md.45dc3a5.js"></script>
   <script>
     var _hmt = _hmt || [];
     (function() {
diff --git a/zh-cn/development/backend/spi/registry.html 
b/zh-cn/development/backend/spi/registry.html
index 0c6edea..de773ff 100644
--- a/zh-cn/development/backend/spi/registry.html
+++ b/zh-cn/development/backend/spi/registry.html
@@ -10,7 +10,7 @@
   <link rel="stylesheet" href="/build/vendor.e328afe.css">
 </head>
 <body>
-  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/zh-cn/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">En</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant [...]
+  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/zh-cn/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">En</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant [...]
 <h4>如何使用?</h4>
 <p>首先你需要执行 <code>mvn -U install -Dmaven.test.skip=true</code> 安装插件,生成注册中心的插件 
jar。目录是:dolphinscheduler-dist/target/dolphinscheduler-dist-${VERSION}/lib/plugin/registry</p>
 <p>注意:<strong>${VERSION}</strong> 需要根据当前版本手动修改</p>
@@ -58,7 +58,7 @@
   <script 
src="//cdn.jsdelivr.net/npm/[email protected]/dist/react-dom.min.js"></script>
   <script>window.rootPath = '';</script>
   <script src="/build/vendor.24099eb.js"></script>
-  <script src="/build/development.md.fea2a50.js"></script>
+  <script src="/build/development.md.45dc3a5.js"></script>
   <script>
     var _hmt = _hmt || [];
     (function() {
diff --git a/zh-cn/development/backend/spi/task.html 
b/zh-cn/development/backend/spi/task.html
index e3cb71f..2338755 100644
--- a/zh-cn/development/backend/spi/task.html
+++ b/zh-cn/development/backend/spi/task.html
@@ -10,7 +10,7 @@
   <link rel="stylesheet" href="/build/vendor.e328afe.css">
 </head>
 <body>
-  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/zh-cn/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">En</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant [...]
+  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/zh-cn/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">En</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant [...]
 <h4>开发环境如何使用?</h4>
 <p>首先你需要执行 <code>mvn -U install -Dmaven.test.skip=true</code> 安装插件,生成注册中心的插件 
jar。目录是:dolphinscheduler-dist/target/dolphinscheduler-dist-${VERSION}/lib/plugin/task(版本号会跟随主版本号变更)</p>
 <p>注意:<strong>${VERSION}</strong> 需要根据当前版本手动修改</p>
@@ -35,7 +35,7 @@ 
task.plugin.binding=./dolphinscheduler-task-plugin/dolphinscheduler-task-shell/p
   <script 
src="//cdn.jsdelivr.net/npm/[email protected]/dist/react-dom.min.js"></script>
   <script>window.rootPath = '';</script>
   <script src="/build/vendor.24099eb.js"></script>
-  <script src="/build/development.md.fea2a50.js"></script>
+  <script src="/build/development.md.45dc3a5.js"></script>
   <script>
     var _hmt = _hmt || [];
     (function() {
diff --git a/zh-cn/development/development-environment-setup.html 
b/zh-cn/development/development-environment-setup.html
index 7993b04..dffa64b 100644
--- a/zh-cn/development/development-environment-setup.html
+++ b/zh-cn/development/development-environment-setup.html
@@ -10,7 +10,7 @@
   <link rel="stylesheet" href="/build/vendor.e328afe.css">
 </head>
 <body>
-  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/zh-cn/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">En</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant [...]
+  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/zh-cn/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">En</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant [...]
 <h2>前置条件</h2>
 <p>在搭建 DolphinScheduler 开发环境之前请确保你已经安装一下软件</p>
 <ul>
@@ -152,7 +152,7 @@ npm run start
   <script 
src="//cdn.jsdelivr.net/npm/[email protected]/dist/react-dom.min.js"></script>
   <script>window.rootPath = '';</script>
   <script src="/build/vendor.24099eb.js"></script>
-  <script src="/build/development.md.fea2a50.js"></script>
+  <script src="/build/development.md.45dc3a5.js"></script>
   <script>
     var _hmt = _hmt || [];
     (function() {
diff --git a/zh-cn/development/frontend-development.html 
b/zh-cn/development/frontend-development.html
index 3e2de4b..a865d10 100644
--- a/zh-cn/development/frontend-development.html
+++ b/zh-cn/development/frontend-development.html
@@ -10,7 +10,7 @@
   <link rel="stylesheet" href="/build/vendor.e328afe.css">
 </head>
 <body>
-  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/zh-cn/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">En</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant [...]
+  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/zh-cn/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">En</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant [...]
 <h3>技术选型</h3>
 <pre><code>Vue mvvm 框架
 
@@ -515,7 +515,7 @@ test.then(res =&gt; {
   <script 
src="//cdn.jsdelivr.net/npm/[email protected]/dist/react-dom.min.js"></script>
   <script>window.rootPath = '';</script>
   <script src="/build/vendor.24099eb.js"></script>
-  <script src="/build/development.md.fea2a50.js"></script>
+  <script src="/build/development.md.45dc3a5.js"></script>
   <script>
     var _hmt = _hmt || [];
     (function() {
diff --git a/zh-cn/development/have-questions.html 
b/zh-cn/development/have-questions.html
index c8455ef..1937666 100644
--- a/zh-cn/development/have-questions.html
+++ b/zh-cn/development/have-questions.html
@@ -10,7 +10,7 @@
   <link rel="stylesheet" href="/build/vendor.e328afe.css">
 </head>
 <body>
-  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/zh-cn/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">En</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant [...]
+  <div id="root"><div class="md2html development-page" 
data-reactroot=""><header class="header-container header-container-dark"><div 
class="header-body"><a href="/zh-cn/index.html"><img class="logo" 
src="/img/hlogo_white.svg"/></a><div class="search search-dark"><span 
class="icon-search"></span></div><span class="language-switch 
language-switch-dark">En</span><div class="header-menu"><img 
class="header-menu-toggle" src="/img/system/menu_white.png"/><div><ul 
class="ant-menu whiteClass ant [...]
 <h2>StackOverflow</h2>
 <p>如果在使用上有疑问,建议你使用StackOverflow标签 <a 
href="https://stackoverflow.com/questions/tagged/apache-dolphinscheduler";>apache-dolphinscheduler</a>,这是一个DolphinScheduler用户问答的活跃论坛。</p>
 <p>使用StackOverflow时的快速提示:</p>
@@ -75,7 +75,7 @@
   <script 
src="//cdn.jsdelivr.net/npm/[email protected]/dist/react-dom.min.js"></script>
   <script>window.rootPath = '';</script>
   <script src="/build/vendor.24099eb.js"></script>
-  <script src="/build/development.md.fea2a50.js"></script>
+  <script src="/build/development.md.45dc3a5.js"></script>
   <script>
     var _hmt = _hmt || [];
     (function() {

Reply via email to