xiaomusic/docs/.vitepress/dist/issues/105.html
2024-12-13 01:02:53 +08:00

213 lines
126 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.

This file contains Unicode characters that might be confused with other characters. 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>【插件】自定义口令功能 | XiaoMusic</title>
<meta name="description" content="XiaoMusic doc">
<meta name="generator" content="VitePress v1.5.0">
<link rel="preload stylesheet" href="/assets/style.DKcHOilP.css" as="style">
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
<script type="module" src="/assets/app.BW3PQTBv.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.CHcreDy7.js">
<link rel="modulepreload" href="/assets/chunks/framework.p2VkXzrt.js">
<link rel="modulepreload" href="/assets/issues_105.md.8_yuCS-D.lean.js">
<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-d8b57b2d><!--[--><!--]--><!--[--><span tabindex="-1" data-v-c8291ffa></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-c8291ffa> Skip to content </a><!--]--><!----><header class="VPNav" data-v-d8b57b2d data-v-7ad780c2><div class="VPNavBar" data-v-7ad780c2 data-v-9fd4d1dd><div class="wrapper" data-v-9fd4d1dd><div class="container" data-v-9fd4d1dd><div class="title" data-v-9fd4d1dd><div class="VPNavBarTitle has-sidebar" data-v-9fd4d1dd data-v-9f43907a><a class="title" href="/" data-v-9f43907a><!--[--><!--]--><!----><span data-v-9f43907a>XiaoMusic</span><!--[--><!--]--></a></div></div><div class="content" data-v-9fd4d1dd><div class="content-body" data-v-9fd4d1dd><!--[--><!--]--><div class="VPNavBarSearch search" data-v-9fd4d1dd><!----></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-9fd4d1dd data-v-afb2845e><span id="main-nav-aria-label" class="visually-hidden" data-v-afb2845e> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/" tabindex="0" data-v-afb2845e data-v-815115f5><!--[--><span data-v-815115f5>Home</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/markdown-examples.html" tabindex="0" data-v-afb2845e data-v-815115f5><!--[--><span data-v-815115f5>Examples</span><!--]--></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-9fd4d1dd data-v-3f90c1a5><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-3f90c1a5 data-v-be9742d9 data-v-b4ccac88><span class="check" data-v-b4ccac88><span class="icon" data-v-b4ccac88><!--[--><span class="vpi-sun sun" data-v-be9742d9></span><span class="vpi-moon moon" data-v-be9742d9></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-9fd4d1dd data-v-ef6192dc data-v-e71e869c><!--[--><a class="VPSocialLink no-icon" href="https://github.com/hanxi/xiaomusic" aria-label="github" target="_blank" rel="noopener" data-v-e71e869c data-v-60a9a2d3><span class="vpi-social-github"></span></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-9fd4d1dd data-v-f953d92f data-v-bfe7971f><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-bfe7971f><span class="vpi-more-horizontal icon" data-v-bfe7971f></span></button><div class="menu" data-v-bfe7971f><div class="VPMenu" data-v-bfe7971f data-v-20ed86d6><!----><!--[--><!--[--><!----><div class="group" data-v-f953d92f><div class="item appearance" data-v-f953d92f><p class="label" data-v-f953d92f>Appearance</p><div class="appearance-action" data-v-f953d92f><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-f953d92f data-v-be9742d9 data-v-b4ccac88><span class="check" data-v-b4ccac88><span class="icon" data-v-b4ccac88><!--[--><span class="vpi-sun sun" data-v-be9742d9></span><span class="vpi-moon moon" data-v-be9742d9></span><!--]--></span></span></button></div></div></div><div class="group" data-v-f953d92f><div class="item social-links" data-v-f953d92f><div class="VPSocialLinks social-links-list" data-v-f953d92f data-v-e71e869c><!--[--><a class="VPSocialLink no-icon" href="https://github.com/hanxi/xiaomusic" aria-label="github" target="_blank" rel="noopener" data-v-e71e869c data-v-60a9a2d3><span class="vpi-social-github"></span></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-9fd4d1dd data-v-6bee1efd><span class="container" data-v-6bee1efd><span class="top" data-v-6bee1efd></span><span class="middle" data-v-6bee1efd></span><span class="bottom" data-v-6bee1efd></span></span></button></div></div></div></div><div class="divider" data-v-9fd4d1dd><div class="divider-line" data-v-9fd4d1dd></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-d8b57b2d data-v-2488c25a><div class="container" data-v-2488c25a><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-2488c25a><span class="vpi-align-left menu-icon" data-v-2488c25a></span><span class="menu-text" data-v-2488c25a>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-2488c25a data-v-883964e0><button data-v-883964e0>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-d8b57b2d data-v-42c4c606><div class="curtain" data-v-42c4c606></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-42c4c606><span class="visually-hidden" id="sidebar-aria-label" data-v-42c4c606> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-51288d80><section class="VPSidebarItem level-0 has-active" data-v-51288d80 data-v-edd2eed8><!----><div class="items" data-v-edd2eed8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/issues/101.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>群晖docker安装 xiaomusic</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/issues/105.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>【插件】自定义口令功能</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/issues/182.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>定时任务配置格式</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/issues/19.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>如何修改默认的8090端口</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/issues/210.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>yt-dlp cookies 文件上传功能</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/issues/211.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>📝 文档汇总</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/issues/212.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>如何批量下载歌曲</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/issues/269.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>如何添加 网易云音乐playlist</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/issues/285.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>相关工具推荐</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/issues/294.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>关于M01型号的注意事项</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/issues/297.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>xiaomusic极空间安装教程2024-12-4更新</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/issues/78.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>已支持配置自定义网络歌单,在这里分享你的歌单</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/issues/88.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>如何添加m3u格式文件的电台</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/issues/94.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>采用config.json配置方式</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/issues/96.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>ios系统上的捷径配置</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/issues/99.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>💬 FAQ问题集合</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/issues/index.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>XiaoMusic: 无限听歌,解放小爱音箱</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-d8b57b2d data-v-9a6c75ad><div class="VPDoc has-sidebar has-aside" data-v-9a6c75ad data-v-e6f2a212><!--[--><!--]--><div class="container" data-v-e6f2a212><div class="aside" data-v-e6f2a212><div class="aside-curtain" data-v-e6f2a212></div><div class="aside-container" data-v-e6f2a212><div class="aside-content" data-v-e6f2a212><div class="VPDocAside" data-v-e6f2a212 data-v-cb998dce><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-cb998dce data-v-f610f197><div class="content" data-v-f610f197><div class="outline-marker" data-v-f610f197></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-f610f197>On this page</div><ul class="VPDocOutlineItem root" data-v-f610f197 data-v-53c99d69><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-cb998dce></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-e6f2a212><div class="content-container" data-v-e6f2a212><!--[--><!--]--><main class="main" data-v-e6f2a212><div style="position:relative;" class="vp-doc _issues_105" data-v-e6f2a212><div><h1 id="【插件】自定义口令功能" tabindex="-1">【插件】自定义口令功能 <a class="header-anchor" href="#【插件】自定义口令功能" aria-label="Permalink to &quot;【插件】自定义口令功能&quot;" target="_self"></a></h1><p>自定义口令配置需要配置到 config.json 文件里,使用 config.json 方式启动。参考 &lt;/issues/94.html&gt;</p><p>口令的配置方式见 config-example.json 文件。口令对应的代码需要写到 <code>plugins/</code> 目录下面,如果是容器启动,则需要把这个目录挂载出来。</p><p>config.json 格式是下面这样的。</p><div class="language-json vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;hardware&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;L07A&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;account&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;password&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;mi_did&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;cookie&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;verbose&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">false</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;music_path&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;music&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;conf_path&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">null</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;hostname&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;192.168.2.5&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;port&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">8090</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;public_port&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;proxy&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">null</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;search_prefix&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;bilisearch:&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;ffmpeg_location&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;./ffmpeg/bin&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;active_cmd&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;play,random_play,playlocal,play_music_list,stop&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;exclude_dirs&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;@eaDir&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;music_path_depth&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">10</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;disable_httpauth&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;httpauth_username&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;admin&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;httpauth_password&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;admin&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;music_list_url&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;music_list_json&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;disable_download&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">false</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;key_word_dict&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: {</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;播放歌曲&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;play&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;播放本地歌曲&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;playlocal&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;关机&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;stop&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;下一首&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;play_next&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;单曲循环&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;set_play_type_one&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;全部循环&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;set_play_type_all&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;随机播放&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;random_play&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;分钟后关机&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;stop_after_minute&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;播放列表&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;play_music_list&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;刷新列表&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;gen_music_list&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;set_volume#&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;set_volume&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;get_volume#&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;get_volume&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;本地播放歌曲&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;playlocal&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;放歌曲&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;play&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;暂停&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;stop&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;停止&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;stop&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;停止播放&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;stop&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;测试自定义口令&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;exec#code1(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\&quot;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">hello</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\&quot;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">)&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;测试链接&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;exec#httpget(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\&quot;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">https://github.com/hanxi/xiaomusic</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\&quot;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">)&quot;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> },</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;key_match_order&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: [</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;set_volume#&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;get_volume#&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;分钟后关机&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;播放歌曲&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;下一首&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;单曲循环&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;全部循环&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;随机播放&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;关机&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;刷新列表&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;播放列表&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;播放本地歌曲&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;本地播放歌曲&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;放歌曲&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;暂停&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;停止&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;停止播放&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;测试自定义口令&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;测试链接&quot;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> ],</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;use_music_api&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">false</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;use_music_audio_id&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;1582971365183456177&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;use_music_id&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;355454500&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;log_file&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;/tmp/xiaomusic.txt&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;fuzzy_match_cutoff&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">0.6</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;enable_fuzzy_match&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;stop_tts_msg&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;收到,再见&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;keywords_playlocal&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;播放本地歌曲,本地播放歌曲&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;keywords_play&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;播放歌曲,放歌曲&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;keywords_stop&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;关机,暂停,停止,停止播放&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;user_key_word_dict&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: {</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;测试自定义口令&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;exec#code1(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\&quot;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">hello</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\&quot;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">)&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;测试链接&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;exec#httpget(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\&quot;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">https://github.com/hanxi/xiaomusic</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\&quot;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">)&quot;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre></div><p>配置自定义口令时,只需要配置 user_key_word_dict 即可,会自动插入到 key_word_dict 里的。配置格式是:</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span> &quot;测试自定义口令&quot;: &quot;exec#code1(\&quot;hello\&quot;)&quot;,</span></span></code></pre></div><p>其中 &quot;测试自定义口令&quot; 就是对小爱音箱说的,<code>&quot;exec#code1(\&quot;hello\&quot;)&quot;</code> 就是要执行的插件代码,代码以 <code>exec#</code> 开头,后面紧跟着执行代码。这里 code1 是一个插件函数,插件函数需要在 plugin 目录里实现,一个文件只会导出一个与文件名相同的插件函数。所以 code1 函数是在 plugin/code1.py 里实现的。</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>async def code1(arg1):</span></span>
<span class="line"><span> global log, xiaomusic</span></span>
<span class="line"><span> log.info(f&quot;code1:{arg1}&quot;)</span></span>
<span class="line"><span> await xiaomusic.do_tts(&quot;你好,我是自定义的测试口令&quot;)</span></span></code></pre></div><p>这里只是演示了打印日志和让小爱音箱说话。还有一个示例插件是 httpget ,可以用来访问 url 。</p><p>比如下面这样配置的话,当对小爱音箱说测试链接时,会去访问 url ,可以用来很多其他的事情。</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>&quot;测试链接&quot;: &quot;exec#httpget(\&quot;https://github.com/hanxi/xiaomusic\&quot;)</span></span></code></pre></div><p>最后还需要在 <code>active_cmd</code> 中配上口令用于唤醒:</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span> &quot;active_cmd&quot;: &quot;play,set_random_play,playlocal,play_music_list,play_music_list_index,stop_after_minute,stop,测试自定义口令&quot;,</span></span></code></pre></div><p>感兴趣的可以体验一下,写了有什么好玩的插件也可以在这里分享,或者提 pr 合并进官方库里作为自带插件。</p><h2 id="评论" tabindex="-1">评论 <a class="header-anchor" href="#评论" aria-label="Permalink to &quot;评论&quot;" target="_self"></a></h2><h3 id="评论-1-carson512" tabindex="-1">评论 1 - carson512 <a class="header-anchor" href="#评论-1-carson512" aria-label="Permalink to &quot;评论 1 - carson512&quot;" target="_self"></a></h3><p>如果开启服务的状态下 如何唤醒才能调用原有的播放QQ 网易云而特定唤醒词调用xiaoai播放</p><hr><h3 id="评论-2-hanxi" tabindex="-1">评论 2 - hanxi <a class="header-anchor" href="#评论-2-hanxi" aria-label="Permalink to &quot;评论 2 - hanxi&quot;" target="_self"></a></h3><blockquote><p>如果开启服务的状态下 如何唤醒才能调用原有的播放QQ 网易云而特定唤醒词调用xiaoai播放</p></blockquote><p>不使用 xiaomusic 的唤醒词就会调用音箱自带的,比如说播放音乐</p><hr><h3 id="评论-3-shellingford37" tabindex="-1">评论 3 - shellingford37 <a class="header-anchor" href="#评论-3-shellingford37" aria-label="Permalink to &quot;评论 3 - shellingford37&quot;" target="_self"></a></h3><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>[23:26:12] [0.3.30] [INFO] xiaomusic.py:531: 收到消息:测试自定义口令 控制面板:False did:290874427</span></span>
<span class="line"><span>[23:26:12] [0.3.30] [INFO] xiaomusic.py:577: 完全匹配指令. query:测试自定义口令 opvalue:exec#code1(&quot;hello&quot;)</span></span>
<span class="line"><span>[23:26:12] [0.3.30] [INFO] code1.py:3: code1:hello</span></span>
<span class="line"><span>[23:26:12] [0.3.30] [ERROR] xiaomusic.py:542: Execption XiaoMusic.do_tts() missing 1 required positional argument: &#39;value&#39;</span></span>
<span class="line"><span>Traceback (most recent call last):</span></span>
<span class="line"><span> File &quot;/app/xiaomusic/xiaomusic.py&quot;, line 540, in do_check_cmd</span></span>
<span class="line"><span> await func(did=did, arg1=oparg)</span></span>
<span class="line"><span> File &quot;/app/xiaomusic/xiaomusic.py&quot;, line 890, in exec</span></span>
<span class="line"><span> await self.plugin_manager.execute_plugin(code)</span></span>
<span class="line"><span> File &quot;/app/xiaomusic/plugin.py&quot;, line 66, in execute_plugin</span></span>
<span class="line"><span> await coroutine</span></span>
<span class="line"><span> File &quot;/app/plugins/code1.py&quot;, line 4, in code1</span></span>
<span class="line"><span> await xiaomusic.do_tts(&quot;你好,我是自定义的测试口令&quot;)</span></span>
<span class="line"><span>TypeError: XiaoMusic.do_tts() missing 1 required positional argument: &#39;value&#39;</span></span></code></pre></div><p>我用code1的代码执行报错有大佬知道为什么吗</p><hr><h3 id="评论-4-hanxi" tabindex="-1">评论 4 - hanxi <a class="header-anchor" href="#评论-4-hanxi" aria-label="Permalink to &quot;评论 4 - hanxi&quot;" target="_self"></a></h3><p>@shellingford37 重构后漏改了,修复了。</p><hr><h3 id="评论-5-guoxiangke" tabindex="-1">评论 5 - guoxiangke <a class="header-anchor" href="#评论-5-guoxiangke" aria-label="Permalink to &quot;评论 5 - guoxiangke&quot;" target="_self"></a></h3><p>先说播放歌曲,再说 测试自定义口令 就行</p><hr><h3 id="评论-6-czjcc" tabindex="-1">评论 6 - CZJCC <a class="header-anchor" href="#评论-6-czjcc" aria-label="Permalink to &quot;评论 6 - CZJCC&quot;" target="_self"></a></h3><p>想请教下插件那个功能,如何把用户的语音输入作为参数内容传到自定义函数里</p><hr><h3 id="评论-7-hanxi" tabindex="-1">评论 7 - hanxi <a class="header-anchor" href="#评论-7-hanxi" aria-label="Permalink to &quot;评论 7 - hanxi&quot;" target="_self"></a></h3><blockquote><p>想请教下插件那个功能,如何把用户的语音输入作为参数内容传到自定义函数里</p></blockquote><p>现在获取不到,等我加个接口获取吧。</p><hr><h3 id="评论-8-czjcc" tabindex="-1">评论 8 - CZJCC <a class="header-anchor" href="#评论-8-czjcc" aria-label="Permalink to &quot;评论 8 - CZJCC&quot;" target="_self"></a></h3><p>666,支持以后我可以贡献一个接入通义模型的插件</p><hr><h3 id="评论-9-hanxi" tabindex="-1">评论 9 - hanxi <a class="header-anchor" href="#评论-9-hanxi" aria-label="Permalink to &quot;评论 9 - hanxi&quot;" target="_self"></a></h3><p>@CZJCC 你可以更新看看 plugins/code1.py 的测试代码,我测试了是可以拿到语音输入的原始内容的。</p><hr><h3 id="评论-10-hanxi" tabindex="-1">评论 10 - hanxi <a class="header-anchor" href="#评论-10-hanxi" aria-label="Permalink to &quot;评论 10 - hanxi&quot;" target="_self"></a></h3><p>文档更新了下active_cmd 也需要配置一下才能正常唤醒。</p><hr><h3 id="评论-11-czjcc" tabindex="-1">评论 11 - CZJCC <a class="header-anchor" href="#评论-11-czjcc" aria-label="Permalink to &quot;评论 11 - CZJCC&quot;" target="_self"></a></h3><blockquote><p>@CZJCC 你可以更新看看 plugins/code1.py 的测试代码,我测试了是可以拿到语音输入的原始内容的。</p></blockquote><p>我原先设想的事用户的话术是”通义提问为什么地球是圆的“指令匹配的时候通义提问前缀匹配到类似于code1方法为什么地球是圆的作为参数传入这个函数但我看现在是拿历史记录实现的</p><hr><h3 id="评论-12-hanxi" tabindex="-1">评论 12 - hanxi <a class="header-anchor" href="#评论-12-hanxi" aria-label="Permalink to &quot;评论 12 - hanxi&quot;" target="_self"></a></h3><p>是的插件函数里面再切割一下前缀就行。last_record就是当前的那条语音数据。</p><hr><h3 id="评论-13-hanxi" tabindex="-1">评论 13 - hanxi <a class="header-anchor" href="#评论-13-hanxi" aria-label="Permalink to &quot;评论 13 - hanxi&quot;" target="_self"></a></h3><blockquote><blockquote><p>@CZJCC 你可以更新看看 plugins/code1.py 的测试代码,我测试了是可以拿到语音输入的原始内容的。</p></blockquote><p>我原先设想的事用户的话术是”通义提问为什么地球是圆的“指令匹配的时候通义提问前缀匹配到类似于code1方法为什么地球是圆的作为参数传入这个函数但我看现在是拿历史记录实现的</p></blockquote><p>是的,这样比较简单,交给插件里面处理也比较自由。</p><hr><h3 id="评论-14-mogeqian" tabindex="-1">评论 14 - mogeqian <a class="header-anchor" href="#评论-14-mogeqian" aria-label="Permalink to &quot;评论 14 - mogeqian&quot;" target="_self"></a></h3><p>key_word_dict中的“播放歌曲”口令是不能修改的是吧因为以前用小爱同学播放歌曲说习惯了总是触发xiaomusic自动下载歌曲我想把口令改成“查找歌曲”这样我当说播放歌曲的时候就调用网易云音乐或者QQ音乐当我说查找歌曲的时候就先看本地有没有歌曲没有话就自动下载到本地。 当我先按照config-example.json的模板写好如下配置并重命名为config.json</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span> &quot;key_word_dict&quot;: {</span></span>
<span class="line"><span> &quot;查找歌曲&quot;: &quot;play&quot;,</span></span>
<span class="line"><span> &quot;播放本地歌曲&quot;: &quot;playlocal&quot;,</span></span>
<span class="line"><span> &quot;关机&quot;: &quot;stop&quot;,</span></span>
<span class="line"><span> &quot;下一首&quot;: &quot;play_next&quot;,</span></span>
<span class="line"><span> &quot;单曲循环&quot;: &quot;set_play_type_one&quot;,</span></span>
<span class="line"><span> &quot;全部循环&quot;: &quot;set_play_type_all&quot;,</span></span>
<span class="line"><span> &quot;随机播放&quot;: &quot;set_random_play&quot;,</span></span>
<span class="line"><span> &quot;分钟后关机&quot;: &quot;stop_after_minute&quot;,</span></span>
<span class="line"><span> &quot;播放列表&quot;: &quot;play_music_list&quot;,</span></span>
<span class="line"><span> &quot;刷新列表&quot;: &quot;gen_music_list&quot;,</span></span>
<span class="line"><span> &quot;本地播放歌曲&quot;: &quot;playlocal&quot;,</span></span>
<span class="line"><span> &quot;下载歌曲&quot;: &quot;play&quot;,</span></span>
<span class="line"><span> &quot;暂停&quot;: &quot;stop&quot;,</span></span>
<span class="line"><span> &quot;停止&quot;: &quot;stop&quot;,</span></span>
<span class="line"><span> &quot;停止播放&quot;: &quot;stop&quot;,</span></span>
<span class="line"><span> &quot;测试自定义口令&quot;: &quot;exec#code1(\&quot;hello\&quot;)&quot;,</span></span>
<span class="line"><span> &quot;测试链接&quot;: &quot;exec#httpget(\&quot;https://github.com/hanxi/xiaomusic\&quot;)&quot;</span></span>
<span class="line"><span> },</span></span>
<span class="line"><span> &quot;key_match_order&quot;: [</span></span>
<span class="line"><span> &quot;分钟后关机&quot;,</span></span>
<span class="line"><span> &quot;查找歌曲&quot;,</span></span>
<span class="line"><span> &quot;下一首&quot;,</span></span>
<span class="line"><span> &quot;单曲循环&quot;,</span></span>
<span class="line"><span> &quot;全部循环&quot;,</span></span>
<span class="line"><span> &quot;随机播放&quot;,</span></span>
<span class="line"><span> &quot;关机&quot;,</span></span>
<span class="line"><span> &quot;刷新列表&quot;,</span></span>
<span class="line"><span> &quot;播放列表&quot;,</span></span>
<span class="line"><span> &quot;播放本地歌曲&quot;,</span></span>
<span class="line"><span> &quot;本地播放歌曲&quot;,</span></span>
<span class="line"><span> &quot;下载歌曲&quot;,</span></span>
<span class="line"><span> &quot;暂停&quot;,</span></span>
<span class="line"><span> &quot;停止&quot;,</span></span>
<span class="line"><span> &quot;停止播放&quot;,</span></span>
<span class="line"><span> &quot;测试自定义口令&quot;,</span></span>
<span class="line"><span> &quot;测试链接&quot;</span></span>
<span class="line"><span> ],</span></span></code></pre></div><p>用以下命令安装docker <code>docker run --name xiaomusic -p 5488:5488 -v /mnt/sharedata/audiodata/musci/xiaomusic:/app/music -v /mnt/data_sdb1/docker/xiaomusic/config.json:/app/config.json -e XIAOMUSIC_PORT=5488 hanxi/xiaomusic --config /app/config.json</code> 日志里提示的依然是:</p><p><code> key_word_dict={&#39;播放歌曲&#39;: &#39;play&#39;, &#39;播放本地歌曲&#39;: &#39;playlocal&#39;, &#39;关机&#39;: &#39;stop&#39;, &#39;下一首&#39;: &#39;play_next&#39;, &#39;上一首&#39;: &#39;play_prev&#39;, &#39;单曲循环&#39;: &#39;set_play_type_one&#39;, &#39;全部循环&#39;: &#39;set_play_type_all&#39;, &#39;随机播放&#39;: &#39;set_random_play&#39;, &#39;分钟后关机&#39;: &#39;stop_after_minute&#39;, &#39;播放列表&#39;: &#39;play_music_list&#39;, &#39;刷新列表&#39;: &#39;gen_music_list&#39;, &#39;加入收藏&#39;: &#39;add_to_favorites&#39;, &#39;收藏歌曲&#39;: &#39;add_to_favorites&#39;, &#39;取消收藏&#39;: &#39;del_from_favorites&#39;, &#39;播放列表第&#39;: &#39;play_music_list_index&#39;, &#39;本地播放歌曲&#39;: &#39;playlocal&#39;, &#39;查找歌曲&#39;: &#39;play&#39;, &#39;下载歌曲&#39;: &#39;play&#39;, &#39;暂停&#39;: &#39;stop&#39;, &#39;停止&#39;: &#39;stop&#39;, &#39;停止播放&#39;: &#39;stop&#39;, &#39;播放歌单&#39;: &#39;play_music_list&#39;, &#39;测试自定义口令&#39;: &#39;exec#code1(&quot;hello&quot;)&#39;, &#39;测试链接&#39;: &#39;exec#httpget(&quot;https://github.com/hanxi/xiaomusic&quot;)&#39;}, key_match_order=[&#39;分钟后关机&#39;, &#39;播放歌曲&#39;, &#39;下一首&#39;, &#39;上一首&#39;, &#39;单曲循环&#39;, &#39;全部循环&#39;, &#39;随机播放&#39;, &#39;关机&#39;, &#39;刷新列表&#39;, &#39;播放列表第&#39;, &#39;播放列表&#39;, &#39;加入收藏&#39;, &#39;收藏歌曲&#39;, &#39;取消收藏&#39;, &#39;播放本地歌曲&#39;, &#39;本地播放歌曲&#39;, &#39;查找歌曲&#39;, &#39;下载歌曲&#39;, &#39;暂停&#39;, &#39;停止&#39;, &#39;停止播放&#39;, &#39;播放歌单&#39;, &#39;测试自定义口令&#39;, &#39;测试链接&#39;]</code></p><p>似乎自定义的口令只能以插入的方式添加上去,并不能替换掉原来的口令</p><hr><h3 id="评论-15-hanxi" tabindex="-1">评论 15 - hanxi <a class="header-anchor" href="#评论-15-hanxi" aria-label="Permalink to &quot;评论 15 - hanxi&quot;" target="_self"></a></h3><blockquote><p>key_word_dict中的“播放歌曲”口令是不能修改的是吧因为以前用小爱同学播放歌曲说习惯了总是触发xiaomusic自动下载歌曲我想把口令改成“查找歌曲”这样我当说播放歌曲的时候就调用网易云音乐或者QQ音乐当我说查找歌曲的时候就先看本地有没有歌曲没有话就自动下载到本地。 当我先按照config-example.json的模板写好如下配置并重命名为config.json</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span> &quot;key_word_dict&quot;: {</span></span>
<span class="line"><span> &quot;查找歌曲&quot;: &quot;play&quot;,</span></span>
<span class="line"><span> &quot;播放本地歌曲&quot;: &quot;playlocal&quot;,</span></span>
<span class="line"><span> &quot;关机&quot;: &quot;stop&quot;,</span></span>
<span class="line"><span> &quot;下一首&quot;: &quot;play_next&quot;,</span></span>
<span class="line"><span> &quot;单曲循环&quot;: &quot;set_play_type_one&quot;,</span></span>
<span class="line"><span> &quot;全部循环&quot;: &quot;set_play_type_all&quot;,</span></span>
<span class="line"><span> &quot;随机播放&quot;: &quot;set_random_play&quot;,</span></span>
<span class="line"><span> &quot;分钟后关机&quot;: &quot;stop_after_minute&quot;,</span></span>
<span class="line"><span> &quot;播放列表&quot;: &quot;play_music_list&quot;,</span></span>
<span class="line"><span> &quot;刷新列表&quot;: &quot;gen_music_list&quot;,</span></span>
<span class="line"><span> &quot;本地播放歌曲&quot;: &quot;playlocal&quot;,</span></span>
<span class="line"><span> &quot;下载歌曲&quot;: &quot;play&quot;,</span></span>
<span class="line"><span> &quot;暂停&quot;: &quot;stop&quot;,</span></span>
<span class="line"><span> &quot;停止&quot;: &quot;stop&quot;,</span></span>
<span class="line"><span> &quot;停止播放&quot;: &quot;stop&quot;,</span></span>
<span class="line"><span> &quot;测试自定义口令&quot;: &quot;exec#code1(\&quot;hello\&quot;)&quot;,</span></span>
<span class="line"><span> &quot;测试链接&quot;: &quot;exec#httpget(\&quot;https://github.com/hanxi/xiaomusic\&quot;)&quot;</span></span>
<span class="line"><span> },</span></span>
<span class="line"><span> &quot;key_match_order&quot;: [</span></span>
<span class="line"><span> &quot;分钟后关机&quot;,</span></span>
<span class="line"><span> &quot;查找歌曲&quot;,</span></span>
<span class="line"><span> &quot;下一首&quot;,</span></span>
<span class="line"><span> &quot;单曲循环&quot;,</span></span>
<span class="line"><span> &quot;全部循环&quot;,</span></span>
<span class="line"><span> &quot;随机播放&quot;,</span></span>
<span class="line"><span> &quot;关机&quot;,</span></span>
<span class="line"><span> &quot;刷新列表&quot;,</span></span>
<span class="line"><span> &quot;播放列表&quot;,</span></span>
<span class="line"><span> &quot;播放本地歌曲&quot;,</span></span>
<span class="line"><span> &quot;本地播放歌曲&quot;,</span></span>
<span class="line"><span> &quot;下载歌曲&quot;,</span></span>
<span class="line"><span> &quot;暂停&quot;,</span></span>
<span class="line"><span> &quot;停止&quot;,</span></span>
<span class="line"><span> &quot;停止播放&quot;,</span></span>
<span class="line"><span> &quot;测试自定义口令&quot;,</span></span>
<span class="line"><span> &quot;测试链接&quot;</span></span>
<span class="line"><span> ],</span></span></code></pre></div><p>用以下命令安装docker <code>docker run --name xiaomusic -p 5488:5488 -v /mnt/sharedata/audiodata/musci/xiaomusic:/app/music -v /mnt/data_sdb1/docker/xiaomusic/config.json:/app/config.json -e XIAOMUSIC_PORT=5488 hanxi/xiaomusic --config /app/config.json</code> 日志里提示的依然是:</p><p><code> key_word_dict={&#39;播放歌曲&#39;: &#39;play&#39;, &#39;播放本地歌曲&#39;: &#39;playlocal&#39;, &#39;关机&#39;: &#39;stop&#39;, &#39;下一首&#39;: &#39;play_next&#39;, &#39;上一首&#39;: &#39;play_prev&#39;, &#39;单曲循环&#39;: &#39;set_play_type_one&#39;, &#39;全部循环&#39;: &#39;set_play_type_all&#39;, &#39;随机播放&#39;: &#39;set_random_play&#39;, &#39;分钟后关机&#39;: &#39;stop_after_minute&#39;, &#39;播放列表&#39;: &#39;play_music_list&#39;, &#39;刷新列表&#39;: &#39;gen_music_list&#39;, &#39;加入收藏&#39;: &#39;add_to_favorites&#39;, &#39;收藏歌曲&#39;: &#39;add_to_favorites&#39;, &#39;取消收藏&#39;: &#39;del_from_favorites&#39;, &#39;播放列表第&#39;: &#39;play_music_list_index&#39;, &#39;本地播放歌曲&#39;: &#39;playlocal&#39;, &#39;查找歌曲&#39;: &#39;play&#39;, &#39;下载歌曲&#39;: &#39;play&#39;, &#39;暂停&#39;: &#39;stop&#39;, &#39;停止&#39;: &#39;stop&#39;, &#39;停止播放&#39;: &#39;stop&#39;, &#39;播放歌单&#39;: &#39;play_music_list&#39;, &#39;测试自定义口令&#39;: &#39;exec#code1(&quot;hello&quot;)&#39;, &#39;测试链接&#39;: &#39;exec#httpget(&quot;https://github.com/hanxi/xiaomusic&quot;)&#39;}, key_match_order=[&#39;分钟后关机&#39;, &#39;播放歌曲&#39;, &#39;下一首&#39;, &#39;上一首&#39;, &#39;单曲循环&#39;, &#39;全部循环&#39;, &#39;随机播放&#39;, &#39;关机&#39;, &#39;刷新列表&#39;, &#39;播放列表第&#39;, &#39;播放列表&#39;, &#39;加入收藏&#39;, &#39;收藏歌曲&#39;, &#39;取消收藏&#39;, &#39;播放本地歌曲&#39;, &#39;本地播放歌曲&#39;, &#39;查找歌曲&#39;, &#39;下载歌曲&#39;, &#39;暂停&#39;, &#39;停止&#39;, &#39;停止播放&#39;, &#39;播放歌单&#39;, &#39;测试自定义口令&#39;, &#39;测试链接&#39;]</code></p><p>似乎自定义的口令只能以插入的方式添加上去,并不能替换掉原来的口令</p></blockquote><p>可以在网页后台设置页面改。</p><hr><h3 id="评论-16-mogeqian" tabindex="-1">评论 16 - mogeqian <a class="header-anchor" href="#评论-16-mogeqian" aria-label="Permalink to &quot;评论 16 - mogeqian&quot;" target="_self"></a></h3><p>不行,后台设置如图 <img src="https://github.com/user-attachments/assets/cc89512f-cab9-488d-b0d6-5b2a3a720ac2" alt="QQ截图20241111181411"> 日志如下:</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>[2024-11-11 18:08:04] [0.3.46] [INFO] xiaomusic.py:1130: update_config_from_setting ok. data:Config(account=&#39;**&#39;, password=&#39;**&#39;, mi_did=&#39;726577518,570867755&#39;, miio_tts_command=&#39;&#39;, cookie=&#39;&#39;, verbose=False, music_path=&#39;music&#39;, download_path=&#39;music/download&#39;, conf_path=&#39;conf&#39;, cache_dir=&#39;cache&#39;, hostname=&#39;192.168.22.4&#39;, port=8090, public_port=0, proxy=&#39;&#39;, search_prefix=&#39;bilisearch:&#39;, ffmpeg_location=&#39;./ffmpeg/bin&#39;, active_cmd=&#39;play,set_random_play,playlocal,play_music_list,stop&#39;, exclude_dirs=&#39;@eaDir&#39;, music_path_depth=10, disable_httpauth=True, httpauth_username=&#39;******&#39;, httpauth_password=&#39;******&#39;, music_list_url=&#39;&#39;, music_list_json=&#39;&#39;, custom_play_list_json=&#39;&#39;, disable_download=False, key_word_dict={&#39;播放歌曲&#39;: &#39;play&#39;, &#39;播放本地歌曲&#39;: &#39;playlocal&#39;, &#39;关机&#39;: &#39;stop&#39;, &#39;下一首&#39;: &#39;play_next&#39;, &#39;上一首&#39;: &#39;play_prev&#39;, &#39;单曲循环&#39;: &#39;set_play_type_one&#39;, &#39;全部循环&#39;: &#39;set_play_type_all&#39;, &#39;随机播放&#39;: &#39;set_random_play&#39;, &#39;分钟后关机&#39;: &#39;stop_after_minute&#39;, &#39;播放列表&#39;: &#39;play_music_list&#39;, &#39;刷新列表&#39;: &#39;gen_music_list&#39;, &#39;加入收藏&#39;: &#39;add_to_favorites&#39;, &#39;收藏歌曲&#39;: &#39;add_to_favorites&#39;, &#39;取消收藏&#39;: &#39;del_from_favorites&#39;, &#39;播放列表第&#39;: &#39;play_music_list_index&#39;, &#39;本地播放歌曲&#39;: &#39;playlocal&#39;, &#39;查找歌曲&#39;: &#39;play&#39;, &#39;下载歌曲&#39;: &#39;play&#39;, &#39;暂停&#39;: &#39;stop&#39;, &#39;停止&#39;: &#39;stop&#39;, &#39;停止播放&#39;: &#39;stop&#39;, &#39;播放歌单&#39;: &#39;play_music_list&#39;, &#39;测试自定义口令&#39;: &#39;exec#code1(&quot;hello&quot;)&#39;, &#39;测试链接&#39;: &#39;exec#httpget(&quot;https://github.com/hanxi/xiaomusic&quot;)&#39;}, key_match_order=[&#39;分钟后关机&#39;, &#39;播放歌曲&#39;, &#39;下一首&#39;, &#39;上一首&#39;, &#39;单曲循环&#39;, &#39;全部循环&#39;, &#39;随机播放&#39;, &#39;关机&#39;, &#39;刷新列表&#39;, &#39;播放列表第&#39;, &#39;播放列表&#39;, &#39;加入收藏&#39;, &#39;收藏歌曲&#39;, &#39;取消收藏&#39;, &#39;播放本地歌曲&#39;, &#39;本地播放歌曲&#39;, &#39;查找歌曲&#39;, &#39;下载歌曲&#39;, &#39;暂停&#39;, &#39;停止&#39;, &#39;停止播放&#39;, &#39;播放歌单&#39;, &#39;测试自定义口令&#39;, &#39;测试链接&#39;], use_music_api=False, use_music_audio_id=&#39;1582971365183456177&#39;, use_music_id=&#39;355454500&#39;, log_file=&#39;/tmp/xiaomusic.txt&#39;, fuzzy_match_cutoff=0.6, enable_fuzzy_match=True, stop_tts_msg=&#39;收到,再见&#39;, enable_config_example=False, keywords_playlocal=&#39;播放本地歌曲,本地播放歌曲&#39;, keywords_play=&#39;查找歌曲,下载歌曲&#39;, keywords_stop=&#39;关机,暂停,停止,停止播放&#39;, keywords_playlist=&#39;播放列表,播放歌单&#39;, user_key_word_dict={&#39;测试自定义口令&#39;: &#39;exec#code1(&quot;hello&quot;)&#39;, &#39;测试链接&#39;: &#39;exec#httpget(&quot;https://github.com/hanxi/xiaomusic&quot;)&#39;}, enable_force_stop=False, devices={&#39;726577518&#39;: Device(did=&#39;726577518&#39;, device_id=&#39;******&#39;, hardware=&#39;LX06&#39;, name=&#39;小爱音箱Pro&#39;, play_type=&#39;&#39;, cur_music=&#39;&#39;, cur_playlist=&#39;全部&#39;), &#39;570867755&#39;: Device(did=&#39;570867755&#39;, device_id=&#39;*********&#39;, hardware=&#39;L15A&#39;, name=&#39;小米AI音箱(第二代)&#39;, play_type=&#39;&#39;, cur_music=&#39;&#39;, cur_playlist=&#39;全部&#39;)}, group_list=&#39;&#39;, remove_id3tag=False, convert_to_mp3=False, delay_sec=3, continue_play=False, pull_ask_sec=1, crontab_json=&#39;&#39;, enable_yt_dlp_cookies=False, get_ask_by_mina=False)</span></span>
<span class="line"><span>[2024-11-11 18:08:04] [0.3.46] [INFO] xiaomusic.py:1133: 语音控制已启动, 用【分钟后关机/播放歌曲/下一首/上一首/单曲循环/全部循环/随机播放/关机/刷新列表/播放列表第/播放列表/加入收藏/收藏歌曲/取消收藏/播放本地歌曲/本地播放歌曲/查找歌曲/下载歌曲/暂停/停止/停止播放/播放歌单/测试自定义口令/测试链接】开头来控制</span></span>
<span class="line"><span>[2024-11-11 18:08:04] [0.3.46] [INFO] xiaomusic.py:543: 协程时间循环未启动</span></span>
<span class="line"><span>[2024-11-11 18:08:04] [0.3.46] [INFO] xiaomusic.py:1250: 没打乱 全部 [&#39;乌兰托娅 火红的萨日朗&#39;, &#39;凤凰传奇麝香夫人&#39;] ... [&#39;罗大佑童年&#39;, &#39;阿嬷&#39;] with len: 7</span></span>
<span class="line"><span>[2024-11-11 18:08:04] [0.3.46] [INFO] xiaomusic.py:1250: 没打乱 全部 [&#39;乌兰托娅 火红的萨日朗&#39;, &#39;凤凰传奇麝香夫人&#39;] ... [&#39;罗大佑童年&#39;, &#39;阿嬷&#39;] with len: 7</span></span>
<span class="line"><span>[2024-11-11 18:08:04] [0.3.46] [INFO] analytics.py:28: analytics init ok</span></span>
<span class="line"><span>[2024-11-11 18:08:04] [0.3.46] [INFO] xiaomusic.py:104: Startup OK. Config(account=&#39;***&#39;, password=&#39;***&#39;, mi_did=&#39;726577518,570867755&#39;, miio_tts_command=&#39;&#39;, cookie=&#39;&#39;, verbose=False, music_path=&#39;music&#39;, download_path=&#39;music/download&#39;, conf_path=&#39;conf&#39;, cache_dir=&#39;cache&#39;, hostname=&#39;192.168.22.4&#39;, port=8090, public_port=0, proxy=&#39;&#39;, search_prefix=&#39;bilisearch:&#39;, ffmpeg_location=&#39;./ffmpeg/bin&#39;, active_cmd=&#39;play,set_random_play,playlocal,play_music_list,stop&#39;, exclude_dirs=&#39;@eaDir&#39;, music_path_depth=10, disable_httpauth=True, httpauth_username=&#39;******&#39;, httpauth_password=&#39;******&#39;, music_list_url=&#39;&#39;, music_list_json=&#39;&#39;, custom_play_list_json=&#39;&#39;, disable_download=False, key_word_dict={&#39;播放歌曲&#39;: &#39;play&#39;, &#39;播放本地歌曲&#39;: &#39;playlocal&#39;, &#39;关机&#39;: &#39;stop&#39;, &#39;下一首&#39;: &#39;play_next&#39;, &#39;上一首&#39;: &#39;play_prev&#39;, &#39;单曲循环&#39;: &#39;set_play_type_one&#39;, &#39;全部循环&#39;: &#39;set_play_type_all&#39;, &#39;随机播放&#39;: &#39;set_random_play&#39;, &#39;分钟后关机&#39;: &#39;stop_after_minute&#39;, &#39;播放列表&#39;: &#39;play_music_list&#39;, &#39;刷新列表&#39;: &#39;gen_music_list&#39;, &#39;加入收藏&#39;: &#39;add_to_favorites&#39;, &#39;收藏歌曲&#39;: &#39;add_to_favorites&#39;, &#39;取消收藏&#39;: &#39;del_from_favorites&#39;, &#39;播放列表第&#39;: &#39;play_music_list_index&#39;, &#39;本地播放歌曲&#39;: &#39;playlocal&#39;, &#39;查找歌曲&#39;: &#39;play&#39;, &#39;下载歌曲&#39;: &#39;play&#39;, &#39;暂停&#39;: &#39;stop&#39;, &#39;停止&#39;: &#39;stop&#39;, &#39;停止播放&#39;: &#39;stop&#39;, &#39;播放歌单&#39;: &#39;play_music_list&#39;, &#39;测试自定义口令&#39;: &#39;exec#code1(&quot;hello&quot;)&#39;, &#39;测试链接&#39;: &#39;exec#httpget(&quot;https://github.com/hanxi/xiaomusic&quot;)&#39;}, key_match_order=[&#39;分钟后关机&#39;, &#39;播放歌曲&#39;, &#39;下一首&#39;, &#39;上一首&#39;, &#39;单曲循环&#39;, &#39;全部循环&#39;, &#39;随机播放&#39;, &#39;关机&#39;, &#39;刷新列表&#39;, &#39;播放列表第&#39;, &#39;播放列表&#39;, &#39;加入收藏&#39;, &#39;收藏歌曲&#39;, &#39;取消收藏&#39;, &#39;播放本地歌曲&#39;, &#39;本地播放歌曲&#39;, &#39;查找歌曲&#39;, &#39;下载歌曲&#39;, &#39;暂停&#39;, &#39;停止&#39;, &#39;停止播放&#39;, &#39;播放歌单&#39;, &#39;测试自定义口令&#39;, &#39;测试链接&#39;], use_music_api=False, use_music_audio_id=&#39;1582971365183456177&#39;, use_music_id=&#39;355454500&#39;, log_file=&#39;/tmp/xiaomusic.txt&#39;, fuzzy_match_cutoff=0.6, enable_fuzzy_match=True, stop_tts_msg=&#39;收到,再见&#39;, enable_config_example=False, keywords_playlocal=&#39;播放本地歌曲,本地播放歌曲&#39;, keywords_play=&#39;查找歌曲,下载歌曲&#39;, keywords_stop=&#39;关机,暂停,停止,停止播放&#39;, keywords_playlist=&#39;播放列表,播放歌单&#39;, user_key_word_dict={&#39;测试自定义口令&#39;: &#39;exec#code1(&quot;hello&quot;)&#39;, &#39;测试链接&#39;: &#39;exec#httpget(&quot;https://github.com/hanxi/xiaomusic&quot;)&#39;}, enable_force_stop=False, devices={&#39;726577518&#39;: Device(did=&#39;726577518&#39;, device_id=&#39;*****&#39;, hardware=&#39;LX06&#39;, name=&#39;小爱音箱Pro&#39;, play_type=&#39;&#39;, cur_music=&#39;&#39;, cur_playlist=&#39;全部&#39;), &#39;570867755&#39;: Device(did=&#39;570867755&#39;, device_id=&#39;*********&#39;, hardware=&#39;L15A&#39;, name=&#39;小米AI音箱(第二代)&#39;, play_type=&#39;&#39;, cur_music=&#39;&#39;, cur_playlist=&#39;全部&#39;)}, group_list=&#39;&#39;, remove_id3tag=False, convert_to_mp3=False, delay_sec=3, continue_play=False, pull_ask_sec=1, crontab_json=&#39;&#39;, enable_yt_dlp_cookies=False, get_ask_by_mina=False)</span></span>
<span class="line"><span>[2024-11-11 18:08:04] [0.3.46] [INFO] httpserver.py:111: disable_httpauth:True</span></span>
<span class="line"><span>[18:08:04] [0.3.46] [INFO] Started server process [1]</span></span>
<span class="line"><span>[18:08:04] [0.3.46] [INFO] Waiting for application startup.</span></span>
<span class="line"><span>[2024-11-11 18:08:04] [0.3.46] [INFO] xiaomusic.py:541: 启动后台构建 tag cache</span></span>
<span class="line"><span>[18:08:04] [0.3.46] [INFO] Application startup complete.</span></span>
<span class="line"><span>[2024-11-11 18:08:04] [0.3.46] [INFO] xiaomusic.py:513: 已从【cache/tag_cache.json】加载 tag cache</span></span>
<span class="line"><span>[18:08:04] [0.3.46] [INFO] Uvicorn running on http://[&#39;0.0.0.0&#39;, &#39;::&#39;]:8090 (Press CTRL+C to quit)</span></span>
<span class="line"><span>[2024-11-11 18:08:04] [0.3.46] [INFO] xiaomusic.py:527: 保存tag cache 已保存到【cache/tag_cache.json】</span></span>
<span class="line"><span>[2024-11-11 18:08:04] [0.3.46] [INFO] xiaomusic.py:577: tag 更新完成</span></span>
<span class="line"><span>[2024-11-11 18:08:04] [0.3.46] [INFO] xiaomusic.py:248: 选中的设备: {&#39;726577518&#39;: Device(did=&#39;726577518&#39;, device_id=&#39;******&#39;, hardware=&#39;LX06&#39;, name=&#39;小爱音箱Pro&#39;, play_type=&#39;&#39;, cur_music=&#39;&#39;, cur_playlist=&#39;全部&#39;), &#39;570867755&#39;: Device(did=&#39;570867755&#39;, device_id=&#39;*********&#39;, hardware=&#39;L15A&#39;, name=&#39;小米AI音箱(第二代)&#39;, play_type=&#39;&#39;, cur_music=&#39;&#39;, cur_playlist=&#39;全部&#39;)}</span></span>
<span class="line"><span>[18:08:34] [0.3.46] [INFO] 172.20.0.1:35058 - &quot;GET /static/default/setting.html HTTP/1.1&quot; 304</span></span>
<span class="line"><span>[18:08:34] [0.3.46] [INFO] 172.20.0.1:35058 - &quot;GET /getversion HTTP/1.1&quot; 200</span></span></code></pre></div><p>使用的docker-compose命令安装 services: xiaomusic: image: hanxi/xiaomusic container_name: xiaomusic restart: unless-stopped ports: - 8090:8090 volumes: - /mnt/sharedata/audiodata/musci/xiaomusic:/app/music - /mnt/data_sdb1/docker/xiaomusic/config.json:/app/config.json command: [&#39;--config&#39;, &#39;/app/config.json&#39;]</p><p>根据日志的提示,&#39;播放歌曲&#39;: &#39;play&#39;依然存在,只是增加了 &#39;查找歌曲&#39;: &#39;play&#39;, &#39;下载歌曲&#39;: &#39;play&#39;, 这两个关于play的自定义口令所以实际上play有三条口令 “播放歌曲、查找歌曲、下载歌曲”,能否删除掉&#39;播放歌曲&#39;: &#39;play&#39;这个系统默认的口令?只使用 &#39;查找歌曲&#39;: &#39;play&#39;, &#39;下载歌曲&#39;: &#39;play&#39;, 这两个关于play的自定义口令</p><hr><h3 id="评论-17-hanxi" tabindex="-1">评论 17 - hanxi <a class="header-anchor" href="#评论-17-hanxi" aria-label="Permalink to &quot;评论 17 - hanxi&quot;" target="_self"></a></h3><p>@mogeqian 另外提个 issue 吧,现在应该是不支持删除默认的口令。</p><hr><h3 id="评论-18-mogeqian" tabindex="-1">评论 18 - mogeqian <a class="header-anchor" href="#评论-18-mogeqian" aria-label="Permalink to &quot;评论 18 - mogeqian&quot;" target="_self"></a></h3><p>好的已经重开了一个issue #259</p><hr><p><a href="https://github.com/hanxi/xiaomusic/issues/105" target="_self">链接到 GitHub Issue</a></p></div></div></main><footer class="VPDocFooter" data-v-e6f2a212 data-v-1bcd8184><!--[--><!--]--><!----><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-1bcd8184><span class="visually-hidden" id="doc-footer-aria-label" data-v-1bcd8184>Pager</span><div class="pager" data-v-1bcd8184><a class="VPLink link pager-link prev" href="/issues/101.html" data-v-1bcd8184><!--[--><span class="desc" data-v-1bcd8184>Previous page</span><span class="title" data-v-1bcd8184>群晖docker安装 xiaomusic</span><!--]--></a></div><div class="pager" data-v-1bcd8184><a class="VPLink link pager-link next" href="/issues/182.html" data-v-1bcd8184><!--[--><span class="desc" data-v-1bcd8184>Next page</span><span class="title" data-v-1bcd8184>定时任务配置格式</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><!--]--></div></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"index.md\":\"ByDiiWcV\",\"issues_101.md\":\"DBQG9jJP\",\"issues_105.md\":\"8_yuCS-D\",\"issues_182.md\":\"CpqPtztd\",\"issues_19.md\":\"DB81ml38\",\"issues_210.md\":\"C4LG69AC\",\"issues_211.md\":\"DUZAr3Vg\",\"issues_212.md\":\"j95HTJwO\",\"issues_269.md\":\"CwdSqsHN\",\"issues_285.md\":\"0b7MF6MA\",\"issues_294.md\":\"CrOAwh-t\",\"issues_297.md\":\"CtkkBK4R\",\"issues_78.md\":\"CH6fxnfx\",\"issues_88.md\":\"VOyx9x2b\",\"issues_94.md\":\"GErTTh9P\",\"issues_96.md\":\"D6uW10Mi\",\"issues_99.md\":\"amwtZpFn\",\"issues_index.md\":\"Do1eTGGf\",\"test1_api-examples.md\":\"LfndiNnB\",\"test1_index.md\":\"Bma_WtEx\",\"test1_markdown-examples.md\":\"D-SZaDZl\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"XiaoMusic\",\"description\":\"XiaoMusic doc\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"nav\":[{\"text\":\"Home\",\"link\":\"/\"},{\"text\":\"Examples\",\"link\":\"/markdown-examples\"}],\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/hanxi/xiaomusic\"}],\"sidebar\":{\"/issues/\":[{\"items\":[{\"text\":\"群晖docker安装 xiaomusic\",\"link\":\"/issues/101.html\"},{\"text\":\"【插件】自定义口令功能\",\"link\":\"/issues/105.html\"},{\"text\":\"定时任务配置格式\",\"link\":\"/issues/182.html\"},{\"text\":\"如何修改默认的8090端口\",\"link\":\"/issues/19.html\"},{\"text\":\"yt-dlp cookies 文件上传功能\",\"link\":\"/issues/210.html\"},{\"text\":\"📝 文档汇总\",\"link\":\"/issues/211.html\"},{\"text\":\"如何批量下载歌曲\",\"link\":\"/issues/212.html\"},{\"text\":\"如何添加 网易云音乐playlist\",\"link\":\"/issues/269.html\"},{\"text\":\"相关工具推荐\",\"link\":\"/issues/285.html\"},{\"text\":\"关于M01型号的注意事项\",\"link\":\"/issues/294.html\"},{\"text\":\"xiaomusic极空间安装教程2024-12-4更新\",\"link\":\"/issues/297.html\"},{\"text\":\"已支持配置自定义网络歌单,在这里分享你的歌单\",\"link\":\"/issues/78.html\"},{\"text\":\"如何添加m3u格式文件的电台\",\"link\":\"/issues/88.html\"},{\"text\":\"采用config.json配置方式\",\"link\":\"/issues/94.html\"},{\"text\":\"ios系统上的捷径配置\",\"link\":\"/issues/96.html\"},{\"text\":\"💬 FAQ问题集合\",\"link\":\"/issues/99.html\"},{\"text\":\"XiaoMusic: 无限听歌,解放小爱音箱\",\"link\":\"/issues/index.html\"}]}],\"/node_modules/\":[{\"items\":[{\"text\":\"@algolia\",\"items\":[{\"text\":\"autocomplete-core\",\"items\":[{\"text\":\"@algolia/autocomplete-core\",\"link\":\"/node_modules/@algolia/autocomplete-core/README.html\"}],\"collapsed\":true},{\"text\":\"autocomplete-plugin-algolia-insights\",\"items\":[{\"text\":\"@algolia/autocomplete-plugin-algolia-insights\",\"link\":\"/node_modules/@algolia/autocomplete-plugin-algolia-insights/README.html\"}],\"collapsed\":true},{\"text\":\"autocomplete-preset-algolia\",\"items\":[{\"text\":\"@algolia/autocomplete-preset-algolia\",\"link\":\"/node_modules/@algolia/autocomplete-preset-algolia/README.html\"}],\"collapsed\":true},{\"text\":\"client-abtesting\",\"items\":[{\"text\":\"or\",\"link\":\"/node_modules/@algolia/client-abtesting/README.html\"}],\"collapsed\":true},{\"text\":\"client-analytics\",\"items\":[{\"text\":\"or\",\"link\":\"/node_modules/@algolia/client-analytics/README.html\"}],\"collapsed\":true},{\"text\":\"client-insights\",\"items\":[{\"text\":\"or\",\"link\":\"/node_modules/@algolia/client-insights/README.html\"}],\"collapsed\":true},{\"text\":\"client-personalization\",\"items\":[{\"text\":\"or\",\"link\":\"/node_modules/@algolia/client-personalization/README.html\"}],\"collapsed\":true},{\"text\":\"client-query-suggestions\",\"items\":[{\"text\":\"or\",\"link\":\"/node_modules/@algolia/client-query-suggestions/README.html\"}],\"collapsed\":true},{\"text\":\"client-search\",\"items\":[{\"text\":\"or\",\"link\":\"/node_modules/@algolia/client-search/README.html\"}],\"collapsed\":true},{\"text\":\"ingestion\",\"items\":[{\"text\":\"or\",\"link\":\"/node_modules/@algolia/ingestion/README.html\"}],\"collapsed\":true},{\"text\":\"monitoring\",\"items\":[{\"text\":\"or\",\"link\":\"/node_modules/@algolia/monitoring/README.html\"}],\"collapsed\":true},{\"text\":\"recommend\",\"items\":[{\"text\":\"or\",\"link\":\"/node_modules/@algolia/recommend/README.html\"}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"@babel\",\"items\":[{\"text\":\"helper-string-parser\",\"items\":[{\"text\":\"@babel/helper-string-parser\",\"link\":\"/node_modules/@babel/helper-string-parser/README.html\"}],\"collapsed\":true},{\"text\":\"helper-validator-identifier\",\"items\":[{\"text\":\"@babel/helper-validator-identifier\",\"link\":\"/node_modules/@babel/helper-validator-identifier/README.html\"}],\"collapsed\":true},{\"text\":\"parser\",\"items\":[{\"text\":\"Changelog\",\"link\":\"/node_modules/@babel/parser/CHANGELOG.html\"},{\"text\":\"@babel/parser\",\"link\":\"/node_modules/@babel/parser/README.html\"}],\"collapsed\":true},{\"text\":\"types\",\"items\":[{\"text\":\"@babel/types\",\"link\":\"/node_modules/@babel/types/README.html\"}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"@docsearch\",\"items\":[{\"text\":\"css\",\"items\":[{\"text\":\"@docsearch/css\",\"link\":\"/node_modules/@docsearch/css/README.html\"}],\"collapsed\":true},{\"text\":\"js\",\"items\":[{\"text\":\"@docsearch/js\",\"link\":\"/node_modules/@docsearch/js/README.html\"}],\"collapsed\":true},{\"text\":\"react\",\"items\":[{\"text\":\"@docsearch/react\",\"link\":\"/node_modules/@docsearch/react/README.html\"}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"@esbuild\",\"items\":[{\"text\":\"linux-x64\",\"items\":[{\"text\":\"esbuild\",\"link\":\"/node_modules/@esbuild/linux-x64/README.html\"}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"@eslint\",\"items\":[{\"text\":\"eslintrc\",\"items\":[{\"text\":\"ESLintRC Library\",\"link\":\"/node_modules/@eslint/eslintrc/README.html\"}],\"collapsed\":true},{\"text\":\"js\",\"items\":[{\"text\":\"ESLint JavaScript Plugin\",\"link\":\"/node_modules/@eslint/js/README.html\"}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"@eslint-community\",\"items\":[{\"text\":\"eslint-utils\",\"items\":[{\"text\":\"@eslint-community/eslint-utils\",\"link\":\"/node_modules/@eslint-community/eslint-utils/README.html\"}],\"collapsed\":true},{\"text\":\"regexpp\",\"items\":[{\"text\":\"@eslint-community/regexpp\",\"link\":\"/node_modules/@eslint-community/regexpp/README.html\"}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"@humanwhocodes\",\"items\":[{\"text\":\"config-array\",\"items\":[{\"text\":\"Config Array\",\"link\":\"/node_modules/@humanwhocodes/config-array/README.html\"}],\"collapsed\":true},{\"text\":\"module-importer\",\"items\":[{\"text\":\"Changelog\",\"link\":\"/node_modules/@humanwhocodes/module-importer/CHANGELOG.html\"},{\"text\":\"ModuleImporter\",\"link\":\"/node_modules/@humanwhocodes/module-importer/README.html\"}],\"collapsed\":true},{\"text\":\"object-schema\",\"items\":[{\"text\":\"Changelog\",\"link\":\"/node_modules/@humanwhocodes/object-schema/CHANGELOG.html\"},{\"text\":\"JavaScript ObjectSchema Package\",\"link\":\"/node_modules/@humanwhocodes/object-schema/README.html\"}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"@iconify\",\"items\":[{\"text\":\"types\",\"items\":[{\"text\":\"Iconify Types\",\"link\":\"/node_modules/@iconify/types/README.html\"}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"@iconify-json\",\"items\":[{\"text\":\"simple-icons\",\"items\":[{\"text\":\"Simple Icons\",\"link\":\"/node_modules/@iconify-json/simple-icons/README.html\"}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"@jridgewell\",\"items\":[{\"text\":\"sourcemap-codec\",\"items\":[{\"text\":\"@jridgewell/sourcemap-codec\",\"link\":\"/node_modules/@jridgewell/sourcemap-codec/README.html\"}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"@nodelib\",\"items\":[{\"text\":\"fs.scandir\",\"items\":[{\"text\":\"@nodelib/fs.scandir\",\"link\":\"/node_modules/@nodelib/fs.scandir/README.html\"}],\"collapsed\":true},{\"text\":\"fs.stat\",\"items\":[{\"text\":\"@nodelib/fs.stat\",\"link\":\"/node_modules/@nodelib/fs.stat/README.html\"}],\"collapsed\":true},{\"text\":\"fs.walk\",\"items\":[{\"text\":\"@nodelib/fs.walk\",\"link\":\"/node_modules/@nodelib/fs.walk/README.html\"}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"@rollup\",\"items\":[{\"text\":\"rollup-linux-x64-gnu\",\"items\":[{\"text\":\"`@rollup/rollup-linux-x64-gnu`\",\"link\":\"/node_modules/@rollup/rollup-linux-x64-gnu/README.html\"}],\"collapsed\":true},{\"text\":\"rollup-linux-x64-musl\",\"items\":[{\"text\":\"`@rollup/rollup-linux-x64-musl`\",\"link\":\"/node_modules/@rollup/rollup-linux-x64-musl/README.html\"}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"@shikijs\",\"items\":[{\"text\":\"core\",\"items\":[{\"text\":\"@shikijs/core\",\"link\":\"/node_modules/@shikijs/core/README.html\"}],\"collapsed\":true},{\"text\":\"engine-javascript\",\"items\":[{\"text\":\"@shikijs/engine-javascript\",\"link\":\"/node_modules/@shikijs/engine-javascript/README.html\"}],\"collapsed\":true},{\"text\":\"engine-oniguruma\",\"items\":[{\"text\":\"@shikijs/engine-oniguruma\",\"link\":\"/node_modules/@shikijs/engine-oniguruma/README.html\"}],\"collapsed\":true},{\"text\":\"transformers\",\"items\":[{\"text\":\"@shikijs/transformers\",\"link\":\"/node_modules/@shikijs/transformers/README.html\"}],\"collapsed\":true},{\"text\":\"types\",\"items\":[{\"text\":\"@shikijs/types\",\"link\":\"/node_modules/@shikijs/types/README.html\"}],\"collapsed\":true},{\"text\":\"vscode-textmate\",\"items\":[{\"text\":\"LICENSE\",\"link\":\"/node_modules/@shikijs/vscode-textmate/LICENSE.html\"},{\"text\":\"README\",\"link\":\"/node_modules/@shikijs/vscode-textmate/README.html\"}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"@types\",\"items\":[{\"text\":\"estree\",\"items\":[{\"text\":\"Installation\",\"link\":\"/node_modules/@types/estree/README.html\"}],\"collapsed\":true},{\"text\":\"hast\",\"items\":[{\"text\":\"Installation\",\"link\":\"/node_modules/@types/hast/README.html\"}],\"collapsed\":true},{\"text\":\"linkify-it\",\"items\":[{\"text\":\"Installation\",\"link\":\"/node_modules/@types/linkify-it/README.html\"}],\"collapsed\":true},{\"text\":\"markdown-it\",\"items\":[{\"text\":\"Installation\",\"link\":\"/node_modules/@types/markdown-it/README.html\"}],\"collapsed\":true},{\"text\":\"mdast\",\"items\":[{\"text\":\"Installation\",\"link\":\"/node_modules/@types/mdast/README.html\"}],\"collapsed\":true},{\"text\":\"mdurl\",\"items\":[{\"text\":\"Installation\",\"link\":\"/node_modules/@types/mdurl/README.html\"}],\"collapsed\":true},{\"text\":\"unist\",\"items\":[{\"text\":\"Installation\",\"link\":\"/node_modules/@types/unist/README.html\"}],\"collapsed\":true},{\"text\":\"web-bluetooth\",\"items\":[{\"text\":\"Installation\",\"link\":\"/node_modules/@types/web-bluetooth/README.html\"}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"@typescript-eslint\",\"items\":[{\"text\":\"parser\",\"items\":[{\"text\":\"`@typescript-eslint/parser`\",\"link\":\"/node_modules/@typescript-eslint/parser/README.html\"}],\"collapsed\":true},{\"text\":\"scope-manager\",\"items\":[{\"text\":\"`@typescript-eslint/scope-manager`\",\"link\":\"/node_modules/@typescript-eslint/scope-manager/README.html\"}],\"collapsed\":true},{\"text\":\"types\",\"items\":[{\"text\":\"`@typescript-eslint/types`\",\"link\":\"/node_modules/@typescript-eslint/types/README.html\"}],\"collapsed\":true},{\"text\":\"typescript-estree\",\"items\":[{\"text\":\"`@typescript-eslint/typescript-estree`\",\"link\":\"/node_modules/@typescript-eslint/typescript-estree/README.html\"}],\"collapsed\":true},{\"text\":\"visitor-keys\",\"items\":[{\"text\":\"`@typescript-eslint/visitor-keys`\",\"link\":\"/node_modules/@typescript-eslint/visitor-keys/README.html\"}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"@ungap\",\"items\":[{\"text\":\"structured-clone\",\"items\":[{\"text\":\"structuredClone polyfill\",\"link\":\"/node_modules/@ungap/structured-clone/README.html\"}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"@vitejs\",\"items\":[{\"text\":\"plugin-vue\",\"items\":[{\"text\":\"@vitejs/plugin-vue [![npm](https://img.shields.io/npm/v/@vitejs/plugin-vue.svg)](https://npmjs.com/package/@vitejs/plugin-vue)\",\"link\":\"/node_modules/@vitejs/plugin-vue/README.html\"}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"@vue\",\"items\":[{\"text\":\"compiler-core\",\"items\":[{\"text\":\"@vue/compiler-core\",\"link\":\"/node_modules/@vue/compiler-core/README.html\"}],\"collapsed\":true},{\"text\":\"compiler-dom\",\"items\":[{\"text\":\"@vue/compiler-dom\",\"link\":\"/node_modules/@vue/compiler-dom/README.html\"}],\"collapsed\":true},{\"text\":\"compiler-sfc\",\"items\":[{\"text\":\"@vue/compiler-sfc\",\"link\":\"/node_modules/@vue/compiler-sfc/README.html\"}],\"collapsed\":true},{\"text\":\"compiler-ssr\",\"items\":[{\"text\":\"@vue/compiler-ssr\",\"link\":\"/node_modules/@vue/compiler-ssr/README.html\"}],\"collapsed\":true},{\"text\":\"devtools-api\",\"items\":[{\"text\":\"@vue/devtools-api\",\"link\":\"/node_modules/@vue/devtools-api/README.html\"}],\"collapsed\":true},{\"text\":\"devtools-kit\",\"items\":[{\"text\":\"@vue/devtools-kit\",\"link\":\"/node_modules/@vue/devtools-kit/README.html\"}],\"collapsed\":true},{\"text\":\"devtools-shared\",\"items\":[{\"text\":\"@vue/devtools-shared\",\"link\":\"/node_modules/@vue/devtools-shared/README.html\"}],\"collapsed\":true},{\"text\":\"reactivity\",\"items\":[{\"text\":\"@vue/reactivity\",\"link\":\"/node_modules/@vue/reactivity/README.html\"}],\"collapsed\":true},{\"text\":\"runtime-core\",\"items\":[{\"text\":\"@vue/runtime-core\",\"link\":\"/node_modules/@vue/runtime-core/README.html\"}],\"collapsed\":true},{\"text\":\"runtime-dom\",\"items\":[{\"text\":\"@vue/runtime-dom\",\"link\":\"/node_modules/@vue/runtime-dom/README.html\"}],\"collapsed\":true},{\"text\":\"server-renderer\",\"items\":[{\"text\":\"@vue/server-renderer\",\"link\":\"/node_modules/@vue/server-renderer/README.html\"}],\"collapsed\":true},{\"text\":\"shared\",\"items\":[{\"text\":\"@vue/shared\",\"link\":\"/node_modules/@vue/shared/README.html\"}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"@vueuse\",\"items\":[{\"text\":\"core\",\"items\":[{\"text\":\"README\",\"link\":\"/node_modules/@vueuse/core/README.html\"},{\"text\":\"node_modules\",\"items\":[{\"text\":\"vue-demi\",\"items\":[{\"text\":\"or\",\"link\":\"/node_modules/@vueuse/core/node_modules/vue-demi/README.html\"}],\"collapsed\":true}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"integrations\",\"items\":[{\"text\":\"@vueuse/integrations\",\"link\":\"/node_modules/@vueuse/integrations/README.html\"},{\"text\":\"node_modules\",\"items\":[{\"text\":\"vue-demi\",\"items\":[{\"text\":\"or\",\"link\":\"/node_modules/@vueuse/integrations/node_modules/vue-demi/README.html\"}],\"collapsed\":true}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"shared\",\"items\":[{\"text\":\"node_modules\",\"items\":[{\"text\":\"vue-demi\",\"items\":[{\"text\":\"or\",\"link\":\"/node_modules/@vueuse/shared/node_modules/vue-demi/README.html\"}],\"collapsed\":true}],\"collapsed\":true}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"acorn\",\"items\":[{\"text\":\"CHANGELOG\",\"link\":\"/node_modules/acorn/CHANGELOG.html\"},{\"text\":\"Acorn\",\"link\":\"/node_modules/acorn/README.html\"}],\"collapsed\":true},{\"text\":\"acorn-jsx\",\"items\":[{\"text\":\"Acorn-JSX\",\"link\":\"/node_modules/acorn-jsx/README.html\"}],\"collapsed\":true},{\"text\":\"ajv\",\"items\":[{\"text\":\"Ajv: Another JSON Schema Validator\",\"link\":\"/node_modules/ajv/README.html\"},{\"text\":\"lib\",\"items\":[{\"text\":\"dotjs\",\"items\":[{\"text\":\"README\",\"link\":\"/node_modules/ajv/lib/dotjs/README.html\"}],\"collapsed\":true}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"algoliasearch\",\"items\":[{\"text\":\"or\",\"link\":\"/node_modules/algoliasearch/README.html\"}],\"collapsed\":true},{\"text\":\"ansi-regex\",\"items\":[{\"text\":\"ansi-regex\",\"link\":\"/node_modules/ansi-regex/readme.html\"}],\"collapsed\":true},{\"text\":\"ansi-styles\",\"items\":[{\"text\":\"ansi-styles [![Build Status](https://travis-ci.org/chalk/ansi-styles.svg?branch=master)](https://travis-ci.org/chalk/ansi-styles)\",\"link\":\"/node_modules/ansi-styles/readme.html\"}],\"collapsed\":true},{\"text\":\"argparse\",\"items\":[{\"text\":\"Changelog\",\"link\":\"/node_modules/argparse/CHANGELOG.html\"},{\"text\":\"README\",\"link\":\"/node_modules/argparse/README.html\"}],\"collapsed\":true},{\"text\":\"array-union\",\"items\":[{\"text\":\"array-union [![Build Status](https://travis-ci.org/sindresorhus/array-union.svg?branch=master)](https://travis-ci.org/sindresorhus/array-union)\",\"link\":\"/node_modules/array-union/readme.html\"}],\"collapsed\":true},{\"text\":\"asynckit\",\"items\":[{\"text\":\"asynckit [![NPM Module](https://img.shields.io/npm/v/asynckit.svg?style=flat)](https://www.npmjs.com/package/asynckit)\",\"link\":\"/node_modules/asynckit/README.html\"}],\"collapsed\":true},{\"text\":\"axios\",\"items\":[{\"text\":\"Changelog\",\"link\":\"/node_modules/axios/CHANGELOG.html\"},{\"text\":\"Migration Guide\",\"link\":\"/node_modules/axios/MIGRATION_GUIDE.html\"},{\"text\":\"README\",\"link\":\"/node_modules/axios/README.html\"},{\"text\":\"Reporting a Vulnerability\",\"link\":\"/node_modules/axios/SECURITY.html\"},{\"text\":\"lib\",\"items\":[{\"text\":\"adapters\",\"items\":[{\"text\":\"axios // adapters\",\"link\":\"/node_modules/axios/lib/adapters/README.html\"}],\"collapsed\":true},{\"text\":\"core\",\"items\":[{\"text\":\"axios // core\",\"link\":\"/node_modules/axios/lib/core/README.html\"}],\"collapsed\":true},{\"text\":\"env\",\"items\":[{\"text\":\"axios // env\",\"link\":\"/node_modules/axios/lib/env/README.html\"}],\"collapsed\":true},{\"text\":\"helpers\",\"items\":[{\"text\":\"axios // helpers\",\"link\":\"/node_modules/axios/lib/helpers/README.html\"}],\"collapsed\":true}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"balanced-match\",\"items\":[{\"text\":\"LICENSE\",\"link\":\"/node_modules/balanced-match/LICENSE.html\"},{\"text\":\"balanced-match\",\"link\":\"/node_modules/balanced-match/README.html\"}],\"collapsed\":true},{\"text\":\"birpc\",\"items\":[{\"text\":\"birpc\",\"link\":\"/node_modules/birpc/README.html\"}],\"collapsed\":true},{\"text\":\"brace-expansion\",\"items\":[{\"text\":\"brace-expansion\",\"link\":\"/node_modules/brace-expansion/README.html\"}],\"collapsed\":true},{\"text\":\"braces\",\"items\":[{\"text\":\"braces [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=W8YFZ425KND68) [![NPM version](https://img.shields.io/npm/v/braces.svg?style=flat)](https://www.npmjs.com/package/braces) [![NPM monthly downloads](https://img.shields.io/npm/dm/braces.svg?style=flat)](https://npmjs.org/package/braces) [![NPM total downloads](https://img.shields.io/npm/dt/braces.svg?style=flat)](https://npmjs.org/package/braces) [![Linux Build Status](https://img.shields.io/travis/micromatch/braces.svg?style=flat&label=Travis)](https://travis-ci.org/micromatch/braces)\",\"link\":\"/node_modules/braces/README.html\"}],\"collapsed\":true},{\"text\":\"callsites\",\"items\":[{\"text\":\"callsites [![Build Status](https://travis-ci.org/sindresorhus/callsites.svg?branch=master)](https://travis-ci.org/sindresorhus/callsites)\",\"link\":\"/node_modules/callsites/readme.html\"}],\"collapsed\":true},{\"text\":\"ccount\",\"items\":[{\"text\":\"ccount\",\"link\":\"/node_modules/ccount/readme.html\"}],\"collapsed\":true},{\"text\":\"chalk\",\"items\":[{\"text\":\"readme\",\"link\":\"/node_modules/chalk/readme.html\"}],\"collapsed\":true},{\"text\":\"character-entities-html4\",\"items\":[{\"text\":\"character-entities-html4\",\"link\":\"/node_modules/character-entities-html4/readme.html\"}],\"collapsed\":true},{\"text\":\"character-entities-legacy\",\"items\":[{\"text\":\"character-entities-legacy\",\"link\":\"/node_modules/character-entities-legacy/readme.html\"}],\"collapsed\":true},{\"text\":\"color-convert\",\"items\":[{\"text\":\"1.0.0 - 2016-01-07\",\"link\":\"/node_modules/color-convert/CHANGELOG.html\"},{\"text\":\"color-convert\",\"link\":\"/node_modules/color-convert/README.html\"}],\"collapsed\":true},{\"text\":\"color-name\",\"items\":[{\"text\":\"README\",\"link\":\"/node_modules/color-name/README.html\"}],\"collapsed\":true},{\"text\":\"combined-stream\",\"items\":[{\"text\":\"combined-stream\",\"link\":\"/node_modules/combined-stream/Readme.html\"}],\"collapsed\":true},{\"text\":\"comma-separated-tokens\",\"items\":[{\"text\":\"comma-separated-tokens\",\"link\":\"/node_modules/comma-separated-tokens/readme.html\"}],\"collapsed\":true},{\"text\":\"copy-anything\",\"items\":[{\"text\":\"Copy anything 🎭\",\"link\":\"/node_modules/copy-anything/README.html\"}],\"collapsed\":true},{\"text\":\"cross-spawn\",\"items\":[{\"text\":\"cross-spawn\",\"link\":\"/node_modules/cross-spawn/README.html\"}],\"collapsed\":true},{\"text\":\"csstype\",\"items\":[{\"text\":\"CSSType\",\"link\":\"/node_modules/csstype/README.html\"}],\"collapsed\":true},{\"text\":\"debug\",\"items\":[{\"text\":\"debug\",\"link\":\"/node_modules/debug/README.html\"}],\"collapsed\":true},{\"text\":\"delayed-stream\",\"items\":[{\"text\":\"delayed-stream\",\"link\":\"/node_modules/delayed-stream/Readme.html\"}],\"collapsed\":true},{\"text\":\"dequal\",\"items\":[{\"text\":\"dequal [![CI](https://github.com/lukeed/dequal/workflows/CI/badge.svg)](https://github.com/lukeed/dequal/actions)\",\"link\":\"/node_modules/dequal/readme.html\"}],\"collapsed\":true},{\"text\":\"devlop\",\"items\":[{\"text\":\"devlop\",\"link\":\"/node_modules/devlop/readme.html\"}],\"collapsed\":true},{\"text\":\"dir-glob\",\"items\":[{\"text\":\"dir-glob [![Build Status](https://travis-ci.org/kevva/dir-glob.svg?branch=master)](https://travis-ci.org/kevva/dir-glob)\",\"link\":\"/node_modules/dir-glob/readme.html\"}],\"collapsed\":true},{\"text\":\"doctrine\",\"items\":[{\"text\":\"CHANGELOG\",\"link\":\"/node_modules/doctrine/CHANGELOG.html\"},{\"text\":\"Doctrine\",\"link\":\"/node_modules/doctrine/README.html\"}],\"collapsed\":true},{\"text\":\"emoji-regex-xs\",\"items\":[{\"text\":\"emoji-regex-xs\",\"link\":\"/node_modules/emoji-regex-xs/README.html\"}],\"collapsed\":true},{\"text\":\"entities\",\"items\":[{\"text\":\"entities [![NPM version](https://img.shields.io/npm/v/entities.svg)](https://npmjs.org/package/entities) [![Downloads](https://img.shields.io/npm/dm/entities.svg)](https://npmjs.org/package/entities) [![Node.js CI](https://github.com/fb55/entities/actions/workflows/nodejs-test.yml/badge.svg)](https://github.com/fb55/entities/actions/workflows/nodejs-test.yml)\",\"link\":\"/node_modules/entities/readme.html\"}],\"collapsed\":true},{\"text\":\"esbuild\",\"items\":[{\"text\":\"LICENSE\",\"link\":\"/node_modules/esbuild/LICENSE.html\"},{\"text\":\"esbuild\",\"link\":\"/node_modules/esbuild/README.html\"}],\"collapsed\":true},{\"text\":\"escape-string-regexp\",\"items\":[{\"text\":\"escape-string-regexp [![Build Status](https://travis-ci.org/sindresorhus/escape-string-regexp.svg?branch=master)](https://travis-ci.org/sindresorhus/escape-string-regexp)\",\"link\":\"/node_modules/escape-string-regexp/readme.html\"}],\"collapsed\":true},{\"text\":\"eslint\",\"items\":[{\"text\":\"ESLint\",\"link\":\"/node_modules/eslint/README.html\"}],\"collapsed\":true},{\"text\":\"eslint-scope\",\"items\":[{\"text\":\"ESLint Scope\",\"link\":\"/node_modules/eslint-scope/README.html\"}],\"collapsed\":true},{\"text\":\"eslint-visitor-keys\",\"items\":[{\"text\":\"eslint-visitor-keys\",\"link\":\"/node_modules/eslint-visitor-keys/README.html\"}],\"collapsed\":true},{\"text\":\"espree\",\"items\":[{\"text\":\"Espree\",\"link\":\"/node_modules/espree/README.html\"}],\"collapsed\":true},{\"text\":\"esprima\",\"items\":[{\"text\":\"README\",\"link\":\"/node_modules/esprima/README.html\"}],\"collapsed\":true},{\"text\":\"esquery\",\"items\":[{\"text\":\"README\",\"link\":\"/node_modules/esquery/README.html\"}],\"collapsed\":true},{\"text\":\"esrecurse\",\"items\":[{\"text\":\"README\",\"link\":\"/node_modules/esrecurse/README.html\"}],\"collapsed\":true},{\"text\":\"estraverse\",\"items\":[{\"text\":\"README\",\"link\":\"/node_modules/estraverse/README.html\"}],\"collapsed\":true},{\"text\":\"estree-walker\",\"items\":[{\"text\":\"changelog\",\"link\":\"/node_modules/estree-walker/CHANGELOG.html\"},{\"text\":\"estree-walker\",\"link\":\"/node_modules/estree-walker/README.html\"}],\"collapsed\":true},{\"text\":\"esutils\",\"items\":[{\"text\":\"README\",\"link\":\"/node_modules/esutils/README.html\"}],\"collapsed\":true},{\"text\":\"fast-deep-equal\",\"items\":[{\"text\":\"fast-deep-equal\",\"link\":\"/node_modules/fast-deep-equal/README.html\"}],\"collapsed\":true},{\"text\":\"fast-glob\",\"items\":[{\"text\":\"fast-glob\",\"link\":\"/node_modules/fast-glob/README.html\"},{\"text\":\"node_modules\",\"items\":[{\"text\":\"glob-parent\",\"items\":[{\"text\":\"CHANGELOG\",\"link\":\"/node_modules/fast-glob/node_modules/glob-parent/CHANGELOG.html\"},{\"text\":\"glob-parent\",\"link\":\"/node_modules/fast-glob/node_modules/glob-parent/README.html\"}],\"collapsed\":true}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"fast-json-stable-stringify\",\"items\":[{\"text\":\"fast-json-stable-stringify\",\"link\":\"/node_modules/fast-json-stable-stringify/README.html\"}],\"collapsed\":true},{\"text\":\"fast-levenshtein\",\"items\":[{\"text\":\"LICENSE\",\"link\":\"/node_modules/fast-levenshtein/LICENSE.html\"},{\"text\":\"fast-levenshtein - Levenshtein algorithm in Javascript\",\"link\":\"/node_modules/fast-levenshtein/README.html\"}],\"collapsed\":true},{\"text\":\"fastq\",\"items\":[{\"text\":\"fastq\",\"link\":\"/node_modules/fastq/README.html\"}],\"collapsed\":true},{\"text\":\"file-entry-cache\",\"items\":[{\"text\":\"file-entry-cache\",\"link\":\"/node_modules/file-entry-cache/README.html\"},{\"text\":\"file-entry-cache - Changelog\",\"link\":\"/node_modules/file-entry-cache/changelog.html\"}],\"collapsed\":true},{\"text\":\"fill-range\",\"items\":[{\"text\":\"fill-range [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=W8YFZ425KND68) [![NPM version](https://img.shields.io/npm/v/fill-range.svg?style=flat)](https://www.npmjs.com/package/fill-range) [![NPM monthly downloads](https://img.shields.io/npm/dm/fill-range.svg?style=flat)](https://npmjs.org/package/fill-range) [![NPM total downloads](https://img.shields.io/npm/dt/fill-range.svg?style=flat)](https://npmjs.org/package/fill-range) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/fill-range.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/fill-range)\",\"link\":\"/node_modules/fill-range/README.html\"}],\"collapsed\":true},{\"text\":\"find-up\",\"items\":[{\"text\":\"find-up [![Build Status](https://travis-ci.com/sindresorhus/find-up.svg?branch=master)](https://travis-ci.com/github/sindresorhus/find-up)\",\"link\":\"/node_modules/find-up/readme.html\"}],\"collapsed\":true},{\"text\":\"flat-cache\",\"items\":[{\"text\":\"flat-cache\",\"link\":\"/node_modules/flat-cache/README.html\"},{\"text\":\"flat-cache - Changelog\",\"link\":\"/node_modules/flat-cache/changelog.html\"}],\"collapsed\":true},{\"text\":\"flatted\",\"items\":[{\"text\":\"flatted\",\"link\":\"/node_modules/flatted/README.html\"}],\"collapsed\":true},{\"text\":\"focus-trap\",\"items\":[{\"text\":\"Changelog\",\"link\":\"/node_modules/focus-trap/CHANGELOG.html\"},{\"text\":\"focus-trap [![CI](https://github.com/focus-trap/focus-trap/workflows/CI/badge.svg?branch=master&event=push)](https://github.com/focus-trap/focus-trap/actions?query=workflow:CI+branch:master) [![license](https://badgen.now.sh/badge/license/MIT)](./LICENSE)\",\"link\":\"/node_modules/focus-trap/README.html\"},{\"text\":\"Security Policy\",\"link\":\"/node_modules/focus-trap/SECURITY.html\"}],\"collapsed\":true},{\"text\":\"follow-redirects\",\"items\":[{\"text\":\"README\",\"link\":\"/node_modules/follow-redirects/README.html\"}],\"collapsed\":true},{\"text\":\"form-data\",\"items\":[{\"text\":\"Form-Data [![NPM Module](https://img.shields.io/npm/v/form-data.svg)](https://www.npmjs.com/package/form-data) [![Join the chat at https://gitter.im/form-data/form-data](http://form-data.github.io/images/gitterbadge.svg)](https://gitter.im/form-data/form-data)\",\"link\":\"/node_modules/form-data/Readme.html\"}],\"collapsed\":true},{\"text\":\"front-matter\",\"items\":[{\"text\":\"front-matter\",\"link\":\"/node_modules/front-matter/README.html\"},{\"text\":\"node_modules\",\"items\":[{\"text\":\"argparse\",\"items\":[{\"text\":\"CHANGELOG\",\"link\":\"/node_modules/front-matter/node_modules/argparse/CHANGELOG.html\"},{\"text\":\"README\",\"link\":\"/node_modules/front-matter/node_modules/argparse/README.html\"}],\"collapsed\":true},{\"text\":\"js-yaml\",\"items\":[{\"text\":\"Changelog\",\"link\":\"/node_modules/front-matter/node_modules/js-yaml/CHANGELOG.html\"},{\"text\":\"README\",\"link\":\"/node_modules/front-matter/node_modules/js-yaml/README.html\"}],\"collapsed\":true}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"fs.realpath\",\"items\":[{\"text\":\"fs.realpath\",\"link\":\"/node_modules/fs.realpath/README.html\"}],\"collapsed\":true},{\"text\":\"glob\",\"items\":[{\"text\":\"Glob\",\"link\":\"/node_modules/glob/README.html\"}],\"collapsed\":true},{\"text\":\"glob-parent\",\"items\":[{\"text\":\"glob-parent\",\"link\":\"/node_modules/glob-parent/README.html\"}],\"collapsed\":true},{\"text\":\"globals\",\"items\":[{\"text\":\"globals\",\"link\":\"/node_modules/globals/readme.html\"}],\"collapsed\":true},{\"text\":\"globby\",\"items\":[{\"text\":\"globby\",\"link\":\"/node_modules/globby/readme.html\"}],\"collapsed\":true},{\"text\":\"graphemer\",\"items\":[{\"text\":\"Changelog\",\"link\":\"/node_modules/graphemer/CHANGELOG.html\"},{\"text\":\"Graphemer: Unicode Character Splitter 🪓\",\"link\":\"/node_modules/graphemer/README.html\"}],\"collapsed\":true},{\"text\":\"has-flag\",\"items\":[{\"text\":\"has-flag [![Build Status](https://travis-ci.org/sindresorhus/has-flag.svg?branch=master)](https://travis-ci.org/sindresorhus/has-flag)\",\"link\":\"/node_modules/has-flag/readme.html\"}],\"collapsed\":true},{\"text\":\"hast-util-to-html\",\"items\":[{\"text\":\"hast-util-to-html\",\"link\":\"/node_modules/hast-util-to-html/readme.html\"}],\"collapsed\":true},{\"text\":\"hast-util-whitespace\",\"items\":[{\"text\":\"hast-util-whitespace\",\"link\":\"/node_modules/hast-util-whitespace/readme.html\"}],\"collapsed\":true},{\"text\":\"hookable\",\"items\":[{\"text\":\"LICENSE\",\"link\":\"/node_modules/hookable/LICENSE.html\"},{\"text\":\"Hookable\",\"link\":\"/node_modules/hookable/README.html\"}],\"collapsed\":true},{\"text\":\"html-void-elements\",\"items\":[{\"text\":\"html-void-elements\",\"link\":\"/node_modules/html-void-elements/readme.html\"}],\"collapsed\":true},{\"text\":\"ignore\",\"items\":[{\"text\":\"ignore\",\"link\":\"/node_modules/ignore/README.html\"}],\"collapsed\":true},{\"text\":\"import-fresh\",\"items\":[{\"text\":\"import-fresh\",\"link\":\"/node_modules/import-fresh/readme.html\"}],\"collapsed\":true},{\"text\":\"imurmurhash\",\"items\":[{\"text\":\"README\",\"link\":\"/node_modules/imurmurhash/README.html\"}],\"collapsed\":true},{\"text\":\"inflight\",\"items\":[{\"text\":\"inflight\",\"link\":\"/node_modules/inflight/README.html\"}],\"collapsed\":true},{\"text\":\"inherits\",\"items\":[{\"text\":\"README\",\"link\":\"/node_modules/inherits/README.html\"}],\"collapsed\":true},{\"text\":\"is-extglob\",\"items\":[{\"text\":\"is-extglob [![NPM version](https://img.shields.io/npm/v/is-extglob.svg?style=flat)](https://www.npmjs.com/package/is-extglob) [![NPM downloads](https://img.shields.io/npm/dm/is-extglob.svg?style=flat)](https://npmjs.org/package/is-extglob) [![Build Status](https://img.shields.io/travis/jonschlinkert/is-extglob.svg?style=flat)](https://travis-ci.org/jonschlinkert/is-extglob)\",\"link\":\"/node_modules/is-extglob/README.html\"}],\"collapsed\":true},{\"text\":\"is-glob\",\"items\":[{\"text\":\"is-glob [![NPM version](https://img.shields.io/npm/v/is-glob.svg?style=flat)](https://www.npmjs.com/package/is-glob) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-glob.svg?style=flat)](https://npmjs.org/package/is-glob) [![NPM total downloads](https://img.shields.io/npm/dt/is-glob.svg?style=flat)](https://npmjs.org/package/is-glob) [![Build Status](https://img.shields.io/github/workflow/status/micromatch/is-glob/dev)](https://github.com/micromatch/is-glob/actions)\",\"link\":\"/node_modules/is-glob/README.html\"}],\"collapsed\":true},{\"text\":\"is-number\",\"items\":[{\"text\":\"is-number [![NPM version](https://img.shields.io/npm/v/is-number.svg?style=flat)](https://www.npmjs.com/package/is-number) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-number.svg?style=flat)](https://npmjs.org/package/is-number) [![NPM total downloads](https://img.shields.io/npm/dt/is-number.svg?style=flat)](https://npmjs.org/package/is-number) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-number.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-number)\",\"link\":\"/node_modules/is-number/README.html\"}],\"collapsed\":true},{\"text\":\"is-path-inside\",\"items\":[{\"text\":\"is-path-inside\",\"link\":\"/node_modules/is-path-inside/readme.html\"}],\"collapsed\":true},{\"text\":\"is-what\",\"items\":[{\"text\":\"is What? 🙉\",\"link\":\"/node_modules/is-what/README.html\"}],\"collapsed\":true},{\"text\":\"isexe\",\"items\":[{\"text\":\"isexe\",\"link\":\"/node_modules/isexe/README.html\"}],\"collapsed\":true},{\"text\":\"js-yaml\",\"items\":[{\"text\":\"Changelog\",\"link\":\"/node_modules/js-yaml/CHANGELOG.html\"},{\"text\":\"README\",\"link\":\"/node_modules/js-yaml/README.html\"}],\"collapsed\":true},{\"text\":\"json-buffer\",\"items\":[{\"text\":\"json-buffer\",\"link\":\"/node_modules/json-buffer/README.html\"}],\"collapsed\":true},{\"text\":\"json-schema-traverse\",\"items\":[{\"text\":\"json-schema-traverse\",\"link\":\"/node_modules/json-schema-traverse/README.html\"}],\"collapsed\":true},{\"text\":\"keyv\",\"items\":[{\"text\":\"How to Contribute\",\"link\":\"/node_modules/keyv/README.html\"}],\"collapsed\":true},{\"text\":\"levn\",\"items\":[{\"text\":\"levn [![Build Status](https://travis-ci.org/gkz/levn.png)](https://travis-ci.org/gkz/levn) <a name=\\\"levn\\\" />\",\"link\":\"/node_modules/levn/README.html\"}],\"collapsed\":true},{\"text\":\"locate-path\",\"items\":[{\"text\":\"locate-path [![Build Status](https://travis-ci.com/sindresorhus/locate-path.svg?branch=master)](https://travis-ci.com/github/sindresorhus/locate-path)\",\"link\":\"/node_modules/locate-path/readme.html\"}],\"collapsed\":true},{\"text\":\"lodash.merge\",\"items\":[{\"text\":\"lodash.merge v4.6.2\",\"link\":\"/node_modules/lodash.merge/README.html\"}],\"collapsed\":true},{\"text\":\"magic-string\",\"items\":[{\"text\":\"magic-string\",\"link\":\"/node_modules/magic-string/README.html\"}],\"collapsed\":true},{\"text\":\"mark.js\",\"items\":[{\"text\":\"Contributing to mark.js\",\"link\":\"/node_modules/mark.js/CONTRIBUTING.html\"},{\"text\":\"ISSUE_TEMPLATE\",\"link\":\"/node_modules/mark.js/ISSUE_TEMPLATE.html\"},{\"text\":\"mark.js\",\"link\":\"/node_modules/mark.js/README.html\"}],\"collapsed\":true},{\"text\":\"mdast-util-to-hast\",\"items\":[{\"text\":\"mdast-util-to-hast\",\"link\":\"/node_modules/mdast-util-to-hast/readme.html\"}],\"collapsed\":true},{\"text\":\"merge2\",\"items\":[{\"text\":\"merge2\",\"link\":\"/node_modules/merge2/README.html\"}],\"collapsed\":true},{\"text\":\"micromark-util-character\",\"items\":[{\"text\":\"micromark-util-character\",\"link\":\"/node_modules/micromark-util-character/readme.html\"}],\"collapsed\":true},{\"text\":\"micromark-util-encode\",\"items\":[{\"text\":\"micromark-util-encode\",\"link\":\"/node_modules/micromark-util-encode/readme.html\"}],\"collapsed\":true},{\"text\":\"micromark-util-sanitize-uri\",\"items\":[{\"text\":\"micromark-util-sanitize-uri\",\"link\":\"/node_modules/micromark-util-sanitize-uri/readme.html\"}],\"collapsed\":true},{\"text\":\"micromark-util-symbol\",\"items\":[{\"text\":\"micromark-util-symbol\",\"link\":\"/node_modules/micromark-util-symbol/readme.html\"}],\"collapsed\":true},{\"text\":\"micromark-util-types\",\"items\":[{\"text\":\"micromark-util-types\",\"link\":\"/node_modules/micromark-util-types/readme.html\"}],\"collapsed\":true},{\"text\":\"micromatch\",\"items\":[{\"text\":\"micromatch [![NPM version](https://img.shields.io/npm/v/micromatch.svg?style=flat)](https://www.npmjs.com/package/micromatch) [![NPM monthly downloads](https://img.shields.io/npm/dm/micromatch.svg?style=flat)](https://npmjs.org/package/micromatch) [![NPM total downloads](https://img.shields.io/npm/dt/micromatch.svg?style=flat)](https://npmjs.org/package/micromatch) [![Tests](https://github.com/micromatch/micromatch/actions/workflows/test.yml/badge.svg)](https://github.com/micromatch/micromatch/actions/workflows/test.yml)\",\"link\":\"/node_modules/micromatch/README.html\"}],\"collapsed\":true},{\"text\":\"mime-db\",\"items\":[{\"text\":\"HISTORY\",\"link\":\"/node_modules/mime-db/HISTORY.html\"},{\"text\":\"mime-db\",\"link\":\"/node_modules/mime-db/README.html\"}],\"collapsed\":true},{\"text\":\"mime-types\",\"items\":[{\"text\":\"HISTORY\",\"link\":\"/node_modules/mime-types/HISTORY.html\"},{\"text\":\"mime-types\",\"link\":\"/node_modules/mime-types/README.html\"}],\"collapsed\":true},{\"text\":\"minimatch\",\"items\":[{\"text\":\"minimatch\",\"link\":\"/node_modules/minimatch/README.html\"}],\"collapsed\":true},{\"text\":\"minisearch\",\"items\":[{\"text\":\"Changelog\",\"link\":\"/node_modules/minisearch/CHANGELOG.html\"},{\"text\":\"MiniSearch\",\"link\":\"/node_modules/minisearch/README.html\"}],\"collapsed\":true},{\"text\":\"mitt\",\"items\":[{\"text\":\"Mitt\",\"link\":\"/node_modules/mitt/README.html\"}],\"collapsed\":true},{\"text\":\"ms\",\"items\":[{\"text\":\"license\",\"link\":\"/node_modules/ms/license.html\"},{\"text\":\"ms\",\"link\":\"/node_modules/ms/readme.html\"}],\"collapsed\":true},{\"text\":\"nanoid\",\"items\":[{\"text\":\"Nano ID\",\"link\":\"/node_modules/nanoid/README.html\"}],\"collapsed\":true},{\"text\":\"natural-compare\",\"items\":[{\"text\":\"README\",\"link\":\"/node_modules/natural-compare/README.html\"}],\"collapsed\":true},{\"text\":\"once\",\"items\":[{\"text\":\"once\",\"link\":\"/node_modules/once/README.html\"}],\"collapsed\":true},{\"text\":\"oniguruma-to-es\",\"items\":[{\"text\":\"Oniguruma-To-ES\",\"link\":\"/node_modules/oniguruma-to-es/README.html\"}],\"collapsed\":true},{\"text\":\"optionator\",\"items\":[{\"text\":\"0.9.0\",\"link\":\"/node_modules/optionator/CHANGELOG.html\"},{\"text\":\"Optionator\",\"link\":\"/node_modules/optionator/README.html\"}],\"collapsed\":true},{\"text\":\"p-limit\",\"items\":[{\"text\":\"p-limit\",\"link\":\"/node_modules/p-limit/readme.html\"}],\"collapsed\":true},{\"text\":\"p-locate\",\"items\":[{\"text\":\"p-locate [![Build Status](https://travis-ci.com/sindresorhus/p-locate.svg?branch=master)](https://travis-ci.com/github/sindresorhus/p-locate)\",\"link\":\"/node_modules/p-locate/readme.html\"}],\"collapsed\":true},{\"text\":\"parent-module\",\"items\":[{\"text\":\"parent-module [![Build Status](https://travis-ci.org/sindresorhus/parent-module.svg?branch=master)](https://travis-ci.org/sindresorhus/parent-module)\",\"link\":\"/node_modules/parent-module/readme.html\"}],\"collapsed\":true},{\"text\":\"path-exists\",\"items\":[{\"text\":\"path-exists [![Build Status](https://travis-ci.org/sindresorhus/path-exists.svg?branch=master)](https://travis-ci.org/sindresorhus/path-exists)\",\"link\":\"/node_modules/path-exists/readme.html\"}],\"collapsed\":true},{\"text\":\"path-is-absolute\",\"items\":[{\"text\":\"path-is-absolute [![Build Status](https://travis-ci.org/sindresorhus/path-is-absolute.svg?branch=master)](https://travis-ci.org/sindresorhus/path-is-absolute)\",\"link\":\"/node_modules/path-is-absolute/readme.html\"}],\"collapsed\":true},{\"text\":\"path-key\",\"items\":[{\"text\":\"path-key [![Build Status](https://travis-ci.org/sindresorhus/path-key.svg?branch=master)](https://travis-ci.org/sindresorhus/path-key)\",\"link\":\"/node_modules/path-key/readme.html\"}],\"collapsed\":true},{\"text\":\"path-type\",\"items\":[{\"text\":\"path-type [![Build Status](https://travis-ci.org/sindresorhus/path-type.svg?branch=master)](https://travis-ci.org/sindresorhus/path-type)\",\"link\":\"/node_modules/path-type/readme.html\"}],\"collapsed\":true},{\"text\":\"perfect-debounce\",\"items\":[{\"text\":\"perfect-debounce\",\"link\":\"/node_modules/perfect-debounce/README.html\"}],\"collapsed\":true},{\"text\":\"picocolors\",\"items\":[{\"text\":\"picocolors\",\"link\":\"/node_modules/picocolors/README.html\"}],\"collapsed\":true},{\"text\":\"picomatch\",\"items\":[{\"text\":\"Release history\",\"link\":\"/node_modules/picomatch/CHANGELOG.html\"},{\"text\":\".makeRe star\",\"link\":\"/node_modules/picomatch/README.html\"}],\"collapsed\":true},{\"text\":\"postcss\",\"items\":[{\"text\":\"PostCSS\",\"link\":\"/node_modules/postcss/README.html\"}],\"collapsed\":true},{\"text\":\"preact\",\"items\":[{\"text\":\"README\",\"link\":\"/node_modules/preact/README.html\"}],\"collapsed\":true},{\"text\":\"prelude-ls\",\"items\":[{\"text\":\"1.2.1\",\"link\":\"/node_modules/prelude-ls/CHANGELOG.html\"},{\"text\":\"prelude.ls [![Build Status](https://travis-ci.org/gkz/prelude-ls.png?branch=master)](https://travis-ci.org/gkz/prelude-ls)\",\"link\":\"/node_modules/prelude-ls/README.html\"}],\"collapsed\":true},{\"text\":\"property-information\",\"items\":[{\"text\":\"property-information\",\"link\":\"/node_modules/property-information/readme.html\"}],\"collapsed\":true},{\"text\":\"proxy-from-env\",\"items\":[{\"text\":\"proxy-from-env\",\"link\":\"/node_modules/proxy-from-env/README.html\"}],\"collapsed\":true},{\"text\":\"punycode\",\"items\":[{\"text\":\"Punycode.js [![punycode on npm](https://img.shields.io/npm/v/punycode)](https://www.npmjs.com/package/punycode) [![](https://data.jsdelivr.com/v1/package/npm/punycode/badge)](https://www.jsdelivr.com/package/npm/punycode)\",\"link\":\"/node_modules/punycode/README.html\"}],\"collapsed\":true},{\"text\":\"queue-microtask\",\"items\":[{\"text\":\"queue-microtask [![ci][ci-image]][ci-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url]\",\"link\":\"/node_modules/queue-microtask/README.html\"}],\"collapsed\":true},{\"text\":\"regex\",\"items\":[{\"text\":\"README\",\"link\":\"/node_modules/regex/README.html\"}],\"collapsed\":true},{\"text\":\"regex-recursion\",\"items\":[{\"text\":\"regex-recursion\",\"link\":\"/node_modules/regex-recursion/README.html\"}],\"collapsed\":true},{\"text\":\"regex-utilities\",\"items\":[{\"text\":\"regex-utilities\",\"link\":\"/node_modules/regex-utilities/README.html\"}],\"collapsed\":true},{\"text\":\"resolve-from\",\"items\":[{\"text\":\"resolve-from [![Build Status](https://travis-ci.org/sindresorhus/resolve-from.svg?branch=master)](https://travis-ci.org/sindresorhus/resolve-from)\",\"link\":\"/node_modules/resolve-from/readme.html\"}],\"collapsed\":true},{\"text\":\"reusify\",\"items\":[{\"text\":\"reusify\",\"link\":\"/node_modules/reusify/README.html\"}],\"collapsed\":true},{\"text\":\"rfdc\",\"items\":[{\"text\":\"rfdc\",\"link\":\"/node_modules/rfdc/readme.html\"}],\"collapsed\":true},{\"text\":\"rimraf\",\"items\":[{\"text\":\"v3.0\",\"link\":\"/node_modules/rimraf/CHANGELOG.html\"},{\"text\":\"README\",\"link\":\"/node_modules/rimraf/README.html\"}],\"collapsed\":true},{\"text\":\"rollup\",\"items\":[{\"text\":\"Rollup core license\",\"link\":\"/node_modules/rollup/LICENSE.html\"},{\"text\":\"compile to a <script> containing a self-executing function\",\"link\":\"/node_modules/rollup/README.html\"}],\"collapsed\":true},{\"text\":\"run-parallel\",\"items\":[{\"text\":\"run-parallel [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url]\",\"link\":\"/node_modules/run-parallel/README.html\"}],\"collapsed\":true},{\"text\":\"search-insights\",\"items\":[{\"text\":\"LICENSE\",\"link\":\"/node_modules/search-insights/LICENSE.html\"},{\"text\":\"Search Insights\",\"link\":\"/node_modules/search-insights/README.html\"}],\"collapsed\":true},{\"text\":\"semver\",\"items\":[{\"text\":\"README\",\"link\":\"/node_modules/semver/README.html\"}],\"collapsed\":true},{\"text\":\"shebang-command\",\"items\":[{\"text\":\"shebang-command [![Build Status](https://travis-ci.org/kevva/shebang-command.svg?branch=master)](https://travis-ci.org/kevva/shebang-command)\",\"link\":\"/node_modules/shebang-command/readme.html\"}],\"collapsed\":true},{\"text\":\"shebang-regex\",\"items\":[{\"text\":\"shebang-regex [![Build Status](https://travis-ci.org/sindresorhus/shebang-regex.svg?branch=master)](https://travis-ci.org/sindresorhus/shebang-regex)\",\"link\":\"/node_modules/shebang-regex/readme.html\"}],\"collapsed\":true},{\"text\":\"shiki\",\"items\":[{\"text\":\"Shiki 式\",\"link\":\"/node_modules/shiki/README.html\"}],\"collapsed\":true},{\"text\":\"slash\",\"items\":[{\"text\":\"slash [![Build Status](https://travis-ci.org/sindresorhus/slash.svg?branch=master)](https://travis-ci.org/sindresorhus/slash)\",\"link\":\"/node_modules/slash/readme.html\"}],\"collapsed\":true},{\"text\":\"source-map-js\",\"items\":[{\"text\":\"Source Map JS\",\"link\":\"/node_modules/source-map-js/README.html\"}],\"collapsed\":true},{\"text\":\"space-separated-tokens\",\"items\":[{\"text\":\"space-separated-tokens\",\"link\":\"/node_modules/space-separated-tokens/readme.html\"}],\"collapsed\":true},{\"text\":\"speakingurl\",\"items\":[{\"text\":\"CHANGELOG\",\"link\":\"/node_modules/speakingurl/CHANGELOG.html\"},{\"text\":\"Add to Gemfile\",\"link\":\"/node_modules/speakingurl/README.html\"}],\"collapsed\":true},{\"text\":\"sprintf-js\",\"items\":[{\"text\":\"sprintf.js\",\"link\":\"/node_modules/sprintf-js/README.html\"}],\"collapsed\":true},{\"text\":\"stringify-entities\",\"items\":[{\"text\":\"stringify-entities\",\"link\":\"/node_modules/stringify-entities/readme.html\"}],\"collapsed\":true},{\"text\":\"strip-ansi\",\"items\":[{\"text\":\"strip-ansi [![Build Status](https://travis-ci.org/chalk/strip-ansi.svg?branch=master)](https://travis-ci.org/chalk/strip-ansi)\",\"link\":\"/node_modules/strip-ansi/readme.html\"}],\"collapsed\":true},{\"text\":\"strip-json-comments\",\"items\":[{\"text\":\"strip-json-comments [![Build Status](https://travis-ci.com/sindresorhus/strip-json-comments.svg?branch=master)](https://travis-ci.com/github/sindresorhus/strip-json-comments)\",\"link\":\"/node_modules/strip-json-comments/readme.html\"}],\"collapsed\":true},{\"text\":\"superjson\",\"items\":[{\"text\":\"README\",\"link\":\"/node_modules/superjson/README.html\"}],\"collapsed\":true},{\"text\":\"supports-color\",\"items\":[{\"text\":\"supports-color [![Build Status](https://travis-ci.org/chalk/supports-color.svg?branch=master)](https://travis-ci.org/chalk/supports-color)\",\"link\":\"/node_modules/supports-color/readme.html\"}],\"collapsed\":true},{\"text\":\"tabbable\",\"items\":[{\"text\":\"Changelog\",\"link\":\"/node_modules/tabbable/CHANGELOG.html\"},{\"text\":\"tabbable [![CI](https://github.com/focus-trap/tabbable/workflows/CI/badge.svg?branch=master&event=push)](https://github.com/focus-trap/tabbable/actions?query=workflow:CI+branch:master) [![Codecov](https://img.shields.io/codecov/c/github/focus-trap/tabbable)](https://codecov.io/gh/focus-trap/tabbable) [![license](https://badgen.now.sh/badge/license/MIT)](./LICENSE)\",\"link\":\"/node_modules/tabbable/README.html\"},{\"text\":\"Security Policy\",\"link\":\"/node_modules/tabbable/SECURITY.html\"}],\"collapsed\":true},{\"text\":\"to-regex-range\",\"items\":[{\"text\":\"to-regex-range [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=W8YFZ425KND68) [![NPM version](https://img.shields.io/npm/v/to-regex-range.svg?style=flat)](https://www.npmjs.com/package/to-regex-range) [![NPM monthly downloads](https://img.shields.io/npm/dm/to-regex-range.svg?style=flat)](https://npmjs.org/package/to-regex-range) [![NPM total downloads](https://img.shields.io/npm/dt/to-regex-range.svg?style=flat)](https://npmjs.org/package/to-regex-range) [![Linux Build Status](https://img.shields.io/travis/micromatch/to-regex-range.svg?style=flat&label=Travis)](https://travis-ci.org/micromatch/to-regex-range)\",\"link\":\"/node_modules/to-regex-range/README.html\"}],\"collapsed\":true},{\"text\":\"trim-lines\",\"items\":[{\"text\":\"trim-lines\",\"link\":\"/node_modules/trim-lines/readme.html\"}],\"collapsed\":true},{\"text\":\"tslib\",\"items\":[{\"text\":\"tslib\",\"link\":\"/node_modules/tslib/README.html\"}],\"collapsed\":true},{\"text\":\"tsutils\",\"items\":[{\"text\":\"3.21.0\",\"link\":\"/node_modules/tsutils/CHANGELOG.html\"},{\"text\":\"Utility functions for working with typescript's AST\",\"link\":\"/node_modules/tsutils/README.html\"}],\"collapsed\":true},{\"text\":\"type-check\",\"items\":[{\"text\":\"type-check [![Build Status](https://travis-ci.org/gkz/type-check.png?branch=master)](https://travis-ci.org/gkz/type-check)\",\"link\":\"/node_modules/type-check/README.html\"}],\"collapsed\":true},{\"text\":\"type-fest\",\"items\":[{\"text\":\"readme\",\"link\":\"/node_modules/type-fest/readme.html\"}],\"collapsed\":true},{\"text\":\"typescript\",\"items\":[{\"text\":\"TypeScript\",\"link\":\"/node_modules/typescript/README.html\"},{\"text\":\"SECURITY\",\"link\":\"/node_modules/typescript/SECURITY.html\"}],\"collapsed\":true},{\"text\":\"unist-util-is\",\"items\":[{\"text\":\"unist-util-is\",\"link\":\"/node_modules/unist-util-is/readme.html\"}],\"collapsed\":true},{\"text\":\"unist-util-position\",\"items\":[{\"text\":\"unist-util-position\",\"link\":\"/node_modules/unist-util-position/readme.html\"}],\"collapsed\":true},{\"text\":\"unist-util-stringify-position\",\"items\":[{\"text\":\"unist-util-stringify-position\",\"link\":\"/node_modules/unist-util-stringify-position/readme.html\"}],\"collapsed\":true},{\"text\":\"unist-util-visit\",\"items\":[{\"text\":\"unist-util-visit\",\"link\":\"/node_modules/unist-util-visit/readme.html\"}],\"collapsed\":true},{\"text\":\"unist-util-visit-parents\",\"items\":[{\"text\":\"unist-util-visit-parents\",\"link\":\"/node_modules/unist-util-visit-parents/readme.html\"}],\"collapsed\":true},{\"text\":\"uri-js\",\"items\":[{\"text\":\"URI.js\",\"link\":\"/node_modules/uri-js/README.html\"}],\"collapsed\":true},{\"text\":\"vfile\",\"items\":[{\"text\":\"readme\",\"link\":\"/node_modules/vfile/readme.html\"}],\"collapsed\":true},{\"text\":\"vfile-message\",\"items\":[{\"text\":\"vfile-message\",\"link\":\"/node_modules/vfile-message/readme.html\"}],\"collapsed\":true},{\"text\":\"vite\",\"items\":[{\"text\":\"Vite core license\",\"link\":\"/node_modules/vite/LICENSE.html\"},{\"text\":\"vite ⚡\",\"link\":\"/node_modules/vite/README.html\"}],\"collapsed\":true},{\"text\":\"vite-plugin-vitepress-auto-sidebar\",\"items\":[{\"text\":\"vite-plugin-vitepress-auto-sidebar\",\"link\":\"/node_modules/vite-plugin-vitepress-auto-sidebar/README.html\"}],\"collapsed\":true},{\"text\":\"vitepress\",\"items\":[{\"text\":\"VitePress 📝💨\",\"link\":\"/node_modules/vitepress/README.html\"},{\"text\":\"https://vitepress.dev/reference/default-theme-home-page\",\"items\":[{\"text\":\"Runtime API Examples\",\"link\":\"/node_modules/vitepress/template/api-examples.html\"},{\"text\":\"https://vitepress.dev/reference/default-theme-home-page\",\"link\":\"/node_modules/vitepress/template/index.html\"},{\"text\":\"Markdown Extension Examples\",\"link\":\"/node_modules/vitepress/template/markdown-examples.html\"}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"vue\",\"items\":[{\"text\":\"vue\",\"link\":\"/node_modules/vue/README.html\"}],\"collapsed\":true},{\"text\":\"which\",\"items\":[{\"text\":\"Changes\",\"link\":\"/node_modules/which/CHANGELOG.html\"},{\"text\":\"which\",\"link\":\"/node_modules/which/README.html\"}],\"collapsed\":true},{\"text\":\"word-wrap\",\"items\":[{\"text\":\"word-wrap [![NPM version](https://img.shields.io/npm/v/word-wrap.svg?style=flat)](https://www.npmjs.com/package/word-wrap) [![NPM monthly downloads](https://img.shields.io/npm/dm/word-wrap.svg?style=flat)](https://npmjs.org/package/word-wrap) [![NPM total downloads](https://img.shields.io/npm/dt/word-wrap.svg?style=flat)](https://npmjs.org/package/word-wrap) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/word-wrap.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/word-wrap)\",\"link\":\"/node_modules/word-wrap/README.html\"}],\"collapsed\":true},{\"text\":\"wrappy\",\"items\":[{\"text\":\"wrappy\",\"link\":\"/node_modules/wrappy/README.html\"}],\"collapsed\":true},{\"text\":\"yocto-queue\",\"items\":[{\"text\":\"yocto-queue [![](https://badgen.net/bundlephobia/minzip/yocto-queue)](https://bundlephobia.com/result?p=yocto-queue)\",\"link\":\"/node_modules/yocto-queue/readme.html\"}],\"collapsed\":true},{\"text\":\"zwitch\",\"items\":[{\"text\":\"zwitch\",\"link\":\"/node_modules/zwitch/readme.html\"}],\"collapsed\":true}]}],\"/test1/\":[{\"items\":[{\"text\":\"Runtime API Examples\",\"link\":\"/test1/api-examples.html\"},{\"text\":\"note\",\"link\":\"/test1/index.html\"},{\"text\":\"Markdown Extension Examples\",\"link\":\"/test1/markdown-examples.html\"}]}]}},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
</body>
</html>