app/en/dev/guide.html

27 lines
56 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en-US" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Development Guide | LiteyukiBot</title>
<meta name="description" content="A high-performance, easy-to-use chatbot framework and application">
<meta name="generator" content="VitePress v1.4.1">
<link rel="preload stylesheet" href="/assets/style.Dakhq8yk.css" as="style">
<script type="module" src="/assets/app.GiJFSGKW.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/assets/chunks/theme.DsuJY84h.js">
<link rel="modulepreload" href="/assets/chunks/framework.jrU0lkHV.js">
<link rel="modulepreload" href="/assets/chunks/ContributorBar.BVYqJhuX.js">
<link rel="modulepreload" href="/assets/en_dev_guide.md.CTFaqeXJ.lean.js">
<link rel="icon" type="image/x-icon" href="favicon.ico">
<link rel="stylesheet" href="https://fonts.font.im/css?family=Cousine:400,400i,700,700i|Poppins:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i">
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
</head>
<body>
<div id="app"><div class="Layout" data-v-2391887b data-v-d894e9ff><!--[--><!--]--><!--[--><span tabindex="-1" data-v-dc101702></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-dc101702> Skip to content </a><!--]--><!----><header class="VPNav" data-v-d894e9ff data-v-d6d570a0><div class="VPNavBar" data-v-d6d570a0 data-v-f2786236><div class="wrapper" data-v-f2786236><div class="container" data-v-f2786236><div class="title" data-v-f2786236><div class="VPNavBarTitle has-sidebar" data-v-f2786236 data-v-718cb97a><a class="title" href="/en/" data-v-718cb97a><!--[--><!--]--><!--[--><!--[--><!--[--><img class="VPImage dark logo" src="/liteyuki-dark.svg" alt="LiteyukiBot Logo" data-v-e696402e><!--]--><!--[--><img class="VPImage light logo" src="/liteyuki.svg" alt="LiteyukiBot Logo" data-v-e696402e><!--]--><!--]--><!--]--><span data-v-718cb97a>LiteyukiBot</span><!--[--><!--]--></a></div></div><div class="content" data-v-f2786236><div class="content-body" data-v-f2786236><!--[--><!--]--><div class="VPNavBarSearch search" data-v-f2786236><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-f2786236 data-v-5f1e58e5><span id="main-nav-aria-label" class="visually-hidden" data-v-5f1e58e5> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/en/deploy/install.html" tabindex="0" data-v-5f1e58e5 data-v-78d7f906><!--[--><span data-v-78d7f906>Deploy</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/en/usage/basic.html" tabindex="0" data-v-5f1e58e5 data-v-78d7f906><!--[--><span data-v-78d7f906>Usage</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/en/store/resource.html" tabindex="0" data-v-5f1e58e5 data-v-78d7f906><!--[--><span data-v-78d7f906>Extension</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink active" href="/en/dev/guide.html" tabindex="0" data-v-5f1e58e5 data-v-78d7f906><!--[--><span data-v-78d7f906>Develop</span><!--]--></a><!--]--><!--]--></nav><div class="VPFlyout VPNavBarTranslations translations" data-v-f2786236 data-v-88f99f4b data-v-442180f1><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="Language" data-v-442180f1><span class="text" data-v-442180f1><span class="vpi-languages option-icon" data-v-442180f1></span><!----><span class="vpi-chevron-down text-icon" data-v-442180f1></span></span></button><div class="menu" data-v-442180f1><div class="VPMenu" data-v-442180f1 data-v-0b650e69><!----><!--[--><!--[--><div class="items" data-v-88f99f4b><p class="title" data-v-88f99f4b>English</p><!--[--><div class="VPMenuLink" data-v-88f99f4b data-v-753be832><a class="VPLink link" href="/dev/guide.html" data-v-753be832><!--[--><span data-v-753be832>简体中文</span><!--]--></a></div><!--]--></div><!--]--><!--]--></div></div></div><div class="VPNavBarAppearance appearance" data-v-f2786236 data-v-8076706e><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-8076706e data-v-98e300dd data-v-743813fb><span class="check" data-v-743813fb><span class="icon" data-v-743813fb><!--[--><span class="vpi-sun sun" data-v-98e300dd></span><span class="vpi-moon moon" data-v-98e300dd></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-f2786236 data-v-1d40b8e8 data-v-cb269fd5><!--[--><a class="VPSocialLink no-icon" href="https://github.com/LiteyukiStudio/LiteyukiBot" aria-label="github" target="_blank" rel="noopener" data-v-cb269fd5 data-v-c00f18b1><span class="vpi-social-github" /></a><a class="VPSocialLink no-icon" href="https://git.liteyuki.icu/LiteyukiStudio/LiteyukiBot" aria-label target="_blank" rel="noopener" data-v-cb269fd5 data-v-c00f18b1><svg t="1725391346807" class="icon" viewBox="0 0 1025 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5067" width="256" height="256"><path d="M1004.692673 466.396616l-447.094409-447.073929c-25.743103-25.763582-67.501405-25.763582-93.264987 0l-103.873521 103.873521 78.171378 78.171378c12.533635-6.00058 26.562294-9.359266 41.389666-9.359266 53.02219 0 96.00928 42.98709 96.00928 96.00928 0 14.827372-3.358686 28.856031-9.359266 41.389666l127.97824 127.97824c12.533635-6.00058 26.562294-9.359266 41.389666-9.359266 53.02219 0 96.00928 42.98709 96.00928 96.00928s-42.98709 96.00928-96.00928 96.00928-96.00928-42.98709-96.00928-96.00928c0-14.827372 3.358686-28.856031 9.359266-41.389666l-127.97824-127.97824c-3.051489 1.454065-6.184898 2.744293-9.379746 3.870681l0 266.97461c37.273227 13.188988 63.99936 48.721433 63.99936 90.520695 0 53.02219-42.98709 96.00928-96.00928 96.00928s-96.00928-42.98709-96.00928-96.00928c0-41.799262 26.726133-77.331707 63.99936-90.520695l0-266.97461c-37.273227-13.188988-63.99936-48.721433-63.99936-90.520695 0-14.827372 3.358686-28.856031 9.359266-41.389666l-78.171378-78.171378-295.892081 295.871601c-25.743103 25.784062-25.743103 67.542365 0 93.285467l447.114889 447.073929c25.743103 25.743103 67.480925 25.743103 93.264987 0l445.00547-445.00547c25.763582-25.763582 25.763582-67.542365 0-93.285467z" fill="#a2d8f4" p-id="5068"></path></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-f2786236 data-v-aa2ede9e data-v-442180f1><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-442180f1><span class="vpi-more-horizontal icon" data-v-442180f1></span></button><div class="menu" data-v-442180f1><div class="VPMenu" data-v-442180f1 data-v-0b650e69><!----><!--[--><!--[--><div class="group translations" data-v-aa2ede9e><p class="trans-title" data-v-aa2ede9e>English</p><!--[--><div class="VPMenuLink" data-v-aa2ede9e data-v-753be832><a class="VPLink link" href="/dev/guide.html" data-v-753be832><!--[--><span data-v-753be832>简体中文</span><!--]--></a></div><!--]--></div><div class="group" data-v-aa2ede9e><div class="item appearance" data-v-aa2ede9e><p class="label" data-v-aa2ede9e>Theme</p><div class="appearance-action" data-v-aa2ede9e><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-aa2ede9e data-v-98e300dd data-v-743813fb><span class="check" data-v-743813fb><span class="icon" data-v-743813fb><!--[--><span class="vpi-sun sun" data-v-98e300dd></span><span class="vpi-moon moon" data-v-98e300dd></span><!--]--></span></span></button></div></div></div><div class="group" data-v-aa2ede9e><div class="item social-links" data-v-aa2ede9e><div class="VPSocialLinks social-links-list" data-v-aa2ede9e data-v-cb269fd5><!--[--><a class="VPSocialLink no-icon" href="https://github.com/LiteyukiStudio/LiteyukiBot" aria-label="github" target="_blank" rel="noopener" data-v-cb269fd5 data-v-c00f18b1><span class="vpi-social-github" /></a><a class="VPSocialLink no-icon" href="https://git.liteyuki.icu/LiteyukiStudio/LiteyukiBot" aria-label target="_blank" rel="noopener" data-v-cb269fd5 data-v-c00f18b1><svg t="1725391346807" class="icon" viewBox="0 0 1025 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5067" width="256" height="256"><path d="M1004.692673 466.396616l-447.094409-447.073929c-25.743103-25.763582-67.501405-25.763582-93.264987 0l-103.873521 103.873521 78.171378 78.171378c12.533635-6.00058 26.562294-9.359266 41.389666-9.359266 53.02219 0 96.00928 42.98709 96.00928 96.00928 0 14.827372-3.358686 28.856031-9.359266 41.389666l127.97824 127.97824c12.533635-6.00058 26.562294-9.359266 41.389666-9.359266 53.02219 0 96.00928 42.98709 96.00928 96.00928s-42.98709 96.00928-96.00928 96.00928-96.00928-42.98709-96.00928-96.00928c0-14.827372 3.358686-28.856031 9.359266-41.389666l-127.97824-127.97824c-3.051489 1.454065-6.184898 2.744293-9.379746 3.870681l0 266.97461c37.273227 13.188988 63.99936 48.721433 63.99936 90.520695 0 53.02219-42.98709 96.00928-96.00928 96.00928s-96.00928-42.98709-96.00928-96.00928c0-41.799262 26.726133-77.331707 63.99936-90.520695l0-266.97461c-37.273227-13.188988-63.99936-48.721433-63.99936-90.520695 0-14.827372 3.358686-28.856031 9.359266-41.389666l-78.171378-78.171378-295.892081 295.871601c-25.743103 25.784062-25.743103 67.542365 0 93.285467l447.114889 447.073929c25.743103 25.743103 67.480925 25.743103 93.264987 0l445.00547-445.00547c25.763582-25.763582 25.763582-67.542365 0-93.285467z" fill="#a2d8f4" p-id="5068"></path></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-f2786236 data-v-47e09796><span class="container" data-v-47e09796><span class="top" data-v-47e09796></span><span class="middle" data-v-47e09796></span><span class="bottom" data-v-47e09796></span></span></button></div></div></div></div><div class="divider" data-v-f2786236><div class="divider-line" data-v-f2786236></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-d894e9ff data-v-c7a9ea39><div class="container" data-v-c7a9ea39><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-c7a9ea39><span class="vpi-align-left menu-icon" data-v-c7a9ea39></span><span class="menu-text" data-v-c7a9ea39>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-c7a9ea39 data-v-af75bf50><button data-v-af75bf50>Back to top</button><!----></div></div></div><aside class="VPSidebar" data-v-d894e9ff data-v-1703fd83><div class="curtain" data-v-1703fd83></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-1703fd83><span class="visually-hidden" id="sidebar-aria-label" data-v-1703fd83> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-11d678e0><section class="VPSidebarItem level-0 has-active" data-v-11d678e0 data-v-8803d7d2><div class="item" role="button" tabindex="0" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><h2 class="text" data-v-8803d7d2>LITEYUKIBOT</h2><!----></div><div class="items" data-v-8803d7d2><!--[--><div class="VPSidebarItem level-1 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/guide.html" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>Development Guide</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/resource.html" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>Resource Pack</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/lyfunc.html" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>Liteyuki Function</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/plugin.html" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>Plugin</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/comm.html" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>Process Communication</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/best_practices.html" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>Best Practices</p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-1 collapsible collapsed is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" tabindex="0" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/index.html" data-v-8803d7d2><!--[--><h3 class="text" data-v-8803d7d2>liteyuki API</h3><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-8803d7d2><span class="vpi-chevron-right caret-icon" data-v-8803d7d2></span></div></div><div class="items" data-v-8803d7d2><!--[--><section class="VPSidebarItem level-2 collapsible collapsed is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" tabindex="0" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/bot/index.html" data-v-8803d7d2><!--[--><h4 class="text" data-v-8803d7d2>liteyuki.bot</h4><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-8803d7d2><span class="vpi-chevron-right caret-icon" data-v-8803d7d2></span></div></div><div class="items" data-v-8803d7d2><!--[--><div class="VPSidebarItem level-3 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/bot/" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>liteyuki.bot</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/bot/lifespan.html" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>liteyuki.bot.lifespan</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-2 collapsible collapsed is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" tabindex="0" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/comm/index.html" data-v-8803d7d2><!--[--><h4 class="text" data-v-8803d7d2>liteyuki.comm</h4><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-8803d7d2><span class="vpi-chevron-right caret-icon" data-v-8803d7d2></span></div></div><div class="items" data-v-8803d7d2><!--[--><div class="VPSidebarItem level-3 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/comm/channel.html" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>liteyuki.comm.channel</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/comm/event.html" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>liteyuki.comm.event</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/comm/" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>liteyuki.comm</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/comm/storage.html" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>liteyuki.comm.storage</p><!--]--></a><!----></div><!----></div><!--]--></div></section><div class="VPSidebarItem level-2 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/config.html" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>liteyuki.config</p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-2 collapsible collapsed is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" tabindex="0" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/core/index.html" data-v-8803d7d2><!--[--><h4 class="text" data-v-8803d7d2>liteyuki.core</h4><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-8803d7d2><span class="vpi-chevron-right caret-icon" data-v-8803d7d2></span></div></div><div class="items" data-v-8803d7d2><!--[--><div class="VPSidebarItem level-3 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/core/" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>liteyuki.core</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/core/manager.html" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>liteyuki.core.manager</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-2 collapsible collapsed is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" tabindex="0" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/dev/index.html" data-v-8803d7d2><!--[--><h4 class="text" data-v-8803d7d2>liteyuki.dev</h4><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-8803d7d2><span class="vpi-chevron-right caret-icon" data-v-8803d7d2></span></div></div><div class="items" data-v-8803d7d2><!--[--><div class="VPSidebarItem level-3 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/dev/" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>liteyuki.dev</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/dev/observer.html" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>liteyuki.dev.observer</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/dev/plugin.html" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>liteyuki.dev.plugin</p><!--]--></a><!----></div><!----></div><!--]--></div></section><div class="VPSidebarItem level-2 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/exception.html" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>liteyuki.exception</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/log.html" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>liteyuki.log</p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-2 collapsible collapsed is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" tabindex="0" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/plugin/index.html" data-v-8803d7d2><!--[--><h4 class="text" data-v-8803d7d2>liteyuki.plugin</h4><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-8803d7d2><span class="vpi-chevron-right caret-icon" data-v-8803d7d2></span></div></div><div class="items" data-v-8803d7d2><!--[--><div class="VPSidebarItem level-3 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/plugin/" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>liteyuki.plugin</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/plugin/load.html" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>liteyuki.plugin.load</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/plugin/manager.html" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>liteyuki.plugin.manager</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/plugin/model.html" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>liteyuki.plugin.model</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-2 collapsible collapsed is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" tabindex="0" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/plugins/index.html" data-v-8803d7d2><!--[--><h4 class="text" data-v-8803d7d2>liteyuki.plugins</h4><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-8803d7d2><span class="vpi-chevron-right caret-icon" data-v-8803d7d2></span></div></div><div class="items" data-v-8803d7d2><!--[--><div class="VPSidebarItem level-3 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/plugins/" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>liteyuki.plugins</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/plugins/liteecho.html" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>liteyuki.plugins.liteecho</p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-3 collapsible collapsed is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" tabindex="0" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/plugins/plugin_loader/index.html" data-v-8803d7d2><!--[--><h5 class="text" data-v-8803d7d2>liteyuki.plugins.plugin_loader</h5><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-8803d7d2><span class="vpi-chevron-right caret-icon" data-v-8803d7d2></span></div></div><div class="items" data-v-8803d7d2><!--[--><div class="VPSidebarItem level-4 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/plugins/plugin_loader/" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>liteyuki.plugins.plugin_loader</p><!--]--></a><!----></div><!----></div><!--]--></div></section><!--]--></div></section><section class="VPSidebarItem level-2 collapsible collapsed is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" tabindex="0" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/session/index.html" data-v-8803d7d2><!--[--><h4 class="text" data-v-8803d7d2>liteyuki.session</h4><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-8803d7d2><span class="vpi-chevron-right caret-icon" data-v-8803d7d2></span></div></div><div class="items" data-v-8803d7d2><!--[--><div class="VPSidebarItem level-3 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/session/event.html" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>liteyuki.session.event</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/session/" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>liteyuki.session</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/session/matcher.html" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>liteyuki.session.matcher</p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-3 collapsible collapsed" data-v-8803d7d2 data-v-8803d7d2><div class="item" role="button" tabindex="0" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><h5 class="text" data-v-8803d7d2>message</h5><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-8803d7d2><span class="vpi-chevron-right caret-icon" data-v-8803d7d2></span></div></div><div class="items" data-v-8803d7d2><!--[--><div class="VPSidebarItem level-4 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/session/message/segments.html" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>liteyuki.session.message.segments</p><!--]--></a><!----></div><!----></div><!--]--></div></section><div class="VPSidebarItem level-3 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/session/models.html" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>liteyuki.session.models</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/session/on.html" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>liteyuki.session.on</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/session/rule.html" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>liteyuki.session.rule</p><!--]--></a><!----></div><!----></div><!--]--></div></section><div class="VPSidebarItem level-2 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/utils.html" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>liteyuki.utils</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-8803d7d2 data-v-8803d7d2><div class="item" data-v-8803d7d2><div class="indicator" data-v-8803d7d2></div><a class="VPLink link link" href="/en/dev/api/" data-v-8803d7d2><!--[--><p class="text" data-v-8803d7d2>liteyuki API</p><!--]--></a><!----></div><!----></div><!--]--></div></section><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-d894e9ff data-v-5c5b2f85><div class="VPDoc has-sidebar has-aside" data-v-5c5b2f85 data-v-db86c50a><!--[--><!--]--><div class="container" data-v-db86c50a><div class="aside" data-v-db86c50a><div class="aside-curtain" data-v-db86c50a></div><div class="aside-container" data-v-db86c50a><div class="aside-content" data-v-db86c50a><div class="VPDocAside" data-v-db86c50a data-v-5241a9c3><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-5241a9c3 data-v-15ea4b19><div class="content" data-v-15ea4b19><div class="outline-marker" data-v-15ea4b19></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-15ea4b19>Page Content</div><ul class="VPDocOutlineItem root" data-v-15ea4b19 data-v-ed4debac><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-5241a9c3></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-db86c50a><div class="content-container" data-v-db86c50a><!--[--><!--]--><main class="main" data-v-db86c50a><div style="position:relative;" class="vp-doc _en_dev_guide" data-v-db86c50a><div><h1 id="development-guide" tabindex="-1">Development Guide <a class="header-anchor" href="#development-guide" aria-label="Permalink to &quot;Development Guide&quot;"></a></h1><h2 id="how-to-develop" tabindex="-1">How to Develop <a class="header-anchor" href="#how-to-develop" aria-label="Permalink to &quot;How to Develop&quot;"></a></h2><p>Please read the <a href="./plugin.html">Plugin Development</a> and <a href="./api/">API Reference</a> documents if you are developing a plugin.</p><p>If you need to submit code to the Liteyuki repository, please read the following:</p><ol><li>First <a href="https://github.com/LiteyukiStudio/LiteyukiBot/fork" target="_blank" rel="noreferrer">fork</a> a copy of the Liteyuki repository to your personal/organization account.</li><li>Develop in your repository.</li><li>Create a new branch in your repository and submit your code to this branch.</li><li>Create a Pull Request in your repository to merge your branch into the <code>main</code> branch of the Liteyuki repository.</li></ol><ul><li>Participation in development assumes that you are already familiar with the basic usage of the Python language and the Liteyuki framework.</li><li>If you are developing documentation, please ensure that you are familiar with Markdown syntax and basic front-end knowledge.</li><li>Contact the repository maintainer in case of conflicts.</li></ul><h3 id="suggestions" tabindex="-1">Suggestions <a class="header-anchor" href="#suggestions" aria-label="Permalink to &quot;Suggestions&quot;"></a></h3><ul><li>During development, you can use tools such as <code>mypy</code>, <code>flake8</code>, and <code>black</code> for code checking and formatting.</li><li>Enable developer mode by setting <code>dev_mode: true</code> in <code>config.yml</code> to see more debugging information in the console.</li></ul><h2 id="project-structure" tabindex="-1">Project Structure <a class="header-anchor" href="#project-structure" aria-label="Permalink to &quot;Project Structure&quot;"></a></h2><ul><li><code>main.py</code>: Bot entry file</li><li><code>liteyuki</code>: Framework directory (liteyukibot)</li><li><code>src</code>: Bot application source code directory <ul><li><code>liteyuki_plugins</code>: Liteyuki plugin directory</li><li><code>nonebot_plugins</code>: Nonebot plugin directory</li><li><code>resources</code>: Built-in resource packs directory</li><li><code>utils</code>: Utility directory</li></ul></li><li><code>tests</code>: Unit test directory</li><li><code>docs</code>: Documentation directory <ul><li><code>en</code>: English documentation</li><li><code>zh</code>: Chinese documentation</li></ul></li><li><code>docker</code>: Docker related content directory</li></ul><p>The <code>liteyuki</code> framework is included in the <code>LiteyukiBot</code> application, so this project is both the <code>LiteyukiBot</code> application repository and the <code>liteyuki</code> framework repository.</p><p>The <code>src</code> directory is the application part, please develop business logic in this directory. <code>liteyuki_plugins</code> and <code>nonebot_plugins</code> directories are plugin directories, please develop plugins in these directories.</p><h2 id="standardization" tabindex="-1">Standardization <a class="header-anchor" href="#standardization" aria-label="Permalink to &quot;Standardization&quot;"></a></h2><ul><li>Code should follow <a href="https://pep8.org/" target="_blank" rel="noreferrer"><code>PEP8</code></a> and <a href="https://google.github.io/styleguide/pyguide.html" target="_blank" rel="noreferrer"><code>Google Python Style Guide</code></a>.</li><li>In addition, code submitted to the Liteyuki repository should follow the following guidelines: <ul><li>Ensure that the code is runnable and harmless.</li><li>Ensure that the type hints in the code are correct.</li><li>Ensure that the comment style is <a href="https://google.github.io/styleguide/pyguide.html" target="_blank" rel="noreferrer"><code>Google Docstring</code></a> or <a href="https://github.com/LiteyukiStudio/litedoc?tab=readme-ov-file#liteyuki-docstring" target="_blank" rel="noreferrer"><code>Liteyuki Docstring</code></a>(recommended) to ensure that Litedoc can parse and generate documentation correctly.</li><li>Strings should be enclosed in double quotes <code>&quot;</code> as much as possible, and single quotes <code>&#39;</code> should be used when nesting strings.</li><li>If there is a part for ordinary users, ensure that the documentation is complete (each language has corresponding documentation).</li></ul></li><li>commit message should follow the following guidelines: <ul><li>You should commit the code after completing a feature or fixing a bug, and not mix the code of multiple features or bugs together.</li><li>We use gitmoji to mark the type of commit, such as <code>:sparkles:</code> for introducing new features, <code>:bug:</code> for fixing bugs, etc., please refer to <a href="https://gitmoji.dev/" target="_blank" rel="noreferrer">gitmoji</a> for details.</li><li>The format of the commit message is <code>&lt;emoji&gt; [type:] &lt;message&gt;</code>, such as <code>:sparkles: feat: add new field to event</code>, where the type field is the type of commit, not much is required, but please fill in as much as possible; the message field is a brief description, in summary, what you did.</li><li>There is no restriction on the language of the commit message, and bilingual use is possible if conditions permit.</li></ul></li><li>The documentation should follow <a href="https://www.markdownguide.org/" target="_blank" rel="noreferrer"><code>Markdown</code></a> syntax and support vitepress-related content: <ul><li>Revise the documentation for each language when editing.</li><li>Ensure that the links in the document are correct and do not lead to inaccessible links.</li><li>Ensure that the <strong>User Documentation</strong> is easy to understand and the <strong>Development Documentation</strong> is detailed.</li></ul></li></ul><h2 id="finally" tabindex="-1">Finally <a class="header-anchor" href="#finally" aria-label="Permalink to &quot;Finally&quot;"></a></h2><ul><li>This project is a non-profit open-source project, and we welcome anyone to participate in development. Your contributions will make Liteyuki better.</li></ul><div class="contributor-bar" data-v-bc374713><h2 data-v-bc374713>Thanks the following contributors!</h2><a href="https://github.com/LiteyukiStudio/LiteyukiBot/graphs/contributors" data-v-bc374713><div class="contributor-list" data-v-bc374713><img src="https://contrib.rocks/image?repo=LiteyukiStudio/LiteyukiBot" alt="Contributors" data-v-bc374713></div></a></div></div></div></main><footer class="VPDocFooter" data-v-db86c50a data-v-ebeacb1b><!--[--><!--]--><div class="edit-info" data-v-ebeacb1b><div class="edit-link" data-v-ebeacb1b><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://github.com/LiteyukiStudio/LiteyukiBot/tree/main/docs/en/dev/guide.md" target="_blank" rel="noreferrer" data-v-ebeacb1b><!--[--><span class="vpi-square-pen edit-link-icon" data-v-ebeacb1b></span> Edit this page on GitHub<!--]--></a></div><div class="last-updated" data-v-ebeacb1b><p class="VPLastUpdated" data-v-ebeacb1b data-v-8224977b>Last updated: <time datetime="2024-09-03T18:43:44.000Z" data-v-8224977b></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-ebeacb1b><span class="visually-hidden" id="doc-footer-aria-label" data-v-ebeacb1b>Pager</span><div class="pager" data-v-ebeacb1b><!----></div><div class="pager" data-v-ebeacb1b><a class="VPLink link pager-link next" href="/en/dev/resource.html" data-v-ebeacb1b><!--[--><span class="desc" data-v-ebeacb1b>Next Page</span><span class="title" data-v-ebeacb1b>Resource Pack</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-d894e9ff data-v-aa30d313><div class="container" data-v-aa30d313><p class="message" data-v-aa30d313>Documentation built with <a href="https://vitepress.dev/">VitePress</a> | API references generated by <a href="https://github.com/LiteyukiStudio/litedoc">litedoc</a></p><p class="copyright" data-v-aa30d313>Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved</p></div></footer><!--[--><!--]--></div></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"deploy_config.md\":\"CsfRbAPS\",\"deploy_fandq.md\":\"DYuQyOrf\",\"deploy_install.md\":\"D52Lg81E\",\"dev_api_bot_index.md\":\"WLCmlgvh\",\"dev_api_bot_lifespan.md\":\"B9gZA-Xv\",\"dev_api_comm_channel.md\":\"E0VGPXVy\",\"dev_api_comm_event.md\":\"DE0D5mOI\",\"dev_api_comm_index.md\":\"D0UYHib5\",\"dev_api_comm_storage.md\":\"BpVehScg\",\"dev_api_config.md\":\"ml9RPWJ7\",\"dev_api_core_index.md\":\"BjvZyb-q\",\"dev_api_core_manager.md\":\"B35XWsfI\",\"dev_api_dev_index.md\":\"hNwQD8ZN\",\"dev_api_dev_observer.md\":\"BhLDGDw1\",\"dev_api_dev_plugin.md\":\"Be-m1DJn\",\"dev_api_exception.md\":\"BdPwU3gE\",\"dev_api_index.md\":\"BzH7dCwu\",\"dev_api_log.md\":\"DMeATP2x\",\"dev_api_plugin_index.md\":\"T2gAKhVl\",\"dev_api_plugin_load.md\":\"kHIr9w4H\",\"dev_api_plugin_manager.md\":\"B4LvaDGc\",\"dev_api_plugin_model.md\":\"C2KezkKb\",\"dev_api_plugins_index.md\":\"DKPWPaBA\",\"dev_api_plugins_liteecho.md\":\"BlQiZZ9H\",\"dev_api_plugins_plugin_loader_index.md\":\"f4CfmASM\",\"dev_api_session_event.md\":\"D3sQQZ9F\",\"dev_api_session_index.md\":\"D4RX5bHu\",\"dev_api_session_matcher.md\":\"AbqZMTjz\",\"dev_api_session_message_segments.md\":\"BquBMIE7\",\"dev_api_session_models.md\":\"KfLYl1lp\",\"dev_api_session_on.md\":\"DBQDTdP3\",\"dev_api_session_rule.md\":\"CNqb27Xk\",\"dev_api_utils.md\":\"BdVRWEBV\",\"dev_best_practices.md\":\"C81iVQ5j\",\"dev_comm.md\":\"ymsFmuWf\",\"dev_guide.md\":\"CQFTbPsZ\",\"dev_lyfunc.md\":\"DXKpS1Qm\",\"dev_plugin.md\":\"CTtOlLb-\",\"dev_resource.md\":\"wRoE226-\",\"en_deploy_config.md\":\"CggQr9gM\",\"en_deploy_fandq.md\":\"CfGzF3ge\",\"en_deploy_install.md\":\"BOxEsDYD\",\"en_dev_api_bot_index.md\":\"BPAxIIam\",\"en_dev_api_bot_lifespan.md\":\"6xrY1FLk\",\"en_dev_api_comm_channel.md\":\"D0f9nWvQ\",\"en_dev_api_comm_event.md\":\"JdKBF15S\",\"en_dev_api_comm_index.md\":\"BWaivW24\",\"en_dev_api_comm_storage.md\":\"C9UlOPzB\",\"en_dev_api_config.md\":\"-gDWLeD4\",\"en_dev_api_core_index.md\":\"D5Civ-zH\",\"en_dev_api_core_manager.md\":\"BNz0KL_P\",\"en_dev_api_dev_index.md\":\"BaJFdikO\",\"en_dev_api_dev_observer.md\":\"BWo0192F\",\"en_dev_api_dev_plugin.md\":\"DAA5UIMl\",\"en_dev_api_exception.md\":\"C2tcvSVJ\",\"en_dev_api_index.md\":\"D8u3gQrU\",\"en_dev_api_log.md\":\"LxK8gZKX\",\"en_dev_api_plugin_index.md\":\"CWXWjAhj\",\"en_dev_api_plugin_load.md\":\"D5m3R33u\",\"en_dev_api_plugin_manager.md\":\"dpHkH-nG\",\"en_dev_api_plugin_model.md\":\"BZm0dnvF\",\"en_dev_api_plugins_index.md\":\"Dby_mWRR\",\"en_dev_api_plugins_liteecho.md\":\"CrtVqPCc\",\"en_dev_api_plugins_plugin_loader_index.md\":\"BC_T8lis\",\"en_dev_api_session_event.md\":\"DLw2yT5i\",\"en_dev_api_session_index.md\":\"DC9ouOg5\",\"en_dev_api_session_matcher.md\":\"DJciHvHX\",\"en_dev_api_session_message_segments.md\":\"CfsIvuym\",\"en_dev_api_session_models.md\":\"x6v31F0R\",\"en_dev_api_session_on.md\":\"pNdaO1LV\",\"en_dev_api_session_rule.md\":\"DXmjjk0K\",\"en_dev_api_utils.md\":\"BMFkr-N2\",\"en_dev_best_practices.md\":\"D99RjFWq\",\"en_dev_comm.md\":\"DmDE4NY9\",\"en_dev_guide.md\":\"CTFaqeXJ\",\"en_dev_lyfunc.md\":\"BVZAJYq4\",\"en_dev_plugin.md\":\"CHACIHL6\",\"en_dev_resource.md\":\"Ct0C78Rc\",\"en_index.md\":\"B0j9slrc\",\"en_store_plugin.md\":\"Dr9xSRQO\",\"en_store_resource.md\":\"B4TeEUVy\",\"en_usage_agreement.md\":\"CLjnKVc3\",\"en_usage_basic.md\":\"D5OATOhG\",\"en_usage_extra.md\":\"CeleBdoC\",\"index.md\":\"u5az6EET\",\"store_plugin.md\":\"Cac6z_ig\",\"store_resource.md\":\"B343iwju\",\"usage_agreement.md\":\"D1WnPguc\",\"usage_basic.md\":\"DbulLjQT\",\"usage_extra.md\":\"BiRGsfAl\"}");function deserializeFunctions(r){return Array.isArray(r)?r.map(deserializeFunctions):typeof r=="object"&&r!==null?Object.keys(r).reduce((t,n)=>(t[n]=deserializeFunctions(r[n]),t),{}):typeof r=="string"&&r.startsWith("_vp-fn_")?new Function(`return ${r.slice(7)}`)():r};window.__VP_SITE_DATA__=deserializeFunctions(JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"VitePress\",\"description\":\"A VitePress site\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"logo\":{\"light\":\"/liteyuki.svg\",\"dark\":\"/liteyuki-dark.svg\",\"alt\":\"LiteyukiBot Logo\"},\"sidebar\":{\"/dev/\":{\"base\":\"/dev/\",\"items\":[{\"text\":\"LITEYUKIBOT\",\"items\":[{\"text\":\"开发指南\",\"link\":\"guide\"},{\"text\":\"资源包开发\",\"link\":\"resource\"},{\"text\":\"轻雪函数\",\"link\":\"lyfunc\"},{\"text\":\"插件开发\",\"link\":\"plugin\"},{\"text\":\"进程通信\",\"link\":\"comm\"},{\"text\":\"最佳实践\",\"link\":\"best_practices\"},{\"text\":\"liteyuki API\",\"link\":\"api/index.md\",\"items\":[{\"text\":\"liteyuki.bot\",\"link\":\"api/bot/index.md\",\"items\":[{\"text\":\"liteyuki.bot\",\"link\":\"api/bot/\"},{\"text\":\"liteyuki.bot.lifespan\",\"link\":\"api/bot/lifespan\"}],\"collapsed\":true},{\"text\":\"liteyuki.comm\",\"link\":\"api/comm/index.md\",\"items\":[{\"text\":\"liteyuki.comm.channel\",\"link\":\"api/comm/channel\"},{\"text\":\"liteyuki.comm.event\",\"link\":\"api/comm/event\"},{\"text\":\"liteyuki.comm\",\"link\":\"api/comm/\"},{\"text\":\"liteyuki.comm.storage\",\"link\":\"api/comm/storage\"}],\"collapsed\":true},{\"text\":\"liteyuki.config\",\"link\":\"api/config\"},{\"text\":\"liteyuki.core\",\"link\":\"api/core/index.md\",\"items\":[{\"text\":\"liteyuki.core\",\"link\":\"api/core/\"},{\"text\":\"liteyuki.core.manager\",\"link\":\"api/core/manager\"}],\"collapsed\":true},{\"text\":\"liteyuki.dev\",\"link\":\"api/dev/index.md\",\"items\":[{\"text\":\"liteyuki.dev\",\"link\":\"api/dev/\"},{\"text\":\"liteyuki.dev.observer\",\"link\":\"api/dev/observer\"},{\"text\":\"liteyuki.dev.plugin\",\"link\":\"api/dev/plugin\"}],\"collapsed\":true},{\"text\":\"liteyuki.exception\",\"link\":\"api/exception\"},{\"text\":\"liteyuki.log\",\"link\":\"api/log\"},{\"text\":\"liteyuki.plugin\",\"link\":\"api/plugin/index.md\",\"items\":[{\"text\":\"liteyuki.plugin\",\"link\":\"api/plugin/\"},{\"text\":\"liteyuki.plugin.load\",\"link\":\"api/plugin/load\"},{\"text\":\"liteyuki.plugin.manager\",\"link\":\"api/plugin/manager\"},{\"text\":\"liteyuki.plugin.model\",\"link\":\"api/plugin/model\"}],\"collapsed\":true},{\"text\":\"liteyuki.plugins\",\"link\":\"api/plugins/index.md\",\"items\":[{\"text\":\"liteyuki.plugins\",\"link\":\"api/plugins/\"},{\"text\":\"liteyuki.plugins.liteecho\",\"link\":\"api/plugins/liteecho\"},{\"text\":\"liteyuki.plugins.plugin_loader\",\"link\":\"api/plugins/plugin_loader/index.md\",\"items\":[{\"text\":\"liteyuki.plugins.plugin_loader\",\"link\":\"api/plugins/plugin_loader/\"}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"liteyuki.session\",\"link\":\"api/session/index.md\",\"items\":[{\"text\":\"liteyuki.session.event\",\"link\":\"api/session/event\"},{\"text\":\"liteyuki.session\",\"link\":\"api/session/\"},{\"text\":\"liteyuki.session.matcher\",\"link\":\"api/session/matcher\"},{\"text\":\"message\",\"items\":[{\"text\":\"liteyuki.session.message.segments\",\"link\":\"api/session/message/segments\"}],\"collapsed\":true},{\"text\":\"liteyuki.session.models\",\"link\":\"api/session/models\"},{\"text\":\"liteyuki.session.on\",\"link\":\"api/session/on\"},{\"text\":\"liteyuki.session.rule\",\"link\":\"api/session/rule\"}],\"collapsed\":true},{\"text\":\"liteyuki.utils\",\"link\":\"api/utils\"},{\"text\":\"liteyuki API\",\"link\":\"api/\"}],\"collapsed\":true}]}]},\"/store/\":{\"base\":\"/store/\",\"items\":[{\"text\":\"LITEYUKIBOT\",\"items\":[{\"text\":\"资源商店\",\"link\":\"resource\"},{\"text\":\"插件商店\",\"link\":\"plugin\"}]}]},\"/usage/\":{\"base\":\"/usage/\",\"items\":[{\"text\":\"LITEYUKIBOT\",\"items\":[{\"text\":\"基础插件\",\"link\":\"basic\"},{\"text\":\"功能命令\",\"link\":\"extra\"},{\"text\":\"用户协议\",\"link\":\"agreement\"}]}]},\"/deploy/\":{\"base\":\"/deploy/\",\"items\":[{\"text\":\"LITEYUKIBOT\",\"items\":[{\"text\":\"安装\",\"link\":\"install\"},{\"text\":\"配置\",\"link\":\"config\"},{\"text\":\"答疑\",\"link\":\"fandq\"}]}]},\"/en/dev/\":{\"base\":\"/en/dev/\",\"items\":[{\"text\":\"LITEYUKIBOT\",\"items\":[{\"text\":\"Development Guide\",\"link\":\"guide\"},{\"text\":\"Resource Pack\",\"link\":\"resource\"},{\"text\":\"Liteyuki Function\",\"link\":\"lyfunc\"},{\"text\":\"Plugin\",\"link\":\"plugin\"},{\"text\":\"Process Communication\",\"link\":\"comm\"},{\"text\":\"Best Practices\",\"link\":\"best_practices\"},{\"text\":\"liteyuki API\",\"link\":\"api/index.md\",\"items\":[{\"text\":\"liteyuki.bot\",\"link\":\"api/bot/index.md\",\"items\":[{\"text\":\"liteyuki.bot\",\"link\":\"api/bot/\"},{\"text\":\"liteyuki.bot.lifespan\",\"link\":\"api/bot/lifespan\"}],\"collapsed\":true},{\"text\":\"liteyuki.comm\",\"link\":\"api/comm/index.md\",\"items\":[{\"text\":\"liteyuki.comm.channel\",\"link\":\"api/comm/channel\"},{\"text\":\"liteyuki.comm.event\",\"link\":\"api/comm/event\"},{\"text\":\"liteyuki.comm\",\"link\":\"api/comm/\"},{\"text\":\"liteyuki.comm.storage\",\"link\":\"api/comm/storage\"}],\"collapsed\":true},{\"text\":\"liteyuki.config\",\"link\":\"api/config\"},{\"text\":\"liteyuki.core\",\"link\":\"api/core/index.md\",\"items\":[{\"text\":\"liteyuki.core\",\"link\":\"api/core/\"},{\"text\":\"liteyuki.core.manager\",\"link\":\"api/core/manager\"}],\"collapsed\":true},{\"text\":\"liteyuki.dev\",\"link\":\"api/dev/index.md\",\"items\":[{\"text\":\"liteyuki.dev\",\"link\":\"api/dev/\"},{\"text\":\"liteyuki.dev.observer\",\"link\":\"api/dev/observer\"},{\"text\":\"liteyuki.dev.plugin\",\"link\":\"api/dev/plugin\"}],\"collapsed\":true},{\"text\":\"liteyuki.exception\",\"link\":\"api/exception\"},{\"text\":\"liteyuki.log\",\"link\":\"api/log\"},{\"text\":\"liteyuki.plugin\",\"link\":\"api/plugin/index.md\",\"items\":[{\"text\":\"liteyuki.plugin\",\"link\":\"api/plugin/\"},{\"text\":\"liteyuki.plugin.load\",\"link\":\"api/plugin/load\"},{\"text\":\"liteyuki.plugin.manager\",\"link\":\"api/plugin/manager\"},{\"text\":\"liteyuki.plugin.model\",\"link\":\"api/plugin/model\"}],\"collapsed\":true},{\"text\":\"liteyuki.plugins\",\"link\":\"api/plugins/index.md\",\"items\":[{\"text\":\"liteyuki.plugins\",\"link\":\"api/plugins/\"},{\"text\":\"liteyuki.plugins.liteecho\",\"link\":\"api/plugins/liteecho\"},{\"text\":\"liteyuki.plugins.plugin_loader\",\"link\":\"api/plugins/plugin_loader/index.md\",\"items\":[{\"text\":\"liteyuki.plugins.plugin_loader\",\"link\":\"api/plugins/plugin_loader/\"}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"liteyuki.session\",\"link\":\"api/session/index.md\",\"items\":[{\"text\":\"liteyuki.session.event\",\"link\":\"api/session/event\"},{\"text\":\"liteyuki.session\",\"link\":\"api/session/\"},{\"text\":\"liteyuki.session.matcher\",\"link\":\"api/session/matcher\"},{\"text\":\"message\",\"items\":[{\"text\":\"liteyuki.session.message.segments\",\"link\":\"api/session/message/segments\"}],\"collapsed\":true},{\"text\":\"liteyuki.session.models\",\"link\":\"api/session/models\"},{\"text\":\"liteyuki.session.on\",\"link\":\"api/session/on\"},{\"text\":\"liteyuki.session.rule\",\"link\":\"api/session/rule\"}],\"collapsed\":true},{\"text\":\"liteyuki.utils\",\"link\":\"api/utils\"},{\"text\":\"liteyuki API\",\"link\":\"api/\"}],\"collapsed\":true}]}]},\"/en/store/\":{\"base\":\"/en/store/\",\"items\":[{\"text\":\"LITEYUKIBOT\",\"items\":[{\"text\":\"Resource Store\",\"link\":\"resource\"},{\"text\":\"Plugin Store\",\"link\":\"plugin\"}]}]},\"/en/usage/\":{\"base\":\"/en/usage/\",\"items\":[{\"text\":\"LITEYUKIBOT\",\"items\":[{\"text\":\"基础插件\",\"link\":\"basic\"},{\"text\":\"功能命令\",\"link\":\"extra\"},{\"text\":\"用户协议\",\"link\":\"agreement\"}]}]},\"/en/deploy/\":{\"base\":\"/en/deploy/\",\"items\":[{\"text\":\"LITEYUKIBOT\",\"items\":[{\"text\":\"Install\",\"link\":\"install\"},{\"text\":\"Configurations\",\"link\":\"config\"},{\"text\":\"FAQ\",\"link\":\"fandq\"}]}]}},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/LiteyukiStudio/LiteyukiBot\"},{\"icon\":{\"svg\":\"<svg t=\\\"1725391346807\\\" class=\\\"icon\\\" viewBox=\\\"0 0 1025 1024\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" p-id=\\\"5067\\\" width=\\\"256\\\" height=\\\"256\\\"><path d=\\\"M1004.692673 466.396616l-447.094409-447.073929c-25.743103-25.763582-67.501405-25.763582-93.264987 0l-103.873521 103.873521 78.171378 78.171378c12.533635-6.00058 26.562294-9.359266 41.389666-9.359266 53.02219 0 96.00928 42.98709 96.00928 96.00928 0 14.827372-3.358686 28.856031-9.359266 41.389666l127.97824 127.97824c12.533635-6.00058 26.562294-9.359266 41.389666-9.359266 53.02219 0 96.00928 42.98709 96.00928 96.00928s-42.98709 96.00928-96.00928 96.00928-96.00928-42.98709-96.00928-96.00928c0-14.827372 3.358686-28.856031 9.359266-41.389666l-127.97824-127.97824c-3.051489 1.454065-6.184898 2.744293-9.379746 3.870681l0 266.97461c37.273227 13.188988 63.99936 48.721433 63.99936 90.520695 0 53.02219-42.98709 96.00928-96.00928 96.00928s-96.00928-42.98709-96.00928-96.00928c0-41.799262 26.726133-77.331707 63.99936-90.520695l0-266.97461c-37.273227-13.188988-63.99936-48.721433-63.99936-90.520695 0-14.827372 3.358686-28.856031 9.359266-41.389666l-78.171378-78.171378-295.892081 295.871601c-25.743103 25.784062-25.743103 67.542365 0 93.285467l447.114889 447.073929c25.743103 25.743103 67.480925 25.743103 93.264987 0l445.00547-445.00547c25.763582-25.763582 25.763582-67.542365 0-93.285467z\\\" fill=\\\"#a2d8f4\\\" p-id=\\\"5068\\\"></path></svg>\"},\"link\":\"https://git.liteyuki.icu/LiteyukiStudio/LiteyukiBot\"}],\"search\":{\"provider\":\"local\",\"options\":{\"locales\":{\"root\":{\"translations\":{\"button\":{\"buttonText\":\"搜索文档\",\"buttonAriaLabel\":\"打开搜索框\"},\"modal\":{\"noResultsText\":\"没有找到搜索结果\",\"resetButtonTitle\":\"清除查询条件\",\"footer\":{\"selectText\":\"选择\",\"navigateText\":\"切换\"}}}},\"en\":{\"translations\":{\"button\":{\"buttonText\":\"Search\",\"buttonAriaLabel\":\"Search\"},\"modal\":{\"noResultsText\":\"No results found\",\"resetButtonTitle\":\"Reset search query\",\"footer\":{\"selectText\":\"Select\",\"navigateText\":\"Navigate\"}}}}}}}},\"locales\":{\"root\":{\"label\":\"简体中文\",\"lang\":\"zh-Hans\",\"title\":\"轻雪机器人\",\"description\":\"一个综合性的机器人应用及管理框架\",\"themeConfig\":{\"nav\":[{\"text\":\"部署\",\"link\":\"/deploy/install\"},{\"text\":\"使用\",\"link\":\"/usage/basic\"},{\"text\":\"扩展\",\"link\":\"/store/resource\"},{\"text\":\"开发\",\"link\":\"/dev/guide\"}],\"docFooter\":{\"prev\":\"上一页\",\"next\":\"下一页\"},\"editLink\":{\"pattern\":\"_vp-fn_({ filePath }) => {\\n const regex = /^[^\\\\/]+\\\\/dev\\\\/api/;\\n console.log(filePath);\\n if (regex.test(filePath)) {\\n filePath = filePath.replace(regex, \\\"\\\").replace(\\\"index.md\\\", \\\"__init__.py\\\").replace(\\\".md\\\", \\\".py\\\");\\n if (filePath.split(\\\"/\\\").pop().split(\\\".\\\")[0] === filePath.split(\\\"/\\\").slice(-2, -1)[0]) {\\n filePath = filePath.split(\\\"/\\\").slice(0, -1).join(\\\"/\\\") + \\\"/__init__.py\\\";\\n }\\n return `https://github.com/LiteyukiStudio/LiteyukiBot/tree/main/liteyuki${filePath}`;\\n } else {\\n return `https://github.com/LiteyukiStudio/LiteyukiBot/tree/main/docs/${filePath}`;\\n }\\n }\",\"text\":\"在 GitHub 上编辑此页\"},\"footer\":{\"message\":\"文档由 <a href=\\\"https://vitepress.dev/\\\">VitePress</a> 构建 | API引用由 <a href=\\\"https://github.com/LiteyukiStudio/litedoc\\\">litedoc</a> 生成\",\"copyright\":\"Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved\"},\"outline\":{\"label\":\"页面内容\",\"level\":[2,6]},\"langMenuLabel\":\"语言\",\"returnToTopLabel\":\"返回顶部\",\"sidebarMenuLabel\":\"菜单\",\"darkModeSwitchLabel\":\"主题\",\"lightModeSwitchTitle\":\"轻色模式\",\"darkModeSwitchTitle\":\"深色模式\"}},\"en\":{\"label\":\"English\",\"lang\":\"en-US\",\"title\":\"LiteyukiBot\",\"description\":\"A high-performance, easy-to-use chatbot framework and application\",\"themeConfig\":{\"nav\":[{\"text\":\"Deploy\",\"link\":\"/en/deploy/install\"},{\"text\":\"Usage\",\"link\":\"/en/usage/basic\"},{\"text\":\"Extension\",\"link\":\"/en/store/resource\"},{\"text\":\"Develop\",\"link\":\"/en/dev/guide\"}],\"docFooter\":{\"prev\":\"Prev Page\",\"next\":\"Next Page\"},\"editLink\":{\"pattern\":\"_vp-fn_({ filePath }) => {\\n const regex = /^[^\\\\/]+\\\\/dev\\\\/api/;\\n console.log(filePath);\\n if (regex.test(filePath)) {\\n filePath = filePath.replace(regex, \\\"\\\").replace(\\\"index.md\\\", \\\"__init__.py\\\").replace(\\\".md\\\", \\\".py\\\");\\n if (filePath.split(\\\"/\\\").pop().split(\\\".\\\")[0] === filePath.split(\\\"/\\\").slice(-2, -1)[0]) {\\n filePath = filePath.split(\\\"/\\\").slice(0, -1).join(\\\"/\\\") + \\\"/__init__.py\\\";\\n }\\n return `https://github.com/LiteyukiStudio/LiteyukiBot/tree/main/liteyuki${filePath}`;\\n } else {\\n return `https://github.com/LiteyukiStudio/LiteyukiBot/tree/main/docs/${filePath}`;\\n }\\n }\",\"text\":\"Edit this page on GitHub\"},\"footer\":{\"message\":\"Documentation built with <a href=\\\"https://vitepress.dev/\\\">VitePress</a> | API references generated by <a href=\\\"https://github.com/LiteyukiStudio/litedoc\\\">litedoc</a>\",\"copyright\":\"Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved\"},\"outline\":{\"label\":\"Page Content\",\"level\":[2,6]},\"langMenuLabel\":\"Language\",\"returnToTopLabel\":\"Back to top\",\"sidebarMenuLabel\":\"Menu\",\"darkModeSwitchLabel\":\"Theme\",\"lightModeSwitchTitle\":\"Light Mode\",\"darkModeSwitchTitle\":\"Dark Mode\"}}},\"scrollOffset\":134,\"cleanUrls\":false}"));</script>
</body>
</html>