89 lines
115 KiB
HTML
89 lines
115 KiB
HTML
<!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: 无限听歌,解放小爱音箱 | 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_index.md.Do1eTGGf.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_" data-v-e6f2a212><div><h1 id="xiaomusic-无限听歌-解放小爱音箱" tabindex="-1">XiaoMusic: 无限听歌,解放小爱音箱 <a class="header-anchor" href="#xiaomusic-无限听歌-解放小爱音箱" aria-label="Permalink to "XiaoMusic: 无限听歌,解放小爱音箱"" target="_self"></a></h1><p><a href="https://github.com/hanxi/xiaomusic" target="_self"><img src="https://img.shields.io/github/license/hanxi/xiaomusic" alt="GitHub License"></a><a href="https://hub.docker.com/r/hanxi/xiaomusic" target="_self"><img src="https://img.shields.io/docker/v/hanxi/xiaomusic?sort=semver&label=docker%20image" alt="Docker Image Version"></a><a href="https://hub.docker.com/r/hanxi/xiaomusic" target="_self"><img src="https://img.shields.io/docker/pulls/hanxi/xiaomusic" alt="Docker Pulls"></a><a href="https://pypi.org/project/xiaomusic/" target="_self"><img src="https://img.shields.io/pypi/v/xiaomusic" alt="PyPI - Version"></a><a href="https://pypi.org/project/xiaomusic/" target="_self"><img src="https://img.shields.io/pypi/dm/xiaomusic" alt="PyPI - Downloads"></a><a href="https://pypi.org/project/xiaomusic/" target="_self"><img src="https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2Fhanxi%2Fxiaomusic%2Fmain%2Fpyproject.toml" alt="Python Version from PEP 621 TOML"></a><a href="https://github.com/hanxi/xiaomusic/releases" target="_self"><img src="https://img.shields.io/github/v/release/hanxi/xiaomusic" alt="GitHub Release"></a><a href="https://visitorbadge.io/status?path=hanxi%2Fxiaomusic" target="_self"><img src="https://api.visitorbadge.io/api/daily?path=hanxi%2Fxiaomusic&label=daily%20visitor&countColor=%232ccce4&style=flat" alt="Visitors"></a><a href="https://visitorbadge.io/status?path=hanxi%2Fxiaomusic" target="_self"><img src="https://api.visitorbadge.io/api/visitors?path=hanxi%2Fxiaomusic&label=total%20visitor&countColor=%232ccce4&style=flat" alt="Visitors"></a></p><p>使用小爱音箱播放音乐,音乐使用 yt-dlp 下载。</p><p><a href="https://github.com/hanxi/xiaomusic" target="_self">https://github.com/hanxi/xiaomusic</a></p><div class="tip custom-block github-alert"><p class="custom-block-title">TIP</p><p>初次安装遇到问题请查阅 <a href="https://github.com/hanxi/xiaomusic/issues/99" target="_self">💬 FAQ问题集合</a> ,一般遇到的问题都已经有解决办法。</p></div><h2 id="👋-最简配置运行" tabindex="-1">👋 最简配置运行 <a class="header-anchor" href="#👋-最简配置运行" aria-label="Permalink to "👋 最简配置运行"" target="_self"></a></h2><p>已经支持在 web 页面配置其他参数,docker 启动命令如下:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> run</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -p</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 8090:8090</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -v</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /xiaomusic/music:/app/music</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -v</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /xiaomusic/conf:/app/conf</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> hanxi/xiaomusic</span></span></code></pre></div><p>🔥 国内:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> run</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -p</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 8090:8090</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -v</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /xiaomusic/music:/app/music</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -v</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /xiaomusic/conf:/app/conf</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> m.daocloud.io/docker.io/hanxi/xiaomusic</span></span></code></pre></div><p>对应的 docker compose 配置如下:</p><div class="language-yaml vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">yaml</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">services</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> xiaomusic</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> image</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">hanxi/xiaomusic</span></span>
|
||
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> container_name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">xiaomusic</span></span>
|
||
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> restart</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">unless-stopped</span></span>
|
||
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> ports</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">8090:8090</span></span>
|
||
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> volumes</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">/xiaomusic/music:/app/music</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">/xiaomusic/conf:/app/conf</span></span></code></pre></div><p>🔥 国内:</p><div class="language-yaml vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">yaml</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">services</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> xiaomusic</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> image</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">m.daocloud.io/docker.io/hanxi/xiaomusic</span></span>
|
||
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> container_name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">xiaomusic</span></span>
|
||
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> restart</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">unless-stopped</span></span>
|
||
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> ports</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">8090:8090</span></span>
|
||
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> volumes</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">/xiaomusic/music:/app/music</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">/xiaomusic/conf:/app/conf</span></span></code></pre></div><p>其中 conf 目录为配置文件存放目录,music 目录为音乐存放目录,建议分开配置为不同的目录。</p><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p>上面配置的 /xiaomusic/music 和 /xiaomusic/conf 是 docker 主机里的 /xiaomusic 目录下的,可以修改为其他目录。如果报错找不到 /xiaomusic/music 目录,可以先执行 <code>mkdir -p /xiaomusic/{music,conf}</code> 命令新建目录。</p></div><p>docker 和 docker compose 二选一即可,启动成功后,在 web 页面可以配置其他参数,带有 <code>*</code> 号的配置是必须要配置的,其他的用不上时不用修改。初次配置时需要在页面上输入小米账号和密码保存后才能获取到设备列表。</p><div class="tip custom-block github-alert"><p class="custom-block-title">TIP</p><p>目前安装步骤已经是最简化了,如果还是嫌安装麻烦,可以微信或者 QQ 约我远程安装,我一般周末和晚上才有时间,收个辛苦费 💰 50 元一次,安装失败不收费。</p></div><h3 id="🔥-修改默认8090端口映射" tabindex="-1">🔥 修改默认8090端口映射 <a class="header-anchor" href="#🔥-修改默认8090端口映射" aria-label="Permalink to "🔥 修改默认8090端口映射"" target="_self"></a></h3><h4 id="方法1-不修改监听端口-8090" tabindex="-1">方法1: 不修改监听端口 8090 <a class="header-anchor" href="#方法1-不修改监听端口-8090" aria-label="Permalink to "方法1: 不修改监听端口 8090"" target="_self"></a></h4><p>【监听端口】保持为默认的 8090 不变,把【外网访问端口】改为 5678 。</p><div class="language-yaml vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">yaml</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">services</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> xiaomusic</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> image</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">hanxi/xiaomusic</span></span>
|
||
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> container_name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">xiaomusic</span></span>
|
||
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> restart</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">unless-stopped</span></span>
|
||
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> ports</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">5678:8090</span></span>
|
||
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> volumes</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">/xiaomusic/music:/app/music</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">/xiaomusic/conf:/app/conf</span></span>
|
||
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> environment</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> XIAOMUSIC_PUBLIC_PORT</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">5678</span></span></code></pre></div><p>XIAOMUSIC_PUBLIC_PORT 对应后台设置里的【外网访问端口】,修改后可以不用重启。</p><h4 id="方法2-修改监听端口-8090-为-5678" tabindex="-1">方法2: 修改监听端口 8090 为 5678 <a class="header-anchor" href="#方法2-修改监听端口-8090-为-5678" aria-label="Permalink to "方法2: 修改监听端口 8090 为 5678"" target="_self"></a></h4><p>如果需要修改 8090 端口为其他端口,比如 5678,需要这样配,3个数字都需要是 5678 。见 <a href="https://github.com/hanxi/xiaomusic/issues/19" target="_self">https://github.com/hanxi/xiaomusic/issues/19</a></p><div class="language-yaml vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">yaml</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">services</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> xiaomusic</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> image</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">hanxi/xiaomusic</span></span>
|
||
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> container_name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">xiaomusic</span></span>
|
||
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> restart</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">unless-stopped</span></span>
|
||
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> ports</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">5678:5678</span></span>
|
||
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> volumes</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">/xiaomusic/music:/app/music</span></span>
|
||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">/xiaomusic/conf:/app/conf</span></span>
|
||
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> environment</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
|
||
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> XIAOMUSIC_PORT</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">5678</span></span></code></pre></div><p>如果不是首次修改端口,还需要修改 /xiaomusic/conf/setting.json 文件里的端口(也可以在后台修改监听端口后重启)。</p><p>遇到问题可以去 web 设置页面底部点击【下载日志文件】按钮,然后搜索一下日志文件内容确保里面没有账号密码信息后(有就删除这些敏感信息),然后在提 issues 反馈问题时把下载的日志文件带上。</p><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p>XIAOMUSIC_PORT 也可以在后台配置,对应的是监听端口,修改后记得重启。</p></div><h3 id="🤐-支持语音口令" tabindex="-1">🤐 支持语音口令 <a class="header-anchor" href="#🤐-支持语音口令" aria-label="Permalink to "🤐 支持语音口令"" target="_self"></a></h3><ul><li>【播放歌曲】,播放本地的歌曲</li><li>【播放歌曲+歌名】,比如:播放歌曲周杰伦晴天</li><li>【上一首】</li><li>【下一首】</li><li>【单曲循环】</li><li>【全部循环】</li><li>【随机播放】</li><li>【关机】,【停止播放】,两个效果是一样的。</li><li>【刷新列表】,当复制了歌曲进 music 目录后,可以用这个口令刷新歌单。</li><li>【播放列表+列表名】,比如:播放列表其他。</li><li>【加入收藏】,把当前播放的歌曲加入收藏歌单。</li><li>【取消收藏】,把当前播放的歌曲从收藏歌单里移除。</li><li>【播放列表收藏】,这个用于播放收藏歌单。</li><li>【播放本地歌曲+歌名】,这个口令和播放歌曲的区别是本地找不到也不会去下载。</li><li>【播放列表第几个+列表名】,具体见: <a href="https://github.com/hanxi/xiaomusic/issues/158" target="_self">https://github.com/hanxi/xiaomusic/issues/158</a></li><li>【搜索播放+关键词】,会搜索关键词作为临时搜索列表播放,比如说【搜索播放林俊杰】,会播放所有林俊杰的歌。</li><li>【本地搜索播放+关键词】,跟搜索播放的区别是本地找不到也不会去下载。</li></ul><div class="tip custom-block github-alert"><p class="custom-block-title">TIP</p><p>隐藏玩法: 对小爱同学说播放歌曲小猪佩奇的故事,会先下载小猪佩奇的故事,然后再播放小猪佩奇的故事。</p></div><h2 id="🛠️-pip-方式安装运行" tabindex="-1">🛠️ pip 方式安装运行 <a class="header-anchor" href="#🛠️-pip-方式安装运行" aria-label="Permalink to "🛠️ pip 方式安装运行"" target="_self"></a></h2><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> pip install -U xiaomusic</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> xiaomusic --help</span></span>
|
||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> __</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> __</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> _</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> __</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> __</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> _</span></span>
|
||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> \</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> \/</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (_) __ _ ___ </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> \/</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> _</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> _</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ___</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (_) ___</span></span>
|
||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> \</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> /</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> _` </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> /</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> _ </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\ </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">\/</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> /</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> __</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> /</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> __</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span></span>
|
||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> /</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> \ </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">_</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">_</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">_</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> \__</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> \ </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">__</span></span>
|
||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> /_/\_\</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">_</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> \__,_</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> \___/</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">_</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">_</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> \__,_</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">___/</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">_</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> \___</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span></span>
|
||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> XiaoMusic</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> v0.3.37 by: github.com/hanxi</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">usage:</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> xiaomusic [-h] [--port PORT] [--hardware HARDWARE] [--account ACCOUNT]</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> [--password PASSWORD] [--cookie COOKIE] [--verbose]</span></span>
|
||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> [--config CONFIG] [--ffmpeg_location FFMPEG_LOCATION]</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">options:</span></span>
|
||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> -h,</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --help</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> show this help message and exit</span></span>
|
||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> --port</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> PORT 监听端口</span></span>
|
||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> --hardware</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> HARDWARE 小爱音箱型号</span></span>
|
||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> --account</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ACCOUNT xiaomi account</span></span>
|
||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> --password</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> PASSWORD xiaomi password</span></span>
|
||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> --cookie</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> COOKIE xiaomi cookie</span></span>
|
||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> --verbose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> show info</span></span>
|
||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> --config</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> CONFIG config file path</span></span>
|
||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> --ffmpeg_location</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> FFMPEG_LOCATION</span></span>
|
||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> ffmpeg</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> bin path</span></span>
|
||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">></span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> xiaomusic --config config.json</span></span></code></pre></div><p>其中 <code>config.json</code> 文件可以参考 <code>config-example.json</code> 文件配置。见 <a href="https://github.com/hanxi/xiaomusic/issues/94" target="_self">https://github.com/hanxi/xiaomusic/issues/94</a></p><p>不修改默认端口 8090 的情况下,只需要执行 <code>xiaomusic</code> 即可启动。</p><h2 id="🔩-开发环境运行" tabindex="-1">🔩 开发环境运行 <a class="header-anchor" href="#🔩-开发环境运行" aria-label="Permalink to "🔩 开发环境运行"" target="_self"></a></h2><ul><li>使用 install_dependencies.sh 下载依赖</li><li>使用 pdm 安装环境</li><li>默认监听了端口 8090 , 使用其他端口自行修改。</li></ul><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">pdm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> run</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> xiaomusic.py</span></span></code></pre></div><p>如果是开发前端界面,可以通过 <a href="http://localhost:8090/docs" target="_self">http://localhost:8090/docs</a> 查看有什么接口。目前的 web 控制台非常简陋,欢迎有兴趣的朋友帮忙实现一个漂亮的前端,需要什么接口可以随时提需求。</p><h3 id="🚦-代码提交规范" tabindex="-1">🚦 代码提交规范 <a class="header-anchor" href="#🚦-代码提交规范" aria-label="Permalink to "🚦 代码提交规范"" target="_self"></a></h3><p>提交前请执行</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>pdm lintfmt</span></span></code></pre></div><p>用于检查代码和格式化代码。</p><h3 id="本地编译-docker-image" tabindex="-1">本地编译 Docker Image <a class="header-anchor" href="#本地编译-docker-image" aria-label="Permalink to "本地编译 Docker Image"" target="_self"></a></h3><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -t</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> xiaomusic</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .</span></span></code></pre></div><h3 id="技术栈" tabindex="-1">技术栈 <a class="header-anchor" href="#技术栈" aria-label="Permalink to "技术栈"" target="_self"></a></h3><ul><li>后端代码使用 Python 语言编写。</li><li>HTTP 服务使用的是 FastAPI 框架,<s>早期版本使用的是 Flask</s>。</li><li>使用了 Docker ,在 NAS 上安装更方便。</li><li>默认的前端主题使用了 jQuery 。</li></ul><h2 id="已测试支持的设备" tabindex="-1">已测试支持的设备 <a class="header-anchor" href="#已测试支持的设备" aria-label="Permalink to "已测试支持的设备"" target="_self"></a></h2><table tabindex="0"><thead><tr><th>型号</th><th>名称</th></tr></thead><tbody><tr><td>L06A</td><td><a href="https://home.mi.com/baike/index.html#/detail?model=xiaomi.wifispeaker.l06a" target="_self">小爱音箱</a></td></tr><tr><td>L07A</td><td><a href="https://home.mi.com/webapp/content/baike/product/index.html?model=xiaomi.wifispeaker.l7a" target="_self">Redmi小爱音箱 Play</a></td></tr><tr><td>S12/S12A/MDZ-25-DA</td><td><a href="https://home.mi.com/baike/index.html#/detail?model=xiaomi.wifispeaker.s12" target="_self">小米AI音箱</a></td></tr><tr><td>LX5A</td><td><a href="https://home.mi.com/baike/index.html#/detail?model=xiaomi.wifispeaker.lx5a" target="_self">小爱音箱 万能遥控版</a></td></tr><tr><td>LX05</td><td><a href="https://home.mi.com/baike/index.html#/detail?model=xiaomi.wifispeaker.lx05" target="_self">小爱音箱Play(2019款)</a></td></tr><tr><td>L15A</td><td><a href="https://home.mi.com/webapp/content/baike/product/index.html?model=xiaomi.wifispeaker.l15a#/" target="_self">小米AI音箱(第二代)</a></td></tr><tr><td>L16A</td><td><a href="https://home.mi.com/baike/index.html#/detail?model=xiaomi.wifispeaker.l16a" target="_self">Xiaomi Sound</a></td></tr><tr><td>L17A</td><td><a href="https://home.mi.com/baike/index.html#/detail?model=xiaomi.wifispeaker.l17a" target="_self">Xiaomi Sound Pro</a></td></tr><tr><td>LX06</td><td><a href="https://home.mi.com/baike/index.html#/detail?model=xiaomi.wifispeaker.lx06" target="_self">小爱音箱Pro</a></td></tr><tr><td>LX01</td><td><a href="https://home.mi.com/baike/index.html#/detail?model=xiaomi.wifispeaker.lx01" target="_self">小爱音箱mini</a></td></tr><tr><td>L05B</td><td><a href="https://home.mi.com/baike/index.html#/detail?model=xiaomi.wifispeaker.l05b" target="_self">小爱音箱Play</a></td></tr><tr><td>L05C</td><td><a href="https://home.mi.com/baike/index.html#/detail?model=xiaomi.wifispeaker.l05c" target="_self">小米小爱音箱Play 增强版</a></td></tr><tr><td>L09A</td><td><a href="https://home.mi.com/webapp/content/baike/product/index.html?model=xiaomi.wifispeaker.l09a" target="_self">小米音箱Art</a></td></tr><tr><td>LX04 X10A X08A</td><td>已经支持的触屏版</td></tr><tr><td>X08C X08E X8F</td><td>需要设置【型号兼容模式】选项为 true</td></tr><tr><td>M01/XMYX01JY</td><td>小米小爱音箱HD 需要设置【特殊型号获取对话记录】选项为 true 才能语音播放</td></tr></tbody></table><p>型号与产品名称对照可以在这里查询 <a href="https://home.miot-spec.com/s/xiaomi.wifispeaker" target="_self">https://home.miot-spec.com/s/xiaomi.wifispeaker</a></p><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p>如果你的设备支持播放,请反馈给我添加到支持列表里,谢谢。 目前应该所有设备类型都已经支持播放,有问题随时反馈。 其他触屏版不能播放可以设置【型号兼容模式】选项为 true 试试。见 <a href="https://github.com/hanxi/xiaomusic/issues/30" target="_self">https://github.com/hanxi/xiaomusic/issues/30</a></p></div><h2 id="🎵-支持音乐格式" tabindex="-1">🎵 支持音乐格式 <a class="header-anchor" href="#🎵-支持音乐格式" aria-label="Permalink to "🎵 支持音乐格式"" target="_self"></a></h2><ul><li>mp3</li><li>flac</li><li>wav</li><li>ape</li><li>ogg</li><li>m4a</li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p>本地音乐会搜索目录下上面格式的文件,下载的歌曲是 mp3 格式的。 已知 L05B L05C LX06 L16A 不支持 flac 格式。 如果格式不能播放可以打开【转换为MP3】和【型号兼容模式】选项。具体见 <a href="https://github.com/hanxi/xiaomusic/issues/153#issuecomment-2328168689" target="_self">https://github.com/hanxi/xiaomusic/issues/153#issuecomment-2328168689</a></p></div><h2 id="💡-简易的控制面板" tabindex="-1">💡 简易的控制面板 <a class="header-anchor" href="#💡-简易的控制面板" aria-label="Permalink to "💡 简易的控制面板"" target="_self"></a></h2><p>浏览器进入 <a href="http://192.168.2.5:8090" target="_self">http://192.168.2.5:8090</a></p><ul><li>ip 是 XIAOMUSIC_HOSTNAME 设置的</li><li>8090 是默认端口</li><li>支持功能 <ul><li>显示正在播放的歌曲</li><li>模糊搜索本地歌曲</li><li>播放列表</li><li>删除歌曲</li><li>设置页面</li><li>配置网络歌单</li><li>日志文件下载</li></ul></li></ul><p>采用新的设置页面之后,没有必须在启动前配置的环境变量了,除非是改默认的 8090 端口才需要配置环境变量。</p><h2 id="🌏-网络歌单功能" tabindex="-1">🌏 网络歌单功能 <a class="header-anchor" href="#🌏-网络歌单功能" aria-label="Permalink to "🌏 网络歌单功能"" target="_self"></a></h2><p>可以配置一个 json 格式的歌单,支持电台和歌曲,也可以直接用别人分享的链接,同时配备了 m3u 文件格式转换工具,可以很方便的把 m3u 电台文件转换成网络歌单格式的 json 文件,具体用法见 <a href="https://github.com/hanxi/xiaomusic/issues/78" target="_self">https://github.com/hanxi/xiaomusic/issues/78</a></p><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p>欢迎有想法的朋友们制作更多的歌单转换工具。</p></div><h2 id="🍺-更多其他可选配置" tabindex="-1">🍺 更多其他可选配置 <a class="header-anchor" href="#🍺-更多其他可选配置" aria-label="Permalink to "🍺 更多其他可选配置"" target="_self"></a></h2><ul><li>XIAOMUSIC_ACTIVE_CMD 环境变量,对应后台的 【允许唤醒的命令】,用于唤醒口令,配置成'play,random_play',在非播放状态下,只有这两个指令(播放歌曲和随机播放)可以触发,触发后,xiaomusic进入playing状态,其他指令则可以正常触发。具体见 <a href="https://github.com/hanxi/xiaomusic/pull/43" target="_self">https://github.com/hanxi/xiaomusic/pull/43</a></li><li>XIAOMUSIC_EXCLUDE_DIRS 配置歌曲目录里需要忽略的目录,对应后台的 【忽略目录】</li><li>XIAOMUSIC_MUSIC_PATH_DEPTH 配置歌曲目录搜索深度,对应后台的 【目录深度】,具体见 <a href="https://github.com/hanxi/xiaomusic/issues/76" target="_self">https://github.com/hanxi/xiaomusic/issues/76</a></li><li>XIAOMUSIC_DISABLE_HTTPAUTH 配置成 false 表示开启密码访问web控制台,对应后台的 【关闭密码验证】,具体见 <a href="https://github.com/hanxi/xiaomusic/issues/47" target="_self">https://github.com/hanxi/xiaomusic/issues/47</a></li><li>XIAOMUSIC_HTTPAUTH_USERNAME 配置 web 控制台用户,对应后台的 【控制台账户】</li><li>XIAOMUSIC_HTTPAUTH_PASSWORD 配置 web 控制台密码,对应后台的 【控制台密码】</li><li>XIAOMUSIC_CONF_PATH 用来存放配置文件的目录,对应后台的 【配置文件目录】,记得把目录映射到主机,默认为 <code>/app/config</code> ,具体见 <a href="https://github.com/hanxi/xiaomusic/issues/74" target="_self">https://github.com/hanxi/xiaomusic/issues/74</a></li><li>XIAOMUSIC_CACHE_DIR 用来音乐 tag 缓存,默认为 <code>/app/cache</code>,对应后台的 【缓存文件目录】。</li><li>XIAOMUSIC_DISABLE_DOWNLOAD 设为 true 时关闭下载功能,对应后台的 【关闭下载功能】,见 <a href="https://github.com/hanxi/xiaomusic/issues/82" target="_self">https://github.com/hanxi/xiaomusic/issues/82</a></li><li>XIAOMUSIC_USE_MUSIC_API 设为 true 时使用 player_play_music 接口播放音乐,对应后台的 【型号兼容模式】,用于兼容不能播放的型号,如果发现需要设置这个选项的时候请告知我加一下设备型号,方便以后不用设置。 见 <a href="https://github.com/hanxi/xiaomusic/issues/30" target="_self">https://github.com/hanxi/xiaomusic/issues/30</a></li><li>XIAOMUSIC_KEYWORDS_PLAY 用来播放歌曲的口令前缀,对应后台的 【播放歌曲口令】,默认是 "播放歌曲,放歌曲" ,可以用英文逗号分割配置多个</li><li>XIAOMUSIC_KEYWORDS_STOP 用来关机的口令,对应后台的 【停止口令】,默认是 "关机,暂停,停止" ,可以用英文逗号分割配置多个。</li><li>XIAOMUSIC_KEYWORDS_PLAYLOCAL 用来播放本地歌曲的口令前缀,对应后台的 【播放本地歌曲口令】,本地找不到时不会下载歌曲,默认是 "播放本地歌曲,本地播放歌曲" ,可以用英文逗号分割配置多个。</li><li>XIAOMUSIC_ENABLE_FUZZY_MATCH 设为 true 时开启模糊匹配(默认),设为 false 时关闭模糊匹配,对应后台的 【开启模糊搜索】,支持模糊匹配歌名和歌单名。 具体见 <a href="https://github.com/hanxi/xiaomusic/issues/52" target="_self">https://github.com/hanxi/xiaomusic/issues/52</a></li><li>XIAOMUSIC_FUZZY_MATCH_CUTOFF 设置模糊搜索匹配的最低相似度阈值(默认0.6,可以配0到1直接的小数),越小越模糊,越大越精准,对应后台的 【模糊匹配阈值】。具体见 <a href="https://github.com/hanxi/xiaomusic/issues/52" target="_self">https://github.com/hanxi/xiaomusic/issues/52</a></li><li>XIAOMUSIC_PUBLIC_PORT 用于设置外网端口,对应后台的 【外网访问端口】,当使用反向代理时可以设置为外网端口,XIAOMUSIC_HOSTNAME 设为外网IP或者域名即可。</li><li>XIAOMUSIC_DOWNLOAD_PATH 变量可以配置下载目录,默认为空,表示使用 music 目录为下载目录,对应后台的 【音乐下载目录】。设置这个目录必须是 music 的子目录,否则刷新列表后会找不到歌曲。具体见 <a href="https://github.com/hanxi/xiaomusic/issues/98" target="_self">https://github.com/hanxi/xiaomusic/issues/98</a></li><li>XIAOMUSIC_PROXY 用于配置国内使用 youtube 源下载歌曲时使用的代理,参数格式参考 yt-dlp 文档说明。 见 <a href="https://github.com/hanxi/xiaomusic/issues/2" target="_self">https://github.com/hanxi/xiaomusic/issues/2</a> 和 <a href="https://github.com/hanxi/xiaomusic/issues/11" target="_self">https://github.com/hanxi/xiaomusic/issues/11</a></li><li>MIIO_TTS_CMD 用于部分机型(如:<code>L05C</code>)使用 MiIO 支持 tts 能力,默认为空,命令选择见 <a href="https://github.com/yihong0618/MiService" target="_self">MiService-fork 文档</a></li></ul><h3 id="⚠️-安全提醒" tabindex="-1">⚠️ 安全提醒 <a class="header-anchor" href="#⚠️-安全提醒" aria-label="Permalink to "⚠️ 安全提醒"" target="_self"></a></h3><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><ol><li>如果配置了公网访问 xiaomusic ,请一定要开启密码登陆,并设置复杂的密码。且不要在公共场所的 WiFi 环境下使用,否则可能造成小米账号密码泄露。</li><li>强烈不建议将小爱音箱的小米账号绑定摄像头,代码难免会有 bug ,一旦小米账号密码泄露,可能监控录像也会泄露。</li></ol></div><h2 id="🤔-高级篇" tabindex="-1">🤔 高级篇 <a class="header-anchor" href="#🤔-高级篇" aria-label="Permalink to "🤔 高级篇"" target="_self"></a></h2><ul><li>自定义口令功能 <a href="https://github.com/hanxi/xiaomusic/issues/105" target="_self">https://github.com/hanxi/xiaomusic/issues/105</a></li><li>[ ] 缺少一篇教程 <a href="https://github.com/hanxi/xiaomusic/issues/105" target="_self">如何写自定义插件</a></li></ul><h2 id="📢-讨论区" tabindex="-1">📢 讨论区 <a class="header-anchor" href="#📢-讨论区" aria-label="Permalink to "📢 讨论区"" target="_self"></a></h2><ul><li><a href="https://pd.qq.com/s/e2jybz0ss" target="_self">点击链接加入QQ频道【xiaomusic】</a></li><li><a href="http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=13St5PLVcTxYlWTAs_iAawazjtdD1l-a&authKey=dJWEpaT2fDBDpdUUOWj%2FLt6NS1ePBfShDfz7a6seNURi05VvVnAGQzXF%2FM%2F5HgIm&noverify=0&group_code=604526973" target="_self">点击链接加入群聊【xiaomusic】 604526973</a></li><li><a href="https://github.com/hanxi/xiaomusic/issues" target="_self">https://github.com/hanxi/xiaomusic/issues</a></li><li><a href="https://github.com/hanxi/xiaomusic/issues/86" target="_self">微信群二维码</a></li></ul><h2 id="❤️-感谢" tabindex="-1">❤️ 感谢 <a class="header-anchor" href="#❤️-感谢" aria-label="Permalink to "❤️ 感谢"" target="_self"></a></h2><ul><li><a href="https://www.mi.com/" target="_self">xiaomi</a></li><li><a href="https://pdm.fming.dev/latest/" target="_self">PDM</a></li><li><a href="https://github.com/yihong0618/xiaogpt" target="_self">xiaogpt</a></li><li><a href="https://github.com/yihong0618/MiService" target="_self">MiService</a></li><li><a href="https://github.com/yihong0618/gitblog/issues/258" target="_self">实现原理</a></li><li><a href="https://github.com/yt-dlp/yt-dlp" target="_self">yt-dlp</a></li><li><a href="https://github.com/zzz6519003/awesome-xiaoai" target="_self">awesome-xiaoai</a></li><li><a href="https://github.com/F-loat/xiaoplayer" target="_self">微信小程序: XIAO晓音</a></li><li><a href="https://github.com/52fisher/xiaomusicUI" target="_self">pure 主题 xiaomusicUI</a></li><li><a href="https://github.com/52fisher/XMusicPlayer" target="_self">移动端的播放器主题</a></li><li><a href="https://github.com/DarrenWen/xiaomusicui" target="_self">一个第三方的主题</a></li><li>所有帮忙调试和测试的朋友</li><li>所有反馈问题和建议的朋友</li></ul><h3 id="👉-其他教程" tabindex="-1">👉 其他教程 <a class="header-anchor" href="#👉-其他教程" aria-label="Permalink to "👉 其他教程"" target="_self"></a></h3><p>更多功能见 <a href="https://github.com/hanxi/xiaomusic/issues/211" target="_self">📝 文档汇总</a></p><h2 id="🚨-免责声明" tabindex="-1">🚨 免责声明 <a class="header-anchor" href="#🚨-免责声明" aria-label="Permalink to "🚨 免责声明"" target="_self"></a></h2><p>本项目仅供学习和研究目的,不得用于任何商业活动。用户在使用本项目时应遵守所在地区的法律法规,对于违法使用所导致的后果,本项目及作者不承担任何责任。 本项目可能存在未知的缺陷和风险(包括但不限于设备损坏和账号封禁等),使用者应自行承担使用本项目所产生的所有风险及责任。 作者不保证本项目的准确性、完整性、及时性、可靠性,也不承担任何因使用本项目而产生的任何损失或损害责任。 使用本项目即表示您已阅读并同意本免责声明的全部内容。</p><h2 id="star-history" tabindex="-1">Star History <a class="header-anchor" href="#star-history" aria-label="Permalink to "Star History"" target="_self"></a></h2><p><a href="https://star-history.com/#hanxi/xiaomusic&Date" target="_self"><img src="https://api.star-history.com/svg?repos=hanxi/xiaomusic&type=Date" alt="Star History Chart"></a></p><h2 id="赞赏" tabindex="-1">赞赏 <a class="header-anchor" href="#赞赏" aria-label="Permalink to "赞赏"" target="_self"></a></h2><ul><li>💰 爱发电 <a href="https://afdian.com/a/imhanxi" target="_self">https://afdian.com/a/imhanxi</a></li><li>点个 Star ⭐</li><li>谢谢 ❤️</li><li><img src="https://i.v2ex.co/7Q03axO5l.png" alt="喝杯奶茶"></li></ul><h2 id="license" tabindex="-1">License <a class="header-anchor" href="#license" aria-label="Permalink to "License"" target="_self"></a></h2><p><a href="https://github.com/hanxi/xiaomusic/blob/main/LICENSE" target="_self">MIT</a> License © 2024 涵曦</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/99.html" data-v-1bcd8184><!--[--><span class="desc" data-v-1bcd8184>Previous page</span><span class="title" data-v-1bcd8184>💬 FAQ问题集合</span><!--]--></a></div><div class="pager" data-v-1bcd8184><!----></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 [](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 [](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 [](https://travis-ci.org/sindresorhus/array-union)\",\"link\":\"/node_modules/array-union/readme.html\"}],\"collapsed\":true},{\"text\":\"asynckit\",\"items\":[{\"text\":\"asynckit [](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 [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=W8YFZ425KND68) [](https://www.npmjs.com/package/braces) [](https://npmjs.org/package/braces) [](https://npmjs.org/package/braces) [](https://travis-ci.org/micromatch/braces)\",\"link\":\"/node_modules/braces/README.html\"}],\"collapsed\":true},{\"text\":\"callsites\",\"items\":[{\"text\":\"callsites [](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 [](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 [](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 [](https://npmjs.org/package/entities) [](https://npmjs.org/package/entities) [](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 [](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 [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=W8YFZ425KND68) [](https://www.npmjs.com/package/fill-range) [](https://npmjs.org/package/fill-range) [](https://npmjs.org/package/fill-range) [](https://travis-ci.org/jonschlinkert/fill-range)\",\"link\":\"/node_modules/fill-range/README.html\"}],\"collapsed\":true},{\"text\":\"find-up\",\"items\":[{\"text\":\"find-up [](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 [](https://github.com/focus-trap/focus-trap/actions?query=workflow:CI+branch:master) [](./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 [](https://www.npmjs.com/package/form-data) [](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 [](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 [](https://www.npmjs.com/package/is-extglob) [](https://npmjs.org/package/is-extglob) [](https://travis-ci.org/jonschlinkert/is-extglob)\",\"link\":\"/node_modules/is-extglob/README.html\"}],\"collapsed\":true},{\"text\":\"is-glob\",\"items\":[{\"text\":\"is-glob [](https://www.npmjs.com/package/is-glob) [](https://npmjs.org/package/is-glob) [](https://npmjs.org/package/is-glob) [](https://github.com/micromatch/is-glob/actions)\",\"link\":\"/node_modules/is-glob/README.html\"}],\"collapsed\":true},{\"text\":\"is-number\",\"items\":[{\"text\":\"is-number [](https://www.npmjs.com/package/is-number) [](https://npmjs.org/package/is-number) [](https://npmjs.org/package/is-number) [](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 [](https://travis-ci.org/gkz/levn) <a name=\\\"levn\\\" />\",\"link\":\"/node_modules/levn/README.html\"}],\"collapsed\":true},{\"text\":\"locate-path\",\"items\":[{\"text\":\"locate-path [](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 [](https://www.npmjs.com/package/micromatch) [](https://npmjs.org/package/micromatch) [](https://npmjs.org/package/micromatch) [](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 [](https://travis-ci.com/github/sindresorhus/p-locate)\",\"link\":\"/node_modules/p-locate/readme.html\"}],\"collapsed\":true},{\"text\":\"parent-module\",\"items\":[{\"text\":\"parent-module [](https://travis-ci.org/sindresorhus/parent-module)\",\"link\":\"/node_modules/parent-module/readme.html\"}],\"collapsed\":true},{\"text\":\"path-exists\",\"items\":[{\"text\":\"path-exists [](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 [](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 [](https://travis-ci.org/sindresorhus/path-key)\",\"link\":\"/node_modules/path-key/readme.html\"}],\"collapsed\":true},{\"text\":\"path-type\",\"items\":[{\"text\":\"path-type [](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 [](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 [](https://www.npmjs.com/package/punycode) [](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 [](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 [](https://travis-ci.org/kevva/shebang-command)\",\"link\":\"/node_modules/shebang-command/readme.html\"}],\"collapsed\":true},{\"text\":\"shebang-regex\",\"items\":[{\"text\":\"shebang-regex [](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 [](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 [](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 [](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 [](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 [](https://github.com/focus-trap/tabbable/actions?query=workflow:CI+branch:master) [](https://codecov.io/gh/focus-trap/tabbable) [](./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 [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=W8YFZ425KND68) [](https://www.npmjs.com/package/to-regex-range) [](https://npmjs.org/package/to-regex-range) [](https://npmjs.org/package/to-regex-range) [](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 [](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 [](https://www.npmjs.com/package/word-wrap) [](https://npmjs.org/package/word-wrap) [](https://npmjs.org/package/word-wrap) [](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://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> |