diff options
Diffstat (limited to 'index.html')
| -rw-r--r-- | index.html | 251 |
1 files changed, 251 insertions, 0 deletions
diff --git a/index.html b/index.html new file mode 100644 index 0000000..8823408 --- /dev/null +++ b/index.html @@ -0,0 +1,251 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + + + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="description" content="Event Communication and Harmonization across Online platforms"> + <meta name="author" content="Hsiang Nianian"> + <link rel="canonical" href="https://echo.hydroroll.team/"> + <link rel="shortcut icon" href="./img/favicon.ico"> + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" /> + <title>Echo Standard</title> + <link href="./css/bootstrap-3.3.7.min.css" rel="stylesheet"> + <link href="./css/font-awesome-4.7.0.css" rel="stylesheet"> + <link href="./css/base.css" rel="stylesheet"> + <link rel="stylesheet" href="./css/highlight.css"> + <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> + <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script> + <![endif]--> + + <script src="./js/jquery-3.2.1.min.js"></script> + <script src="./js/bootstrap-3.3.7.min.js"></script> + <script src="./js/highlight.pack.js"></script> + + <script src="./js/elasticlunr.min.js"></script> + + <base target="_top"> + <script> + var base_url = '.'; + var is_top_frame = (window === window.parent); + + var pageToc = [ + {title: "\u4e00\u3001Echo \u89c4\u8303", url: "#_top", children: [ + {title: "1.1 \u7248\u672c 1.0.0", url: "#11_100" }, + ]}, + {title: "\u4e8c\u3001\u4ecb\u7ecd", url: "#_1", children: [ + ]}, + {title: "\u4e09\u3001\u672f\u8bed\u5b9a\u4e49", url: "#_2", children: [ + {title: "3.1 ES \u6587\u6863", url: "#31_es" }, + {title: "3.2 Media Types", url: "#32_media_types" }, + {title: "3.3 HTTP\u72b6\u6001\u7801", url: "#33_http" }, + {title: "3.4 \u5176\u4ed6\u672f\u8bed", url: "#34" }, + ]}, + {title: "\u56db\u3001\u89c4\u8303", url: "#_3", children: [ + {title: "\u7248\u672c", url: "#_4" }, + ]}, + ]; + + </script> + <script src="./js/base.js"></script> + <script src="search/main.js"></script> +</head> + +<body> +<script> +if (is_top_frame) { $('body').addClass('wm-top-page'); } +</script> + +<nav class="navbar wm-page-top-frame"> + <div class="container-fluid wm-top-container"> + + <div class="wm-top-tool pull-right wm-vcenter"> + <form class="dropdown wm-vcentered" id="wm-search-form" action="./search.html"> + + <button id="wm-search-show" class="btn btn-sm btn-default" type="submit" + ><i class="fa fa-search" aria-hidden="true"></i></button> + + <div class="input-group input-group-sm wm-top-search"> + <input type="text" name="q" class="form-control" id="mkdocs-search-query" placeholder="Search" autocomplete="off"> + <span class="input-group-btn" role="search"> + + <button class="btn btn-default dropdown-toggle collapse" data-toggle="dropdown" type="button"><span class="caret"></span></button> + <ul id="mkdocs-search-results" class="dropdown-menu dropdown-menu-right"></ul> + <button id="wm-search-go" class="btn btn-default" type="submit"><i class="fa fa-search" aria-hidden="true"></i></button> + </span> + </div> + </form> + </div> + + + <div class="wm-top-tool wm-vcenter pull-right wm-small-left"> + <button id="wm-toc-button" type="button" class="btn btn-sm btn-default wm-vcentered"><i class="fa fa-th-list" aria-hidden="true"></i></button> + </div> + + + + + + <a href="" class="wm-top-brand wm-top-link wm-vcenter"> + + <div class="wm-top-title"> + Echo Standard<br> + + <span class="wm-top-version">1.0</span> + + </div> + </a> + </div> +</nav> + + <div id="main-content" class="wm-page-top-frame"> + +<nav class="wm-toc-pane"> + + <ul class="wm-toctree wm-toc-repo"> + <li class="wm-toc-li wm-toc-lev1"> + <a class="wm-article-link wm-toc-text" href="https://github.com/HydroRoll-Team/echo"> + <i class="fa fa-github"></i> + + GitHub + </a> + </li> + </ul> + <ul class="wm-toctree"> + <li class="wm-toc-li wm-toc-lev1 "><a href="" class="wm-article-link wm-toc-text">Home</a> +</li> + <li class="wm-toc-li wm-toc-lev1 wm-toc-opener"><span class="wm-toc-text">Contents</span> +</li> +<li class="wm-toc-li-nested collapse"> + <ul class="wm-toctree"> + <li class="wm-toc-li wm-toc-lev2 "><a href="Term/" class="wm-article-link wm-toc-text">Term</a> +</li> + <li class="wm-toc-li wm-toc-lev2 "><a href="Event/" class="wm-article-link wm-toc-text">Event</a> +</li> + <li class="wm-toc-li wm-toc-lev2 "><a href="Element/" class="wm-article-link wm-toc-text">Element</a> +</li> + </ul> +</li> + + <li class="wm-toc-li wm-toc-lev1 wm-toc-opener"><span class="wm-toc-text">Resources</span> +</li> +<li class="wm-toc-li-nested collapse"> + <ul class="wm-toctree"> + <li class="wm-toc-li wm-toc-lev2 "><a href="API/" class="wm-article-link wm-toc-text">API Reference</a> +</li> + </ul> +</li> + + </ul> +</nav> + + <div class="wm-content-pane"> + <iframe class="wm-article" name="article"></iframe> + </div> + </div> + +<div class="container-fluid wm-page-content"> + <a name="_top"></a> + + + + + + + + <div class="row wm-article-nav-buttons" role="navigation" aria-label="navigation"> + + <div class="wm-article-nav pull-right"> + <a href="Term/" class="btn btn-xs btn-default pull-right"> + Next + <i class="fa fa-chevron-right" aria-hidden="true"></i> + </a> + <a href="Term/" class="btn btn-xs btn-link"> + Term + </a> + </div> + + </div> + + + + <h2 id="echo">一、Echo 规范<a class="headerlink" href="#echo" title="Permanent link">¶</a></h2> +<p>ES 1.0.0 是 Echo 规范的第一个投入生产环境的版本,而 Echo 是水系规定 HydroRoll 与 infini 之间事件传参类型的一个内部标准,全称 Event Communication and Harmonization across Online platforms。</p> +<h3 id="11_100">1.1 版本 1.0.0<a class="headerlink" href="#11_100" title="Permanent link">¶</a></h3> +<p>文档里的关键词 "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" 都遵循 <a href="https://www.rfc-editor.org/info/bcp14">BCP 14</a>、<a href="https://datatracker.ietf.org/doc/html/rfc2119">RFC2119</a>、<a href="https://datatracker.ietf.org/doc/html/rfc8174">RFC8174</a> 里的解释说明。</p> +<h2 id="_1">二、介绍<a class="headerlink" href="#_1" title="Permanent link">¶</a></h2> +<p>Echo 规范(ES),是定义一个标准的、与具体编程语言无关的 RESTful API 与 Event Defined 规范。文字跑团(TRPG)游戏是一种基于文字描述和角色扮演的桌上游戏,通常由一个游戏主持人(KP)和多个玩家(PC)组成,通过网络平台进行交流和互动。不同的平台可能有不同的功能和限制,比如群聊、频道、图片、音频甚至视频等,这些都会影响到游戏的体验和效果。为了让水系的文字跑团游戏能够跨平台运行,ES 规定了游戏的数据结构、接口定义、错误处理等。这样,水系用户的 TRPG 游戏就可以在不同的平台上实现相同或相似的功能,同时也可以方便模型或规则包或插件开发者进行扩展和定制。</p> +<h2 id="_2">三、术语定义<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2> +<h3 id="31_es">3.1 ES 文档<a class="headerlink" href="#31_es" title="Permanent link">¶</a></h3> +<p>一(或多)份用来定义或描述一个 Event 以及 API 的文档。</p> +<h3 id="32_media_types">3.2 Media Types<a class="headerlink" href="#32_media_types" title="Permanent link">¶</a></h3> +<p>媒体类型定义分散于多处。 媒体类型定义应当符合RFC6838。</p> +<p>以下是一些媒体类型定义的示例:</p> +<pre><code>text/plain; charset=utf-8 + application/json + application/vnd.github+json + application/vnd.github.v3+json + application/vnd.github.v3.raw+json + application/vnd.github.v3.text+json + application/vnd.github.v3.html+json + application/vnd.github.v3.full+json + application/vnd.github.v3.diff + application/vnd.github.v3.patch +</code></pre> +<h3 id="33_http">3.3 HTTP状态码<a class="headerlink" href="#33_http" title="Permanent link">¶</a></h3> +<p>HTTP状态码被用来表示一次请求的被执行状态。<a href="http://tools.ietf.org/html/rfc7231#section-6">RFC7231</a> 定义了有效的状态码,可以在 <a href="http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml">IANA Status Code Registry</a> 找到已经被注册的状态码的列表。</p> +<h3 id="34">3.4 其他术语<a class="headerlink" href="#34" title="Permanent link">¶</a></h3> +<p>包含 Window、World、Event、Element等词条,详见 <a href="Term/">Term.md</a>。</p> +<h2 id="_3">四、规范<a class="headerlink" href="#_3" title="Permanent link">¶</a></h2> +<h3 id="_4">版本<a class="headerlink" href="#_4" title="Permanent link">¶</a></h3> +<p>开放 API 规范使用符合<a href="http://semver.org/spec/v2.0.0.html">语义化版本 2.0.0</a>(semver)规范的版本号。版本号由三部分组成:主版本号.次版本号.修订号。每次更新文档时,根据以下规则递增版本号: +* 主版本号:当 API 有不兼容的修改时,递增主版本号,例如从 1.0.0 变为 2.0.0。 +* 次版本号:当 API 有向下兼容的功能新增时,递增次版本号,例如从 1.0.0 变为 1.1.0。 +* 修订号:当 API 有向下兼容的问题修正时,递增修订号,例如从 1.0.0 变为 1.0.1。 +支持开放API规范 1.0 的工具应该兼容所有 1.0.* 的版本,工具不应当关注修订版本号,比如 1.0.0 和 1.0.1 对它来说应该没有任何区别。</p> +<p>此后开放 API 规范的相同主版本号下更高次要版本的发布不应当对面向低于此次要版本号开发的工具的造成干扰。因此 1.1.0 版本的规范应当可以在面向 1.0.0 版本规范开发的工具内使用。</p> +<p>任何兼容开放 API 规范 1.<em>.</em> 的文档应当包含一个 echo 字段用来表明它使用的规范的语义化版本。</p> + + <br> + + + + + + + + <div class="row wm-article-nav-buttons" role="navigation" aria-label="navigation"> + + <div class="wm-article-nav pull-right"> + <a href="Term/" class="btn btn-xs btn-default pull-right"> + Next + <i class="fa fa-chevron-right" aria-hidden="true"></i> + </a> + <a href="Term/" class="btn btn-xs btn-link"> + Term + </a> + </div> + + </div> + + <br> +</div> + +<footer class="col-md-12 wm-page-content"> + <p> + <a href="https://github.com/HydroRoll-Team/echo/blob/main/docs/index.md"><i class="fa fa-github"></i> +Edit on GitHub</a> + </p><p>2023 HydroRoll-Team</p> + <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a> using <a href="https://github.com/HydroRoll-Team/echo">Windmill Dark</a> theme by Hsiang Nianian (noraj).</p> +</footer> + +</body> +</html> +<!-- +MkDocs version : 1.5.3 +Build Date UTC : 2023-12-25 19:43:00.368893+00:00 +-->
\ No newline at end of file |
