mirror of
https://github.com/snowy-yang/qqbotsdk.git
synced 2026-10-21 09:05:21 +00:00
docsify 进子目录路由会先请求 <目录>/_sidebar.md,失败(404)才回退根 目录;Cloudflare Pages 无 404.html 时对缺失路径 SPA 回退返回 index.html 且状态 200,docsify 把 HTML 当侧栏 Markdown 解析,左侧目录卡在加载中。 alias 将 docs/、examples/ 的 _sidebar.md 请求映射回根目录 _sidebar.md。
94 lines
3.8 KiB
HTML
94 lines
3.8 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<title>qqbotsdk 文档</title>
|
||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<meta name="description" content="QQ 官方机器人 Python SDK:使用指南、API 参考、架构设计与示例">
|
||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsify@4/themes/vue.css">
|
||
<style>
|
||
/* mermaid 图居中并自适应宽度 */
|
||
.markdown-section .mermaid {
|
||
text-align: center;
|
||
}
|
||
.markdown-section .mermaid svg {
|
||
max-width: 100%;
|
||
height: auto;
|
||
}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<div id="app">加载中…</div>
|
||
|
||
<script>
|
||
window.$docsify = {
|
||
name: 'qqbotsdk',
|
||
repo: 'https://github.com/snowy-yang/qqbotsdk',
|
||
// 相对链接按当前页面所在目录解析(与 GitHub 行为一致),docs/*.md 的互链才能正确跳转
|
||
relativePath: true,
|
||
loadSidebar: true,
|
||
subMaxLevel: 3,
|
||
auto2top: true,
|
||
themeColor: '#0f8bff',
|
||
search: {
|
||
paths: 'auto',
|
||
placeholder: '搜索文档',
|
||
noData: '没有找到相关结果',
|
||
depth: 3,
|
||
},
|
||
copyCode: {
|
||
buttonText: '复制',
|
||
errorText: '复制失败',
|
||
successText: '已复制',
|
||
},
|
||
pagination: {
|
||
previousText: '上一页',
|
||
nextText: '下一页',
|
||
},
|
||
// README 里的 examples/ 链接指向示例索引页
|
||
alias: {
|
||
'/examples': '/examples/README.md',
|
||
'/examples/': '/examples/README.md',
|
||
// 子目录页面的 _sidebar.md 请求映射到根目录的:
|
||
// docsify 会先请求 <当前目录>/_sidebar.md,而 Cloudflare Pages 对
|
||
// 缺失文件回退 index.html 且状态 200,docsify 误当作侧栏解析导致目录空白
|
||
'/docs/_sidebar.md': '/_sidebar.md',
|
||
'/examples/_sidebar.md': '/_sidebar.md',
|
||
},
|
||
plugins: [
|
||
// 把 ```mermaid 代码块替换为 div 后交给 mermaid 渲染(架构图/时序图)
|
||
function (hook) {
|
||
hook.doneEach(function () {
|
||
var blocks = document.querySelectorAll('pre code.lang-mermaid, pre code.language-mermaid');
|
||
if (!blocks.length || !window.mermaid) return;
|
||
blocks.forEach(function (el) {
|
||
var pre = el.closest('pre') || el;
|
||
var div = document.createElement('div');
|
||
div.className = 'mermaid';
|
||
div.textContent = el.textContent;
|
||
pre.replaceWith(div);
|
||
});
|
||
mermaid.run({ querySelector: 'div.mermaid:not([data-processed])', suppressErrors: true });
|
||
});
|
||
},
|
||
],
|
||
};
|
||
</script>
|
||
|
||
<script src="https://cdn.jsdelivr.net/npm/docsify@4/lib/docsify.min.js"></script>
|
||
<!-- prism 语言包需在 docsify 之后引入(docsify 会重建 window.Prism,先加载会被覆盖) -->
|
||
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-python.min.js"></script>
|
||
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-toml.min.js"></script>
|
||
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-bash.min.js"></script>
|
||
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-ini.min.js"></script>
|
||
<script src="https://cdn.jsdelivr.net/npm/docsify@4/lib/plugins/search.min.js"></script>
|
||
<script src="https://cdn.jsdelivr.net/npm/docsify-copy-code@3/dist/docsify-copy-code.min.js"></script>
|
||
<script src="https://cdn.jsdelivr.net/npm/docsify-pagination@2/dist/docsify-pagination.min.js"></script>
|
||
<script src="https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.min.js"></script>
|
||
<script>
|
||
mermaid.initialize({ startOnLoad: false, securityLevel: 'loose' });
|
||
</script>
|
||
</body>
|
||
</html>
|