@deot/docs-client 1.1.0 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +62 -11
- package/dist/index.js +21086 -20808
- package/dist/index.style.css +1 -1
- package/package.json +3 -3
package/dist/index.cjs
CHANGED
|
@@ -3,11 +3,11 @@ let vue = require("vue");
|
|
|
3
3
|
let _deot_docs_locale = require("@deot/docs-locale");
|
|
4
4
|
let _deot_vc = require("@deot/vc");
|
|
5
5
|
let vue_router = require("vue-router");
|
|
6
|
+
let _deot_docs_markdown = require("@deot/docs-markdown");
|
|
6
7
|
let _deot_helper_cache = require("@deot/helper-cache");
|
|
7
8
|
let _deot_docs_theme = require("@deot/docs-theme");
|
|
8
9
|
let _deot_helper_fp = require("@deot/helper-fp");
|
|
9
10
|
let _deot_http = require("@deot/http");
|
|
10
|
-
let _deot_docs_markdown = require("@deot/docs-markdown");
|
|
11
11
|
let _deot_docs_renderer = require("@deot/docs-renderer");
|
|
12
12
|
let es_module_lexer = require("es-module-lexer");
|
|
13
13
|
let _deot_docs_playground = require("@deot/docs-playground");
|
|
@@ -5389,7 +5389,8 @@ var default_sidebar_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
5389
5389
|
__name: "default-sidebar",
|
|
5390
5390
|
props: {
|
|
5391
5391
|
items: {},
|
|
5392
|
-
nested: { type: Boolean }
|
|
5392
|
+
nested: { type: Boolean },
|
|
5393
|
+
depth: { default: 0 }
|
|
5393
5394
|
},
|
|
5394
5395
|
setup(__props) {
|
|
5395
5396
|
const route = (0, vue_router.useRoute)();
|
|
@@ -5403,7 +5404,10 @@ var default_sidebar_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
5403
5404
|
};
|
|
5404
5405
|
return (_ctx, _cache) => {
|
|
5405
5406
|
const _component_DefaultSidebar = (0, vue.resolveComponent)("DefaultSidebar", true);
|
|
5406
|
-
return (0, vue.openBlock)(), (0, vue.createElementBlock)("ul", {
|
|
5407
|
+
return (0, vue.openBlock)(), (0, vue.createElementBlock)("ul", {
|
|
5408
|
+
class: (0, vue.normalizeClass)(["docs-sidebar", { "docs-sidebar--nested": __props.nested }]),
|
|
5409
|
+
style: (0, vue.normalizeStyle)(__props.nested ? { "--docs-sidebar-depth": __props.depth } : void 0)
|
|
5410
|
+
}, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(__props.items, (item) => {
|
|
5407
5411
|
return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", {
|
|
5408
5412
|
key: `${item.label}:${item.value || ""}`,
|
|
5409
5413
|
class: "docs-sidebar__item"
|
|
@@ -5436,9 +5440,10 @@ var default_sidebar_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
5436
5440
|
])), item.children?.length ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_DefaultSidebar, {
|
|
5437
5441
|
key: 3,
|
|
5438
5442
|
items: item.children,
|
|
5439
|
-
nested: ""
|
|
5440
|
-
|
|
5441
|
-
|
|
5443
|
+
nested: "",
|
|
5444
|
+
depth: __props.depth + 1
|
|
5445
|
+
}, null, 8, ["items", "depth"])) : (0, vue.createCommentVNode)("v-if", true)]);
|
|
5446
|
+
}), 128))], 6);
|
|
5442
5447
|
};
|
|
5443
5448
|
}
|
|
5444
5449
|
});
|
|
@@ -5609,7 +5614,13 @@ var page_footer_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
5609
5614
|
//#region packages/client/src/utils/outline.ts
|
|
5610
5615
|
var markdownArticleKey = Symbol("docs-markdown-article");
|
|
5611
5616
|
var HEADING_SELECTOR = "h1[id], h2[id], h3[id], h4[id], h5[id], h6[id]";
|
|
5612
|
-
var SKIP_CLOSEST =
|
|
5617
|
+
var SKIP_CLOSEST = [
|
|
5618
|
+
"pre",
|
|
5619
|
+
".docs-markdown-code-preview",
|
|
5620
|
+
"[data-playground][data-code]",
|
|
5621
|
+
"[data-playground][data-files]",
|
|
5622
|
+
".docs-markdown-tabs__panel[hidden]"
|
|
5623
|
+
].join(", ");
|
|
5613
5624
|
/**
|
|
5614
5625
|
* 去掉 markdown-it-anchor 的井号后,读取标题的可见文案。
|
|
5615
5626
|
* @param element 当前标题节点。
|
|
@@ -5985,6 +5996,23 @@ var page_outline_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
5985
5996
|
}
|
|
5986
5997
|
});
|
|
5987
5998
|
//#endregion
|
|
5999
|
+
//#region packages/client/src/utils/query.ts
|
|
6000
|
+
/**
|
|
6001
|
+
* 复制 query 并去掉指定键,用于比较「内容导航」相关的 query 是否变化。
|
|
6002
|
+
* @param query 当前路由 query。
|
|
6003
|
+
* @param keys 需要忽略的键,例如 `tab`。
|
|
6004
|
+
* @returns 去掉指定键后的普通对象,便于 JSON.stringify。
|
|
6005
|
+
*/
|
|
6006
|
+
var omitRouteQuery = (query, keys) => {
|
|
6007
|
+
const ignored = new Set(keys);
|
|
6008
|
+
const next = {};
|
|
6009
|
+
Object.keys(query).forEach((key) => {
|
|
6010
|
+
if (ignored.has(key)) return;
|
|
6011
|
+
next[key] = query[key];
|
|
6012
|
+
});
|
|
6013
|
+
return next;
|
|
6014
|
+
};
|
|
6015
|
+
//#endregion
|
|
5988
6016
|
//#region packages/client/src/components/layout/resource-slot.vue?vue&type=script&setup=true&lang.ts
|
|
5989
6017
|
var _hoisted_1$13 = [
|
|
5990
6018
|
"data-slot",
|
|
@@ -6344,7 +6372,7 @@ var resource_slot_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
6344
6372
|
};
|
|
6345
6373
|
(0, vue.watch)([
|
|
6346
6374
|
() => route.path,
|
|
6347
|
-
() => JSON.stringify(route.query),
|
|
6375
|
+
() => JSON.stringify(omitRouteQuery(route.query, ["tab"])),
|
|
6348
6376
|
() => props.name
|
|
6349
6377
|
], load, { immediate: true });
|
|
6350
6378
|
(0, vue.watch)(() => route.hash, (hash) => {
|
|
@@ -7560,6 +7588,7 @@ var app_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
7560
7588
|
__name: "app",
|
|
7561
7589
|
setup(__props) {
|
|
7562
7590
|
const route = (0, vue_router.useRoute)();
|
|
7591
|
+
const router = (0, vue_router.useRouter)();
|
|
7563
7592
|
const { t } = (0, _deot_docs_locale.useLocale)();
|
|
7564
7593
|
const mainScroller = (0, vue.ref)();
|
|
7565
7594
|
const mobileSidebarOpen = (0, vue.ref)(false);
|
|
@@ -7574,7 +7603,24 @@ var app_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
7574
7603
|
const handleSidebarNavigation = (event) => {
|
|
7575
7604
|
if (event.target?.closest("a")) closeMobileSidebar();
|
|
7576
7605
|
};
|
|
7577
|
-
(0, vue.
|
|
7606
|
+
(0, vue.provide)(_deot_docs_markdown.markdownTabQueryKey, {
|
|
7607
|
+
get: () => {
|
|
7608
|
+
const value = route.query.tab;
|
|
7609
|
+
return typeof value === "string" ? value : Array.isArray(value) ? String(value[0] || "") : "";
|
|
7610
|
+
},
|
|
7611
|
+
set: (tab) => {
|
|
7612
|
+
const query = { ...route.query };
|
|
7613
|
+
if (tab) query.tab = tab;
|
|
7614
|
+
else delete query.tab;
|
|
7615
|
+
router.replace({
|
|
7616
|
+
path: route.path,
|
|
7617
|
+
query,
|
|
7618
|
+
hash: route.hash
|
|
7619
|
+
});
|
|
7620
|
+
},
|
|
7621
|
+
subscribe: (listener) => (0, vue.watch)(() => route.query.tab, () => listener())
|
|
7622
|
+
});
|
|
7623
|
+
(0, vue.watch)([() => route.path, () => JSON.stringify(omitRouteQuery(route.query, ["tab"]))], async () => {
|
|
7578
7624
|
closeMobileSidebar();
|
|
7579
7625
|
await (0, vue.nextTick)();
|
|
7580
7626
|
mainScroller.value?.setScrollTop(0);
|
|
@@ -7702,8 +7748,13 @@ var connectResourceEvents = () => {
|
|
|
7702
7748
|
return;
|
|
7703
7749
|
}
|
|
7704
7750
|
const configuredLanguages = Object.keys(config.locales);
|
|
7705
|
-
|
|
7706
|
-
|
|
7751
|
+
/**
|
|
7752
|
+
* 共享目录(docs/markdown.md)若被服务端误拆成 `{ lang: 'docs', source: './markdown.md' }`,
|
|
7753
|
+
* 仍还原成 Client 订阅使用的 logical source。
|
|
7754
|
+
*/
|
|
7755
|
+
const sharedSource = event.lang && !configuredLanguages.includes(event.lang) ? `${event.lang}/${event.source.replace(/^\.\//, "")}` : event.source;
|
|
7756
|
+
(event.lang && configuredLanguages.includes(event.lang) ? [event.lang] : configuredLanguages.length ? configuredLanguages : [getDefaultLanguage(config)]).forEach((lang) => {
|
|
7757
|
+
const identity = createResourceIdentity(config, lang, event.resourceType, sharedSource);
|
|
7707
7758
|
if (!Gateway.isSubscribed(identity) && !Gateway.isPrefetched(identity)) return;
|
|
7708
7759
|
revalidateSilently(identity);
|
|
7709
7760
|
});
|