import{C as o}from"./chunks/ContributorBar.DYl-TzEv.js";import{c as i,o as l,al as t,G as a}from"./chunks/framework.BUxnStXl.js";import"./chunks/theme.DHdK0f8s.js";const h=JSON.parse('{"title":"开发指南","description":"","frontmatter":{"title":"开发指南","order":0},"headers":[],"relativePath":"dev/guide.md","filePath":"zh/dev/guide.md","lastUpdated":1734116271000}'),r={name:"dev/guide.md"},g=Object.assign(r,{setup(d){return(c,e)=>(l(),i("div",null,[e[0]||(e[0]=t('<h1 id="开发指南" tabindex="-1">开发指南 <a class="header-anchor" href="#开发指南" aria-label="Permalink to &quot;开发指南&quot;">​</a></h1><h2 id="如何开发" tabindex="-1">如何开发 <a class="header-anchor" href="#如何开发" aria-label="Permalink to &quot;如何开发&quot;">​</a></h2><p>插件开发无需阅读本文档，请阅读<a href="./plugin.html">插件开发文档</a>和<a href="./api/">API 引用</a>。</p><p>如需往轻雪仓库提交代码，请阅读以下内容：</p><ol><li>首先<a href="https://github.com/LiteyukiStudio/LiteyukiBot/fork" target="_blank" rel="noreferrer">fork</a>一份轻雪仓库到你的个人/组织账户下。</li><li>在你的仓库中进行开发。</li><li>在你的仓库中创建一个新的分支，将你的代码提交到这个分支。</li><li>在你的仓库中创建一个Pull Request，将你的分支合并到轻雪仓库的<code>main</code>分支。</li></ol><p>参与开发默认你已经了解Python语言和轻雪框架的基本使用方法，如果是文档相关的开发，请确保你了解Markdown语法和基本前端知识。 出现冲突请与仓库维护者联系。</p><h3 id="建议" tabindex="-1">建议 <a class="header-anchor" href="#建议" aria-label="Permalink to &quot;建议&quot;">​</a></h3><ul><li>开发过程中可以使用<code>mypy</code>, <code>flake8</code>, <code>black</code>等工具进行代码检查和格式化。</li><li>启用开发者模式，可以在<code>config.yml</code>中设置<code>dev_mode: true</code>，这样可以在控制台看到更多的调试信息。</li></ul><h2 id="项目结构" tabindex="-1">项目结构 <a class="header-anchor" href="#项目结构" aria-label="Permalink to &quot;项目结构&quot;">​</a></h2><ul><li><code>main.py</code>: 机器人入口文件</li><li><code>liteyuki</code>: 框架目录（liteyukibot）</li><li><code>src</code>: 机器人源码目录 <ul><li><code>liteyuki_plugins</code>: 轻雪插件目录</li><li><code>nonebot_plugins</code>: Nonebot插件目录</li><li><code>resources</code>: 内置资源包目录</li><li><code>utils</code>: 工具目录</li></ul></li><li><code>tests</code>: 单元测试目录</li><li><code>docs</code>: 文档目录 <ul><li><code>en</code>: 英文文档</li><li><code>zh</code>: 中文文档</li></ul></li><li><code>docker</code>: Docker相关内容目录</li></ul><p>其中，<code>liteyuki</code>框架是包含在<code>LiteyukiBot</code>应用中的，所以此项目既是<code>LiteyukiBot</code>应用仓库，同时也是<code>liteyuki</code>框架的仓库</p><p><code>src</code>目录下为应用程序部分，业务逻辑请在此目录下进行开发，<code>liteyuki_plugins</code>和<code>nonebot_plugins</code>目录下为插件目录，插件开发请在此目录下进行开发。</p><h2 id="规范化" tabindex="-1">规范化 <a class="header-anchor" href="#规范化" aria-label="Permalink to &quot;规范化&quot;">​</a></h2><ul><li>代码请遵循<a href="https://pep8.org/" target="_blank" rel="noreferrer"><code>PEP8</code></a>和<a href="https://google.github.io/styleguide/pyguide.html" target="_blank" rel="noreferrer"><code>Google Python Style Guide</code></a></li><li>提交到轻雪仓库的代码，请遵循以下规范： <ul><li>请确保代码是可运行的，没有危害的。</li><li>请确保代码的类型提示是正确的。</li><li>请确保注释风格为<a href="https://google.github.io/styleguide/pyguide.html" target="_blank" rel="noreferrer"><code>Google Docstring</code></a>或<a href="https://github.com/LiteyukiStudio/litedoc?tab=readme-ov-file#liteyuki-docstring" target="_blank" rel="noreferrer"><code>Liteyuki Docstring</code></a>(推荐)以保证Litedoc能够正确解析并生成文档。</li><li>字符串请使用双引号<code>&quot;</code>，尽量避免使用单引号<code>&#39;</code>，但在嵌套字符串时可以使用单引号。</li><li>若有面向普通用户部分，请确保文档是完善的(每种语言都有对应的文档)。</li></ul></li><li>commit message请遵循以下规范： <ul><li>应在每次完成一个功能或修复一个bug后提交代码，不要将多个功能或多个bug的代码混在一起提交。</li><li>我们使用gitmoji来标记commit的类型，如<code>:sparkles:</code>表示引入新功能，<code>:bug:</code>表示修复bug等，具体请参考<a href="https://gitmoji.dev/" target="_blank" rel="noreferrer">gitmoji</a></li><li>commit message的格式为<code>&lt;emoji&gt; [type:] &lt;message&gt;</code>，如<code>:sparkles: feat: 给event添加新字段</code>， 其中<code>type</code>字段为commit类型且<strong>可选</strong>，message字段为简短的描述，总结来说就是你干了什么。</li><li>不限制commit message的语言，有条件可以使用中英双语。</li></ul></li><li>文档请遵循<a href="https://www.markdownguide.org/" target="_blank" rel="noreferrer"><code>Markdown</code></a>语法，并且支持vitepress相关内容： <ul><li>修订文档时，每个语言的文档都要修订。</li><li>请确保文档内的链接是正确的，不要出现无法访问的死链接。</li><li>请确保<strong>用户文档</strong>是通俗易懂的，<strong>开发文档</strong>是详细的。</li></ul></li></ul><h2 id="最后" tabindex="-1">最后 <a class="header-anchor" href="#最后" aria-label="Permalink to &quot;最后&quot;">​</a></h2><ul><li>本项目是一个非盈利的开源项目，我们欢迎任何人参与开发，你的贡献将会使轻雪变得更好。</li></ul>',16)),a(o)]))}});export{h as __pageData,g as default};
