Files
bilibili-API-collect/assets/CONTRIBUTING.html-Dg5RrJ0s.js
T

53 lines
32 KiB
JavaScript
Raw Normal View History

2026-01-22 17:37:01 +00:00
import{_ as t,c as l,a,b as n,d as s,e as d,w as r,r as i,o as p}from"./app-Dgsdh8A6.js";const c={};function u(m,e){const o=i("RouteLink");return p(),l("div",null,[e[17]||(e[17]=a('<h1 id="贡献指�" tabindex="-1"><a class="header-anchor" href="#贡献指�"><span>贡献指�</span></a></h1><p>欢迎�到 bilibili-API-collect 社区贡献指�,本文主���想�对本项目�与贡献的用户, 请务必认真阅读本文正文与潜在的注释</p><h2 id="总则" tabindex="-1"><a class="header-anchor" href="#总则"><span>总则</span></a></h2><p><a href="https://github.com/SocialSisterYi/bilibili-API-collect" target="_blank" rel="noopener noreferrer">bilibili-API-collect</a> 项目(简称 BAC 或 b-a-c)是一个仅用于学习研究�社区开��公益性质的 <a href="https://www.bilibili.com/" target="_blank" rel="noopener noreferrer">B 站(哔哩哔哩)</a>API(应用程�接�)文档,使用 <a href="https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/LICENSE" target="_blank" rel="noopener noreferrer">CC-BY-NC 4.0 �议</a>开�,它将无差别收集整�相关的<strong>主站业务接�</strong>。</p><p>该项目使用 <a href="https://zh.wikipedia.org/zh-cn/Markdown" target="_blank" rel="noopener noreferrer">Markdown</a> 语法进行文档书写,按照业务类型�功能以<strong>路径</strong>+<strong>文件</strong>形�索引,任何用户都�通过 Issue�Pull Request 与 Discussion �供自己分�出的接�地�与使用说明。</p><p>本项目收集的接�类型包括但��于 REST API�gRPC�WebSocket,文档内统一优先使用安全套接字�议,如 <code>https</code>�<code>securityRpc</code>�<code>wss</code>。</p><h2 id="issue�discussion-与社群讨论" tabindex="-1"><a class="header-anchor" href="#issue�discussion-与社群讨论"><span>Issue�Discussion 与社群讨论</span></a></h2><p>对文档内容存在<strong>��解</strong>之处�以��现文档内容有所<strong>缺失</strong>或<strong>错误</strong>,�直接�出,强烈建议以�交 <strong>Issue</strong> 的形� 添加 / 补充 / 更新 文档中的说明,以�起 <strong>Discussion</strong> 的形��出问题�代�用例�情报分享,并希望关于本项目的��交�都是<strong>公开进行</strong>的,因为这样��以��关键信�的一致性。</p><p>�交 Issue 请�守以下原则:</p><ol><li>标题需�点明 API 的用处, <code>&lt;title&gt;</code> �替�为标题主�内容而�是�留�动,切勿仅填写 <code>补充</code>�<code>修�</code>,形�良好的标题�以是 <code>[新增请求] 新增 xx 接�</code>�<code>[更新请求] xx 接�地�已失效</code>�<code>[更新请求] xx 接�的�数有�化</code></li><li>正文请按照 Issue 模�进行填写,标明 API ��(Web�Android�iOS�TV 等)�API 类型(REST�gRPC�WebSocket 等)�API 地�</li><li>详情�述需��供该 API 的使用场景�请求��应字段等,�附上原始抓包记录 (文本格�优先);在更新时还需指出原文档中与最新 API 行为�符之处,并附上已知的最新改动。例如:“在�端页��地� / APP �界�访问� API(标明地�),它的��数与文档中�符(标明文档地�)�</li></ol><p>�起 Discussion 请�守以下原则:</p><ol><li>标题言简�骇,说明欲�出的问题�点,如 <code>如何通过 xx 接�获� yy</code>�<code>关于 xx 字段�义的探讨</code>�<code>建议将 xx 加入 yy 分类</code> 等标题;切勿使用表��糊�清或索�性的标题,如 <code>怎么解决风控</code>�<code>�索的接�是什么</code>�<code>好兄弟有没有投稿的接�</code> 等标题</li><li>Discussion 正文应对�到的问题进行尽�能详细的�述,展开并�焦有关的信�,例如: “按照文档中��置的说明进行了��作,为什么无法获得预期结果��“请问� API 的�
<span class="line"><span style="color:#6796E6;"> -</span><span style="color:#D4D4D4;"> [</span><span style="color:#CE9178;">x</span><span style="color:#D4D4D4;">] 基本信�</span></span>
<span class="line"><span style="color:#6796E6;"> -</span><span style="color:#D4D4D4;"> [</span><span style="color:#CE9178;">x</span><span style="color:#D4D4D4;">] å¿«ç…§</span></span>
<span class="line"><span style="color:#6796E6;"> -</span><span style="color:#D4D4D4;"> [</span><span style="color:#CE9178;">x</span><span style="color:#D4D4D4;">] 视频推�</span></span>
<span class="line"><span style="color:#6796E6;"> -</span><span style="color:#D4D4D4;"> [ ] TAG</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="路径" tabindex="-1"><a class="header-anchor" href="#路径"><span>路径</span></a></h3><p>路径层级应当与文档目录一致,以文件夹的形�存放在项目中的 <code>/docs</code> 路径下,命�统一使用英文�写,如 <code>video</code>�<code>danmaku</code>�<code>comment</code>, �建议出现 <code>&amp;</code> 等特殊字符</p><p>二级�三级路径应当存在二级三级目录,�选添加 <code>README.md</code> 以�述该�目录</p><h3 id="文件" tabindex="-1"><a class="header-anchor" href="#文件"><span>文件</span></a></h3><p>�个�接�集整�为 Markdown (.md) 文件,命�统一使用英文�写,如 <code>info.md</code>�<code>action.md</code>�<code>list.md</code></p><p>文档文件中用于存放相关的接�的说明,如 <code>video/</code> 下的 <code>info.md</code>,存在 <code>查询视频基本信�</code>�<code>查询视频简介</code>�<code>查询视频分P列表</code> 等内容</p><h2 id="markdown-文档内容格�" tabindex="-1"><a class="header-anchor" href="#markdown-文档内容格�"><span>Markdown 文档内容格�</span></a></h2><p>文档使用 <a href="https://vuepress.vuejs.org/" target="_blank" rel="noopener noreferrer">VuePress</a> 生�,�以使用 <a href="https://vuepress.vuejs.org/guide/markdown.html" target="_blank" rel="noopener noreferrer">VuePress Markdown 扩展语法</a>编写</p><p>注:以下文档范�主�针对接�类文档, �根�<strong>实际情况</strong>进行调整, 你也�以使用 <a href="https://github.com/SessionHu/json-apidoc-gen" target="_blank" rel="noopener noreferrer"><code>json-apidoc-gen</code></a> 工具直接生�模�自行填充内容. �接�类文档, 如算法等, �以�考已有的内容</p><h3 id="头部" tabindex="-1"><a class="header-anchor" href="#头部"><span>头部</span></a></h3><p>文档首行为<strong>一级标签</strong>格�标题,如 <code># 用户基本信�</code></p><p><strong>文档头部�需�手写索引</strong>,索引由 VuePress 自动生�</p><h3 id="接�说明" tabindex="-1"><a class="header-anchor" href="#接�说明"><span>接�说明</span></a></h3><p>文档中�存在多个接�说明,应当�守�一范�,�次排列在文档中</p><p>接�说明分为 <code>标题</code>�<code>地�</code>�<code>说明</code>�<code>请求�数</code>�<code>�应正文</code>�<code>示例</code> 这些部分</p><p>接�标题为<strong>二级以下</strong>的标签,接�地�使用<strong>�引用</strong>语法,地���留 REST API 路径,�应�带 query 等内容</p><p>接�地�下方需�注明接�的请求方法,如 <code>GET</code>�<code>POST</code>�<code>PUT</code> 等,使用<em>斜体</em>语法</p><p>若接�存在认�或鉴�,需�在说明中注明,如 <code>Cookie (SESSDATA)</code>�<code>APP</code>(认�是针对用户的,鉴�是针对接�使用的)</p><p>其他使用说明也�写在这里,如 <code>�制游客访问的视频需�登录</code></p><p>e.g.:</p><div class="language-markdown line-numbers-mode" data-highlighter="shiki" data-ext="markdown" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-markdown"><span class="line"><span style="color:#569CD6;font-weight:bold;">## 获�视频详细信�_web端</span></span>
<span class="line"></span>
<span class="line"><span style="color:#6A9955;">&gt;</span><span style="color:#D4D4D4;"> https://api.bilibili.com/x/web-interface/view</span></span>
<span class="line"></span>
<span class="line"><span style="color:#D4D4D4;font-style:italic;">*请求方法: GET*</span></span>
<span class="line"></span>
<span class="line"><span style="color:#D4D4D4;">认�方�: Cookie (SESSDATA)</span></span>
<span class="line"></span>
<span class="line"><span style="color:#D4D4D4;">é™�制游客访问的视频需è¦�登录</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p><strong>请求å�‚æ•°</strong>应在<strong>接å�£è¯´æ˜Ž</strong>的下方,应注明å�‚数类型 URL å�‚数或正文å�‚数(正文å�‚数应注明 <code>Content-Type</code>,如 <code>application/x-www-form-urlencoded</code> 或 <code>multipart/form-data</code>),使用<strong>加粗</strong>语法</p><p>对象的字段å�Šå…¶å�«ä¹‰ä½¿ç”¨<strong>表格</strong>进行整ç�†ï¼Œè¡¨å¤´ç»Ÿä¸€ä¾�次为 <code>å�‚æ•°å��</code>ã€�<code>类型</code>ã€�<code>内容</code>ã€�<code>å¿…è¦�性</code>ã€�<code>备注</code>,使用 <code>object</code>ã€�<code>number</code>ã€�<code>string</code>ã€�<code>boolean</code>ã€�<code>number[]</code>ã€�<code>string[]</code>ã€�<code>file</code> 等这ç§�类似 TypeScript 的类型系统,必è¦�性为 <code>å¿…è¦�</code>ã€�<code>é�žå¿…è¦�</code>ã€�<code>å¿…è¦� (å�¯é€‰)</code> 等,表格内æ¯�个字段为一行</p><p>e.g.:</p><table><thead><tr><th>å�‚æ•°å��</th><th>类型</th><th>内容</th><th>å¿…è¦�性</th><th>备注</th></tr></thead><tbody><tr><td>aid</td><td>num</td><td>稿件 avid</td><td>å¿…è¦� (å�¯é€‰)</td><td>avid 与 bvid 任选</td></tr><tr><td>bvid</td><td>str</td><td>稿件 bvid</td><td>å¿…è¦� (å�¯é€‰)</td><td>avid 与 bvid 任选</td></tr></tbody></table><p><strong>å“�应正文</strong>应在<strong>请求å�‚æ•°</strong>的下方,接å�£å“�应的数æ�®æ ¼å¼�应标注,如 <code>JSON 回å¤�</code>ã€�<code>XML 回å¤�</code>ã€�<code>ProtoBuf 回å¤�</code>,使用<strong>加粗</strong>语法</p><p>JSON Object 或 ProtoBuf Message 应以对象的<strong>表格</strong>å½¢å¼�书写,表头为 <code>根对象</code> 或 <code>xx 中的 yy 对象</code> 或 <code>xx.yy.zz 对象</code>,若对象ä½�于数组中则为 <code>xx 数组中的对象</code> 或 <code>xx[] 中的对象</code></p><p>表头统一ä¾�次为 <code>字段</code>ã€�<code>类型</code>ã€�<code>内容</code>ã€�<code>备注</code>,类型为 JSON / Protobuf 的标准类型,具体å�Œè¯·æ±‚å�‚数一致</p><p>ä¸�明确定义的字段说明在内容的末尾添加问å�·ï¼Œå¦‚ <code>播放数?</code>;定义尚未明确的字段使用 <code>(?)</code> 在内容中å� ä½�,并在备注中填写 <code>作用尚ä¸�明确</code></p><p>多个对象å�Šæ•°ç»„,使用<strong>é��历树</strong>的顺åº�进行排列, 若数组中的æ¯�一项结构å�‡ç›¸å�Œä¹Ÿå�¯ä»¥ç›´æŽ¥çœ�略为åƒ� <code>xxx 数组中的对象</code> 这样的格å¼�</p><p>e.g.:</p><p><code>data</code> 对象:</p><table><thead><tr><th>字段</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>bvid</td><td>str</td><td>稿件 bvid</td><td></td></tr><tr><td>aid</td><td>num</td><td>稿件 avid</td><td></td></tr><tr><td>videos</td><td>num</td><td>稿件分P总数</td><td>默认为 1</td></tr><tr><td>tid</td><td>num</td><td>分区 tid</td><td></td></tr><tr><td>no_cache</td><td>bool</td><td>(?)</td><td>作用尚ä¸�明确</td></tr></tbody></table><p>Json Array 或 ProtoBuf Repeated 类型使用数组的<strong>表格</strong>å½¢å¼�书写,表头统一ä¾�次为 <code>项</code>ã€�<code>类型</code>ã€�<code>内容</code>ã€�<code>备注</code>,无é™�长度数组表尾需è¦�添加<strong>çœ�ç•¥å�·</strong></p><p>数组æ¯�项内容若与实际数æ�®æœ‰å…³è�”,<code>内容</code> 字段则å�¯æ ‡ä¸º <code>(n+1)P 视频内容</code> 这样的形å¼�</p><p>e.g.:</p><p><code>data</code> 中的 <code>pages</code> 数组:</p><table><thead><tr><th>项</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>0</td><td>obj</td><td>1P 视频内容</td><td>无分 P 仅有此项</td></tr><tr><td>n</td><td>obj</td><td>(n+1)P 视é¢
<span class="line"></span>
<span class="line"><span style="color:#D4D4D4;">获�视频 </span><span style="color:#CE9178;">\`av85440373\`</span><span style="color:#D4D4D4;"> 的基本信�</span></span>
<span class="line"></span>
<span class="line"><span style="color:#D4D4D4;">\`\`\`shell</span></span>
<span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -G</span><span style="color:#CE9178;"> &#39;https://api.bilibili.com/x/web-interface/view&#39;</span><span style="color:#D7BA7D;"> \\</span></span>
<span class="line"><span style="color:#D4D4D4;"> --data-urlencode &#39;aid=85440373&#39;</span></span>
<span class="line"><span style="color:#D4D4D4;">\`\`\`</span></span>
<span class="line"></span>
<span class="line"><span style="color:#D4D4D4;">&lt;details&gt;</span></span>
<span class="line"><span style="color:#D4D4D4;">&lt;summary&gt;查看�应示例:&lt;/summary&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#D4D4D4;">\`\`\`jsonc</span></span>
<span class="line"><span style="color:#D4D4D4;">{</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;code&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;message&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;0&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;ttl&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;data&quot;</span><span style="color:#D4D4D4;">: {</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;bvid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;BV117411r7R1&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;aid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">85440373</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;videos&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;tid&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">28</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;tname&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">&quot;原创音�&quot;</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#9CDCFE;"> &quot;copyright&quot;</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
<span class="line"><span style="color:#6A9955;"> // ...</span></span>
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span>
<span class="line"><span style="color:#D4D4D4;">\`\`\`</span></span>
<span class="line"></span>
<span class="line"><span style="color:#D4D4D4;">&lt;/details&gt;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="枚举值与属性�" tabindex="-1"><a class="header-anchor" href="#枚举值与属性�"><span>枚举值与属性�</span></a></h3><p>接�返回或请求中若存在一些 enum 类型或二进制属性�,应当�独进行探讨,如视频的属性� <code>attribute</code> 或视频清晰度 <code>qn</code></p><p>这些值�其说明使用<strong>表格</strong>进行整�,表头统一为 <code>�</code> / <code>代�</code> / <code>值</code>�<code>�义</code>�<code>备注</code></p><p>这些枚举值或属性�的用法应附加文字说明</p><p>e.g.:</p><table><thead><tr><th>值</th><th>�义</th><th>备注</th></tr></thead><tbody><tr><td>6</td><td>240P �速</td><td>仅 MP4 格�支�<br>仅 <code>platform=html5</code> 时有效</td></tr><tr><td>16</td><td>360P �畅</td><td></td></tr><tr><td>32</td><td>480P 清晰</td><td></td></tr><tr><td>64</td><td>720P 高清</td><td>WEB 端默认值<br>B 站�端需�登录�能选择,但是直接��请求�以�登录就拿到 720P 的��地�<br><strong>无 720P 时则为 720P60</strong></td></tr><tr><td>74</td><td>720P60 高帧率</td><td>需�登录认�</td></tr><tr><td>80</td><td>1080P 高清</td><td>TV 端与 APP 端默认值<br>需�登录认�</td></tr></tbody></table><h2 id="proto-定义格�" tabindex="-1"><a class="header-anchor" href="#proto-定义格�"><span>Proto 定义格�</span></a></h2><p>proto 文件为 <a href="https://protobuf.dev/" target="_blank" rel="noopener noreferrer">Protocol Buffers</a> 以� <a href="https://grpc.io/docs/" target="_blank" rel="noopener noreferrer">gRPC</a> 的数�结构体定义,多用于客户端的接�,本文档也�相关的收集</p><p>存放于项目的 <code>/grpc_api</code> 路径下,使用包�进行路径层级的组织,如:</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-"><span class="line"><span>/grpc_api/bilibili/main/community/reply/v1/reply.proto</span></span>
<span class="line"><span>/grpc_api/bilibili/app/archive/v1/archive.proto</span></span>
<span class="line"><span>/grpc_api/bilibili/app/view/v1/view.proto</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>proto 文件内使用<strong>�行注释</strong>标注字段或对象的�义,如:</p><div class="language-protobuf line-numbers-mode" data-highlighter="shiki" data-ext="protobuf" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-protobuf"><span class="line"><span style="color:#6A9955;">// UP主信�</span></span>
<span class="line"><span style="color:#569CD6;">message</span><span style="color:#4EC9B0;"> Author</span><span style="color:#D4D4D4;"> {</span></span>
<span class="line"><span style="color:#6A9955;"> // UP主mid</span></span>
<span class="line"><span style="color:#569CD6;"> int64</span><span style="color:#9CDCFE;"> mid</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">;</span></span>
<span class="line"><span style="color:#6A9955;"> // UP主昵称</span></span>
<span class="line"><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> name</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">2</span><span style="color:#D4D4D4;">;</span></span>
<span class="line"><span style="color:#6A9955;"> // UP主头�url</span></span>
<span class="line"><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> face</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">3</span><span style="color:#D4D4D4;">;</span></span>
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="文档�交" tabindex="-1"><a class="header-anchor" href="#文档�交"><span>文档�交</span></a></h2><h3 id="拉�-pull-与-�交-commit" tabindex="-1"><a class="header-anchor" href="#拉�-pull-与-�交-commit"><span>拉� (Pull) 与 �交 (Commit)</span></a></h3><p>本项目仓库仅托管于 GitHub, 使用 Git 作为版本控制系统, 你需�对两者有基础的了解</p><p>请先 fork, 然�在自己的 fork 上进行修改</p><p>�交的标题��使用默认的 <code>Update xxx</code>, 请�循 <a href="https://www.conventionalcommits.org/zh-hans/v1.0.0/" target="_blank" rel="noopener noreferrer">Conventional Commits (约定��交) 规范</a>, 标题语言�根�个人习惯</p><p>当�现远程与本地仓库�一致时, 若你�作的 fork 的 branch 无打开的 PR, 建议使用�基拉�, 而�是生�一个�外的�并�交的�并拉�, �之则相�</p><p>移动文件请使用 <code>git mv</code>, 而�是删除并添加�一个文件于���置 (该问题在 VSCode 的 GUI 版 Git 中存在), 以便�续 blame �作</p><h3 id="拉�请求-pull-request" tabindex="-1"><a class="header-anchor" href="#拉�请求-pull-request"><span>拉�请求 (Pull Request)</span></a></h3><p>使用 拉�请求 (Pull Request, PR) 将修改�的文档�交到 <code>master</code> 分支,标题需写明修改或新增的内容, �样也需��循约定��交规范, <code>gh_pages</code> 分支将在 PR �并�自动更新</p><p>如果你还没有完�计划的全部修改, 请创建 Draft Pull Request 表示你还没有�好被�并的准备 <s>(抢�先机, 精神�嘉, 值得鼓励)</s></p><p>PR 正文使用 <strong>无�列表</strong> 写明更改的�一项内容, �以使用�选框表明进度, 需�关闭的 Issue 请使用 <code>close #xxxx</code> 这样的格�一并包�在内</p><p>如果内容包�代�等, 请一并�供测试的输入与输出的文本或截图, 最好�以附上完整的测试环境�相关�执行文件等</p><p>PR �并�, 请�时删除或更新分支. 特别是在使用压缩�并或�基�并�, 请 <code>Discard changes</code> 或直接删除分支, 以�在下一次 PR �出现��相��交的问题</p>`,71))])}const b=t(c,[["render",u]]),g=JSON.parse('{"path":"/CONTRIBUTING.html","title":"贡献指�","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1752448376000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":4,"url":"https://github.com/SocialSisterYi"},{"name":"LaMerChiang","username":"LaMerChiang","email":"catlair@qq.com","commits":1,"url":"https://github.com/LaMerChiang"},{"name":"wuziqian211","username":"wuziqian211","email":"65224318+wuziqian211@users.noreply.github.com","commits":3,"url":"https://github.com/wuziqian211"},{"name":"SessionHu","username":"SessionHu","email":"102411014+SessionHu@users.noreply.github.com","commits":7,"url":"https://github.com/SessionHu"}],"changelog":[{"hash":"2eae485e9949f9ae71b9f57f3416c8d7034573bd","time":1752448376000,"email":"102411014+SessionHu@users.noreply.github.com","author":"Session�胡","message":"JSONC highlighting &#x26; Upgrade VuePress (#1091)"},{"hash":"2eeda0f468b527254b15675f954698c0ef84bc5b","time":1748661604000,"email":"102411014+SessionHu@users.noreply.github.com","author":"SessionHu","message":"feat(CONTRIBUTING.md): 确认类型系统更改"},{"hash":"612d59101f078991f0c570a42400b0fabe2242b0","time":1746372671000,"email":"102411014+SessionHu@users.noreply.github.com","author":"SessionHu","message":"feat(CONTRIBUTING.md)