livemark 0.15.0 → 0.17.0
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/build/actions/config/define.d.ts +67 -3
- package/build/actions/config/define.js +3 -3
- package/build/actions/config/load.js +23 -2
- package/build/components/Layout.js +11 -4
- package/build/components/SidebarArticles.js +9 -9
- package/build/components/SidebarSections.js +11 -5
- package/build/content/article.d.ts +10 -10
- package/build/content/article.js +19 -17
- package/build/helpers/article.d.ts +1 -15
- package/build/helpers/article.js +1 -34
- package/build/helpers/resolve-base.d.ts +6 -0
- package/build/helpers/resolve-base.js +13 -0
- package/build/helpers/resolve-base.unit.d.ts +1 -0
- package/build/helpers/resolve-base.unit.js +49 -0
- package/build/helpers/section.d.ts +10 -2
- package/build/helpers/section.js +19 -2
- package/build/helpers/section.unit.js +32 -2
- package/build/models/article.d.ts +0 -9
- package/build/models/article.js +1 -2
- package/build/models/config.d.ts +62 -19
- package/build/models/config.js +9 -11
- package/build/models/patch.d.ts +0 -1
- package/build/models/section.d.ts +29 -6
- package/build/models/section.js +14 -3
- package/package.json +1 -1
- package/source/actions/config/define.ts +4 -6
- package/source/actions/config/load.ts +26 -6
- package/source/components/Layout.tsx +20 -5
- package/source/components/SidebarArticles.tsx +17 -24
- package/source/components/SidebarSections.tsx +23 -3
- package/source/content/article.ts +20 -26
- package/source/helpers/article.ts +1 -39
- package/source/helpers/resolve-base.ts +11 -0
- package/source/helpers/resolve-base.unit.ts +61 -0
- package/source/helpers/section.ts +18 -2
- package/source/helpers/section.unit.ts +43 -1
- package/source/models/article.ts +0 -10
- package/source/models/config.ts +32 -14
- package/source/models/section.ts +18 -2
|
@@ -1,6 +1,70 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import { UserConfig } from "../../models/config.ts";
|
|
1
|
+
import type { UserConfig } from "../../models/config.ts";
|
|
3
2
|
/**
|
|
4
3
|
* Validate and fill defaults for a partial config object.
|
|
5
4
|
*/
|
|
6
|
-
export declare function defineConfig(input:
|
|
5
|
+
export declare function defineConfig(input: UserConfig): {
|
|
6
|
+
site?: string | undefined;
|
|
7
|
+
base?: unknown;
|
|
8
|
+
favicon?: string | undefined;
|
|
9
|
+
logo?: string | undefined;
|
|
10
|
+
title: string;
|
|
11
|
+
description: string;
|
|
12
|
+
include: string | string[];
|
|
13
|
+
exclude?: string | string[] | undefined;
|
|
14
|
+
codeThemeLight: "ayu-light" | "catppuccin-latte" | "everforest-light" | "github-light" | "github-light-default" | "github-light-high-contrast" | "gruvbox-light-hard" | "gruvbox-light-medium" | "gruvbox-light-soft" | "horizon-bright" | "kanagawa-lotus" | "light-plus" | "material-theme-lighter" | "min-light" | "night-owl-light" | "one-light" | "rose-pine-dawn" | "slack-ochin" | "snazzy-light" | "solarized-light" | "vitesse-light";
|
|
15
|
+
codeThemeDark: "andromeeda" | "aurora-x" | "ayu-dark" | "ayu-mirage" | "catppuccin-frappe" | "catppuccin-macchiato" | "catppuccin-mocha" | "dark-plus" | "dracula" | "dracula-soft" | "everforest-dark" | "github-dark" | "github-dark-default" | "github-dark-dimmed" | "github-dark-high-contrast" | "gruvbox-dark-hard" | "gruvbox-dark-medium" | "gruvbox-dark-soft" | "horizon" | "houston" | "kanagawa-dragon" | "kanagawa-wave" | "laserwave" | "material-theme" | "material-theme-darker" | "material-theme-ocean" | "material-theme-palenight" | "min-dark" | "monokai" | "night-owl" | "nord" | "one-dark-pro" | "plastic" | "poimandres" | "red" | "rose-pine" | "rose-pine-moon" | "slack-dark" | "solarized-dark" | "synthwave-84" | "tokyo-night" | "vesper" | "vitesse-black" | "vitesse-dark";
|
|
16
|
+
links?: {
|
|
17
|
+
url: string;
|
|
18
|
+
title: string;
|
|
19
|
+
icon?: string | undefined;
|
|
20
|
+
prefix?: string | undefined;
|
|
21
|
+
position: "header" | "sidebar";
|
|
22
|
+
}[] | undefined;
|
|
23
|
+
sections?: ({
|
|
24
|
+
icon?: string | undefined;
|
|
25
|
+
title: string;
|
|
26
|
+
position: "header" | "sidebar";
|
|
27
|
+
type: "article";
|
|
28
|
+
prefix: string;
|
|
29
|
+
} | {
|
|
30
|
+
icon?: string | undefined;
|
|
31
|
+
title: string;
|
|
32
|
+
position: "header" | "sidebar";
|
|
33
|
+
type: "blog";
|
|
34
|
+
prefix: string;
|
|
35
|
+
} | {
|
|
36
|
+
icon?: string | undefined;
|
|
37
|
+
title: string;
|
|
38
|
+
position: "header" | "sidebar";
|
|
39
|
+
type: "changelog";
|
|
40
|
+
prefix: string;
|
|
41
|
+
source: string;
|
|
42
|
+
version?: boolean | undefined;
|
|
43
|
+
} | {
|
|
44
|
+
icon?: string | undefined;
|
|
45
|
+
title: string;
|
|
46
|
+
position: "header" | "sidebar";
|
|
47
|
+
type: "custom";
|
|
48
|
+
url: string;
|
|
49
|
+
})[] | undefined;
|
|
50
|
+
patches?: {
|
|
51
|
+
file: string;
|
|
52
|
+
article: {
|
|
53
|
+
title?: string | undefined;
|
|
54
|
+
label?: string | undefined;
|
|
55
|
+
description?: string | undefined;
|
|
56
|
+
icon?: string | undefined;
|
|
57
|
+
order?: number | undefined;
|
|
58
|
+
path?: string | undefined;
|
|
59
|
+
sidebar?: boolean | undefined;
|
|
60
|
+
toc?: boolean | undefined;
|
|
61
|
+
image?: string | undefined;
|
|
62
|
+
author?: string | string[] | undefined;
|
|
63
|
+
date?: string | undefined;
|
|
64
|
+
tags?: string[] | undefined;
|
|
65
|
+
sourceUrl?: string | undefined;
|
|
66
|
+
sourceAction?: "edit" | "view" | undefined;
|
|
67
|
+
};
|
|
68
|
+
}[] | undefined;
|
|
69
|
+
vite?: unknown;
|
|
70
|
+
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { UserConfig } from "../../models/config.js";
|
|
1
|
+
import { UserConfig as UserConfigSchema } from "../../models/config.js";
|
|
2
2
|
/**
|
|
3
3
|
* Validate and fill defaults for a partial config object.
|
|
4
4
|
*/
|
|
5
5
|
export function defineConfig(input) {
|
|
6
|
-
return
|
|
6
|
+
return UserConfigSchema.parse(input);
|
|
7
7
|
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc291cmNlL2FjdGlvbnMvY29uZmlnL2RlZmluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxJQUFJLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFHdkU7O0dBRUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLEtBQWlCO0lBQzVDLE9BQU8sZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO0FBQ3RDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVc2VyQ29uZmlnIGFzIFVzZXJDb25maWdTY2hlbWEgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbmZpZy50c1wiXG5pbXBvcnQgdHlwZSB7IFVzZXJDb25maWcgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbmZpZy50c1wiXG5cbi8qKlxuICogVmFsaWRhdGUgYW5kIGZpbGwgZGVmYXVsdHMgZm9yIGEgcGFydGlhbCBjb25maWcgb2JqZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lQ29uZmlnKGlucHV0OiBVc2VyQ29uZmlnKSB7XG4gIHJldHVybiBVc2VyQ29uZmlnU2NoZW1hLnBhcnNlKGlucHV0KVxufVxuIl19
|
|
@@ -9,7 +9,24 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
|
|
|
9
9
|
import { existsSync } from "node:fs";
|
|
10
10
|
import { dirname, resolve } from "node:path";
|
|
11
11
|
import { pathToFileURL } from "node:url";
|
|
12
|
+
import { resolveBase } from "../../helpers/resolve-base.js";
|
|
12
13
|
import { defineConfig } from "./define.js";
|
|
14
|
+
/** Map livemark CLI verbs to the Vite-equivalent `command` string used by
|
|
15
|
+
* `resolveBase()`. `preview` serves the production build's artifacts so
|
|
16
|
+
* it uses the build-mode base. Default to `"build"` for safety when no
|
|
17
|
+
* recognised verb is in argv (the common path is `livemark <verb> ...`). */
|
|
18
|
+
const COMMAND_BY_VERB = {
|
|
19
|
+
start: "serve",
|
|
20
|
+
build: "build",
|
|
21
|
+
preview: "build",
|
|
22
|
+
};
|
|
23
|
+
function detectCommand() {
|
|
24
|
+
for (const arg of process.argv.slice(2)) {
|
|
25
|
+
if (arg in COMMAND_BY_VERB)
|
|
26
|
+
return COMMAND_BY_VERB[arg];
|
|
27
|
+
}
|
|
28
|
+
return "build";
|
|
29
|
+
}
|
|
13
30
|
/**
|
|
14
31
|
* Load and validate a config file, checking --config/-c CLI arg, then cwd.
|
|
15
32
|
*
|
|
@@ -36,6 +53,10 @@ export async function loadConfig(path) {
|
|
|
36
53
|
throw new Error(`Config file not found: ${resolved}`);
|
|
37
54
|
}
|
|
38
55
|
const validated = defineConfig(input);
|
|
39
|
-
|
|
56
|
+
// Resolve the function form of `base` once, here, using the livemark
|
|
57
|
+
// CLI verb. Downstream consumers (Vite plugin, content-collections,
|
|
58
|
+
// runtime) get a plain string|undefined and never see the function.
|
|
59
|
+
const base = resolveBase(validated.base, detectCommand());
|
|
60
|
+
return { ...validated, base, root: dirname(resolved), configPath: resolved };
|
|
40
61
|
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NvdXJjZS9hY3Rpb25zL2NvbmZpZy9sb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUNwQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBRXhDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRTFDOzs7NkVBRzZFO0FBQzdFLE1BQU0sZUFBZSxHQUFzQztJQUN6RCxLQUFLLEVBQUUsT0FBTztJQUNkLEtBQUssRUFBRSxPQUFPO0lBQ2QsT0FBTyxFQUFFLE9BQU87Q0FDakIsQ0FBQTtBQUVELFNBQVMsYUFBYTtJQUNwQixLQUFLLE1BQU0sR0FBRyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDeEMsSUFBSSxHQUFHLElBQUksZUFBZTtZQUFFLE9BQU8sZUFBZSxDQUFDLEdBQUcsQ0FBRSxDQUFBO0lBQzFELENBQUM7SUFDRCxPQUFPLE9BQWdCLENBQUE7QUFDekIsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsVUFBVSxDQUFDLElBQWE7SUFDNUMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQ3hDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssVUFBVSxDQUNwQyxDQUFBO0lBQ0QsTUFBTSxPQUFPLEdBQUcsV0FBVyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFBO0lBQzlFLE1BQU0sUUFBUSxHQUFHLElBQUksSUFBSSxPQUFPLENBQUE7SUFDaEMsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSxvQkFBb0IsQ0FBQyxDQUFBO0lBQzFELElBQUksS0FBSyxHQUFlLEVBQUUsQ0FBQTtJQUMxQixJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3pCLHlFQUF5RTtRQUN6RSxNQUFNLEdBQUcsR0FBRyxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLE1BQU0sSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUE7UUFDN0QsTUFBTSxNQUFNLEdBQTRCLE1BQU0sTUFBTSxrQ0FBQyxHQUFHLEVBQUMsQ0FBQTtRQUN6RCxLQUFLLEdBQUksTUFBTSxDQUFDLE9BQXNCLElBQUksRUFBRSxDQUFBO0lBQzlDLENBQUM7U0FBTSxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLFFBQVEsRUFBRSxDQUFDLENBQUE7SUFDdkQsQ0FBQztJQUNELE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNyQyxxRUFBcUU7SUFDckUsb0VBQW9FO0lBQ3BFLG9FQUFvRTtJQUNwRSxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFBO0lBQ3pELE9BQU8sRUFBRSxHQUFHLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUE7QUFDOUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tIFwibm9kZTpmc1wiXG5pbXBvcnQgeyBkaXJuYW1lLCByZXNvbHZlIH0gZnJvbSBcIm5vZGU6cGF0aFwiXG5pbXBvcnQgeyBwYXRoVG9GaWxlVVJMIH0gZnJvbSBcIm5vZGU6dXJsXCJcbmltcG9ydCB0eXBlIHsgQ29uZmlnLCBVc2VyQ29uZmlnIH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb25maWcudHNcIlxuaW1wb3J0IHsgcmVzb2x2ZUJhc2UgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9yZXNvbHZlLWJhc2UudHNcIlxuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcIi4vZGVmaW5lLnRzXCJcblxuLyoqIE1hcCBsaXZlbWFyayBDTEkgdmVyYnMgdG8gdGhlIFZpdGUtZXF1aXZhbGVudCBgY29tbWFuZGAgc3RyaW5nIHVzZWQgYnlcbiAqICBgcmVzb2x2ZUJhc2UoKWAuIGBwcmV2aWV3YCBzZXJ2ZXMgdGhlIHByb2R1Y3Rpb24gYnVpbGQncyBhcnRpZmFjdHMgc29cbiAqICBpdCB1c2VzIHRoZSBidWlsZC1tb2RlIGJhc2UuIERlZmF1bHQgdG8gYFwiYnVpbGRcImAgZm9yIHNhZmV0eSB3aGVuIG5vXG4gKiAgcmVjb2duaXNlZCB2ZXJiIGlzIGluIGFyZ3YgKHRoZSBjb21tb24gcGF0aCBpcyBgbGl2ZW1hcmsgPHZlcmI+IC4uLmApLiAqL1xuY29uc3QgQ09NTUFORF9CWV9WRVJCOiBSZWNvcmQ8c3RyaW5nLCBcImJ1aWxkXCIgfCBcInNlcnZlXCI+ID0ge1xuICBzdGFydDogXCJzZXJ2ZVwiLFxuICBidWlsZDogXCJidWlsZFwiLFxuICBwcmV2aWV3OiBcImJ1aWxkXCIsXG59XG5cbmZ1bmN0aW9uIGRldGVjdENvbW1hbmQoKSB7XG4gIGZvciAoY29uc3QgYXJnIG9mIHByb2Nlc3MuYXJndi5zbGljZSgyKSkge1xuICAgIGlmIChhcmcgaW4gQ09NTUFORF9CWV9WRVJCKSByZXR1cm4gQ09NTUFORF9CWV9WRVJCW2FyZ10hXG4gIH1cbiAgcmV0dXJuIFwiYnVpbGRcIiBhcyBjb25zdFxufVxuXG4vKipcbiAqIExvYWQgYW5kIHZhbGlkYXRlIGEgY29uZmlnIGZpbGUsIGNoZWNraW5nIC0tY29uZmlnLy1jIENMSSBhcmcsIHRoZW4gY3dkLlxuICpcbiAqIElmIGEgcGF0aCBpcyBwcm92aWRlZCBleHBsaWNpdGx5IChhcmcgb3IgYC0tY29uZmlnYC9gLWNgKSBhbmQgdGhlXG4gKiBmaWxlIGlzIG1pc3NpbmcsIHRocm93cyDigJQgdGhlIHVzZXIgYXNrZWQgZm9yIGEgc3BlY2lmaWMgY29uZmlnIGFuZFxuICogaXQgaXNuJ3QgdGhlcmUuIElmIG5vIHBhdGggaXMgcHJvdmlkZWQgYW5kIG5vIGBsaXZlbWFyay5jb25maWcudHNgXG4gKiBleGlzdHMgaW4gY3dkLCBmYWxscyBiYWNrIHRvIHRoZSBkZWZhdWx0IGNvbmZpZyB3aXRoIGEgc3ludGhlc2l6ZWRcbiAqIGBjb25maWdQYXRoID0gPGN3ZD4vbGl2ZW1hcmsuY29uZmlnLnRzYCBzbyBkb3duc3RyZWFtIGNvZGUgKHRhcmdldFxuICogaGFzaCwgd2F0Y2hlcikgc3RpbGwgaGFzIGEgc3RhYmxlIHBlci1wcm9qZWN0IGtleS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRDb25maWcocGF0aD86IHN0cmluZyk6IFByb21pc2U8Q29uZmlnPiB7XG4gIGNvbnN0IGNvbmZpZ0luZGV4ID0gcHJvY2Vzcy5hcmd2LmZpbmRJbmRleChcbiAgICBhID0+IGEgPT09IFwiLWNcIiB8fCBhID09PSBcIi0tY29uZmlnXCIsXG4gIClcbiAgY29uc3QgY2xpUGF0aCA9IGNvbmZpZ0luZGV4ICE9PSAtMSA/IHByb2Nlc3MuYXJndltjb25maWdJbmRleCArIDFdIDogdW5kZWZpbmVkXG4gIGNvbnN0IGV4cGxpY2l0ID0gcGF0aCA/PyBjbGlQYXRoXG4gIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZShleHBsaWNpdCA/PyBcImxpdmVtYXJrLmNvbmZpZy50c1wiKVxuICBsZXQgaW5wdXQ6IFVzZXJDb25maWcgPSB7fVxuICBpZiAoZXhpc3RzU3luYyhyZXNvbHZlZCkpIHtcbiAgICAvLyBDYWNoZS1idXN0IHRoZSBFU00gaW1wb3J0IHNvIGRldi1zZXJ2ZXIgcmVzdGFydCByZWxvYWRzIGVkaXRzIG9uIGRpc2suXG4gICAgY29uc3QgdXJsID0gYCR7cGF0aFRvRmlsZVVSTChyZXNvbHZlZCkuaHJlZn0/dD0ke0RhdGUubm93KCl9YFxuICAgIGNvbnN0IG1vZHVsZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBhd2FpdCBpbXBvcnQodXJsKVxuICAgIGlucHV0ID0gKG1vZHVsZS5kZWZhdWx0IGFzIFVzZXJDb25maWcpID8/IHt9XG4gIH0gZWxzZSBpZiAoZXhwbGljaXQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENvbmZpZyBmaWxlIG5vdCBmb3VuZDogJHtyZXNvbHZlZH1gKVxuICB9XG4gIGNvbnN0IHZhbGlkYXRlZCA9IGRlZmluZUNvbmZpZyhpbnB1dClcbiAgLy8gUmVzb2x2ZSB0aGUgZnVuY3Rpb24gZm9ybSBvZiBgYmFzZWAgb25jZSwgaGVyZSwgdXNpbmcgdGhlIGxpdmVtYXJrXG4gIC8vIENMSSB2ZXJiLiBEb3duc3RyZWFtIGNvbnN1bWVycyAoVml0ZSBwbHVnaW4sIGNvbnRlbnQtY29sbGVjdGlvbnMsXG4gIC8vIHJ1bnRpbWUpIGdldCBhIHBsYWluIHN0cmluZ3x1bmRlZmluZWQgYW5kIG5ldmVyIHNlZSB0aGUgZnVuY3Rpb24uXG4gIGNvbnN0IGJhc2UgPSByZXNvbHZlQmFzZSh2YWxpZGF0ZWQuYmFzZSwgZGV0ZWN0Q29tbWFuZCgpKVxuICByZXR1cm4geyAuLi52YWxpZGF0ZWQsIGJhc2UsIHJvb3Q6IGRpcm5hbWUocmVzb2x2ZWQpLCBjb25maWdQYXRoOiByZXNvbHZlZCB9XG59XG4iXX0=
|
|
@@ -5,7 +5,7 @@ import { useHotkey } from "@tanstack/react-hotkeys";
|
|
|
5
5
|
import { currentSection, sectionFirstArticle, sectionFlatArticles, sortedArticles, } from "../content/article.js";
|
|
6
6
|
import { DynamicIcon } from "../helpers/dynamic-icon.js";
|
|
7
7
|
import { prefixUrl } from "../helpers/prefix-url.js";
|
|
8
|
-
import { sectionIcon } from "../helpers/section.js";
|
|
8
|
+
import { customSectionActive, sectionIcon } from "../helpers/section.js";
|
|
9
9
|
import { SidebarInset, SidebarProvider, SidebarTrigger, useSidebar, } from "../elements/sidebar.js";
|
|
10
10
|
import { BackToTop } from "./BackToTop.js";
|
|
11
11
|
import { Banner } from "./Banner.js";
|
|
@@ -29,6 +29,14 @@ export function Layout(props) {
|
|
|
29
29
|
] })) : (_jsx(Link, { to: "/", className: "flex items-center gap-2", children: _jsx(SiteTitle, {}) })) }), _jsxs("div", { className: "hidden md:flex flex-1 items-center gap-8 self-stretch px-6 text-sm", children: [sections?.length ? (sections
|
|
30
30
|
.filter(section => section.position === "header")
|
|
31
31
|
.map(section => {
|
|
32
|
+
const icon = sectionIcon(section);
|
|
33
|
+
if (section.type === "custom") {
|
|
34
|
+
const isActive = customSectionActive(section.url, pathname);
|
|
35
|
+
return (_jsxs("a", { href: prefixUrl(section.url, config.base), className: `inline-flex items-center gap-1.5 text-foreground ${isActive
|
|
36
|
+
? "font-medium border-b-2 border-foreground pb-0.5 -mb-0.5"
|
|
37
|
+
: "opacity-80 hover:opacity-100 transition-opacity"}`, children: [icon && _jsx(DynamicIcon, { name: icon, className: "size-3.5" }), _jsx("span", { children: section.title })
|
|
38
|
+
] }, section.url));
|
|
39
|
+
}
|
|
32
40
|
const isActive = activeSection?.prefix === section.prefix;
|
|
33
41
|
const target = section.type === "blog" || section.type === "changelog"
|
|
34
42
|
? section.prefix
|
|
@@ -38,8 +46,7 @@ export function Layout(props) {
|
|
|
38
46
|
: undefined;
|
|
39
47
|
return (_jsxs(Link, { to: target === "/" ? "/" : "/$", params: target && target !== "/" ? splatFor(target) : {}, className: `inline-flex items-center gap-1.5 text-foreground ${isActive
|
|
40
48
|
? "font-medium border-b-2 border-foreground pb-0.5 -mb-0.5"
|
|
41
|
-
: "opacity-80 hover:opacity-100 transition-opacity"}`, children: [
|
|
42
|
-
_jsx(DynamicIcon, { name: sectionIcon(section), className: "size-3.5" }), _jsxs("span", { children: [section.title, latestVersion && (_jsxs("span", { className: "opacity-80", children: [" (", latestVersion, ")"] }))] })
|
|
49
|
+
: "opacity-80 hover:opacity-100 transition-opacity"}`, children: [icon && _jsx(DynamicIcon, { name: icon, className: "size-3.5" }), _jsxs("span", { children: [section.title, latestVersion && (_jsxs("span", { className: "opacity-80", children: [" (", latestVersion, ")"] }))] })
|
|
43
50
|
] }, section.prefix));
|
|
44
51
|
})) : (_jsx(Link, { to: "/", className: "text-foreground font-medium underline underline-offset-4", children: "Docs" })), config.links
|
|
45
52
|
?.filter(link => link.position === "header" &&
|
|
@@ -62,4 +69,4 @@ function SidebarShell(props) {
|
|
|
62
69
|
] })
|
|
63
70
|
] }));
|
|
64
71
|
}
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5b3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvTGF5b3V0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUNuRCxPQUFPLEVBQ0wsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsY0FBYyxHQUNmLE1BQU0sdUJBQXVCLENBQUE7QUFDOUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE2QixDQUFBO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDbkQsT0FBTyxFQUNMLFlBQVksRUFDWixlQUFlLEVBQ2YsY0FBYyxFQUNkLFVBQVUsR0FDWCxNQUFNLHdCQUF5QixDQUFBO0FBQ2hDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBaUIsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYyxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFlLENBQUE7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFpQixDQUFBO0FBRTNDLFNBQVMsUUFBUSxDQUFDLFFBQWdCO0lBQ2hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQTtBQUNyRCxDQUFDO0FBRUQsTUFBTSxVQUFVLE1BQU0sQ0FBQyxLQUd0QjtJQUNDLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxFQUFFLE1B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QUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29uZmlnIH0gZnJvbSBcImxpdmVtYXJrOnZpcnR1YWxcIlxuaW1wb3J0IHsgTGluaywgdXNlTG9jYXRpb24sIHVzZU1hdGNoIH0gZnJvbSBcIkB0YW5zdGFjay9yZWFjdC1yb3V0ZXJcIlxuaW1wb3J0IHsgdXNlSG90a2V5IH0gZnJvbSBcIkB0YW5zdGFjay9yZWFjdC1ob3RrZXlzXCJcbmltcG9ydCB7XG4gIGN1cnJlbnRTZWN0aW9uLFxuICBzZWN0aW9uRmlyc3RBcnRpY2xlLFxuICBzZWN0aW9uRmxhdEFydGljbGVzLFxuICBzb3J0ZWRBcnRpY2xlcyxcbn0gZnJvbSBcIi4uL2NvbnRlbnQvYXJ0aWNsZS50c1wiXG5pbXBvcnQgeyBEeW5hbWljSWNvbiB9IGZyb20gXCIuLi9oZWxwZXJzL2R5bmFtaWMtaWNvbi50c3hcIlxuaW1wb3J0IHsgcHJlZml4VXJsIH0gZnJvbSBcIi4uL2hlbHBlcnMvcHJlZml4LXVybC50c1wiXG5pbXBvcnQgeyBzZWN0aW9uSWNvbiB9IGZyb20gXCIuLi9oZWxwZXJzL3NlY3Rpb24udHNcIlxuaW1wb3J0IHtcbiAgU2lkZWJhckluc2V0LFxuICBTaWRlYmFyUHJvdmlkZXIsXG4gIFNpZGViYXJUcmlnZ2VyLFxuICB1c2VTaWRlYmFyLFxufSBmcm9tIFwiLi4vZWxlbWVudHMvc2lkZWJhci50c3hcIlxuaW1wb3J0IHsgQmFja1RvVG9wIH0gZnJvbSBcIi4vQmFja1RvVG9wLnRzeFwiXG5pbXBvcnQgeyBCYW5uZXIgfSBmcm9tIFwiLi9CYW5uZXIudHN4XCJcbmltcG9ydCB7IFNpZGViYXIgfSBmcm9tIFwiLi9TaWRlYmFyLnRzeFwiXG5pbXBvcnQgeyBTaXRlVGl0bGUgfSBmcm9tIFwiLi9TaXRlVGl0bGUudHN4XCJcblxuZnVuY3Rpb24gc3BsYXRGb3IocGF0aG5hbWU6IHN0cmluZykge1xuICByZXR1cm4geyBfc3BsYXQ6IHBhdGhuYW1lLnJlcGxhY2UoL15cXC98XFwvJC9nLCBcIlwiKSB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBMYXlvdXQocHJvcHM6IHtcbiAgd2l0aFNpZGViYXI/OiBib29sZWFuXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlXG59KSB7XG4gIGNvbnN0IHBhdGhuYW1lID0gdXNlTG9jYXRpb24oeyBzZWxlY3Q6IGwgPT4gbC5wYXRobmFtZSB9KVxuICBjb25zdCBhcnRpY2xlUm91dGUgPSB1c2VNYXRjaCh7IGZyb206IFwiLyRcIiwgc2hvdWxkVGhyb3c6IGZhbHNlIH0pXG4gIGNvbnN0IGFjdGl2ZVNlY3Rpb24gPSBhcnRpY2xlUm91dGVcbiAgICA/IGN1cnJlbnRTZWN0aW9uKGAvJHtwYXRobmFtZS5yZXBsYWNlKC9eXFwvfFxcLyQvZywgXCJcIil9L2ApXG4gICAgOiB1bmRlZmluZWRcblxuICB1c2VIb3RrZXkoXCJKXCIsICgpID0+XG4gICAgd2luZG93LnNjcm9sbEJ5KHsgdG9wOiB3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjgsIGJlaGF2aW9yOiBcInNtb290aFwiIH0pLFxuICApXG4gIHVzZUhvdGtleShcIktcIiwgKCkgPT5cbiAgICB3aW5kb3cuc2Nyb2xsQnkoeyB0b3A6IC13aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjgsIGJlaGF2aW9yOiBcInNtb290aFwiIH0pLFxuICApXG5cbiAgY29uc3Qgc2VjdGlvbnMgPSBjb25maWcuc2VjdGlvbnNcblxuICBjb25zdCBoZWFkZXIgPSAoXG4gICAgPGhlYWRlciBjbGFzc05hbWU9XCJzdGlja3kgdG9wLTAgei0yMCBmbGV4IGgtMTYgc2hyaW5rLTAgaXRlbXMtY2VudGVyIGJvcmRlci1iIGJnLWJhY2tncm91bmRcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXtgZmxleCBpdGVtcy1jZW50ZXIgc2VsZi1zdHJldGNoIHBsLTQgJHtwcm9wcy53aXRoU2lkZWJhciA/IFwicHItNFwiIDogXCJtZDpwci0yMFwifWB9XG4gICAgICA+XG4gICAgICAgIHtwcm9wcy53aXRoU2lkZWJhciA/IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoaWRkZW4gbWQ6ZmxleFwiPlxuICAgICAgICAgICAgICA8U2lkZWJhclRyaWdnZXIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPExpbmsgdG89XCIvXCIgY2xhc3NOYW1lPVwibWQ6aGlkZGVuIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgICAgIDxTaXRlVGl0bGUgLz5cbiAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8TGluayB0bz1cIi9cIiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgPFNpdGVUaXRsZSAvPlxuICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJoaWRkZW4gbWQ6ZmxleCBmbGV4LTEgaXRlbXMtY2VudGVyIGdhcC04IHNlbGYtc3RyZXRjaCBweC02IHRleHQtc21cIj5cbiAgICAgICAge3NlY3Rpb25zPy5sZW5ndGggPyAoXG4gICAgICAgICAgc2VjdGlvbnNcbiAgICAgICAgICAgIC5maWx0ZXIoc2VjdGlvbiA9PiBzZWN0aW9uLnBvc2l0aW9uID09PSBcImhlYWRlclwiKVxuICAgICAgICAgICAgLm1hcChzZWN0aW9uID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgaXNBY3RpdmUgPSBhY3RpdmVTZWN0aW9uPy5wcmVmaXggPT09IHNlY3Rpb24ucHJlZml4XG4gICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9XG4gICAgICAgICAgICAgICAgc2VjdGlvbi50eXBlID09PSBcImJsb2dcIiB8fCBzZWN0aW9uLnR5cGUgPT09IFwiY2hhbmdlbG9nXCJcbiAgICAgICAgICAgICAgICAgID8gc2VjdGlvbi5wcmVmaXhcbiAgICAgICAgICAgICAgICAgIDogc2VjdGlvbkZpcnN0QXJ0aWNsZS5nZXQoc2VjdGlvbi5wcmVmaXgpXG4gICAgICAgICAgICAgIGNvbnN0IGxhdGVzdFZlcnNpb24gPVxuICAgICAgICAgICAgICAgIHNlY3Rpb24udHlwZSA9PT0gXCJjaGFuZ2Vsb2dcIiAmJiBzZWN0aW9uLnZlcnNpb25cbiAgICAgICAgICAgICAgICAgID8gc29ydGVkQXJ0aWNsZXMuZmluZChcbiAgICAgICAgICAgICAgICAgICAgICBhID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBhLnBhdGggPT09IHNlY3Rpb25GbGF0QXJ0aWNsZXMuZ2V0KHNlY3Rpb24ucHJlZml4KT8uWzBdLFxuICAgICAgICAgICAgICAgICAgICApPy50aXRsZVxuICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8TGlua1xuICAgICAgICAgICAgICAgICAga2V5PXtzZWN0aW9uLnByZWZpeH1cbiAgICAgICAgICAgICAgICAgIHRvPXt0YXJnZXQgPT09IFwiL1wiID8gXCIvXCIgOiBcIi8kXCJ9XG4gICAgICAgICAgICAgICAgICBwYXJhbXM9e3RhcmdldCAmJiB0YXJnZXQgIT09IFwiL1wiID8gc3BsYXRGb3IodGFyZ2V0KSA6IHt9fVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGdhcC0xLjUgdGV4dC1mb3JlZ3JvdW5kICR7XG4gICAgICAgICAgICAgICAgICAgIGlzQWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgPyBcImZvbnQtbWVkaXVtIGJvcmRlci1iLTIgYm9yZGVyLWZvcmVncm91bmQgcGItMC41IC1tYi0wLjVcIlxuICAgICAgICAgICAgICAgICAgICAgIDogXCJvcGFjaXR5LTgwIGhvdmVyOm9wYWNpdHktMTAwIHRyYW5zaXRpb24tb3BhY2l0eVwiXG4gICAgICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8RHluYW1pY0ljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17c2VjdGlvbkljb24oc2VjdGlvbil9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInNpemUtMy41XCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICAgICAge3NlY3Rpb24udGl0bGV9XG4gICAgICAgICAgICAgICAgICAgIHtsYXRlc3RWZXJzaW9uICYmIChcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJvcGFjaXR5LTgwXCI+ICh7bGF0ZXN0VmVyc2lvbn0pPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8TGlua1xuICAgICAgICAgICAgdG89XCIvXCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtZm9yZWdyb3VuZCBmb250LW1lZGl1bSB1bmRlcmxpbmUgdW5kZXJsaW5lLW9mZnNldC00XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBEb2NzXG4gICAgICAgICAgPC9MaW5rPlxuICAgICAgICApfVxuICAgICAgICB7Y29uZmlnLmxpbmtzXG4gICAgICAgICAgPy5maWx0ZXIoXG4gICAgICAgICAgICBsaW5rID0+XG4gICAgICAgICAgICAgIGxpbmsucG9zaXRpb24gPT09IFwiaGVhZGVyXCIgJiZcbiAgICAgICAgICAgICAgKCFsaW5rLnByZWZpeCB8fCBsaW5rLnByZWZpeCA9PT0gYWN0aXZlU2VjdGlvbj8ucHJlZml4KSxcbiAgICAgICAgICApXG4gICAgICAgICAgLm1hcChsaW5rID0+IChcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIGtleT17bGluay51cmx9XG4gICAgICAgICAgICAgIGhyZWY9e3ByZWZpeFVybChsaW5rLnVybCwgY29uZmlnLmJhc2UpfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LWZvcmVncm91bmQgb3BhY2l0eS04MCBob3ZlcjpvcGFjaXR5LTEwMCB0cmFuc2l0aW9uLW9wYWNpdHlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7bGluay5pY29uICYmIChcbiAgICAgICAgICAgICAgICA8RHluYW1pY0ljb25cbiAgICAgICAgICAgICAgICAgIG5hbWU9e2xpbmsuaWNvbn1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImlubGluZSBzaXplLTMuNSBhbGlnbi1bLTAuMTI1ZW1dXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfXtcIiBcIn1cbiAgICAgICAgICAgICAge2xpbmsudGl0bGV9XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDxCYW5uZXIgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtZDpoaWRkZW4gbWwtYXV0byBwci0yXCI+XG4gICAgICAgIDxTaWRlYmFyVHJpZ2dlciAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9oZWFkZXI+XG4gIClcblxuICByZXR1cm4gKFxuICAgIDxTaWRlYmFyUHJvdmlkZXJcbiAgICAgIGtleT17cHJvcHMud2l0aFNpZGViYXIgPyBcInNpZGViYXJcIiA6IFwibWluaVwifVxuICAgICAgZGVmYXVsdE9wZW49eyEhcHJvcHMud2l0aFNpZGViYXJ9XG4gICAgPlxuICAgICAgPFNpZGViYXJTaGVsbCB3aXRoU2lkZWJhcj17cHJvcHMud2l0aFNpZGViYXJ9IGhlYWRlcj17aGVhZGVyfT5cbiAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgPC9TaWRlYmFyU2hlbGw+XG4gICAgPC9TaWRlYmFyUHJvdmlkZXI+XG4gIClcbn1cblxuZnVuY3Rpb24gU2lkZWJhclNoZWxsKHByb3BzOiB7XG4gIHdpdGhTaWRlYmFyPzogYm9vbGVhblxuICBoZWFkZXI6IFJlYWN0LlJlYWN0Tm9kZVxuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZVxufSkge1xuICBjb25zdCB7IGlzTW9iaWxlLCBzZXRPcGVuTW9iaWxlIH0gPSB1c2VTaWRlYmFyKClcbiAgY29uc3Qgb25DbGljayA9IChldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICBpZiAoIWlzTW9iaWxlKSByZXR1cm5cbiAgICBpZiAoKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xvc2VzdChcImFcIikpIHNldE9wZW5Nb2JpbGUoZmFsc2UpXG4gIH1cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6IFwiY29udGVudHNcIiB9fSBvbkNsaWNrPXtvbkNsaWNrfT5cbiAgICAgIDxTaWRlYmFyIHdpdGhTaWRlYmFyPXtwcm9wcy53aXRoU2lkZWJhcn0gLz5cbiAgICAgIDxTaWRlYmFySW5zZXQ+XG4gICAgICAgIHtwcm9wcy5oZWFkZXJ9XG4gICAgICAgIDxtYWluIGNsYXNzTmFtZT1cImZsZXgtMVwiPntwcm9wcy5jaGlsZHJlbn08L21haW4+XG4gICAgICAgIDxCYWNrVG9Ub3AgLz5cbiAgICAgIDwvU2lkZWJhckluc2V0PlxuICAgIDwvZGl2PlxuICApXG59XG4iXX0=
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5b3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvTGF5b3V0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUNuRCxPQUFPLEVBQ0wsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsY0FBYyxHQUNmLE1BQU0sdUJBQXVCLENBQUE7QUFDOUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE2QixDQUFBO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDeEUsT0FBTyxFQUNMLFlBQVksRUFDWixlQUFlLEVBQ2YsY0FBYyxFQUNkLFVBQVUsR0FDWCxNQUFNLHdCQUF5QixDQUFBO0FBQ2hDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBaUIsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYyxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFlLENBQUE7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFpQixDQUFBO0FBRTNDLFNBQVMsUUFBUSxDQUFDLFFBQWdCO0lBQ2hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQTtBQUNyRCxDQUFDO0FBRUQsTUFBTSxVQUFVLE1BQU0sQ0FBQyxLQUd0QjtJQUNDLE1BQU0sUUFBUSxHQUFHLFdBQVcs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RUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLEdBQUcsVUFBVSxFQUFFLENBQUE7SUFDaEQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUF1QyxFQUFFLEVBQUU7UUFDMUQsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFNO1FBQ3JCLElBQUssS0FBSyxDQUFDLE1BQXNCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUN0RSxDQUFDLENBQUE7SUFDRCxPQUFPLENBQ0wsZUFBSyxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU87WUFDbkQsS0FBQyxPQUFPLElBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLEdBQUksRUFDM0MsTUFBQyxZQUFZLGVBQ1YsS0FBSyxDQUFDLE1BQU0sRUFDYixlQUFNLFNBQVMsRUFBQyxRQUFRLFlBQUUsS0FBSyxDQUFDLFFBQVEsR0FBUSxFQUNoRCxLQUFDLFNBQVMsS0FBRztvQkFDQTtZQUNYLENBQ1AsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb25maWcgfSBmcm9tIFwibGl2ZW1hcms6dmlydHVhbFwiXG5pbXBvcnQgeyBMaW5rLCB1c2VMb2NhdGlvbiwgdXNlTWF0Y2ggfSBmcm9tIFwiQHRhbnN0YWNrL3JlYWN0LXJvdXRlclwiXG5pbXBvcnQgeyB1c2VIb3RrZXkgfSBmcm9tIFwiQHRhbnN0YWNrL3JlYWN0LWhvdGtleXNcIlxuaW1wb3J0IHtcbiAgY3VycmVudFNlY3Rpb24sXG4gIHNlY3Rpb25GaXJzdEFydGljbGUsXG4gIHNlY3Rpb25GbGF0QXJ0aWNsZXMsXG4gIHNvcnRlZEFydGljbGVzLFxufSBmcm9tIFwiLi4vY29udGVudC9hcnRpY2xlLnRzXCJcbmltcG9ydCB7IER5bmFtaWNJY29uIH0gZnJvbSBcIi4uL2hlbHBlcnMvZHluYW1pYy1pY29uLnRzeFwiXG5pbXBvcnQgeyBwcmVmaXhVcmwgfSBmcm9tIFwiLi4vaGVscGVycy9wcmVmaXgtdXJsLnRzXCJcbmltcG9ydCB7IGN1c3RvbVNlY3Rpb25BY3RpdmUsIHNlY3Rpb25JY29uIH0gZnJvbSBcIi4uL2hlbHBlcnMvc2VjdGlvbi50c1wiXG5pbXBvcnQge1xuICBTaWRlYmFySW5zZXQsXG4gIFNpZGViYXJQcm92aWRlcixcbiAgU2lkZWJhclRyaWdnZXIsXG4gIHVzZVNpZGViYXIsXG59IGZyb20gXCIuLi9lbGVtZW50cy9zaWRlYmFyLnRzeFwiXG5pbXBvcnQgeyBCYWNrVG9Ub3AgfSBmcm9tIFwiLi9CYWNrVG9Ub3AudHN4XCJcbmltcG9ydCB7IEJhbm5lciB9IGZyb20gXCIuL0Jhbm5lci50c3hcIlxuaW1wb3J0IHsgU2lkZWJhciB9IGZyb20gXCIuL1NpZGViYXIudHN4XCJcbmltcG9ydCB7IFNpdGVUaXRsZSB9IGZyb20gXCIuL1NpdGVUaXRsZS50c3hcIlxuXG5mdW5jdGlvbiBzcGxhdEZvcihwYXRobmFtZTogc3RyaW5nKSB7XG4gIHJldHVybiB7IF9zcGxhdDogcGF0aG5hbWUucmVwbGFjZSgvXlxcL3xcXC8kL2csIFwiXCIpIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIExheW91dChwcm9wczoge1xuICB3aXRoU2lkZWJhcj86IGJvb2xlYW5cbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGVcbn0pIHtcbiAgY29uc3QgcGF0aG5hbWUgPSB1c2VMb2NhdGlvbih7IHNlbGVjdDogbCA9PiBsLnBhdGhuYW1lIH0pXG4gIGNvbnN0IGFydGljbGVSb3V0ZSA9IHVzZU1hdGNoKHsgZnJvbTogXCIvJFwiLCBzaG91bGRUaHJvdzogZmFsc2UgfSlcbiAgY29uc3QgYWN0aXZlU2VjdGlvbiA9IGFydGljbGVSb3V0ZVxuICAgID8gY3VycmVudFNlY3Rpb24oYC8ke3BhdGhuYW1lLnJlcGxhY2UoL15cXC98XFwvJC9nLCBcIlwiKX0vYClcbiAgICA6IHVuZGVmaW5lZFxuXG4gIHVzZUhvdGtleShcIkpcIiwgKCkgPT5cbiAgICB3aW5kb3cuc2Nyb2xsQnkoeyB0b3A6IHdpbmRvdy5pbm5lckhlaWdodCAqIDAuOCwgYmVoYXZpb3I6IFwic21vb3RoXCIgfSksXG4gIClcbiAgdXNlSG90a2V5KFwiS1wiLCAoKSA9PlxuICAgIHdpbmRvdy5zY3JvbGxCeSh7IHRvcDogLXdpbmRvdy5pbm5lckhlaWdodCAqIDAuOCwgYmVoYXZpb3I6IFwic21vb3RoXCIgfSksXG4gIClcblxuICBjb25zdCBzZWN0aW9ucyA9IGNvbmZpZy5zZWN0aW9uc1xuXG4gIGNvbnN0IGhlYWRlciA9IChcbiAgICA8aGVhZGVyIGNsYXNzTmFtZT1cInN0aWNreSB0b3AtMCB6LTIwIGZsZXggaC0xNiBzaHJpbmstMCBpdGVtcy1jZW50ZXIgYm9yZGVyLWIgYmctYmFja2dyb3VuZFwiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9e2BmbGV4IGl0ZW1zLWNlbnRlciBzZWxmLXN0cmV0Y2ggcGwtNCAke3Byb3BzLndpdGhTaWRlYmFyID8gXCJwci00XCIgOiBcIm1kOnByLTIwXCJ9YH1cbiAgICAgID5cbiAgICAgICAge3Byb3BzLndpdGhTaWRlYmFyID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImhpZGRlbiBtZDpmbGV4XCI+XG4gICAgICAgICAgICAgIDxTaWRlYmFyVHJpZ2dlciAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8TGluayB0bz1cIi9cIiBjbGFzc05hbWU9XCJtZDpoaWRkZW4gZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgPFNpdGVUaXRsZSAvPlxuICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxMaW5rIHRvPVwiL1wiIGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgICA8U2l0ZVRpdGxlIC8+XG4gICAgICAgICAgPC9MaW5rPlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImhpZGRlbiBtZDpmbGV4IGZsZXgtMSBpdGVtcy1jZW50ZXIgZ2FwLTggc2VsZi1zdHJldGNoIHB4LTYgdGV4dC1zbVwiPlxuICAgICAgICB7c2VjdGlvbnM/Lmxlbmd0aCA/IChcbiAgICAgICAgICBzZWN0aW9uc1xuICAgICAgICAgICAgLmZpbHRlcihzZWN0aW9uID0+IHNlY3Rpb24ucG9zaXRpb24gPT09IFwiaGVhZGVyXCIpXG4gICAgICAgICAgICAubWFwKHNlY3Rpb24gPT4ge1xuICAgICAgICAgICAgICBjb25zdCBpY29uID0gc2VjdGlvbkljb24oc2VjdGlvbilcbiAgICAgICAgICAgICAgaWYgKHNlY3Rpb24udHlwZSA9PT0gXCJjdXN0b21cIikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzQWN0aXZlID0gY3VzdG9tU2VjdGlvbkFjdGl2ZShzZWN0aW9uLnVybCwgcGF0aG5hbWUpXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIGtleT17c2VjdGlvbi51cmx9XG4gICAgICAgICAgICAgICAgICAgIGhyZWY9e3ByZWZpeFVybChzZWN0aW9uLnVybCwgY29uZmlnLmJhc2UpfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2BpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEuNSB0ZXh0LWZvcmVncm91bmQgJHtcbiAgICAgICAgICAgICAgICAgICAgICBpc0FjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBcImZvbnQtbWVkaXVtIGJvcmRlci1iLTIgYm9yZGVyLWZvcmVncm91bmQgcGItMC41IC1tYi0wLjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgOiBcIm9wYWNpdHktODAgaG92ZXI6b3BhY2l0eS0xMDAgdHJhbnNpdGlvbi1vcGFjaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtpY29uICYmIDxEeW5hbWljSWNvbiBuYW1lPXtpY29ufSBjbGFzc05hbWU9XCJzaXplLTMuNVwiIC8+fVxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57c2VjdGlvbi50aXRsZX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnN0IGlzQWN0aXZlID0gYWN0aXZlU2VjdGlvbj8ucHJlZml4ID09PSBzZWN0aW9uLnByZWZpeFxuICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPVxuICAgICAgICAgICAgICAgIHNlY3Rpb24udHlwZSA9PT0gXCJibG9nXCIgfHwgc2VjdGlvbi50eXBlID09PSBcImNoYW5nZWxvZ1wiXG4gICAgICAgICAgICAgICAgICA/IHNlY3Rpb24ucHJlZml4XG4gICAgICAgICAgICAgICAgICA6IHNlY3Rpb25GaXJzdEFydGljbGUuZ2V0KHNlY3Rpb24ucHJlZml4KVxuICAgICAgICAgICAgICBjb25zdCBsYXRlc3RWZXJzaW9uID1cbiAgICAgICAgICAgICAgICBzZWN0aW9uLnR5cGUgPT09IFwiY2hhbmdlbG9nXCIgJiYgc2VjdGlvbi52ZXJzaW9uXG4gICAgICAgICAgICAgICAgICA/IHNvcnRlZEFydGljbGVzLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgICAgYSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgYS5wYXRoID09PSBzZWN0aW9uRmxhdEFydGljbGVzLmdldChzZWN0aW9uLnByZWZpeCk/LlswXSxcbiAgICAgICAgICAgICAgICAgICAgKT8udGl0bGVcbiAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPExpbmtcbiAgICAgICAgICAgICAgICAgIGtleT17c2VjdGlvbi5wcmVmaXh9XG4gICAgICAgICAgICAgICAgICB0bz17dGFyZ2V0ID09PSBcIi9cIiA/IFwiL1wiIDogXCIvJFwifVxuICAgICAgICAgICAgICAgICAgcGFyYW1zPXt0YXJnZXQgJiYgdGFyZ2V0ICE9PSBcIi9cIiA/IHNwbGF0Rm9yKHRhcmdldCkgOiB7fX1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YGlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBnYXAtMS41IHRleHQtZm9yZWdyb3VuZCAke1xuICAgICAgICAgICAgICAgICAgICBpc0FjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgID8gXCJmb250LW1lZGl1bSBib3JkZXItYi0yIGJvcmRlci1mb3JlZ3JvdW5kIHBiLTAuNSAtbWItMC41XCJcbiAgICAgICAgICAgICAgICAgICAgICA6IFwib3BhY2l0eS04MCBob3ZlcjpvcGFjaXR5LTEwMCB0cmFuc2l0aW9uLW9wYWNpdHlcIlxuICAgICAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2ljb24gJiYgPER5bmFtaWNJY29uIG5hbWU9e2ljb259IGNsYXNzTmFtZT1cInNpemUtMy41XCIgLz59XG4gICAgICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICAgICAge3NlY3Rpb24udGl0bGV9XG4gICAgICAgICAgICAgICAgICAgIHtsYXRlc3RWZXJzaW9uICYmIChcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJvcGFjaXR5LTgwXCI+ICh7bGF0ZXN0VmVyc2lvbn0pPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8TGlua1xuICAgICAgICAgICAgdG89XCIvXCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtZm9yZWdyb3VuZCBmb250LW1lZGl1bSB1bmRlcmxpbmUgdW5kZXJsaW5lLW9mZnNldC00XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBEb2NzXG4gICAgICAgICAgPC9MaW5rPlxuICAgICAgICApfVxuICAgICAgICB7Y29uZmlnLmxpbmtzXG4gICAgICAgICAgPy5maWx0ZXIoXG4gICAgICAgICAgICBsaW5rID0+XG4gICAgICAgICAgICAgIGxpbmsucG9zaXRpb24gPT09IFwiaGVhZGVyXCIgJiZcbiAgICAgICAgICAgICAgKCFsaW5rLnByZWZpeCB8fCBsaW5rLnByZWZpeCA9PT0gYWN0aXZlU2VjdGlvbj8ucHJlZml4KSxcbiAgICAgICAgICApXG4gICAgICAgICAgLm1hcChsaW5rID0+IChcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIGtleT17bGluay51cmx9XG4gICAgICAgICAgICAgIGhyZWY9e3ByZWZpeFVybChsaW5rLnVybCwgY29uZmlnLmJhc2UpfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LWZvcmVncm91bmQgb3BhY2l0eS04MCBob3ZlcjpvcGFjaXR5LTEwMCB0cmFuc2l0aW9uLW9wYWNpdHlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7bGluay5pY29uICYmIChcbiAgICAgICAgICAgICAgICA8RHluYW1pY0ljb25cbiAgICAgICAgICAgICAgICAgIG5hbWU9e2xpbmsuaWNvbn1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImlubGluZSBzaXplLTMuNSBhbGlnbi1bLTAuMTI1ZW1dXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfXtcIiBcIn1cbiAgICAgICAgICAgICAge2xpbmsudGl0bGV9XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDxCYW5uZXIgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtZDpoaWRkZW4gbWwtYXV0byBwci0yXCI+XG4gICAgICAgIDxTaWRlYmFyVHJpZ2dlciAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9oZWFkZXI+XG4gIClcblxuICByZXR1cm4gKFxuICAgIDxTaWRlYmFyUHJvdmlkZXJcbiAgICAgIGtleT17cHJvcHMud2l0aFNpZGViYXIgPyBcInNpZGViYXJcIiA6IFwibWluaVwifVxuICAgICAgZGVmYXVsdE9wZW49eyEhcHJvcHMud2l0aFNpZGViYXJ9XG4gICAgPlxuICAgICAgPFNpZGViYXJTaGVsbCB3aXRoU2lkZWJhcj17cHJvcHMud2l0aFNpZGViYXJ9IGhlYWRlcj17aGVhZGVyfT5cbiAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgPC9TaWRlYmFyU2hlbGw+XG4gICAgPC9TaWRlYmFyUHJvdmlkZXI+XG4gIClcbn1cblxuZnVuY3Rpb24gU2lkZWJhclNoZWxsKHByb3BzOiB7XG4gIHdpdGhTaWRlYmFyPzogYm9vbGVhblxuICBoZWFkZXI6IFJlYWN0LlJlYWN0Tm9kZVxuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZVxufSkge1xuICBjb25zdCB7IGlzTW9iaWxlLCBzZXRPcGVuTW9iaWxlIH0gPSB1c2VTaWRlYmFyKClcbiAgY29uc3Qgb25DbGljayA9IChldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICBpZiAoIWlzTW9iaWxlKSByZXR1cm5cbiAgICBpZiAoKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xvc2VzdChcImFcIikpIHNldE9wZW5Nb2JpbGUoZmFsc2UpXG4gIH1cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6IFwiY29udGVudHNcIiB9fSBvbkNsaWNrPXtvbkNsaWNrfT5cbiAgICAgIDxTaWRlYmFyIHdpdGhTaWRlYmFyPXtwcm9wcy53aXRoU2lkZWJhcn0gLz5cbiAgICAgIDxTaWRlYmFySW5zZXQ+XG4gICAgICAgIHtwcm9wcy5oZWFkZXJ9XG4gICAgICAgIDxtYWluIGNsYXNzTmFtZT1cImZsZXgtMVwiPntwcm9wcy5jaGlsZHJlbn08L21haW4+XG4gICAgICAgIDxCYWNrVG9Ub3AgLz5cbiAgICAgIDwvU2lkZWJhckluc2V0PlxuICAgIDwvZGl2PlxuICApXG59XG4iXX0=
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { config } from "livemark:virtual";
|
|
3
3
|
import { Link, useLocation } from "@tanstack/react-router";
|
|
4
4
|
import { ChevronRight } from "lucide-react";
|
|
5
|
-
import {
|
|
5
|
+
import { articleTree, currentSection, sectionArticleTrees, } from "../content/article.js";
|
|
6
6
|
import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from "../elements/collapsible.js";
|
|
7
7
|
import { SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarMenu, SidebarMenuButton, SidebarMenuItem, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, } from "../elements/sidebar.js";
|
|
8
8
|
import { resolveArticleIcon } from "../helpers/article-icon.js";
|
|
@@ -11,12 +11,12 @@ export function SidebarArticles() {
|
|
|
11
11
|
const pathname = useLocation({ select: l => l.pathname });
|
|
12
12
|
const configSections = config.sections;
|
|
13
13
|
const section = currentSection(`/${pathname.replace(/^\/|\/$/g, "")}/`);
|
|
14
|
-
const
|
|
15
|
-
? (
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
const tree = configSections?.length
|
|
15
|
+
? (sectionArticleTrees.get(section?.prefix ?? "__default__") ?? articleTree)
|
|
16
|
+
: articleTree;
|
|
17
|
+
return (_jsxs(SidebarGroup, { children: [
|
|
18
|
+
_jsx(SidebarGroupLabel, { className: "uppercase font-mono text-xs tracking-widest", children: "Articles" }), _jsx(SidebarGroupContent, { children: _jsx(SidebarMenu, { children: tree.map(node => (_jsx(NavNode, { node: node, currentPath: pathname }, node.path))) }) })
|
|
19
|
+
] }));
|
|
20
20
|
}
|
|
21
21
|
function splatFor(pathname) {
|
|
22
22
|
return { _splat: pathname.replace(/^\/|\/$/g, "") };
|
|
@@ -41,4 +41,4 @@ function NavNode(props) {
|
|
|
41
41
|
_jsxs(Button, { isActive: active, className: active ? "" : "opacity-75", render: link, children: [!isSub && _jsx(Icon, { className: "size-4" }), label] }), _jsx(CollapsibleTrigger, { "aria-label": `Toggle ${node.label ?? node.title} submenu`, className: "absolute right-1 top-1.5 p-1 rounded-md hover:bg-sidebar-accent", children: _jsx(ChevronRight, { className: "size-3.5 transition-transform group-data-[open]/collapsible:rotate-90" }) }), _jsx(CollapsibleContent, { children: _jsx(SidebarMenuSub, { children: node.children.map(child => (_jsx(NavNode, { node: child, currentPath: currentPath, depth: depth + 1 }, child.path))) }) })
|
|
42
42
|
] }) }));
|
|
43
43
|
}
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2lkZWJhckFydGljbGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvU2lkZWJhckFydGljbGVzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUMzQyxPQUFPLEVBQ0wsV0FBVyxFQUNYLGNBQWMsRUFDZCxtQkFBbUIsR0FDcEIsTUFBTSx1QkFBdUIsQ0FBQTtBQUM5QixPQUFPLEVBQ0wsV0FBVyxFQUNYLGtCQUFrQixFQUNsQixrQkFBa0IsR0FDbkIsTUFBTSw0QkFBNkIsQ0FBQTtBQUNwQyxPQUFPLEVBQ0wsWUFBWSxFQUNaLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsV0FBVyxFQUNYLGlCQUFpQixFQUNqQixlQUFlLEVBQ2YsY0FBYyxFQUNkLG9CQUFvQixFQUNwQixrQkFBa0IsR0FDbkIsTUFBTSx3QkFBeUIsQ0FBQTtBQUNoQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUcvRCxtREFBbUQ7QUFDbkQsTUFBTSxVQUFVLGVBQWU7SUFDN0IsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7SUFFekQsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQTtJQUN0QyxNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUMsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDdkUsTUFBTSxJQUFJLEdBQUcsY0FBYyxFQUFFLE1BQU07UUFDakMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLElBQUksYUFBYSxDQUFDLElBQUksV0FBVyxDQUFDO1FBQzVFLENBQUMsQ0FBQyxXQUFXLENBQUE7SUFFZixPQUFPLENBQ0wsTUFBQyxZQUFZO1lBQ1gsS0FBQyxpQkFBaUIsSUFBQyxTQUFTLEVBQUMsNkNBQTZDLHlCQUV0RCxFQUNwQixLQUFDLG1CQUFtQixjQUNsQixLQUFDLFdBQVcsY0FDVCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FDaEIsS0FBQyxPQUFPLElBQWlCLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFFBQVEsSUFBNUMsSUFBSSxDQUFDLElBQUksQ0FBdUMsQ0FDL0QsQ0FBQyxHQUNVLEdBQ007WUFDVCxDQUNoQixDQUFBO0FBQ0gsQ0FBQztBQUVELFNBQVMsUUFBUSxDQUFDLFFBQWdCO0lBQ2hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQTtBQUNyRCxDQUFDO0FBRUQsU0FBUyxRQUFRLENBQUMsZUFBdUIsRUFBRSxXQUFtQjtJQUM1RCxNQUFNLFVBQVUsR0FBRyxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUE7SUFDN0QsT0FBTyxlQUFlLEtBQUssVUFBVSxDQUFBO0FBQ3ZDLENBQUM7QUFFRCxTQUFTLE9BQU8sQ0FBQyxLQUloQjtJQUNDLE1BQU0sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUE7SUFDOUMsTUFBTSxJQUFJLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzFDLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFBO0lBQy9DLE1BQU0sS0FBSyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUE7SUFDdkIsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFBO0lBQ3pELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFBO0lBRS9ELE1BQU0sSUFBSSxHQUFHLEtBQUMsSUFBSSxJQUFDLEVBQUUsRUFBQyxJQUFJLEVBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUksQ0FBQTtJQUMxRCxNQUFNLEtBQUssR0FBRyx5QkFBTyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLEdBQVEsQ0FBQTtJQUVyRCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQy9CLE9BQU8sQ0FDTCxLQUFDLElBQUksY0FDSCxNQUFDLE1BQU0sSUFDTCxRQUFRLEVBQUUsTUFBTSxFQUNoQixTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFDckMsTUFBTSxFQUFFLElBQUksYUFFWCxDQUFDLEtBQUssSUFBSSxLQUFDLElBQUksSUFBQyxTQUFTLEVBQUMsUUFBUSxHQUFHLEVBQ3JDLEtBQUssSUFDQyxHQUNKLENBQ1IsQ0FBQTtJQUNILENBQUM7SUFFRCxPQUFPLENBQ0wsS0FBQyxJQUFJLGNBQ0gsTUFBQyxXQUFXLElBQUMsV0FBVyxRQUFDLFNBQVMsRUFBQyxtQkFBbUI7Z0JBQ3BELE1BQUMsTUFBTSxJQUNMLFFBQVEsRUFBRSxNQUFNLEVBQ2hCLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUNyQyxNQUFNLEVBQUUsSUFBSSxhQUVYLENBQUMsS0FBSyxJQUFJLEtBQUMsSUFBSSxJQUFDLFNBQVMsRUFBQyxRQUFRLEdBQUcsRUFDckMsS0FBSyxJQUNDLEVBQ1QsS0FBQyxrQkFBa0Isa0JBQ0wsVUFBVSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLFVBQVUsRUFDeEQsU0FBUyxFQUFDLGlFQUFpRSxZQUUzRSxLQUFDLFlBQVksSUFBQyxTQUFTLEVBQUMsdUVBQXVFLEdBQUcsR0FDL0UsRUFDckIsS0FBQyxrQkFBa0IsY0FDakIsS0FBQyxjQUFjLGNBQ1osSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUMxQixLQUFDLE9BQU8sSUFFTixJQUFJLEVBQUUsS0FBSyxFQUNYLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLEtBQUssRUFBRSxLQUFLLEdBQUcsQ0FBQyxJQUhYLEtBQUssQ0FBQyxJQUFJLENBSWYsQ0FDSCxDQUFDLEdBQ2EsR0FDRTtnQkFDVCxHQUNULENBQ1IsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb25maWcgfSBmcm9tIFwibGl2ZW1hcms6dmlydHVhbFwiXG5pbXBvcnQgeyBMaW5rLCB1c2VMb2NhdGlvbiB9IGZyb20gXCJAdGFuc3RhY2svcmVhY3Qtcm91dGVyXCJcbmltcG9ydCB7IENoZXZyb25SaWdodCB9IGZyb20gXCJsdWNpZGUtcmVhY3RcIlxuaW1wb3J0IHtcbiAgYXJ0aWNsZVRyZWUsXG4gIGN1cnJlbnRTZWN0aW9uLFxuICBzZWN0aW9uQXJ0aWNsZVRyZWVzLFxufSBmcm9tIFwiLi4vY29udGVudC9hcnRpY2xlLnRzXCJcbmltcG9ydCB7XG4gIENvbGxhcHNpYmxlLFxuICBDb2xsYXBzaWJsZUNvbnRlbnQsXG4gIENvbGxhcHNpYmxlVHJpZ2dlcixcbn0gZnJvbSBcIi4uL2VsZW1lbnRzL2NvbGxhcHNpYmxlLnRzeFwiXG5pbXBvcnQge1xuICBTaWRlYmFyR3JvdXAsXG4gIFNpZGViYXJHcm91cENvbnRlbnQsXG4gIFNpZGViYXJHcm91cExhYmVsLFxuICBTaWRlYmFyTWVudSxcbiAgU2lkZWJhck1lbnVCdXR0b24sXG4gIFNpZGViYXJNZW51SXRlbSxcbiAgU2lkZWJhck1lbnVTdWIsXG4gIFNpZGViYXJNZW51U3ViQnV0dG9uLFxuICBTaWRlYmFyTWVudVN1Ykl0ZW0sXG59IGZyb20gXCIuLi9lbGVtZW50cy9zaWRlYmFyLnRzeFwiXG5pbXBvcnQgeyByZXNvbHZlQXJ0aWNsZUljb24gfSBmcm9tIFwiLi4vaGVscGVycy9hcnRpY2xlLWljb24udHNcIlxuaW1wb3J0IHR5cGUgeyBBcnRpY2xlTm9kZSB9IGZyb20gXCIuLi9tb2RlbHMvYXJ0aWNsZS50c1wiXG5cbi8qKiBBcnRpY2xlLXRyZWUgYm9keSBzbG90IGZvciB0aGUgU2lkZWJhciBzaGVsbCAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNpZGViYXJBcnRpY2xlcygpIHtcbiAgY29uc3QgcGF0aG5hbWUgPSB1c2VMb2NhdGlvbih7IHNlbGVjdDogbCA9PiBsLnBhdGhuYW1lIH0pXG5cbiAgY29uc3QgY29uZmlnU2VjdGlvbnMgPSBjb25maWcuc2VjdGlvbnNcbiAgY29uc3Qgc2VjdGlvbiA9IGN1cnJlbnRTZWN0aW9uKGAvJHtwYXRobmFtZS5yZXBsYWNlKC9eXFwvfFxcLyQvZywgXCJcIil9L2ApXG4gIGNvbnN0IHRyZWUgPSBjb25maWdTZWN0aW9ucz8ubGVuZ3RoXG4gICAgPyAoc2VjdGlvbkFydGljbGVUcmVlcy5nZXQoc2VjdGlvbj8ucHJlZml4ID8/IFwiX19kZWZhdWx0X19cIikgPz8gYXJ0aWNsZVRyZWUpXG4gICAgOiBhcnRpY2xlVHJlZVxuXG4gIHJldHVybiAoXG4gICAgPFNpZGViYXJHcm91cD5cbiAgICAgIDxTaWRlYmFyR3JvdXBMYWJlbCBjbGFzc05hbWU9XCJ1cHBlcmNhc2UgZm9udC1tb25vIHRleHQteHMgdHJhY2tpbmctd2lkZXN0XCI+XG4gICAgICAgIEFydGljbGVzXG4gICAgICA8L1NpZGViYXJHcm91cExhYmVsPlxuICAgICAgPFNpZGViYXJHcm91cENvbnRlbnQ+XG4gICAgICAgIDxTaWRlYmFyTWVudT5cbiAgICAgICAgICB7dHJlZS5tYXAobm9kZSA9PiAoXG4gICAgICAgICAgICA8TmF2Tm9kZSBrZXk9e25vZGUucGF0aH0gbm9kZT17bm9kZX0gY3VycmVudFBhdGg9e3BhdGhuYW1lfSAvPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L1NpZGViYXJNZW51PlxuICAgICAgPC9TaWRlYmFyR3JvdXBDb250ZW50PlxuICAgIDwvU2lkZWJhckdyb3VwPlxuICApXG59XG5cbmZ1bmN0aW9uIHNwbGF0Rm9yKHBhdGhuYW1lOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHsgX3NwbGF0OiBwYXRobmFtZS5yZXBsYWNlKC9eXFwvfFxcLyQvZywgXCJcIikgfVxufVxuXG5mdW5jdGlvbiBpc0FjdGl2ZShhcnRpY2xlUGF0aG5hbWU6IHN0cmluZywgY3VycmVudFBhdGg6IHN0cmluZykge1xuICBjb25zdCBub3JtYWxpemVkID0gYC8ke2N1cnJlbnRQYXRoLnJlcGxhY2UoL15cXC98XFwvJC9nLCBcIlwiKX0vYFxuICByZXR1cm4gYXJ0aWNsZVBhdGhuYW1lID09PSBub3JtYWxpemVkXG59XG5cbmZ1bmN0aW9uIE5hdk5vZGUocHJvcHM6IHtcbiAgbm9kZTogQXJ0aWNsZU5vZGVcbiAgY3VycmVudFBhdGg6IHN0cmluZ1xuICBkZXB0aD86IG51bWJlclxufSkge1xuICBjb25zdCB7IG5vZGUsIGN1cnJlbnRQYXRoLCBkZXB0aCA9IDAgfSA9IHByb3BzXG4gIGNvbnN0IEljb24gPSByZXNvbHZlQXJ0aWNsZUljb24obm9kZS5pY29uKVxuICBjb25zdCBhY3RpdmUgPSBpc0FjdGl2ZShub2RlLnBhdGgsIGN1cnJlbnRQYXRoKVxuICBjb25zdCBpc1N1YiA9IGRlcHRoID4gMFxuICBjb25zdCBJdGVtID0gaXNTdWIgPyBTaWRlYmFyTWVudVN1Ykl0ZW0gOiBTaWRlYmFyTWVudUl0ZW1cbiAgY29uc3QgQnV0dG9uID0gaXNTdWIgPyBTaWRlYmFyTWVudVN1YkJ1dHRvbiA6IFNpZGViYXJNZW51QnV0dG9uXG5cbiAgY29uc3QgbGluayA9IDxMaW5rIHRvPVwiLyRcIiBwYXJhbXM9e3NwbGF0Rm9yKG5vZGUucGF0aCl9IC8+XG4gIGNvbnN0IGxhYmVsID0gPHNwYW4+e25vZGUubGFiZWwgPz8gbm9kZS50aXRsZX08L3NwYW4+XG5cbiAgaWYgKG5vZGUuY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxJdGVtPlxuICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgaXNBY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICBjbGFzc05hbWU9e2FjdGl2ZSA/IFwiXCIgOiBcIm9wYWNpdHktNzVcIn1cbiAgICAgICAgICByZW5kZXI9e2xpbmt9XG4gICAgICAgID5cbiAgICAgICAgICB7IWlzU3ViICYmIDxJY29uIGNsYXNzTmFtZT1cInNpemUtNFwiIC8+fVxuICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgPC9CdXR0b24+XG4gICAgICA8L0l0ZW0+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8SXRlbT5cbiAgICAgIDxDb2xsYXBzaWJsZSBkZWZhdWx0T3BlbiBjbGFzc05hbWU9XCJncm91cC9jb2xsYXBzaWJsZVwiPlxuICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgaXNBY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICBjbGFzc05hbWU9e2FjdGl2ZSA/IFwiXCIgOiBcIm9wYWNpdHktNzVcIn1cbiAgICAgICAgICByZW5kZXI9e2xpbmt9XG4gICAgICAgID5cbiAgICAgICAgICB7IWlzU3ViICYmIDxJY29uIGNsYXNzTmFtZT1cInNpemUtNFwiIC8+fVxuICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgPC9CdXR0b24+XG4gICAgICAgIDxDb2xsYXBzaWJsZVRyaWdnZXJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtgVG9nZ2xlICR7bm9kZS5sYWJlbCA/PyBub2RlLnRpdGxlfSBzdWJtZW51YH1cbiAgICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSByaWdodC0xIHRvcC0xLjUgcC0xIHJvdW5kZWQtbWQgaG92ZXI6Ymctc2lkZWJhci1hY2NlbnRcIlxuICAgICAgICA+XG4gICAgICAgICAgPENoZXZyb25SaWdodCBjbGFzc05hbWU9XCJzaXplLTMuNSB0cmFuc2l0aW9uLXRyYW5zZm9ybSBncm91cC1kYXRhLVtvcGVuXS9jb2xsYXBzaWJsZTpyb3RhdGUtOTBcIiAvPlxuICAgICAgICA8L0NvbGxhcHNpYmxlVHJpZ2dlcj5cbiAgICAgICAgPENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8U2lkZWJhck1lbnVTdWI+XG4gICAgICAgICAgICB7bm9kZS5jaGlsZHJlbi5tYXAoY2hpbGQgPT4gKFxuICAgICAgICAgICAgICA8TmF2Tm9kZVxuICAgICAgICAgICAgICAgIGtleT17Y2hpbGQucGF0aH1cbiAgICAgICAgICAgICAgICBub2RlPXtjaGlsZH1cbiAgICAgICAgICAgICAgICBjdXJyZW50UGF0aD17Y3VycmVudFBhdGh9XG4gICAgICAgICAgICAgICAgZGVwdGg9e2RlcHRoICsgMX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvU2lkZWJhck1lbnVTdWI+XG4gICAgICAgIDwvQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgPC9Db2xsYXBzaWJsZT5cbiAgICA8L0l0ZW0+XG4gIClcbn1cbiJdfQ==
|
|
@@ -3,7 +3,8 @@ import { config } from "livemark:virtual";
|
|
|
3
3
|
import { Link, useLocation, useMatch } from "@tanstack/react-router";
|
|
4
4
|
import { currentSection, sectionFirstArticle } from "../content/article.js";
|
|
5
5
|
import { DynamicIcon } from "../helpers/dynamic-icon.js";
|
|
6
|
-
import {
|
|
6
|
+
import { prefixUrl } from "../helpers/prefix-url.js";
|
|
7
|
+
import { customSectionActive, sectionIcon } from "../helpers/section.js";
|
|
7
8
|
import { SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarMenu, SidebarMenuButton, SidebarMenuItem, } from "../elements/sidebar.js";
|
|
8
9
|
function splatFor(pathname) {
|
|
9
10
|
return { _splat: pathname.replace(/^\/|\/$/g, "") };
|
|
@@ -23,15 +24,20 @@ export function SidebarSections() {
|
|
|
23
24
|
const hasDesktopItems = sections.some(s => s.position === "sidebar");
|
|
24
25
|
return (_jsxs(SidebarGroup, { className: hasDesktopItems ? undefined : "md:hidden", children: [
|
|
25
26
|
_jsx(SidebarGroupLabel, { className: "uppercase font-mono text-xs tracking-widest", children: "Sections" }), _jsx(SidebarGroupContent, { children: _jsx(SidebarMenu, { children: sections.map(s => {
|
|
27
|
+
const mobileOnly = s.position !== "sidebar";
|
|
28
|
+
const icon = sectionIcon(s);
|
|
29
|
+
if (s.type === "custom") {
|
|
30
|
+
const active = customSectionActive(s.url, pathname);
|
|
31
|
+
return (_jsx(SidebarMenuItem, { className: mobileOnly ? "md:hidden" : undefined, children: _jsxs(SidebarMenuButton, { isActive: active, className: active ? "" : "opacity-75", render: _jsx("a", { href: prefixUrl(s.url, config.base) }), children: [icon && _jsx(DynamicIcon, { name: icon, className: "size-4" }), _jsx("span", { children: s.title })
|
|
32
|
+
] }) }, s.url));
|
|
33
|
+
}
|
|
26
34
|
const target = s.type === "blog" || s.type === "changelog"
|
|
27
35
|
? s.prefix
|
|
28
36
|
: (sectionFirstArticle.get(s.prefix) ?? s.prefix);
|
|
29
37
|
const active = section?.prefix === s.prefix;
|
|
30
|
-
|
|
31
|
-
return (_jsx(SidebarMenuItem, { className: mobileOnly ? "md:hidden" : undefined, children: _jsxs(SidebarMenuButton, { isActive: active, className: active ? "" : "opacity-75", render: _jsx(Link, { to: target === "/" ? "/" : "/$", params: target && target !== "/" ? splatFor(target) : {} }), children: [
|
|
32
|
-
_jsx(DynamicIcon, { name: sectionIcon(s), className: "size-4" }), _jsx("span", { children: s.title })
|
|
38
|
+
return (_jsx(SidebarMenuItem, { className: mobileOnly ? "md:hidden" : undefined, children: _jsxs(SidebarMenuButton, { isActive: active, className: active ? "" : "opacity-75", render: _jsx(Link, { to: target === "/" ? "/" : "/$", params: target && target !== "/" ? splatFor(target) : {} }), children: [icon && _jsx(DynamicIcon, { name: icon, className: "size-4" }), _jsx("span", { children: s.title })
|
|
33
39
|
] }) }, s.prefix));
|
|
34
40
|
}) }) })
|
|
35
41
|
] }));
|
|
36
42
|
}
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2lkZWJhclNlY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvU2lkZWJhclNlY3Rpb25zLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTZCLENBQUE7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUN4RSxPQUFPLEVBQ0wsWUFBWSxFQUNaLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsV0FBVyxFQUNYLGlCQUFpQixFQUNqQixlQUFlLEdBQ2hCLE1BQU0sd0JBQXlCLENBQUE7QUFFaEMsU0FBUyxRQUFRLENBQUMsUUFBZ0I7SUFDaEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFBO0FBQ3JELENBQUM7QUFFRDs7d0VBRXdFO0FBQ3hFLE1BQU0sVUFBVSxlQUFlO0lBQzdCLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO0lBQ3pELE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUE7SUFDakUsTUFBTSxPQUFPLEdBQUcsWUFBWTtR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RCxhQUdILElBQUksSUFBSSxLQUFDLFdBQVcsSUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBQyxRQUFRLEdBQUcsRUFDdkQseUJBQU8sQ0FBQyxDQUFDLEtBQUssR0FBUTtvQ0FDSixJQWZmLENBQUMsQ0FBQyxNQUFNLENBZ0JHLENBQ25CLENBQUE7b0JBQ0gsQ0FBQyxDQUFDLEdBQ1UsR0FDTTtZQUNULENBQ2hCLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29uZmlnIH0gZnJvbSBcImxpdmVtYXJrOnZpcnR1YWxcIlxuaW1wb3J0IHsgTGluaywgdXNlTG9jYXRpb24sIHVzZU1hdGNoIH0gZnJvbSBcIkB0YW5zdGFjay9yZWFjdC1yb3V0ZXJcIlxuaW1wb3J0IHsgY3VycmVudFNlY3Rpb24sIHNlY3Rpb25GaXJzdEFydGljbGUgfSBmcm9tIFwiLi4vY29udGVudC9hcnRpY2xlLnRzXCJcbmltcG9ydCB7IER5bmFtaWNJY29uIH0gZnJvbSBcIi4uL2hlbHBlcnMvZHluYW1pYy1pY29uLnRzeFwiXG5pbXBvcnQgeyBwcmVmaXhVcmwgfSBmcm9tIFwiLi4vaGVscGVycy9wcmVmaXgtdXJsLnRzXCJcbmltcG9ydCB7IGN1c3RvbVNlY3Rpb25BY3RpdmUsIHNlY3Rpb25JY29uIH0gZnJvbSBcIi4uL2hlbHBlcnMvc2VjdGlvbi50c1wiXG5pbXBvcnQge1xuICBTaWRlYmFyR3JvdXAsXG4gIFNpZGViYXJHcm91cENvbnRlbnQsXG4gIFNpZGViYXJHcm91cExhYmVsLFxuICBTaWRlYmFyTWVudSxcbiAgU2lkZWJhck1lbnVCdXR0b24sXG4gIFNpZGViYXJNZW51SXRlbSxcbn0gZnJvbSBcIi4uL2VsZW1lbnRzL3NpZGViYXIudHN4XCJcblxuZnVuY3Rpb24gc3BsYXRGb3IocGF0aG5hbWU6IHN0cmluZykge1xuICByZXR1cm4geyBfc3BsYXQ6IHBhdGhuYW1lLnJlcGxhY2UoL15cXC98XFwvJC9nLCBcIlwiKSB9XG59XG5cbi8qKiBTaGFyZWQgU2VjdGlvbnMgZ3JvdXAuIFJlbmRlcnMgc2lkZWJhci1wb3NpdGlvbmVkIHNlY3Rpb25zIGFsd2F5cywgYW5kXG4gKiBoZWFkZXItcG9zaXRpb25lZCBzZWN0aW9ucyBvbmx5IG9uIG1vYmlsZSAobW9iaWxlIGNvbGxhcHNlcyBhbGwgc2VjdGlvbnNcbiAqIGludG8gdGhlIHNpZGViYXIgc2luY2UgdGhlIGhlYWRlciBuYXYgc3RyaXAgaXMgaGlkZGVuIGJlbG93IGBtZGApLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNpZGViYXJTZWN0aW9ucygpIHtcbiAgY29uc3QgcGF0aG5hbWUgPSB1c2VMb2NhdGlvbih7IHNlbGVjdDogbCA9PiBsLnBhdGhuYW1lIH0pXG4gIGNvbnN0IGFydGljbGVSb3V0ZSA9IHVzZU1hdGNoKHsgZnJvbTogXCIvJFwiLCBzaG91bGRUaHJvdzogZmFsc2UgfSlcbiAgY29uc3Qgc2VjdGlvbiA9IGFydGljbGVSb3V0ZVxuICAgID8gY3VycmVudFNlY3Rpb24oYC8ke3BhdGhuYW1lLnJlcGxhY2UoL15cXC98XFwvJC9nLCBcIlwiKX0vYClcbiAgICA6IHVuZGVmaW5lZFxuICBjb25zdCBzZWN0aW9ucyA9IGNvbmZpZy5zZWN0aW9ucyA/PyBbXVxuXG4gIGlmICghc2VjdGlvbnMubGVuZ3RoKSByZXR1cm4gbnVsbFxuICBjb25zdCBoYXNEZXNrdG9wSXRlbXMgPSBzZWN0aW9ucy5zb21lKHMgPT4gcy5wb3NpdGlvbiA9PT0gXCJzaWRlYmFyXCIpXG5cbiAgcmV0dXJuIChcbiAgICA8U2lkZWJhckdyb3VwIGNsYXNzTmFtZT17aGFzRGVza3RvcEl0ZW1zID8gdW5kZWZpbmVkIDogXCJtZDpoaWRkZW5cIn0+XG4gICAgICA8U2lkZWJhckdyb3VwTGFiZWwgY2xhc3NOYW1lPVwidXBwZXJjYXNlIGZvbnQtbW9ubyB0ZXh0LXhzIHRyYWNraW5nLXdpZGVzdFwiPlxuICAgICAgICBTZWN0aW9uc1xuICAgICAgPC9TaWRlYmFyR3JvdXBMYWJlbD5cbiAgICAgIDxTaWRlYmFyR3JvdXBDb250ZW50PlxuICAgICAgICA8U2lkZWJhck1lbnU+XG4gICAgICAgICAge3NlY3Rpb25zLm1hcChzID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG1vYmlsZU9ubHkgPSBzLnBvc2l0aW9uICE9PSBcInNpZGViYXJcIlxuICAgICAgICAgICAgY29uc3QgaWNvbiA9IHNlY3Rpb25JY29uKHMpXG4gICAgICAgICAgICBpZiAocy50eXBlID09PSBcImN1c3RvbVwiKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGFjdGl2ZSA9IGN1c3RvbVNlY3Rpb25BY3RpdmUocy51cmwsIHBhdGhuYW1lKVxuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxTaWRlYmFyTWVudUl0ZW1cbiAgICAgICAgICAgICAgICAgIGtleT17cy51cmx9XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e21vYmlsZU9ubHkgPyBcIm1kOmhpZGRlblwiIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTaWRlYmFyTWVudUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBpc0FjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2FjdGl2ZSA/IFwiXCIgOiBcIm9wYWNpdHktNzVcIn1cbiAgICAgICAgICAgICAgICAgICAgcmVuZGVyPXs8YSBocmVmPXtwcmVmaXhVcmwocy51cmwsIGNvbmZpZy5iYXNlKX0gLz59XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtpY29uICYmIDxEeW5hbWljSWNvbiBuYW1lPXtpY29ufSBjbGFzc05hbWU9XCJzaXplLTRcIiAvPn1cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3MudGl0bGV9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9TaWRlYmFyTWVudUJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L1NpZGViYXJNZW51SXRlbT5cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID1cbiAgICAgICAgICAgICAgcy50eXBlID09PSBcImJsb2dcIiB8fCBzLnR5cGUgPT09IFwiY2hhbmdlbG9nXCJcbiAgICAgICAgICAgICAgICA/IHMucHJlZml4XG4gICAgICAgICAgICAgICAgOiAoc2VjdGlvbkZpcnN0QXJ0aWNsZS5nZXQocy5wcmVmaXgpID8/IHMucHJlZml4KVxuICAgICAgICAgICAgY29uc3QgYWN0aXZlID0gc2VjdGlvbj8ucHJlZml4ID09PSBzLnByZWZpeFxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPFNpZGViYXJNZW51SXRlbVxuICAgICAgICAgICAgICAgIGtleT17cy5wcmVmaXh9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXttb2JpbGVPbmx5ID8gXCJtZDpoaWRkZW5cIiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTaWRlYmFyTWVudUJ1dHRvblxuICAgICAgICAgICAgICAgICAgaXNBY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YWN0aXZlID8gXCJcIiA6IFwib3BhY2l0eS03NVwifVxuICAgICAgICAgICAgICAgICAgcmVuZGVyPXtcbiAgICAgICAgICAgICAgICAgICAgPExpbmtcbiAgICAgICAgICAgICAgICAgICAgICB0bz17dGFyZ2V0ID09PSBcIi9cIiA/IFwiL1wiIDogXCIvJFwifVxuICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcz17dGFyZ2V0ICYmIHRhcmdldCAhPT0gXCIvXCIgPyBzcGxhdEZvcih0YXJnZXQpIDoge319XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2ljb24gJiYgPER5bmFtaWNJY29uIG5hbWU9e2ljb259IGNsYXNzTmFtZT1cInNpemUtNFwiIC8+fVxuICAgICAgICAgICAgICAgICAgPHNwYW4+e3MudGl0bGV9PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvU2lkZWJhck1lbnVCdXR0b24+XG4gICAgICAgICAgICAgIDwvU2lkZWJhck1lbnVJdGVtPlxuICAgICAgICAgICAgKVxuICAgICAgICAgIH0pfVxuICAgICAgICA8L1NpZGViYXJNZW51PlxuICAgICAgPC9TaWRlYmFyR3JvdXBDb250ZW50PlxuICAgIDwvU2lkZWJhckdyb3VwPlxuICApXG59XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ArticleNode } from "../models/article.ts";
|
|
2
2
|
/**
|
|
3
3
|
* Articles sorted by frontmatter `order`:
|
|
4
4
|
* positive values first (ascending), then unordered, then negative values
|
|
@@ -7,37 +7,37 @@ import type { ArticleGroup } from "../models/article.ts";
|
|
|
7
7
|
export declare const sortedArticles: any[];
|
|
8
8
|
/** The article whose path is `/`, if any (rendered in place at the root) */
|
|
9
9
|
export declare const homeArticle: any;
|
|
10
|
-
/** Sidebar
|
|
11
|
-
export declare const
|
|
12
|
-
/** Articles in depth-first order across
|
|
10
|
+
/** Sidebar tree derived from the article path hierarchy */
|
|
11
|
+
export declare const articleTree: ArticleNode[];
|
|
12
|
+
/** Articles in depth-first order across the tree (matches sidebar walk) */
|
|
13
13
|
export declare const flatArticles: string[];
|
|
14
14
|
/** The first article in sidebar order, used as the default landing page */
|
|
15
15
|
export declare const firstArticle: any;
|
|
16
|
-
/** Per-section article
|
|
17
|
-
export declare const
|
|
16
|
+
/** Per-section article tree, keyed by section prefix */
|
|
17
|
+
export declare const sectionArticleTrees: Map<string, ArticleNode[]>;
|
|
18
18
|
/** Per-section flat article lists, keyed by section prefix */
|
|
19
19
|
export declare const sectionFlatArticles: Map<string, string[]>;
|
|
20
20
|
/** Per-section first article path, keyed by section prefix */
|
|
21
21
|
export declare const sectionFirstArticle: Map<string, string | undefined>;
|
|
22
|
-
/** Find which config section an article path belongs to */
|
|
22
|
+
/** Find which routed config section an article path belongs to */
|
|
23
23
|
export declare function currentSection(path: string): {
|
|
24
24
|
icon?: string | undefined;
|
|
25
25
|
title: string;
|
|
26
|
-
prefix: string;
|
|
27
26
|
position: "header" | "sidebar";
|
|
28
27
|
type: "article";
|
|
28
|
+
prefix: string;
|
|
29
29
|
} | {
|
|
30
30
|
icon?: string | undefined;
|
|
31
31
|
title: string;
|
|
32
|
-
prefix: string;
|
|
33
32
|
position: "header" | "sidebar";
|
|
34
33
|
type: "blog";
|
|
34
|
+
prefix: string;
|
|
35
35
|
} | {
|
|
36
36
|
icon?: string | undefined;
|
|
37
37
|
title: string;
|
|
38
|
-
prefix: string;
|
|
39
38
|
position: "header" | "sidebar";
|
|
40
39
|
type: "changelog";
|
|
40
|
+
prefix: string;
|
|
41
41
|
source: string;
|
|
42
42
|
version?: boolean | undefined;
|
|
43
43
|
} | undefined;
|
package/build/content/article.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { config } from "livemark:virtual";
|
|
2
2
|
import { allArticles } from "content-collections";
|
|
3
|
-
import { buildArticleTree, flattenArticleTree
|
|
3
|
+
import { buildArticleTree, flattenArticleTree } from "../helpers/article.js";
|
|
4
4
|
import { matchSection, partitionBySection } from "../helpers/section.js";
|
|
5
5
|
/**
|
|
6
6
|
* Articles sorted by frontmatter `order`:
|
|
@@ -10,10 +10,10 @@ import { matchSection, partitionBySection } from "../helpers/section.js";
|
|
|
10
10
|
export const sortedArticles = [...allArticles].sort((a, b) => orderKey(a.order) - orderKey(b.order));
|
|
11
11
|
/** The article whose path is `/`, if any (rendered in place at the root) */
|
|
12
12
|
export const homeArticle = sortedArticles.find(a => a.path === "/");
|
|
13
|
-
/** Sidebar
|
|
14
|
-
export const
|
|
15
|
-
/** Articles in depth-first order across
|
|
16
|
-
export const flatArticles =
|
|
13
|
+
/** Sidebar tree derived from the article path hierarchy */
|
|
14
|
+
export const articleTree = buildArticleTree(sortedArticles);
|
|
15
|
+
/** Articles in depth-first order across the tree (matches sidebar walk) */
|
|
16
|
+
export const flatArticles = flattenArticleTree(articleTree);
|
|
17
17
|
/** The first article in sidebar order, used as the default landing page */
|
|
18
18
|
export const firstArticle = sortedArticles.find(a => a.path === flatArticles[0]);
|
|
19
19
|
function orderKey(order) {
|
|
@@ -24,32 +24,34 @@ function orderKey(order) {
|
|
|
24
24
|
return order;
|
|
25
25
|
}
|
|
26
26
|
const configSections = config.sections;
|
|
27
|
-
/**
|
|
28
|
-
|
|
27
|
+
/** Route-bound sections (everything except `custom`). Custom sections
|
|
28
|
+
* are pure links — they have no `prefix` and don't claim a URL space. */
|
|
29
|
+
const routedSections = configSections?.filter(s => s.type !== "custom") ?? [];
|
|
30
|
+
/** Per-section article tree, keyed by section prefix */
|
|
31
|
+
export const sectionArticleTrees = new Map();
|
|
29
32
|
/** Per-section flat article lists, keyed by section prefix */
|
|
30
33
|
export const sectionFlatArticles = new Map();
|
|
31
34
|
/** Per-section first article path, keyed by section prefix */
|
|
32
35
|
export const sectionFirstArticle = new Map();
|
|
33
|
-
if (
|
|
34
|
-
const sectionByPrefix = new Map(
|
|
35
|
-
const buckets = partitionBySection(sortedArticles,
|
|
36
|
+
if (routedSections.length) {
|
|
37
|
+
const sectionByPrefix = new Map(routedSections.map(s => [s.prefix, s]));
|
|
38
|
+
const buckets = partitionBySection(sortedArticles, routedSections);
|
|
36
39
|
for (const [key, bucket] of buckets) {
|
|
37
40
|
const section = sectionByPrefix.get(key);
|
|
38
41
|
const sorted = section?.type === "blog" || section?.type === "changelog"
|
|
39
42
|
? [...bucket].sort((a, b) => new Date(b.date ?? 0).getTime() - new Date(a.date ?? 0).getTime())
|
|
40
43
|
: bucket;
|
|
41
44
|
const tree = buildArticleTree(sorted);
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
sectionArticleGroups.set(key, groups);
|
|
45
|
+
const flat = flattenArticleTree(tree);
|
|
46
|
+
sectionArticleTrees.set(key, tree);
|
|
45
47
|
sectionFlatArticles.set(key, flat);
|
|
46
48
|
sectionFirstArticle.set(key, flat[0]);
|
|
47
49
|
}
|
|
48
50
|
}
|
|
49
|
-
/** Find which config section an article path belongs to */
|
|
51
|
+
/** Find which routed config section an article path belongs to */
|
|
50
52
|
export function currentSection(path) {
|
|
51
|
-
if (!
|
|
53
|
+
if (!routedSections.length)
|
|
52
54
|
return undefined;
|
|
53
|
-
return matchSection(path,
|
|
55
|
+
return matchSection(path, routedSections);
|
|
54
56
|
}
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWNsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9jb250ZW50L2FydGljbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUVqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUM1RSxPQUFPLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFFeEU7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUNqRCxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FDaEQsQ0FBQTtBQUVELDRFQUE0RTtBQUM1RSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUE7QUFFbkUsMkRBQTJEO0FBQzNELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQTtBQUUzRCwyRUFBMkU7QUFDM0UsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFBO0FBRTNELDJFQUEyRTtBQUMzRSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFFaEYsU0FBUyxRQUFRLENBQUMsS0FBYztJQUM5QixJQUFJLEtBQUssS0FBSyxTQUFTO1FBQUUsT0FBTyxNQUFNLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFBO0lBQzNELElBQUksS0FBSyxHQUFHLENBQUM7UUFBRSxPQUFPLE1BQU0sQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUE7SUFDckQsT0FBTyxLQUFLLENBQUE7QUFDZCxDQUFDO0FBRUQsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQTtBQUV0QzswRUFDMEU7QUFDMUUsTUFBTSxjQUFjLEdBQUcsY0FBYyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLElBQUksRUFBRSxDQUFBO0FBRTdFLHdEQUF3RDtBQUN4RCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLEdBQUcsRUFBeUIsQ0FBQTtBQUVuRSw4REFBOEQ7QUFDOUQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxHQUFHLEVBQW9CLENBQUE7QUFFOUQsOERBQThEO0FBQzlELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLElBQUksR0FBRyxFQUE4QixDQUFBO0FBRXhFLElBQUksY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzFCLE1BQU0sZUFBZSxHQUFHLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3ZFLE1BQU0sT0FBTyxHQUFHLGtCQUFrQixDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsQ0FBQTtJQUNsRSxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUksT0FBTyxFQUFFLENBQUM7UUFDcEMsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUN4QyxNQUFNLE1BQU0sR0FDVixPQUFPLEVBQUUsSUFBSSxLQUFLLE1BQU0sSUFBSSxPQUFPLEVBQUUsSUFBSSxLQUFLLFdBQVc7WUFDdkQsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQ2QsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FDUCxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQ3BFO1lBQ0gsQ0FBQyxDQUFDLE1BQU0sQ0FBQTtRQUNaLE1BQU0sSUFBSSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ3JDLE1BQU0sSUFBSSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3JDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDbEMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUNsQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3ZDLENBQUM7QUFDSCxDQUFDO0FBRUQsa0VBQWtFO0FBQ2xFLE1BQU0sVUFBVSxjQUFjLENBQUMsSUFBWTtJQUN6QyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU07UUFBRSxPQUFPLFNBQVMsQ0FBQTtJQUM1QyxPQUFPLFlBQVksQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUE7QUFDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbmZpZyB9IGZyb20gXCJsaXZlbWFyazp2aXJ0dWFsXCJcbmltcG9ydCB7IGFsbEFydGljbGVzIH0gZnJvbSBcImNvbnRlbnQtY29sbGVjdGlvbnNcIlxuaW1wb3J0IHR5cGUgeyBBcnRpY2xlTm9kZSB9IGZyb20gXCIuLi9tb2RlbHMvYXJ0aWNsZS50c1wiXG5pbXBvcnQgeyBidWlsZEFydGljbGVUcmVlLCBmbGF0dGVuQXJ0aWNsZVRyZWUgfSBmcm9tIFwiLi4vaGVscGVycy9hcnRpY2xlLnRzXCJcbmltcG9ydCB7IG1hdGNoU2VjdGlvbiwgcGFydGl0aW9uQnlTZWN0aW9uIH0gZnJvbSBcIi4uL2hlbHBlcnMvc2VjdGlvbi50c1wiXG5cbi8qKlxuICogQXJ0aWNsZXMgc29ydGVkIGJ5IGZyb250bWF0dGVyIGBvcmRlcmA6XG4gKiBwb3NpdGl2ZSB2YWx1ZXMgZmlyc3QgKGFzY2VuZGluZyksIHRoZW4gdW5vcmRlcmVkLCB0aGVuIG5lZ2F0aXZlIHZhbHVlc1xuICogKHNvIGBvcmRlcjogLTFgIGxhbmRzIGF0IHRoZSB2ZXJ5IGVuZCwgYC0yYCBqdXN0IGJlZm9yZSBpdCwgYW5kIHNvIG9uKS5cbiAqL1xuZXhwb3J0IGNvbnN0IHNvcnRlZEFydGljbGVzID0gWy4uLmFsbEFydGljbGVzXS5zb3J0KFxuICAoYSwgYikgPT4gb3JkZXJLZXkoYS5vcmRlcikgLSBvcmRlcktleShiLm9yZGVyKSxcbilcblxuLyoqIFRoZSBhcnRpY2xlIHdob3NlIHBhdGggaXMgYC9gLCBpZiBhbnkgKHJlbmRlcmVkIGluIHBsYWNlIGF0IHRoZSByb290KSAqL1xuZXhwb3J0IGNvbnN0IGhvbWVBcnRpY2xlID0gc29ydGVkQXJ0aWNsZXMuZmluZChhID0+IGEucGF0aCA9PT0gXCIvXCIpXG5cbi8qKiBTaWRlYmFyIHRyZWUgZGVyaXZlZCBmcm9tIHRoZSBhcnRpY2xlIHBhdGggaGllcmFyY2h5ICovXG5leHBvcnQgY29uc3QgYXJ0aWNsZVRyZWUgPSBidWlsZEFydGljbGVUcmVlKHNvcnRlZEFydGljbGVzKVxuXG4vKiogQXJ0aWNsZXMgaW4gZGVwdGgtZmlyc3Qgb3JkZXIgYWNyb3NzIHRoZSB0cmVlIChtYXRjaGVzIHNpZGViYXIgd2FsaykgKi9cbmV4cG9ydCBjb25zdCBmbGF0QXJ0aWNsZXMgPSBmbGF0dGVuQXJ0aWNsZVRyZWUoYXJ0aWNsZVRyZWUpXG5cbi8qKiBUaGUgZmlyc3QgYXJ0aWNsZSBpbiBzaWRlYmFyIG9yZGVyLCB1c2VkIGFzIHRoZSBkZWZhdWx0IGxhbmRpbmcgcGFnZSAqL1xuZXhwb3J0IGNvbnN0IGZpcnN0QXJ0aWNsZSA9IHNvcnRlZEFydGljbGVzLmZpbmQoYSA9PiBhLnBhdGggPT09IGZsYXRBcnRpY2xlc1swXSlcblxuZnVuY3Rpb24gb3JkZXJLZXkob3JkZXI/OiBudW1iZXIpIHtcbiAgaWYgKG9yZGVyID09PSB1bmRlZmluZWQpIHJldHVybiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUiAvIDJcbiAgaWYgKG9yZGVyIDwgMCkgcmV0dXJuIE51bWJlci5NQVhfU0FGRV9JTlRFR0VSICsgb3JkZXJcbiAgcmV0dXJuIG9yZGVyXG59XG5cbmNvbnN0IGNvbmZpZ1NlY3Rpb25zID0gY29uZmlnLnNlY3Rpb25zXG5cbi8qKiBSb3V0ZS1ib3VuZCBzZWN0aW9ucyAoZXZlcnl0aGluZyBleGNlcHQgYGN1c3RvbWApLiBDdXN0b20gc2VjdGlvbnNcbiAqICBhcmUgcHVyZSBsaW5rcyDigJQgdGhleSBoYXZlIG5vIGBwcmVmaXhgIGFuZCBkb24ndCBjbGFpbSBhIFVSTCBzcGFjZS4gKi9cbmNvbnN0IHJvdXRlZFNlY3Rpb25zID0gY29uZmlnU2VjdGlvbnM/LmZpbHRlcihzID0+IHMudHlwZSAhPT0gXCJjdXN0b21cIikgPz8gW11cblxuLyoqIFBlci1zZWN0aW9uIGFydGljbGUgdHJlZSwga2V5ZWQgYnkgc2VjdGlvbiBwcmVmaXggKi9cbmV4cG9ydCBjb25zdCBzZWN0aW9uQXJ0aWNsZVRyZWVzID0gbmV3IE1hcDxzdHJpbmcsIEFydGljbGVOb2RlW10+KClcblxuLyoqIFBlci1zZWN0aW9uIGZsYXQgYXJ0aWNsZSBsaXN0cywga2V5ZWQgYnkgc2VjdGlvbiBwcmVmaXggKi9cbmV4cG9ydCBjb25zdCBzZWN0aW9uRmxhdEFydGljbGVzID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZ1tdPigpXG5cbi8qKiBQZXItc2VjdGlvbiBmaXJzdCBhcnRpY2xlIHBhdGgsIGtleWVkIGJ5IHNlY3Rpb24gcHJlZml4ICovXG5leHBvcnQgY29uc3Qgc2VjdGlvbkZpcnN0QXJ0aWNsZSA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+KClcblxuaWYgKHJvdXRlZFNlY3Rpb25zLmxlbmd0aCkge1xuICBjb25zdCBzZWN0aW9uQnlQcmVmaXggPSBuZXcgTWFwKHJvdXRlZFNlY3Rpb25zLm1hcChzID0+IFtzLnByZWZpeCwgc10pKVxuICBjb25zdCBidWNrZXRzID0gcGFydGl0aW9uQnlTZWN0aW9uKHNvcnRlZEFydGljbGVzLCByb3V0ZWRTZWN0aW9ucylcbiAgZm9yIChjb25zdCBba2V5LCBidWNrZXRdIG9mIGJ1Y2tldHMpIHtcbiAgICBjb25zdCBzZWN0aW9uID0gc2VjdGlvbkJ5UHJlZml4LmdldChrZXkpXG4gICAgY29uc3Qgc29ydGVkID1cbiAgICAgIHNlY3Rpb24/LnR5cGUgPT09IFwiYmxvZ1wiIHx8IHNlY3Rpb24/LnR5cGUgPT09IFwiY2hhbmdlbG9nXCJcbiAgICAgICAgPyBbLi4uYnVja2V0XS5zb3J0KFxuICAgICAgICAgICAgKGEsIGIpID0+XG4gICAgICAgICAgICAgIG5ldyBEYXRlKGIuZGF0ZSA/PyAwKS5nZXRUaW1lKCkgLSBuZXcgRGF0ZShhLmRhdGUgPz8gMCkuZ2V0VGltZSgpLFxuICAgICAgICAgIClcbiAgICAgICAgOiBidWNrZXRcbiAgICBjb25zdCB0cmVlID0gYnVpbGRBcnRpY2xlVHJlZShzb3J0ZWQpXG4gICAgY29uc3QgZmxhdCA9IGZsYXR0ZW5BcnRpY2xlVHJlZSh0cmVlKVxuICAgIHNlY3Rpb25BcnRpY2xlVHJlZXMuc2V0KGtleSwgdHJlZSlcbiAgICBzZWN0aW9uRmxhdEFydGljbGVzLnNldChrZXksIGZsYXQpXG4gICAgc2VjdGlvbkZpcnN0QXJ0aWNsZS5zZXQoa2V5LCBmbGF0WzBdKVxuICB9XG59XG5cbi8qKiBGaW5kIHdoaWNoIHJvdXRlZCBjb25maWcgc2VjdGlvbiBhbiBhcnRpY2xlIHBhdGggYmVsb25ncyB0byAqL1xuZXhwb3J0IGZ1bmN0aW9uIGN1cnJlbnRTZWN0aW9uKHBhdGg6IHN0cmluZykge1xuICBpZiAoIXJvdXRlZFNlY3Rpb25zLmxlbmd0aCkgcmV0dXJuIHVuZGVmaW5lZFxuICByZXR1cm4gbWF0Y2hTZWN0aW9uKHBhdGgsIHJvdXRlZFNlY3Rpb25zKVxufVxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ArticleNode } from "../models/article.ts";
|
|
2
2
|
/** Build a tree from a flat sorted list of articles based on path hierarchy */
|
|
3
3
|
export declare function buildArticleTree(articles: {
|
|
4
4
|
path: string;
|
|
@@ -6,19 +6,5 @@ export declare function buildArticleTree(articles: {
|
|
|
6
6
|
label?: string;
|
|
7
7
|
icon: string;
|
|
8
8
|
}[]): ArticleNode[];
|
|
9
|
-
/**
|
|
10
|
-
* Partition root nodes into sidebar sections.
|
|
11
|
-
*
|
|
12
|
-
* Walks root nodes in sort order. A root whose article has a `group` field
|
|
13
|
-
* opens a new section; subsequent roots without `group` append to the current
|
|
14
|
-
* section. Roots before the first `group` field land in a single leading
|
|
15
|
-
* section with `name: undefined` (rendered without a label).
|
|
16
|
-
*
|
|
17
|
-
* `group` on non-root articles is ignored — only roots gate section boundaries.
|
|
18
|
-
*/
|
|
19
|
-
export declare function groupArticleTree(tree: ArticleNode[], articles: {
|
|
20
|
-
path: string;
|
|
21
|
-
group?: string;
|
|
22
|
-
}[]): ArticleGroup[];
|
|
23
9
|
/** Depth-first flatten of an article tree into a list of paths */
|
|
24
10
|
export declare function flattenArticleTree(nodes: ArticleNode[]): string[];
|