livemark 0.19.0 → 0.20.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.
@@ -26,6 +26,7 @@ export declare function defineConfig(input: UserConfig): {
26
26
  position: "header" | "sidebar";
27
27
  siteTitle?: string | undefined;
28
28
  siteDescription?: string | undefined;
29
+ siteLink?: string | undefined;
29
30
  type: "article";
30
31
  prefix: string;
31
32
  } | {
@@ -34,6 +35,7 @@ export declare function defineConfig(input: UserConfig): {
34
35
  position: "header" | "sidebar";
35
36
  siteTitle?: string | undefined;
36
37
  siteDescription?: string | undefined;
38
+ siteLink?: string | undefined;
37
39
  type: "blog";
38
40
  prefix: string;
39
41
  } | {
@@ -42,6 +44,7 @@ export declare function defineConfig(input: UserConfig): {
42
44
  position: "header" | "sidebar";
43
45
  siteTitle?: string | undefined;
44
46
  siteDescription?: string | undefined;
47
+ siteLink?: string | undefined;
45
48
  type: "changelog";
46
49
  prefix: string;
47
50
  source: string;
@@ -52,6 +55,7 @@ export declare function defineConfig(input: UserConfig): {
52
55
  position: "header" | "sidebar";
53
56
  siteTitle?: string | undefined;
54
57
  siteDescription?: string | undefined;
58
+ siteLink?: string | undefined;
55
59
  type: "custom";
56
60
  url: string;
57
61
  })[] | undefined;
@@ -5,11 +5,12 @@ 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 { customSectionActive } from "../helpers/section.js";
8
+ import { activeSiteLink, customSectionActive } 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";
12
12
  import { Sidebar } from "./Sidebar.js";
13
+ import { SiteLink } from "./SiteLink.js";
13
14
  import { SiteTitle } from "./SiteTitle.js";
14
15
  function splatFor(pathname) {
15
16
  return { _splat: pathname.replace(/^\/|\/$/g, "") };
@@ -20,13 +21,14 @@ export function Layout(props) {
20
21
  const activeSection = articleRoute
21
22
  ? currentSection(`/${pathname.replace(/^\/|\/$/g, "")}/`)
22
23
  : undefined;
24
+ const siteLinkTarget = activeSiteLink(pathname, config.sections ?? []);
23
25
  useHotkey("J", () => window.scrollBy({ top: window.innerHeight * 0.8, behavior: "smooth" }));
24
26
  useHotkey("K", () => window.scrollBy({ top: -window.innerHeight * 0.8, behavior: "smooth" }));
25
27
  const sections = config.sections;
26
28
  const header = (_jsxs("header", { className: "sticky top-0 z-20 flex h-16 shrink-0 items-center border-b bg-background", children: [
27
29
  _jsx("div", { className: `flex items-center self-stretch pl-4 ${props.withSidebar ? "pr-4" : "lg:pr-20"}`, children: props.withSidebar ? (_jsxs(_Fragment, { children: [
28
- _jsx("div", { className: "hidden lg:flex", children: _jsx(SidebarTrigger, {}) }), _jsx(Link, { to: "/", className: "lg:hidden flex items-center gap-2", children: _jsx(SiteTitle, {}) })
29
- ] })) : (_jsx(Link, { to: "/", className: "flex items-center gap-2", children: _jsx(SiteTitle, {}) })) }), _jsxs("div", { className: "hidden lg:flex flex-1 items-center gap-8 self-stretch px-6 text-sm", children: [sections?.length ? (sections
30
+ _jsx("div", { className: "hidden lg:flex", children: _jsx(SidebarTrigger, {}) }), _jsx(SiteLink, { to: siteLinkTarget, className: "lg:hidden flex items-center gap-2", children: _jsx(SiteTitle, {}) })
31
+ ] })) : (_jsx(SiteLink, { to: siteLinkTarget, className: "flex items-center gap-2", children: _jsx(SiteTitle, {}) })) }), _jsxs("div", { className: "hidden lg:flex flex-1 items-center gap-8 self-stretch px-6 text-sm", children: [sections?.length ? (sections
30
32
  .filter(section => section.position === "header")
31
33
  .map(section => {
32
34
  const icon = section.icon;
@@ -69,4 +71,4 @@ function SidebarShell(props) {
69
71
  ] })
70
72
  ] }));
71
73
  }
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5b3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvTGF5b3V0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUNuRCxPQUFPLEVBQ0wsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsY0FBYyxHQUNmLE1BQU0sdUJBQXVCLENBQUE7QUFDOUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE2QixDQUFBO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUMzRCxPQUFPLEVBQ0wsWUFBWSxFQUNaLGVBQWUsRUFDZixjQUFjLEVBQ2QsVUFBVSxHQUNYLE1BQU0sd0JBQXlCLENBQUE7QUFDaEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFpQixDQUFBO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFjLENBQUE7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWUsQ0FBQTtBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWlCLENBQUE7QUFFM0MsU0FBUyxRQUFRLENBQUMsUUFBZ0I7SUFDaEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFBO0FBQ3JELENBQUM7QUFFRCxNQUFNLFVBQVUsTUFBTSxDQUFDLEtBR3RCO0lBQ0MsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLEVBQUUs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YUFBYSxFQUFFLEdBQUcsVUFBVSxFQUFFLENBQUE7SUFDaEQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUF1QyxFQUFFLEVBQUU7UUFDMUQsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFNO1FBQ3JCLElBQUssS0FBSyxDQUFDLE1BQXNCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUN0RSxDQUFDLENBQUE7SUFDRCxPQUFPLENBQ0wsZUFBSyxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU87WUFDbkQsS0FBQyxPQUFPLElBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLEdBQUksRUFDM0MsTUFBQyxZQUFZLGVBQ1YsS0FBSyxDQUFDLE1BQU0sRUFDYixlQUFNLFNBQVMsRUFBQyxRQUFRLFlBQUUsS0FBSyxDQUFDLFFBQVEsR0FBUSxFQUNoRCxLQUFDLFNBQVMsS0FBRztvQkFDQTtZQUNYLENBQ1AsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb25maWcgfSBmcm9tIFwibGl2ZW1hcms6dmlydHVhbFwiXG5pbXBvcnQgeyBMaW5rLCB1c2VMb2NhdGlvbiwgdXNlTWF0Y2ggfSBmcm9tIFwiQHRhbnN0YWNrL3JlYWN0LXJvdXRlclwiXG5pbXBvcnQgeyB1c2VIb3RrZXkgfSBmcm9tIFwiQHRhbnN0YWNrL3JlYWN0LWhvdGtleXNcIlxuaW1wb3J0IHtcbiAgY3VycmVudFNlY3Rpb24sXG4gIHNlY3Rpb25GaXJzdEFydGljbGUsXG4gIHNlY3Rpb25GbGF0QXJ0aWNsZXMsXG4gIHNvcnRlZEFydGljbGVzLFxufSBmcm9tIFwiLi4vY29udGVudC9hcnRpY2xlLnRzXCJcbmltcG9ydCB7IER5bmFtaWNJY29uIH0gZnJvbSBcIi4uL2hlbHBlcnMvZHluYW1pYy1pY29uLnRzeFwiXG5pbXBvcnQgeyBwcmVmaXhVcmwgfSBmcm9tIFwiLi4vaGVscGVycy9wcmVmaXgtdXJsLnRzXCJcbmltcG9ydCB7IGN1c3RvbVNlY3Rpb25BY3RpdmUgfSBmcm9tIFwiLi4vaGVscGVycy9zZWN0aW9uLnRzXCJcbmltcG9ydCB7XG4gIFNpZGViYXJJbnNldCxcbiAgU2lkZWJhclByb3ZpZGVyLFxuICBTaWRlYmFyVHJpZ2dlcixcbiAgdXNlU2lkZWJhcixcbn0gZnJvbSBcIi4uL2VsZW1lbnRzL3NpZGViYXIudHN4XCJcbmltcG9ydCB7IEJhY2tUb1RvcCB9IGZyb20gXCIuL0JhY2tUb1RvcC50c3hcIlxuaW1wb3J0IHsgQmFubmVyIH0gZnJvbSBcIi4vQmFubmVyLnRzeFwiXG5pbXBvcnQgeyBTaWRlYmFyIH0gZnJvbSBcIi4vU2lkZWJhci50c3hcIlxuaW1wb3J0IHsgU2l0ZVRpdGxlIH0gZnJvbSBcIi4vU2l0ZVRpdGxlLnRzeFwiXG5cbmZ1bmN0aW9uIHNwbGF0Rm9yKHBhdGhuYW1lOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHsgX3NwbGF0OiBwYXRobmFtZS5yZXBsYWNlKC9eXFwvfFxcLyQvZywgXCJcIikgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gTGF5b3V0KHByb3BzOiB7XG4gIHdpdGhTaWRlYmFyPzogYm9vbGVhblxuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZVxufSkge1xuICBjb25zdCBwYXRobmFtZSA9IHVzZUxvY2F0aW9uKHsgc2VsZWN0OiBsID0+IGwucGF0aG5hbWUgfSlcbiAgY29uc3QgYXJ0aWNsZVJvdXRlID0gdXNlTWF0Y2goeyBmcm9tOiBcIi8kXCIsIHNob3VsZFRocm93OiBmYWxzZSB9KVxuICBjb25zdCBhY3RpdmVTZWN0aW9uID0gYXJ0aWNsZVJvdXRlXG4gICAgPyBjdXJyZW50U2VjdGlvbihgLyR7cGF0aG5hbWUucmVwbGFjZSgvXlxcL3xcXC8kL2csIFwiXCIpfS9gKVxuICAgIDogdW5kZWZpbmVkXG5cbiAgdXNlSG90a2V5KFwiSlwiLCAoKSA9PlxuICAgIHdpbmRvdy5zY3JvbGxCeSh7IHRvcDogd2luZG93LmlubmVySGVpZ2h0ICogMC44LCBiZWhhdmlvcjogXCJzbW9vdGhcIiB9KSxcbiAgKVxuICB1c2VIb3RrZXkoXCJLXCIsICgpID0+XG4gICAgd2luZG93LnNjcm9sbEJ5KHsgdG9wOiAtd2luZG93LmlubmVySGVpZ2h0ICogMC44LCBiZWhhdmlvcjogXCJzbW9vdGhcIiB9KSxcbiAgKVxuXG4gIGNvbnN0IHNlY3Rpb25zID0gY29uZmlnLnNlY3Rpb25zXG5cbiAgY29uc3QgaGVhZGVyID0gKFxuICAgIDxoZWFkZXIgY2xhc3NOYW1lPVwic3RpY2t5IHRvcC0wIHotMjAgZmxleCBoLTE2IHNocmluay0wIGl0ZW1zLWNlbnRlciBib3JkZXItYiBiZy1iYWNrZ3JvdW5kXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17YGZsZXggaXRlbXMtY2VudGVyIHNlbGYtc3RyZXRjaCBwbC00ICR7cHJvcHMud2l0aFNpZGViYXIgPyBcInByLTRcIiA6IFwibGc6cHItMjBcIn1gfVxuICAgICAgPlxuICAgICAgICB7cHJvcHMud2l0aFNpZGViYXIgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGlkZGVuIGxnOmZsZXhcIj5cbiAgICAgICAgICAgICAgPFNpZGViYXJUcmlnZ2VyIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxMaW5rIHRvPVwiL1wiIGNsYXNzTmFtZT1cImxnOmhpZGRlbiBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgICA8U2l0ZVRpdGxlIC8+XG4gICAgICAgICAgICA8L0xpbms+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPExpbmsgdG89XCIvXCIgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgIDxTaXRlVGl0bGUgLz5cbiAgICAgICAgICA8L0xpbms+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGlkZGVuIGxnOmZsZXggZmxleC0xIGl0ZW1zLWNlbnRlciBnYXAtOCBzZWxmLXN0cmV0Y2ggcHgtNiB0ZXh0LXNtXCI+XG4gICAgICAgIHtzZWN0aW9ucz8ubGVuZ3RoID8gKFxuICAgICAgICAgIHNlY3Rpb25zXG4gICAgICAgICAgICAuZmlsdGVyKHNlY3Rpb24gPT4gc2VjdGlvbi5wb3NpdGlvbiA9PT0gXCJoZWFkZXJcIilcbiAgICAgICAgICAgIC5tYXAoc2VjdGlvbiA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGljb24gPSBzZWN0aW9uLmljb25cbiAgICAgICAgICAgICAgaWYgKHNlY3Rpb24udHlwZSA9PT0gXCJjdXN0b21cIikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzQWN0aXZlID0gY3VzdG9tU2VjdGlvbkFjdGl2ZShzZWN0aW9uLnVybCwgcGF0aG5hbWUpXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIGtleT17c2VjdGlvbi51cmx9XG4gICAgICAgICAgICAgICAgICAgIGhyZWY9e3ByZWZpeFVybChzZWN0aW9uLnVybCwgY29uZmlnLmJhc2UpfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2BpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEuNSB0ZXh0LWZvcmVncm91bmQgJHtcbiAgICAgICAgICAgICAgICAgICAgICBpc0FjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBcImZvbnQtbWVkaXVtIGJvcmRlci1iLTIgYm9yZGVyLWZvcmVncm91bmQgcGItMC41IC1tYi0wLjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgOiBcIm9wYWNpdHktODAgaG92ZXI6b3BhY2l0eS0xMDAgdHJhbnNpdGlvbi1vcGFjaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtpY29uICYmIDxEeW5hbWljSWNvbiBuYW1lPXtpY29ufSBjbGFzc05hbWU9XCJzaXplLTMuNVwiIC8+fVxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57c2VjdGlvbi50aXRsZX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnN0IGlzQWN0aXZlID0gYWN0aXZlU2VjdGlvbj8ucHJlZml4ID09PSBzZWN0aW9uLnByZWZpeFxuICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPVxuICAgICAgICAgICAgICAgIHNlY3Rpb24udHlwZSA9PT0gXCJibG9nXCIgfHwgc2VjdGlvbi50eXBlID09PSBcImNoYW5nZWxvZ1wiXG4gICAgICAgICAgICAgICAgICA/IHNlY3Rpb24ucHJlZml4XG4gICAgICAgICAgICAgICAgICA6IHNlY3Rpb25GaXJzdEFydGljbGUuZ2V0KHNlY3Rpb24ucHJlZml4KVxuICAgICAgICAgICAgICBjb25zdCBsYXRlc3RWZXJzaW9uID1cbiAgICAgICAgICAgICAgICBzZWN0aW9uLnR5cGUgPT09IFwiY2hhbmdlbG9nXCIgJiYgc2VjdGlvbi52ZXJzaW9uXG4gICAgICAgICAgICAgICAgICA/IHNvcnRlZEFydGljbGVzLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgICAgYSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgYS5wYXRoID09PSBzZWN0aW9uRmxhdEFydGljbGVzLmdldChzZWN0aW9uLnByZWZpeCk/LlswXSxcbiAgICAgICAgICAgICAgICAgICAgKT8udGl0bGVcbiAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPExpbmtcbiAgICAgICAgICAgICAgICAgIGtleT17c2VjdGlvbi5wcmVmaXh9XG4gICAgICAgICAgICAgICAgICB0bz17dGFyZ2V0ID09PSBcIi9cIiA/IFwiL1wiIDogXCIvJFwifVxuICAgICAgICAgICAgICAgICAgcGFyYW1zPXt0YXJnZXQgJiYgdGFyZ2V0ICE9PSBcIi9cIiA/IHNwbGF0Rm9yKHRhcmdldCkgOiB7fX1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YGlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBnYXAtMS41IHRleHQtZm9yZWdyb3VuZCAke1xuICAgICAgICAgICAgICAgICAgICBpc0FjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgID8gXCJmb250LW1lZGl1bSBib3JkZXItYi0yIGJvcmRlci1mb3JlZ3JvdW5kIHBiLTAuNSAtbWItMC41XCJcbiAgICAgICAgICAgICAgICAgICAgICA6IFwib3BhY2l0eS04MCBob3ZlcjpvcGFjaXR5LTEwMCB0cmFuc2l0aW9uLW9wYWNpdHlcIlxuICAgICAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2ljb24gJiYgPER5bmFtaWNJY29uIG5hbWU9e2ljb259IGNsYXNzTmFtZT1cInNpemUtMy41XCIgLz59XG4gICAgICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICAgICAge3NlY3Rpb24udGl0bGV9XG4gICAgICAgICAgICAgICAgICAgIHtsYXRlc3RWZXJzaW9uICYmIChcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJvcGFjaXR5LTgwXCI+ICh7bGF0ZXN0VmVyc2lvbn0pPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8TGlua1xuICAgICAgICAgICAgdG89XCIvXCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtZm9yZWdyb3VuZCBmb250LW1lZGl1bSB1bmRlcmxpbmUgdW5kZXJsaW5lLW9mZnNldC00XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBEb2NzXG4gICAgICAgICAgPC9MaW5rPlxuICAgICAgICApfVxuICAgICAgICB7Y29uZmlnLmxpbmtzXG4gICAgICAgICAgPy5maWx0ZXIoXG4gICAgICAgICAgICBsaW5rID0+XG4gICAgICAgICAgICAgIGxpbmsucG9zaXRpb24gPT09IFwiaGVhZGVyXCIgJiZcbiAgICAgICAgICAgICAgKCFsaW5rLnByZWZpeCB8fCBsaW5rLnByZWZpeCA9PT0gYWN0aXZlU2VjdGlvbj8ucHJlZml4KSxcbiAgICAgICAgICApXG4gICAgICAgICAgLm1hcChsaW5rID0+IChcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIGtleT17bGluay51cmx9XG4gICAgICAgICAgICAgIGhyZWY9e3ByZWZpeFVybChsaW5rLnVybCwgY29uZmlnLmJhc2UpfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LWZvcmVncm91bmQgb3BhY2l0eS04MCBob3ZlcjpvcGFjaXR5LTEwMCB0cmFuc2l0aW9uLW9wYWNpdHlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7bGluay5pY29uICYmIChcbiAgICAgICAgICAgICAgICA8RHluYW1pY0ljb25cbiAgICAgICAgICAgICAgICAgIG5hbWU9e2xpbmsuaWNvbn1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImlubGluZSBzaXplLTMuNSBhbGlnbi1bLTAuMTI1ZW1dXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfXtcIiBcIn1cbiAgICAgICAgICAgICAge2xpbmsudGl0bGV9XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDxCYW5uZXIgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJsZzpoaWRkZW4gbWwtYXV0byBwci0yXCI+XG4gICAgICAgIDxTaWRlYmFyVHJpZ2dlciAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9oZWFkZXI+XG4gIClcblxuICByZXR1cm4gKFxuICAgIDxTaWRlYmFyUHJvdmlkZXJcbiAgICAgIGtleT17cHJvcHMud2l0aFNpZGViYXIgPyBcInNpZGViYXJcIiA6IFwibWluaVwifVxuICAgICAgZGVmYXVsdE9wZW49eyEhcHJvcHMud2l0aFNpZGViYXJ9XG4gICAgPlxuICAgICAgPFNpZGViYXJTaGVsbCB3aXRoU2lkZWJhcj17cHJvcHMud2l0aFNpZGViYXJ9IGhlYWRlcj17aGVhZGVyfT5cbiAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgPC9TaWRlYmFyU2hlbGw+XG4gICAgPC9TaWRlYmFyUHJvdmlkZXI+XG4gIClcbn1cblxuZnVuY3Rpb24gU2lkZWJhclNoZWxsKHByb3BzOiB7XG4gIHdpdGhTaWRlYmFyPzogYm9vbGVhblxuICBoZWFkZXI6IFJlYWN0LlJlYWN0Tm9kZVxuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZVxufSkge1xuICBjb25zdCB7IGlzTW9iaWxlLCBzZXRPcGVuTW9iaWxlIH0gPSB1c2VTaWRlYmFyKClcbiAgY29uc3Qgb25DbGljayA9IChldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICBpZiAoIWlzTW9iaWxlKSByZXR1cm5cbiAgICBpZiAoKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xvc2VzdChcImFcIikpIHNldE9wZW5Nb2JpbGUoZmFsc2UpXG4gIH1cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6IFwiY29udGVudHNcIiB9fSBvbkNsaWNrPXtvbkNsaWNrfT5cbiAgICAgIDxTaWRlYmFyIHdpdGhTaWRlYmFyPXtwcm9wcy53aXRoU2lkZWJhcn0gLz5cbiAgICAgIDxTaWRlYmFySW5zZXQ+XG4gICAgICAgIHtwcm9wcy5oZWFkZXJ9XG4gICAgICAgIDxtYWluIGNsYXNzTmFtZT1cImZsZXgtMVwiPntwcm9wcy5jaGlsZHJlbn08L21haW4+XG4gICAgICAgIDxCYWNrVG9Ub3AgLz5cbiAgICAgIDwvU2lkZWJhckluc2V0PlxuICAgIDwvZGl2PlxuICApXG59XG4iXX0=
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5b3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvTGF5b3V0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUNuRCxPQUFPLEVBQ0wsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsY0FBYyxHQUNmLE1BQU0sdUJBQXVCLENBQUE7QUFDOUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE2QixDQUFBO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDM0UsT0FBTyxFQUNMLFlBQVksRUFDWixlQUFlLEVBQ2YsY0FBYyxFQUNkLFVBQVUsR0FDWCxNQUFNLHdCQUF5QixDQUFBO0FBQ2hDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBaUIsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYyxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFlLENBQUE7QUFDdkMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWdCLENBQUE7QUFDekMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFpQixDQUFBO0FBRTNDLFNBQVMsUUFBUSxDQUFDLFFBQWdCO0lBQ2hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQTtBQUNyRCxDQUFDO0FBRUQsTUFBTSxVQUFV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LENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FNM0IsQ0FDbkIsQ0FBQTtBQUNILENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxLQUlyQjtJQUNDLE1BQU0sRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLEdBQUcsVUFBVSxFQUFFLENBQUE7SUFDaEQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUF1QyxFQUFFLEVBQUU7UUFDMUQsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFNO1FBQ3JCLElBQUssS0FBSyxDQUFDLE1BQXNCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUN0RSxDQUFDLENBQUE7SUFDRCxPQUFPLENBQ0wsZUFBSyxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU87WUFDbkQsS0FBQyxPQUFPLElBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLEdBQUksRUFDM0MsTUFBQyxZQUFZLGVBQ1YsS0FBSyxDQUFDLE1BQU0sRUFDYixlQUFNLFNBQVMsRUFBQyxRQUFRLFlBQUUsS0FBSyxDQUFDLFFBQVEsR0FBUSxFQUNoRCxLQUFDLFNBQVMsS0FBRztvQkFDQTtZQUNYLENBQ1AsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb25maWcgfSBmcm9tIFwibGl2ZW1hcms6dmlydHVhbFwiXG5pbXBvcnQgeyBMaW5rLCB1c2VMb2NhdGlvbiwgdXNlTWF0Y2ggfSBmcm9tIFwiQHRhbnN0YWNrL3JlYWN0LXJvdXRlclwiXG5pbXBvcnQgeyB1c2VIb3RrZXkgfSBmcm9tIFwiQHRhbnN0YWNrL3JlYWN0LWhvdGtleXNcIlxuaW1wb3J0IHtcbiAgY3VycmVudFNlY3Rpb24sXG4gIHNlY3Rpb25GaXJzdEFydGljbGUsXG4gIHNlY3Rpb25GbGF0QXJ0aWNsZXMsXG4gIHNvcnRlZEFydGljbGVzLFxufSBmcm9tIFwiLi4vY29udGVudC9hcnRpY2xlLnRzXCJcbmltcG9ydCB7IER5bmFtaWNJY29uIH0gZnJvbSBcIi4uL2hlbHBlcnMvZHluYW1pYy1pY29uLnRzeFwiXG5pbXBvcnQgeyBwcmVmaXhVcmwgfSBmcm9tIFwiLi4vaGVscGVycy9wcmVmaXgtdXJsLnRzXCJcbmltcG9ydCB7IGFjdGl2ZVNpdGVMaW5rLCBjdXN0b21TZWN0aW9uQWN0aXZlIH0gZnJvbSBcIi4uL2hlbHBlcnMvc2VjdGlvbi50c1wiXG5pbXBvcnQge1xuICBTaWRlYmFySW5zZXQsXG4gIFNpZGViYXJQcm92aWRlcixcbiAgU2lkZWJhclRyaWdnZXIsXG4gIHVzZVNpZGViYXIsXG59IGZyb20gXCIuLi9lbGVtZW50cy9zaWRlYmFyLnRzeFwiXG5pbXBvcnQgeyBCYWNrVG9Ub3AgfSBmcm9tIFwiLi9CYWNrVG9Ub3AudHN4XCJcbmltcG9ydCB7IEJhbm5lciB9IGZyb20gXCIuL0Jhbm5lci50c3hcIlxuaW1wb3J0IHsgU2lkZWJhciB9IGZyb20gXCIuL1NpZGViYXIudHN4XCJcbmltcG9ydCB7IFNpdGVMaW5rIH0gZnJvbSBcIi4vU2l0ZUxpbmsudHN4XCJcbmltcG9ydCB7IFNpdGVUaXRsZSB9IGZyb20gXCIuL1NpdGVUaXRsZS50c3hcIlxuXG5mdW5jdGlvbiBzcGxhdEZvcihwYXRobmFtZTogc3RyaW5nKSB7XG4gIHJldHVybiB7IF9zcGxhdDogcGF0aG5hbWUucmVwbGFjZSgvXlxcL3xcXC8kL2csIFwiXCIpIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIExheW91dChwcm9wczoge1xuICB3aXRoU2lkZWJhcj86IGJvb2xlYW5cbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGVcbn0pIHtcbiAgY29uc3QgcGF0aG5hbWUgPSB1c2VMb2NhdGlvbih7IHNlbGVjdDogbCA9PiBsLnBhdGhuYW1lIH0pXG4gIGNvbnN0IGFydGljbGVSb3V0ZSA9IHVzZU1hdGNoKHsgZnJvbTogXCIvJFwiLCBzaG91bGRUaHJvdzogZmFsc2UgfSlcbiAgY29uc3QgYWN0aXZlU2VjdGlvbiA9IGFydGljbGVSb3V0ZVxuICAgID8gY3VycmVudFNlY3Rpb24oYC8ke3BhdGhuYW1lLnJlcGxhY2UoL15cXC98XFwvJC9nLCBcIlwiKX0vYClcbiAgICA6IHVuZGVmaW5lZFxuICBjb25zdCBzaXRlTGlua1RhcmdldCA9IGFjdGl2ZVNpdGVMaW5rKHBhdGhuYW1lLCBjb25maWcuc2VjdGlvbnMgPz8gW10pXG5cbiAgdXNlSG90a2V5KFwiSlwiLCAoKSA9PlxuICAgIHdpbmRvdy5zY3JvbGxCeSh7IHRvcDogd2luZG93LmlubmVySGVpZ2h0ICogMC44LCBiZWhhdmlvcjogXCJzbW9vdGhcIiB9KSxcbiAgKVxuICB1c2VIb3RrZXkoXCJLXCIsICgpID0+XG4gICAgd2luZG93LnNjcm9sbEJ5KHsgdG9wOiAtd2luZG93LmlubmVySGVpZ2h0ICogMC44LCBiZWhhdmlvcjogXCJzbW9vdGhcIiB9KSxcbiAgKVxuXG4gIGNvbnN0IHNlY3Rpb25zID0gY29uZmlnLnNlY3Rpb25zXG5cbiAgY29uc3QgaGVhZGVyID0gKFxuICAgIDxoZWFkZXIgY2xhc3NOYW1lPVwic3RpY2t5IHRvcC0wIHotMjAgZmxleCBoLTE2IHNocmluay0wIGl0ZW1zLWNlbnRlciBib3JkZXItYiBiZy1iYWNrZ3JvdW5kXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17YGZsZXggaXRlbXMtY2VudGVyIHNlbGYtc3RyZXRjaCBwbC00ICR7cHJvcHMud2l0aFNpZGViYXIgPyBcInByLTRcIiA6IFwibGc6cHItMjBcIn1gfVxuICAgICAgPlxuICAgICAgICB7cHJvcHMud2l0aFNpZGViYXIgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGlkZGVuIGxnOmZsZXhcIj5cbiAgICAgICAgICAgICAgPFNpZGViYXJUcmlnZ2VyIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxTaXRlTGlua1xuICAgICAgICAgICAgICB0bz17c2l0ZUxpbmtUYXJnZXR9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImxnOmhpZGRlbiBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTaXRlVGl0bGUgLz5cbiAgICAgICAgICAgIDwvU2l0ZUxpbms+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFNpdGVMaW5rIHRvPXtzaXRlTGlua1RhcmdldH0gY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgIDxTaXRlVGl0bGUgLz5cbiAgICAgICAgICA8L1NpdGVMaW5rPlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImhpZGRlbiBsZzpmbGV4IGZsZXgtMSBpdGVtcy1jZW50ZXIgZ2FwLTggc2VsZi1zdHJldGNoIHB4LTYgdGV4dC1zbVwiPlxuICAgICAgICB7c2VjdGlvbnM/Lmxlbmd0aCA/IChcbiAgICAgICAgICBzZWN0aW9uc1xuICAgICAgICAgICAgLmZpbHRlcihzZWN0aW9uID0+IHNlY3Rpb24ucG9zaXRpb24gPT09IFwiaGVhZGVyXCIpXG4gICAgICAgICAgICAubWFwKHNlY3Rpb24gPT4ge1xuICAgICAgICAgICAgICBjb25zdCBpY29uID0gc2VjdGlvbi5pY29uXG4gICAgICAgICAgICAgIGlmIChzZWN0aW9uLnR5cGUgPT09IFwiY3VzdG9tXCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpc0FjdGl2ZSA9IGN1c3RvbVNlY3Rpb25BY3RpdmUoc2VjdGlvbi51cmwsIHBhdGhuYW1lKVxuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICBrZXk9e3NlY3Rpb24udXJsfVxuICAgICAgICAgICAgICAgICAgICBocmVmPXtwcmVmaXhVcmwoc2VjdGlvbi51cmwsIGNvbmZpZy5iYXNlKX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGdhcC0xLjUgdGV4dC1mb3JlZ3JvdW5kICR7XG4gICAgICAgICAgICAgICAgICAgICAgaXNBY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgID8gXCJmb250LW1lZGl1bSBib3JkZXItYi0yIGJvcmRlci1mb3JlZ3JvdW5kIHBiLTAuNSAtbWItMC41XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJvcGFjaXR5LTgwIGhvdmVyOm9wYWNpdHktMTAwIHRyYW5zaXRpb24tb3BhY2l0eVwiXG4gICAgICAgICAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7aWNvbiAmJiA8RHluYW1pY0ljb24gbmFtZT17aWNvbn0gY2xhc3NOYW1lPVwic2l6ZS0zLjVcIiAvPn1cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3NlY3Rpb24udGl0bGV9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb25zdCBpc0FjdGl2ZSA9IGFjdGl2ZVNlY3Rpb24/LnByZWZpeCA9PT0gc2VjdGlvbi5wcmVmaXhcbiAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID1cbiAgICAgICAgICAgICAgICBzZWN0aW9uLnR5cGUgPT09IFwiYmxvZ1wiIHx8IHNlY3Rpb24udHlwZSA9PT0gXCJjaGFuZ2Vsb2dcIlxuICAgICAgICAgICAgICAgICAgPyBzZWN0aW9uLnByZWZpeFxuICAgICAgICAgICAgICAgICAgOiBzZWN0aW9uRmlyc3RBcnRpY2xlLmdldChzZWN0aW9uLnByZWZpeClcbiAgICAgICAgICAgICAgY29uc3QgbGF0ZXN0VmVyc2lvbiA9XG4gICAgICAgICAgICAgICAgc2VjdGlvbi50eXBlID09PSBcImNoYW5nZWxvZ1wiICYmIHNlY3Rpb24udmVyc2lvblxuICAgICAgICAgICAgICAgICAgPyBzb3J0ZWRBcnRpY2xlcy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgIGEgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGEucGF0aCA9PT0gc2VjdGlvbkZsYXRBcnRpY2xlcy5nZXQoc2VjdGlvbi5wcmVmaXgpPy5bMF0sXG4gICAgICAgICAgICAgICAgICAgICk/LnRpdGxlXG4gICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICAgICAgICBrZXk9e3NlY3Rpb24ucHJlZml4fVxuICAgICAgICAgICAgICAgICAgdG89e3RhcmdldCA9PT0gXCIvXCIgPyBcIi9cIiA6IFwiLyRcIn1cbiAgICAgICAgICAgICAgICAgIHBhcmFtcz17dGFyZ2V0ICYmIHRhcmdldCAhPT0gXCIvXCIgPyBzcGxhdEZvcih0YXJnZXQpIDoge319XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2BpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEuNSB0ZXh0LWZvcmVncm91bmQgJHtcbiAgICAgICAgICAgICAgICAgICAgaXNBY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiZm9udC1tZWRpdW0gYm9yZGVyLWItMiBib3JkZXItZm9yZWdyb3VuZCBwYi0wLjUgLW1iLTAuNVwiXG4gICAgICAgICAgICAgICAgICAgICAgOiBcIm9wYWNpdHktODAgaG92ZXI6b3BhY2l0eS0xMDAgdHJhbnNpdGlvbi1vcGFjaXR5XCJcbiAgICAgICAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtpY29uICYmIDxEeW5hbWljSWNvbiBuYW1lPXtpY29ufSBjbGFzc05hbWU9XCJzaXplLTMuNVwiIC8+fVxuICAgICAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgICAgIHtzZWN0aW9uLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICB7bGF0ZXN0VmVyc2lvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwib3BhY2l0eS04MFwiPiAoe2xhdGVzdFZlcnNpb259KTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L0xpbms+XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0pXG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPExpbmtcbiAgICAgICAgICAgIHRvPVwiL1wiXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LWZvcmVncm91bmQgZm9udC1tZWRpdW0gdW5kZXJsaW5lIHVuZGVybGluZS1vZmZzZXQtNFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgRG9jc1xuICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgKX1cbiAgICAgICAge2NvbmZpZy5saW5rc1xuICAgICAgICAgID8uZmlsdGVyKFxuICAgICAgICAgICAgbGluayA9PlxuICAgICAgICAgICAgICBsaW5rLnBvc2l0aW9uID09PSBcImhlYWRlclwiICYmXG4gICAgICAgICAgICAgICghbGluay5wcmVmaXggfHwgbGluay5wcmVmaXggPT09IGFjdGl2ZVNlY3Rpb24/LnByZWZpeCksXG4gICAgICAgICAgKVxuICAgICAgICAgIC5tYXAobGluayA9PiAoXG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICBrZXk9e2xpbmsudXJsfVxuICAgICAgICAgICAgICBocmVmPXtwcmVmaXhVcmwobGluay51cmwsIGNvbmZpZy5iYXNlKX1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1mb3JlZ3JvdW5kIG9wYWNpdHktODAgaG92ZXI6b3BhY2l0eS0xMDAgdHJhbnNpdGlvbi1vcGFjaXR5XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2xpbmsuaWNvbiAmJiAoXG4gICAgICAgICAgICAgICAgPER5bmFtaWNJY29uXG4gICAgICAgICAgICAgICAgICBuYW1lPXtsaW5rLmljb259XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbmxpbmUgc2l6ZS0zLjUgYWxpZ24tWy0wLjEyNWVtXVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKX17XCIgXCJ9XG4gICAgICAgICAgICAgIHtsaW5rLnRpdGxlfVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICkpfVxuICAgICAgICA8QmFubmVyIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGc6aGlkZGVuIG1sLWF1dG8gcHItMlwiPlxuICAgICAgICA8U2lkZWJhclRyaWdnZXIgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvaGVhZGVyPlxuICApXG5cbiAgcmV0dXJuIChcbiAgICA8U2lkZWJhclByb3ZpZGVyXG4gICAgICBrZXk9e3Byb3BzLndpdGhTaWRlYmFyID8gXCJzaWRlYmFyXCIgOiBcIm1pbmlcIn1cbiAgICAgIGRlZmF1bHRPcGVuPXshIXByb3BzLndpdGhTaWRlYmFyfVxuICAgID5cbiAgICAgIDxTaWRlYmFyU2hlbGwgd2l0aFNpZGViYXI9e3Byb3BzLndpdGhTaWRlYmFyfSBoZWFkZXI9e2hlYWRlcn0+XG4gICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgIDwvU2lkZWJhclNoZWxsPlxuICAgIDwvU2lkZWJhclByb3ZpZGVyPlxuICApXG59XG5cbmZ1bmN0aW9uIFNpZGViYXJTaGVsbChwcm9wczoge1xuICB3aXRoU2lkZWJhcj86IGJvb2xlYW5cbiAgaGVhZGVyOiBSZWFjdC5SZWFjdE5vZGVcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGVcbn0pIHtcbiAgY29uc3QgeyBpc01vYmlsZSwgc2V0T3Blbk1vYmlsZSB9ID0gdXNlU2lkZWJhcigpXG4gIGNvbnN0IG9uQ2xpY2sgPSAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKCFpc01vYmlsZSkgcmV0dXJuXG4gICAgaWYgKChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoXCJhXCIpKSBzZXRPcGVuTW9iaWxlKGZhbHNlKVxuICB9XG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiBcImNvbnRlbnRzXCIgfX0gb25DbGljaz17b25DbGlja30+XG4gICAgICA8U2lkZWJhciB3aXRoU2lkZWJhcj17cHJvcHMud2l0aFNpZGViYXJ9IC8+XG4gICAgICA8U2lkZWJhckluc2V0PlxuICAgICAgICB7cHJvcHMuaGVhZGVyfVxuICAgICAgICA8bWFpbiBjbGFzc05hbWU9XCJmbGV4LTFcIj57cHJvcHMuY2hpbGRyZW59PC9tYWluPlxuICAgICAgICA8QmFja1RvVG9wIC8+XG4gICAgICA8L1NpZGViYXJJbnNldD5cbiAgICA8L2Rpdj5cbiAgKVxufVxuIl19
@@ -1,7 +1,9 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Link, useLocation, useMatch } from "@tanstack/react-router";
2
+ import { config } from "livemark:virtual";
3
+ import { useLocation, useMatch } from "@tanstack/react-router";
3
4
  import { useHotkey } from "@tanstack/react-hotkeys";
4
5
  import { currentSection } from "../content/article.js";
6
+ import { activeSiteLink } from "../helpers/section.js";
5
7
  import { Sidebar as SidebarRoot, SidebarContent, SidebarFooter, SidebarHeader, SidebarMenu, SidebarMenuButton, SidebarMenuItem, SidebarRail, useSidebar, } from "../elements/sidebar.js";
6
8
  import { Search } from "./Search.js";
7
9
  import { SidebarArticles } from "./SidebarArticles.js";
@@ -9,6 +11,7 @@ import { SidebarLinks } from "./SidebarLinks.js";
9
11
  import { SidebarPosts } from "./SidebarPosts.js";
10
12
  import { SidebarReleases } from "./SidebarReleases.js";
11
13
  import { SidebarSections } from "./SidebarSections.js";
14
+ import { SiteLink } from "./SiteLink.js";
12
15
  import { SiteTitle } from "./SiteTitle.js";
13
16
  import { Theme } from "./Theme.js";
14
17
  /** Application sidebar shell: header, body slot picked by section.type, footer */
@@ -23,8 +26,9 @@ export function Sidebar(props) {
23
26
  const section = articleRoute
24
27
  ? currentSection(`/${pathname.replace(/^\/|\/$/g, "")}/`)
25
28
  : undefined;
29
+ const siteLinkTarget = activeSiteLink(pathname, config.sections ?? []);
26
30
  return (_jsxs(SidebarRoot, { children: [
27
- _jsx(SidebarHeader, { children: _jsx(SidebarMenu, { children: _jsx(SidebarMenuItem, { children: _jsx(SidebarMenuButton, { size: "lg", render: _jsx(Link, { to: "/" }), children: _jsx(SiteTitle, {}) }) }) }) }), _jsxs(SidebarContent, { children: [
31
+ _jsx(SidebarHeader, { children: _jsx(SidebarMenu, { children: _jsx(SidebarMenuItem, { children: _jsx(SidebarMenuButton, { size: "lg", render: _jsx(SiteLink, { to: siteLinkTarget }), children: _jsx(SiteTitle, {}) }) }) }) }), _jsxs(SidebarContent, { children: [
28
32
  _jsx(SidebarSections, {}), props.withSidebar && section?.type === "blog" && _jsx(SidebarPosts, {}), props.withSidebar && section?.type === "changelog" && (_jsx(SidebarReleases, {})), props.withSidebar &&
29
33
  section?.type !== "blog" &&
30
34
  section?.type !== "changelog" && _jsx(SidebarArticles, {}), _jsx(SidebarLinks, {})
@@ -33,4 +37,4 @@ export function Sidebar(props) {
33
37
  ] }), _jsx(SidebarRail, {})
34
38
  ] }));
35
39
  }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2lkZWJhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9jb21wb25lbnRzL1NpZGViYXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ3RELE9BQU8sRUFDTCxPQUFPLElBQUksV0FBVyxFQUN0QixjQUFjLEVBQ2QsYUFBYSxFQUNiLGFBQWEsRUFDYixXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixXQUFXLEVBQ1gsVUFBVSxHQUNYLE1BQU0sd0JBQXlCLENBQUE7QUFDaEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWMsQ0FBQTtBQUNyQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXVCLENBQUE7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFvQixDQUFBO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBb0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXVCLENBQUE7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUF1QixDQUFBO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBaUIsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sWUFBYSxDQUFBO0FBRW5DLGtGQUFrRjtBQUNsRixNQUFNLFVBQVUsT0FBTyxDQUFDLEtBQWdDO0lBQ3RELE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO0lBQ3pELE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUE7SUFDakUsTUFBTSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsR0FBRyxVQUFVLEVBQUUsQ0FBQTtJQUVoRCxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRTtRQUNsQixJQUFJLEtBQUssQ0FBQyxXQUFXLElBQUksUUFBUTtZQUFFLGFBQWEsRUFBRSxDQUFBO0lBQ3BELENBQUMsQ0FBQyxDQUFBO0lBRUYsTUFBTSxPQUFPLEdBQUcsWUFBWTtRQUMxQixDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQztRQUN6RCxDQUFDLENBQUMsU0FBUyxDQUFBO0lBRWIsT0FBTyxDQUNMLE1BQUMsV0FBVztZQUNWLEtBQUMsYUFBYSxjQUNaLEtBQUMsV0FBVyxjQUNWLEtBQUMsZUFBZSxjQUNkLEtBQUMsaUJBQWlCLElBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxNQUFNLEVBQUUsS0FBQyxJQUFJLElBQUMsRUFBRSxFQUFDLEdBQUcsR0FBRyxZQUNsRCxLQUFDLFNBQVMsS0FBRyxHQUNLLEdBQ0osR0FDTixHQUNBLEVBQ2hCLE1BQUMsY0FBYztvQkFDYixLQUFDLGVBQWUsS0FBRyxFQUNsQixLQUFLLENBQUMsV0FBVyxJQUFJLE9BQU8sRUFBRSxJQUFJLEtBQUssTUFBTSxJQUFJLEtBQUMsWUFBWSxLQUFHLEVBQ2pFLEtBQUssQ0FBQyxXQUFXLElBQUksT0FBTyxFQUFFLElBQUksS0FBSyxXQUFXLElBQUksQ0FDckQsS0FBQyxlQUFlLEtBQUcsQ0FDcEIsRUFDQSxLQUFLLENBQUMsV0FBVzt3QkFDaEIsT0FBTyxFQUFFLElBQUksS0FBSyxNQUFNO3dCQUN4QixPQUFPLEVBQUUsSUFBSSxLQUFLLFdBQVcsSUFBSSxLQUFDLGVBQWUsS0FBRyxFQUN0RCxLQUFDLFlBQVksS0FBRztvQkFDRCxFQUNqQixNQUFDLGFBQWEsSUFBQyxTQUFTLEVBQUMsZUFBZTtvQkFDdEMsS0FBQyxNQUFNLEtBQUcsRUFDVixLQUFDLEtBQUssS0FBRztvQkFDSyxFQUNoQixLQUFDLFdBQVcsS0FBRztZQUNILENBQ2YsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMaW5rLCB1c2VMb2NhdGlvbiwgdXNlTWF0Y2ggfSBmcm9tIFwiQHRhbnN0YWNrL3JlYWN0LXJvdXRlclwiXG5pbXBvcnQgeyB1c2VIb3RrZXkgfSBmcm9tIFwiQHRhbnN0YWNrL3JlYWN0LWhvdGtleXNcIlxuaW1wb3J0IHsgY3VycmVudFNlY3Rpb24gfSBmcm9tIFwiLi4vY29udGVudC9hcnRpY2xlLnRzXCJcbmltcG9ydCB7XG4gIFNpZGViYXIgYXMgU2lkZWJhclJvb3QsXG4gIFNpZGViYXJDb250ZW50LFxuICBTaWRlYmFyRm9vdGVyLFxuICBTaWRlYmFySGVhZGVyLFxuICBTaWRlYmFyTWVudSxcbiAgU2lkZWJhck1lbnVCdXR0b24sXG4gIFNpZGViYXJNZW51SXRlbSxcbiAgU2lkZWJhclJhaWwsXG4gIHVzZVNpZGViYXIsXG59IGZyb20gXCIuLi9lbGVtZW50cy9zaWRlYmFyLnRzeFwiXG5pbXBvcnQgeyBTZWFyY2ggfSBmcm9tIFwiLi9TZWFyY2gudHN4XCJcbmltcG9ydCB7IFNpZGViYXJBcnRpY2xlcyB9IGZyb20gXCIuL1NpZGViYXJBcnRpY2xlcy50c3hcIlxuaW1wb3J0IHsgU2lkZWJhckxpbmtzIH0gZnJvbSBcIi4vU2lkZWJhckxpbmtzLnRzeFwiXG5pbXBvcnQgeyBTaWRlYmFyUG9zdHMgfSBmcm9tIFwiLi9TaWRlYmFyUG9zdHMudHN4XCJcbmltcG9ydCB7IFNpZGViYXJSZWxlYXNlcyB9IGZyb20gXCIuL1NpZGViYXJSZWxlYXNlcy50c3hcIlxuaW1wb3J0IHsgU2lkZWJhclNlY3Rpb25zIH0gZnJvbSBcIi4vU2lkZWJhclNlY3Rpb25zLnRzeFwiXG5pbXBvcnQgeyBTaXRlVGl0bGUgfSBmcm9tIFwiLi9TaXRlVGl0bGUudHN4XCJcbmltcG9ydCB7IFRoZW1lIH0gZnJvbSBcIi4vVGhlbWUudHN4XCJcblxuLyoqIEFwcGxpY2F0aW9uIHNpZGViYXIgc2hlbGw6IGhlYWRlciwgYm9keSBzbG90IHBpY2tlZCBieSBzZWN0aW9uLnR5cGUsIGZvb3RlciAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNpZGViYXIocHJvcHM6IHsgd2l0aFNpZGViYXI/OiBib29sZWFuIH0pIHtcbiAgY29uc3QgcGF0aG5hbWUgPSB1c2VMb2NhdGlvbih7IHNlbGVjdDogbCA9PiBsLnBhdGhuYW1lIH0pXG4gIGNvbnN0IGFydGljbGVSb3V0ZSA9IHVzZU1hdGNoKHsgZnJvbTogXCIvJFwiLCBzaG91bGRUaHJvdzogZmFsc2UgfSlcbiAgY29uc3QgeyB0b2dnbGVTaWRlYmFyLCBpc01vYmlsZSB9ID0gdXNlU2lkZWJhcigpXG5cbiAgdXNlSG90a2V5KFwiU1wiLCAoKSA9PiB7XG4gICAgaWYgKHByb3BzLndpdGhTaWRlYmFyIHx8IGlzTW9iaWxlKSB0b2dnbGVTaWRlYmFyKClcbiAgfSlcblxuICBjb25zdCBzZWN0aW9uID0gYXJ0aWNsZVJvdXRlXG4gICAgPyBjdXJyZW50U2VjdGlvbihgLyR7cGF0aG5hbWUucmVwbGFjZSgvXlxcL3xcXC8kL2csIFwiXCIpfS9gKVxuICAgIDogdW5kZWZpbmVkXG5cbiAgcmV0dXJuIChcbiAgICA8U2lkZWJhclJvb3Q+XG4gICAgICA8U2lkZWJhckhlYWRlcj5cbiAgICAgICAgPFNpZGViYXJNZW51PlxuICAgICAgICAgIDxTaWRlYmFyTWVudUl0ZW0+XG4gICAgICAgICAgICA8U2lkZWJhck1lbnVCdXR0b24gc2l6ZT1cImxnXCIgcmVuZGVyPXs8TGluayB0bz1cIi9cIiAvPn0+XG4gICAgICAgICAgICAgIDxTaXRlVGl0bGUgLz5cbiAgICAgICAgICAgIDwvU2lkZWJhck1lbnVCdXR0b24+XG4gICAgICAgICAgPC9TaWRlYmFyTWVudUl0ZW0+XG4gICAgICAgIDwvU2lkZWJhck1lbnU+XG4gICAgICA8L1NpZGViYXJIZWFkZXI+XG4gICAgICA8U2lkZWJhckNvbnRlbnQ+XG4gICAgICAgIDxTaWRlYmFyU2VjdGlvbnMgLz5cbiAgICAgICAge3Byb3BzLndpdGhTaWRlYmFyICYmIHNlY3Rpb24/LnR5cGUgPT09IFwiYmxvZ1wiICYmIDxTaWRlYmFyUG9zdHMgLz59XG4gICAgICAgIHtwcm9wcy53aXRoU2lkZWJhciAmJiBzZWN0aW9uPy50eXBlID09PSBcImNoYW5nZWxvZ1wiICYmIChcbiAgICAgICAgICA8U2lkZWJhclJlbGVhc2VzIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtwcm9wcy53aXRoU2lkZWJhciAmJlxuICAgICAgICAgIHNlY3Rpb24/LnR5cGUgIT09IFwiYmxvZ1wiICYmXG4gICAgICAgICAgc2VjdGlvbj8udHlwZSAhPT0gXCJjaGFuZ2Vsb2dcIiAmJiA8U2lkZWJhckFydGljbGVzIC8+fVxuICAgICAgICA8U2lkZWJhckxpbmtzIC8+XG4gICAgICA8L1NpZGViYXJDb250ZW50PlxuICAgICAgPFNpZGViYXJGb290ZXIgY2xhc3NOYW1lPVwicC00IHNwYWNlLXktMlwiPlxuICAgICAgICA8U2VhcmNoIC8+XG4gICAgICAgIDxUaGVtZSAvPlxuICAgICAgPC9TaWRlYmFyRm9vdGVyPlxuICAgICAgPFNpZGViYXJSYWlsIC8+XG4gICAgPC9TaWRlYmFyUm9vdD5cbiAgKVxufVxuIl19
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2lkZWJhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9jb21wb25lbnRzL1NpZGViYXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUN0RCxPQUFPLEVBQ0wsT0FBTyxJQUFJLFdBQVcsRUFDdEIsY0FBYyxFQUNkLGFBQWEsRUFDYixhQUFhLEVBQ2IsV0FBVyxFQUNYLGlCQUFpQixFQUNqQixlQUFlLEVBQ2YsV0FBVyxFQUNYLFVBQVUsR0FDWCxNQUFNLHdCQUF5QixDQUFBO0FBQ2hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFjLENBQUE7QUFDckMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUF1QixDQUFBO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBb0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW9CLENBQUE7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUF1QixDQUFBO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBdUIsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZ0IsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWlCLENBQUE7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFlBQWEsQ0FBQTtBQUVuQyxrRkFBa0Y7QUFDbEYsTUFBTSxVQUFVLE9BQU8sQ0FBQyxLQUFnQztJQUN0RCxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUN6RCxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO0lBQ2pFLE1BQU0sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLEdBQUcsVUFBVSxFQUFFLENBQUE7SUFFaEQsU0FBUyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUU7UUFDbEIsSUFBSSxLQUFLLENBQUMsV0FBVyxJQUFJLFFBQVE7WUFBRSxhQUFhLEVBQUUsQ0FBQTtJQUNwRCxDQUFDLENBQUMsQ0FBQTtJQUVGLE1BQU0sT0FBTyxHQUFHLFlBQVk7UUFDMUIsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUM7UUFDekQsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtJQUNiLE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQTtJQUV0RSxPQUFPLENBQ0wsTUFBQyxXQUFXO1lBQ1YsS0FBQyxhQUFhLGNBQ1osS0FBQyxXQUFXLGNBQ1YsS0FBQyxlQUFlLGNBQ2QsS0FBQyxpQkFBaUIsSUFDaEIsSUFBSSxFQUFDLElBQUksRUFDVCxNQUFNLEVBQUUsS0FBQyxRQUFRLElBQUMsRUFBRSxFQUFFLGNBQWMsR0FBSSxZQUV4QyxLQUFDLFNBQVMsS0FBRyxHQUNLLEdBQ0osR0FDTixHQUNBLEVBQ2hCLE1BQUMsY0FBYztvQkFDYixLQUFDLGVBQWUsS0FBRyxFQUNsQixLQUFLLENBQUMsV0FBVyxJQUFJLE9BQU8sRUFBRSxJQUFJLEtBQUssTUFBTSxJQUFJLEtBQUMsWUFBWSxLQUFHLEVBQ2pFLEtBQUssQ0FBQyxXQUFXLElBQUksT0FBTyxFQUFFLElBQUksS0FBSyxXQUFXLElBQUksQ0FDckQsS0FBQyxlQUFlLEtBQUcsQ0FDcEIsRUFDQSxLQUFLLENBQUMsV0FBVzt3QkFDaEIsT0FBTyxFQUFFLElBQUksS0FBSyxNQUFNO3dCQUN4QixPQUFPLEVBQUUsSUFBSSxLQUFLLFdBQVcsSUFBSSxLQUFDLGVBQWUsS0FBRyxFQUN0RCxLQUFDLFlBQVksS0FBRztvQkFDRCxFQUNqQixNQUFDLGFBQWEsSUFBQyxTQUFTLEVBQUMsZUFBZTtvQkFDdEMsS0FBQyxNQUFNLEtBQUcsRUFDVixLQUFDLEtBQUssS0FBRztvQkFDSyxFQUNoQixLQUFDLFdBQVcsS0FBRztZQUNILENBQ2YsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb25maWcgfSBmcm9tIFwibGl2ZW1hcms6dmlydHVhbFwiXG5pbXBvcnQgeyB1c2VMb2NhdGlvbiwgdXNlTWF0Y2ggfSBmcm9tIFwiQHRhbnN0YWNrL3JlYWN0LXJvdXRlclwiXG5pbXBvcnQgeyB1c2VIb3RrZXkgfSBmcm9tIFwiQHRhbnN0YWNrL3JlYWN0LWhvdGtleXNcIlxuaW1wb3J0IHsgY3VycmVudFNlY3Rpb24gfSBmcm9tIFwiLi4vY29udGVudC9hcnRpY2xlLnRzXCJcbmltcG9ydCB7IGFjdGl2ZVNpdGVMaW5rIH0gZnJvbSBcIi4uL2hlbHBlcnMvc2VjdGlvbi50c1wiXG5pbXBvcnQge1xuICBTaWRlYmFyIGFzIFNpZGViYXJSb290LFxuICBTaWRlYmFyQ29udGVudCxcbiAgU2lkZWJhckZvb3RlcixcbiAgU2lkZWJhckhlYWRlcixcbiAgU2lkZWJhck1lbnUsXG4gIFNpZGViYXJNZW51QnV0dG9uLFxuICBTaWRlYmFyTWVudUl0ZW0sXG4gIFNpZGViYXJSYWlsLFxuICB1c2VTaWRlYmFyLFxufSBmcm9tIFwiLi4vZWxlbWVudHMvc2lkZWJhci50c3hcIlxuaW1wb3J0IHsgU2VhcmNoIH0gZnJvbSBcIi4vU2VhcmNoLnRzeFwiXG5pbXBvcnQgeyBTaWRlYmFyQXJ0aWNsZXMgfSBmcm9tIFwiLi9TaWRlYmFyQXJ0aWNsZXMudHN4XCJcbmltcG9ydCB7IFNpZGViYXJMaW5rcyB9IGZyb20gXCIuL1NpZGViYXJMaW5rcy50c3hcIlxuaW1wb3J0IHsgU2lkZWJhclBvc3RzIH0gZnJvbSBcIi4vU2lkZWJhclBvc3RzLnRzeFwiXG5pbXBvcnQgeyBTaWRlYmFyUmVsZWFzZXMgfSBmcm9tIFwiLi9TaWRlYmFyUmVsZWFzZXMudHN4XCJcbmltcG9ydCB7IFNpZGViYXJTZWN0aW9ucyB9IGZyb20gXCIuL1NpZGViYXJTZWN0aW9ucy50c3hcIlxuaW1wb3J0IHsgU2l0ZUxpbmsgfSBmcm9tIFwiLi9TaXRlTGluay50c3hcIlxuaW1wb3J0IHsgU2l0ZVRpdGxlIH0gZnJvbSBcIi4vU2l0ZVRpdGxlLnRzeFwiXG5pbXBvcnQgeyBUaGVtZSB9IGZyb20gXCIuL1RoZW1lLnRzeFwiXG5cbi8qKiBBcHBsaWNhdGlvbiBzaWRlYmFyIHNoZWxsOiBoZWFkZXIsIGJvZHkgc2xvdCBwaWNrZWQgYnkgc2VjdGlvbi50eXBlLCBmb290ZXIgKi9cbmV4cG9ydCBmdW5jdGlvbiBTaWRlYmFyKHByb3BzOiB7IHdpdGhTaWRlYmFyPzogYm9vbGVhbiB9KSB7XG4gIGNvbnN0IHBhdGhuYW1lID0gdXNlTG9jYXRpb24oeyBzZWxlY3Q6IGwgPT4gbC5wYXRobmFtZSB9KVxuICBjb25zdCBhcnRpY2xlUm91dGUgPSB1c2VNYXRjaCh7IGZyb206IFwiLyRcIiwgc2hvdWxkVGhyb3c6IGZhbHNlIH0pXG4gIGNvbnN0IHsgdG9nZ2xlU2lkZWJhciwgaXNNb2JpbGUgfSA9IHVzZVNpZGViYXIoKVxuXG4gIHVzZUhvdGtleShcIlNcIiwgKCkgPT4ge1xuICAgIGlmIChwcm9wcy53aXRoU2lkZWJhciB8fCBpc01vYmlsZSkgdG9nZ2xlU2lkZWJhcigpXG4gIH0pXG5cbiAgY29uc3Qgc2VjdGlvbiA9IGFydGljbGVSb3V0ZVxuICAgID8gY3VycmVudFNlY3Rpb24oYC8ke3BhdGhuYW1lLnJlcGxhY2UoL15cXC98XFwvJC9nLCBcIlwiKX0vYClcbiAgICA6IHVuZGVmaW5lZFxuICBjb25zdCBzaXRlTGlua1RhcmdldCA9IGFjdGl2ZVNpdGVMaW5rKHBhdGhuYW1lLCBjb25maWcuc2VjdGlvbnMgPz8gW10pXG5cbiAgcmV0dXJuIChcbiAgICA8U2lkZWJhclJvb3Q+XG4gICAgICA8U2lkZWJhckhlYWRlcj5cbiAgICAgICAgPFNpZGViYXJNZW51PlxuICAgICAgICAgIDxTaWRlYmFyTWVudUl0ZW0+XG4gICAgICAgICAgICA8U2lkZWJhck1lbnVCdXR0b25cbiAgICAgICAgICAgICAgc2l6ZT1cImxnXCJcbiAgICAgICAgICAgICAgcmVuZGVyPXs8U2l0ZUxpbmsgdG89e3NpdGVMaW5rVGFyZ2V0fSAvPn1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFNpdGVUaXRsZSAvPlxuICAgICAgICAgICAgPC9TaWRlYmFyTWVudUJ1dHRvbj5cbiAgICAgICAgICA8L1NpZGViYXJNZW51SXRlbT5cbiAgICAgICAgPC9TaWRlYmFyTWVudT5cbiAgICAgIDwvU2lkZWJhckhlYWRlcj5cbiAgICAgIDxTaWRlYmFyQ29udGVudD5cbiAgICAgICAgPFNpZGViYXJTZWN0aW9ucyAvPlxuICAgICAgICB7cHJvcHMud2l0aFNpZGViYXIgJiYgc2VjdGlvbj8udHlwZSA9PT0gXCJibG9nXCIgJiYgPFNpZGViYXJQb3N0cyAvPn1cbiAgICAgICAge3Byb3BzLndpdGhTaWRlYmFyICYmIHNlY3Rpb24/LnR5cGUgPT09IFwiY2hhbmdlbG9nXCIgJiYgKFxuICAgICAgICAgIDxTaWRlYmFyUmVsZWFzZXMgLz5cbiAgICAgICAgKX1cbiAgICAgICAge3Byb3BzLndpdGhTaWRlYmFyICYmXG4gICAgICAgICAgc2VjdGlvbj8udHlwZSAhPT0gXCJibG9nXCIgJiZcbiAgICAgICAgICBzZWN0aW9uPy50eXBlICE9PSBcImNoYW5nZWxvZ1wiICYmIDxTaWRlYmFyQXJ0aWNsZXMgLz59XG4gICAgICAgIDxTaWRlYmFyTGlua3MgLz5cbiAgICAgIDwvU2lkZWJhckNvbnRlbnQ+XG4gICAgICA8U2lkZWJhckZvb3RlciBjbGFzc05hbWU9XCJwLTQgc3BhY2UteS0yXCI+XG4gICAgICAgIDxTZWFyY2ggLz5cbiAgICAgICAgPFRoZW1lIC8+XG4gICAgICA8L1NpZGViYXJGb290ZXI+XG4gICAgICA8U2lkZWJhclJhaWwgLz5cbiAgICA8L1NpZGViYXJSb290PlxuICApXG59XG4iXX0=
@@ -0,0 +1,12 @@
1
+ import type { ReactNode } from "react";
2
+ /** Wrapper for the SiteTitle's link target. Picks `<Link>` for internal
3
+ * paths (rooted at `/`) and a plain `<a>` for absolute URLs (`http(s)`,
4
+ * protocol-relative, `mailto:`). Designed to be used both directly
5
+ * (`<SiteLink to={...}>...</SiteLink>`) and as the `render` element of
6
+ * a `SidebarMenuButton`, which means props (`className`, children) are
7
+ * forwarded onto the underlying anchor or Link. */
8
+ export declare function SiteLink(props: {
9
+ to: string;
10
+ className?: string;
11
+ children?: ReactNode;
12
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { config } from "livemark:virtual";
3
+ import { Link } from "@tanstack/react-router";
4
+ import { prefixUrl } from "../helpers/prefix-url.js";
5
+ /** Wrapper for the SiteTitle's link target. Picks `<Link>` for internal
6
+ * paths (rooted at `/`) and a plain `<a>` for absolute URLs (`http(s)`,
7
+ * protocol-relative, `mailto:`). Designed to be used both directly
8
+ * (`<SiteLink to={...}>...</SiteLink>`) and as the `render` element of
9
+ * a `SidebarMenuButton`, which means props (`className`, children) are
10
+ * forwarded onto the underlying anchor or Link. */
11
+ export function SiteLink(props) {
12
+ if (isAbsolute(props.to)) {
13
+ return (_jsx("a", { href: prefixUrl(props.to, config.base), className: props.className, children: props.children }));
14
+ }
15
+ if (props.to === "/") {
16
+ return (_jsx(Link, { to: "/", className: props.className, children: props.children }));
17
+ }
18
+ const splat = props.to.replace(/^\/|\/$/g, "");
19
+ return (_jsx(Link, { to: "/$", params: { _splat: splat }, className: props.className, children: props.children }));
20
+ }
21
+ function isAbsolute(url) {
22
+ return (url.startsWith("http://") ||
23
+ url.startsWith("https://") ||
24
+ url.startsWith("//") ||
25
+ url.startsWith("mailto:"));
26
+ }
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2l0ZUxpbmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvY29tcG9uZW50cy9TaXRlTGluay50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFFN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBRXBEOzs7OztvREFLb0Q7QUFDcEQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxLQUl4QjtJQUNDLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sQ0FDTCxZQUFHLElBQUksRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLFlBQ2xFLEtBQUssQ0FBQyxRQUFRLEdBQ2IsQ0FDTCxDQUFBO0lBQ0gsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEVBQUUsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNyQixPQUFPLENBQ0wsS0FBQyxJQUFJLElBQUMsRUFBRSxFQUFDLEdBQUcsRUFBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsWUFDcEMsS0FBSyxDQUFDLFFBQVEsR0FDVixDQUNSLENBQUE7SUFDSCxDQUFDO0lBQ0QsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQzlDLE9BQU8sQ0FDTCxLQUFDLElBQUksSUFBQyxFQUFFLEVBQUMsSUFBSSxFQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsWUFDaEUsS0FBSyxDQUFDLFFBQVEsR0FDVixDQUNSLENBQUE7QUFDSCxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsR0FBVztJQUM3QixPQUFPLENBQ0wsR0FBRyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7UUFDekIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7UUFDMUIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDcEIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FDMUIsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb25maWcgfSBmcm9tIFwibGl2ZW1hcms6dmlydHVhbFwiXG5pbXBvcnQgeyBMaW5rIH0gZnJvbSBcIkB0YW5zdGFjay9yZWFjdC1yb3V0ZXJcIlxuaW1wb3J0IHR5cGUgeyBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgcHJlZml4VXJsIH0gZnJvbSBcIi4uL2hlbHBlcnMvcHJlZml4LXVybC50c1wiXG5cbi8qKiBXcmFwcGVyIGZvciB0aGUgU2l0ZVRpdGxlJ3MgbGluayB0YXJnZXQuIFBpY2tzIGA8TGluaz5gIGZvciBpbnRlcm5hbFxuICogIHBhdGhzIChyb290ZWQgYXQgYC9gKSBhbmQgYSBwbGFpbiBgPGE+YCBmb3IgYWJzb2x1dGUgVVJMcyAoYGh0dHAocylgLFxuICogIHByb3RvY29sLXJlbGF0aXZlLCBgbWFpbHRvOmApLiBEZXNpZ25lZCB0byBiZSB1c2VkIGJvdGggZGlyZWN0bHlcbiAqICAoYDxTaXRlTGluayB0bz17Li4ufT4uLi48L1NpdGVMaW5rPmApIGFuZCBhcyB0aGUgYHJlbmRlcmAgZWxlbWVudCBvZlxuICogIGEgYFNpZGViYXJNZW51QnV0dG9uYCwgd2hpY2ggbWVhbnMgcHJvcHMgKGBjbGFzc05hbWVgLCBjaGlsZHJlbikgYXJlXG4gKiAgZm9yd2FyZGVkIG9udG8gdGhlIHVuZGVybHlpbmcgYW5jaG9yIG9yIExpbmsuICovXG5leHBvcnQgZnVuY3Rpb24gU2l0ZUxpbmsocHJvcHM6IHtcbiAgdG86IHN0cmluZ1xuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGVcbn0pIHtcbiAgaWYgKGlzQWJzb2x1dGUocHJvcHMudG8pKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxhIGhyZWY9e3ByZWZpeFVybChwcm9wcy50bywgY29uZmlnLmJhc2UpfSBjbGFzc05hbWU9e3Byb3BzLmNsYXNzTmFtZX0+XG4gICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgIDwvYT5cbiAgICApXG4gIH1cbiAgaWYgKHByb3BzLnRvID09PSBcIi9cIikge1xuICAgIHJldHVybiAoXG4gICAgICA8TGluayB0bz1cIi9cIiBjbGFzc05hbWU9e3Byb3BzLmNsYXNzTmFtZX0+XG4gICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgIDwvTGluaz5cbiAgICApXG4gIH1cbiAgY29uc3Qgc3BsYXQgPSBwcm9wcy50by5yZXBsYWNlKC9eXFwvfFxcLyQvZywgXCJcIilcbiAgcmV0dXJuIChcbiAgICA8TGluayB0bz1cIi8kXCIgcGFyYW1zPXt7IF9zcGxhdDogc3BsYXQgfX0gY2xhc3NOYW1lPXtwcm9wcy5jbGFzc05hbWV9PlxuICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgIDwvTGluaz5cbiAgKVxufVxuXG5mdW5jdGlvbiBpc0Fic29sdXRlKHVybDogc3RyaW5nKSB7XG4gIHJldHVybiAoXG4gICAgdXJsLnN0YXJ0c1dpdGgoXCJodHRwOi8vXCIpIHx8XG4gICAgdXJsLnN0YXJ0c1dpdGgoXCJodHRwczovL1wiKSB8fFxuICAgIHVybC5zdGFydHNXaXRoKFwiLy9cIikgfHxcbiAgICB1cmwuc3RhcnRzV2l0aChcIm1haWx0bzpcIilcbiAgKVxufVxuIl19
@@ -26,6 +26,7 @@ export declare function currentSection(path: string): {
26
26
  position: "header" | "sidebar";
27
27
  siteTitle?: string | undefined;
28
28
  siteDescription?: string | undefined;
29
+ siteLink?: string | undefined;
29
30
  type: "article";
30
31
  prefix: string;
31
32
  } | {
@@ -34,6 +35,7 @@ export declare function currentSection(path: string): {
34
35
  position: "header" | "sidebar";
35
36
  siteTitle?: string | undefined;
36
37
  siteDescription?: string | undefined;
38
+ siteLink?: string | undefined;
37
39
  type: "blog";
38
40
  prefix: string;
39
41
  } | {
@@ -42,6 +44,7 @@ export declare function currentSection(path: string): {
42
44
  position: "header" | "sidebar";
43
45
  siteTitle?: string | undefined;
44
46
  siteDescription?: string | undefined;
47
+ siteLink?: string | undefined;
45
48
  type: "changelog";
46
49
  prefix: string;
47
50
  source: string;
@@ -6,12 +6,19 @@ import type { Section } from "../models/section.ts";
6
6
  * `customSectionActive` so a custom URL of `/` only activates on
7
7
  * the home page itself. Custom sections with absolute URLs never
8
8
  * match. Longest match wins. */
9
+ /** Resolve where the SiteTitle should link to for the current pathname.
10
+ * If the active section sets `siteLink`, returns that — otherwise falls
11
+ * back to `/` (the home page). The returned value may be an internal
12
+ * path (`/foo/`) or an absolute URL (`https://…`); rendering decides
13
+ * which element to use. */
14
+ export declare function activeSiteLink(pathname: string, sections: Section[]): string;
9
15
  export declare function activeSiteSection(pathname: string, sections: Section[]): {
10
16
  icon?: string | undefined;
11
17
  title: string;
12
18
  position: "header" | "sidebar";
13
19
  siteTitle?: string | undefined;
14
20
  siteDescription?: string | undefined;
21
+ siteLink?: string | undefined;
15
22
  type: "article";
16
23
  prefix: string;
17
24
  } | {
@@ -20,6 +27,7 @@ export declare function activeSiteSection(pathname: string, sections: Section[])
20
27
  position: "header" | "sidebar";
21
28
  siteTitle?: string | undefined;
22
29
  siteDescription?: string | undefined;
30
+ siteLink?: string | undefined;
23
31
  type: "blog";
24
32
  prefix: string;
25
33
  } | {
@@ -28,6 +36,7 @@ export declare function activeSiteSection(pathname: string, sections: Section[])
28
36
  position: "header" | "sidebar";
29
37
  siteTitle?: string | undefined;
30
38
  siteDescription?: string | undefined;
39
+ siteLink?: string | undefined;
31
40
  type: "changelog";
32
41
  prefix: string;
33
42
  source: string;
@@ -38,6 +47,7 @@ export declare function activeSiteSection(pathname: string, sections: Section[])
38
47
  position: "header" | "sidebar";
39
48
  siteTitle?: string | undefined;
40
49
  siteDescription?: string | undefined;
50
+ siteLink?: string | undefined;
41
51
  type: "custom";
42
52
  url: string;
43
53
  } | undefined;
@@ -5,6 +5,14 @@
5
5
  * `customSectionActive` so a custom URL of `/` only activates on
6
6
  * the home page itself. Custom sections with absolute URLs never
7
7
  * match. Longest match wins. */
8
+ /** Resolve where the SiteTitle should link to for the current pathname.
9
+ * If the active section sets `siteLink`, returns that — otherwise falls
10
+ * back to `/` (the home page). The returned value may be an internal
11
+ * path (`/foo/`) or an absolute URL (`https://…`); rendering decides
12
+ * which element to use. */
13
+ export function activeSiteLink(pathname, sections) {
14
+ return activeSiteSection(pathname, sections)?.siteLink ?? "/";
15
+ }
8
16
  export function activeSiteSection(pathname, sections) {
9
17
  const current = `/${pathname.replace(/^\/|\/$/g, "")}/`;
10
18
  let best;
@@ -77,4 +85,4 @@ export function partitionBySection(articles, sections) {
77
85
  }
78
86
  return buckets;
79
87
  }
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9oZWxwZXJzL3NlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7OztpQ0FNaUM7QUFDakMsTUFBTSxVQUFVLGlCQUFpQixDQUFDLFFBQWdCLEVBQUUsUUFBbUI7SUFDckUsTUFBTSxPQUFPLEdBQUcsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFBO0lBQ3ZELElBQUksSUFBeUIsQ0FBQTtJQUM3QixJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUE7SUFDZixLQUFLLE1BQU0sQ0FBQyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sTUFBTSxHQUFHLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3BDLElBQUksQ0FBQyxNQUFNO1lBQUUsU0FBUTtRQUNyQixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLE1BQU0sS0FBSyxHQUFHLElBQUksT0FBTyxLQUFLLEdBQUc7WUFBRSxTQUFRO1FBQ3RFLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUFFLFNBQVE7UUFDekMsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLE9BQU8sRUFBRSxDQUFDO1lBQzVCLElBQUksR0FBRyxDQUFDLENBQUE7WUFDUixPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQTtRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsQ0FBVTtJQUNwQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUTtRQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQTtJQUN4QyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQUUsT0FBTyxTQUFTLENBQUE7SUFDdEUsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBO0lBQzdDLE9BQU8sSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFBO0FBQ2hELENBQUM7QUFFRDs7Ozs7eUNBS3lDO0FBQ3pDLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxHQUFXLEVBQUUsUUFBZ0I7SUFDL0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFBRSxPQUFPLEtBQUssQ0FBQTtJQUM5RCxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUMzQyxNQUFNLE1BQU0sR0FBRyxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUE7SUFDdEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFBO0lBQ3ZELElBQUksTUFBTSxLQUFLLEdBQUc7UUFBRSxPQUFPLE9BQU8sS0FBSyxHQUFHLENBQUE7SUFDMUMsT0FBTyxPQUFPLEtBQUssTUFBTSxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUE7QUFDekQsQ0FBQztBQUVELDhFQUE4RTtBQUM5RSxNQUFNLFVBQVUsWUFBWSxDQUMxQixXQUFtQixFQUNuQixRQUFhO0lBRWIsSUFBSSxJQUFtQixDQUFBO0lBQ3ZCLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQTtJQUNmLEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxFQUFFLENBQUM7UUFDL0IsSUFDRSxXQUFXLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDdEMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsT0FBTyxFQUMvQixDQUFDO1lBQ0QsSUFBSSxHQUFHLE9BQU8sQ0FBQTtZQUNkLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQTtRQUNqQyxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQztBQUVELHNGQUFzRjtBQUN0RixNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLFFBQWEsRUFDYixRQUE4QjtJQUU5QixNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBZSxDQUFBO0lBQ3RDLEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxFQUFFLENBQUM7UUFDL0IsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUE7UUFDcEQsTUFBTSxHQUFHLEdBQUcsT0FBTyxFQUFFLE1BQU0sSUFBSSxhQUFhLENBQUE7UUFDNUMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUMvQixJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUN0QixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtRQUM3QixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFBO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNlY3Rpb24gfSBmcm9tIFwiLi4vbW9kZWxzL3NlY3Rpb24udHNcIlxuXG4vKiogUmV0dXJuIHRoZSBzZWN0aW9uIHdob3NlIHByZWZpeCBvciBpbnRlcm5hbC1VUkwgYmVzdCBtYXRjaGVzIHRoZVxuICogIGdpdmVuIHBhdGhuYW1lLiBSb3V0ZWQgc2VjdGlvbnMgKGFydGljbGUvYmxvZy9jaGFuZ2Vsb2cpIG1hdGNoIGJ5XG4gKiAgYHByZWZpeGAuIEN1c3RvbSBzZWN0aW9ucyB3aXRoIGludGVybmFsIFVSTHMgKGAvYC1sZWFkaW5nLCBub3RcbiAqICBgLy9gKSBtYXRjaCBieSB0aGVpciBVUkwg4oCUIHdpdGggdGhlIHNhbWUgZXhhY3QtYC9gIGd1YXJkIGFzXG4gKiAgYGN1c3RvbVNlY3Rpb25BY3RpdmVgIHNvIGEgY3VzdG9tIFVSTCBvZiBgL2Agb25seSBhY3RpdmF0ZXMgb25cbiAqICB0aGUgaG9tZSBwYWdlIGl0c2VsZi4gQ3VzdG9tIHNlY3Rpb25zIHdpdGggYWJzb2x1dGUgVVJMcyBuZXZlclxuICogIG1hdGNoLiBMb25nZXN0IG1hdGNoIHdpbnMuICovXG5leHBvcnQgZnVuY3Rpb24gYWN0aXZlU2l0ZVNlY3Rpb24ocGF0aG5hbWU6IHN0cmluZywgc2VjdGlvbnM6IFNlY3Rpb25bXSkge1xuICBjb25zdCBjdXJyZW50ID0gYC8ke3BhdGhuYW1lLnJlcGxhY2UoL15cXC98XFwvJC9nLCBcIlwiKX0vYFxuICBsZXQgYmVzdDogU2VjdGlvbiB8IHVuZGVmaW5lZFxuICBsZXQgYmVzdExlbiA9IDBcbiAgZm9yIChjb25zdCBzIG9mIHNlY3Rpb25zKSB7XG4gICAgY29uc3QgcHJlZml4ID0gc2VjdGlvbk1hdGNoUHJlZml4KHMpXG4gICAgaWYgKCFwcmVmaXgpIGNvbnRpbnVlXG4gICAgaWYgKHMudHlwZSA9PT0gXCJjdXN0b21cIiAmJiBwcmVmaXggPT09IFwiL1wiICYmIGN1cnJlbnQgIT09IFwiL1wiKSBjb250aW51ZVxuICAgIGlmICghY3VycmVudC5zdGFydHNXaXRoKHByZWZpeCkpIGNvbnRpbnVlXG4gICAgaWYgKHByZWZpeC5sZW5ndGggPiBiZXN0TGVuKSB7XG4gICAgICBiZXN0ID0gc1xuICAgICAgYmVzdExlbiA9IHByZWZpeC5sZW5ndGhcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGJlc3Rcbn1cblxuZnVuY3Rpb24gc2VjdGlvbk1hdGNoUHJlZml4KHM6IFNlY3Rpb24pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAocy50eXBlICE9PSBcImN1c3RvbVwiKSByZXR1cm4gcy5wcmVmaXhcbiAgaWYgKCFzLnVybC5zdGFydHNXaXRoKFwiL1wiKSB8fCBzLnVybC5zdGFydHNXaXRoKFwiLy9cIikpIHJldHVybiB1bmRlZmluZWRcbiAgY29uc3Qgc3RyaXBwZWQgPSBzLnVybC5zcGxpdCgvWz8jXS8pWzBdID8/IFwiXCJcbiAgcmV0dXJuIGAvJHtzdHJpcHBlZC5yZXBsYWNlKC9eXFwvfFxcLyQvZywgXCJcIil9L2Bcbn1cblxuLyoqIFdoZXRoZXIgYSBjdXN0b20gc2VjdGlvbidzIFVSTCBzaG91bGQgaGlnaGxpZ2h0IGFzIGFjdGl2ZSBmb3IgdGhlXG4gKiAgY3VycmVudCBwYXRobmFtZS4gT25seSBgL2AtbGVhZGluZyBpbnRlcm5hbCBwYXRocyBwYXJ0aWNpcGF0ZTtcbiAqICBwcm90b2NvbC1hYnNvbHV0ZSAoYGh0dHBzOi8v4oCmYCwgYC8vY2Ru4oCmYCkgVVJMcyBuZXZlciBoaWdobGlnaHQuXG4gKiAgTWF0Y2ggc2VtYW50aWNzIG1pcnJvciByb3V0ZWQgc2VjdGlvbnMg4oCUIGV4YWN0IHBhdGggb3IgYW55XG4gKiAgZGVzY2VuZGFudC4gQSBVUkwgb2YgYC9gIG9ubHkgaGlnaGxpZ2h0cyB0aGUgaG9tZSBwYWdlIGl0c2VsZlxuICogIChvdGhlcndpc2UgaXQgd291bGQgYWx3YXlzIG1hdGNoKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjdXN0b21TZWN0aW9uQWN0aXZlKHVybDogc3RyaW5nLCBwYXRobmFtZTogc3RyaW5nKSB7XG4gIGlmICghdXJsLnN0YXJ0c1dpdGgoXCIvXCIpIHx8IHVybC5zdGFydHNXaXRoKFwiLy9cIikpIHJldHVybiBmYWxzZVxuICBjb25zdCBzdHJpcHBlZCA9IHVybC5zcGxpdCgvWz8jXS8pWzBdID8/IFwiXCJcbiAgY29uc3QgdGFyZ2V0ID0gYC8ke3N0cmlwcGVkLnJlcGxhY2UoL15cXC98XFwvJC9nLCBcIlwiKX0vYFxuICBjb25zdCBjdXJyZW50ID0gYC8ke3BhdGhuYW1lLnJlcGxhY2UoL15cXC98XFwvJC9nLCBcIlwiKX0vYFxuICBpZiAodGFyZ2V0ID09PSBcIi9cIikgcmV0dXJuIGN1cnJlbnQgPT09IFwiL1wiXG4gIHJldHVybiBjdXJyZW50ID09PSB0YXJnZXQgfHwgY3VycmVudC5zdGFydHNXaXRoKHRhcmdldClcbn1cblxuLyoqIEZpbmQgdGhlIHNlY3Rpb24gd2hvc2UgcHJlZml4IGlzIHRoZSBsb25nZXN0IHByZWZpeCBvZiB0aGUgYXJ0aWNsZSBwYXRoICovXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hTZWN0aW9uPFMgZXh0ZW5kcyB7IHByZWZpeDogc3RyaW5nIH0+KFxuICBhcnRpY2xlUGF0aDogc3RyaW5nLFxuICBzZWN0aW9uczogU1tdLFxuKTogUyB8IHVuZGVmaW5lZCB7XG4gIGxldCBiZXN0OiBTIHwgdW5kZWZpbmVkXG4gIGxldCBiZXN0TGVuID0gMFxuICBmb3IgKGNvbnN0IHNlY3Rpb24gb2Ygc2VjdGlvbnMpIHtcbiAgICBpZiAoXG4gICAgICBhcnRpY2xlUGF0aC5zdGFydHNXaXRoKHNlY3Rpb24ucHJlZml4KSAmJlxuICAgICAgc2VjdGlvbi5wcmVmaXgubGVuZ3RoID4gYmVzdExlblxuICAgICkge1xuICAgICAgYmVzdCA9IHNlY3Rpb25cbiAgICAgIGJlc3RMZW4gPSBzZWN0aW9uLnByZWZpeC5sZW5ndGhcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGJlc3Rcbn1cblxuLyoqIFNwbGl0IGFydGljbGVzIGludG8gcGVyLXNlY3Rpb24gYnVja2V0cy4gVW5tYXRjaGVkIGFydGljbGVzIGdvIHRvIFwiX19kZWZhdWx0X19cIiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnRpdGlvbkJ5U2VjdGlvbjxUIGV4dGVuZHMgeyBwYXRoOiBzdHJpbmcgfT4oXG4gIGFydGljbGVzOiBUW10sXG4gIHNlY3Rpb25zOiB7IHByZWZpeDogc3RyaW5nIH1bXSxcbik6IE1hcDxzdHJpbmcsIFRbXT4ge1xuICBjb25zdCBidWNrZXRzID0gbmV3IE1hcDxzdHJpbmcsIFRbXT4oKVxuICBmb3IgKGNvbnN0IGFydGljbGUgb2YgYXJ0aWNsZXMpIHtcbiAgICBjb25zdCBzZWN0aW9uID0gbWF0Y2hTZWN0aW9uKGFydGljbGUucGF0aCwgc2VjdGlvbnMpXG4gICAgY29uc3Qga2V5ID0gc2VjdGlvbj8ucHJlZml4ID8/IFwiX19kZWZhdWx0X19cIlxuICAgIGNvbnN0IGJ1Y2tldCA9IGJ1Y2tldHMuZ2V0KGtleSlcbiAgICBpZiAoYnVja2V0KSB7XG4gICAgICBidWNrZXQucHVzaChhcnRpY2xlKVxuICAgIH0gZWxzZSB7XG4gICAgICBidWNrZXRzLnNldChrZXksIFthcnRpY2xlXSlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGJ1Y2tldHNcbn1cbiJdfQ==
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9oZWxwZXJzL3NlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7OztpQ0FNaUM7QUFDakM7Ozs7NEJBSTRCO0FBQzVCLE1BQU0sVUFBVSxjQUFjLENBQUMsUUFBZ0IsRUFBRSxRQUFtQjtJQUNsRSxPQUFPLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxRQUFRLElBQUksR0FBRyxDQUFBO0FBQy9ELENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsUUFBZ0IsRUFBRSxRQUFtQjtJQUNyRSxNQUFNLE9BQU8sR0FBRyxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUE7SUFDdkQsSUFBSSxJQUF5QixDQUFBO0lBQzdCLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQTtJQUNmLEtBQUssTUFBTSxDQUFDLElBQUksUUFBUSxFQUFFLENBQUM7UUFDekIsTUFBTSxNQUFNLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDcEMsSUFBSSxDQUFDLE1BQU07WUFBRSxTQUFRO1FBQ3JCLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksTUFBTSxLQUFLLEdBQUcsSUFBSSxPQUFPLEtBQUssR0FBRztZQUFFLFNBQVE7UUFDdEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1lBQUUsU0FBUTtRQUN6QyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsT0FBTyxFQUFFLENBQUM7WUFDNUIsSUFBSSxHQUFHLENBQUMsQ0FBQTtZQUNSLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFBO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUE7QUFDYixDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FBQyxDQUFVO0lBQ3BDLElB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IGZyb20gXCIuLi9tb2RlbHMvc2VjdGlvbi50c1wiXG5cbi8qKiBSZXR1cm4gdGhlIHNlY3Rpb24gd2hvc2UgcHJlZml4IG9yIGludGVybmFsLVVSTCBiZXN0IG1hdGNoZXMgdGhlXG4gKiAgZ2l2ZW4gcGF0aG5hbWUuIFJvdXRlZCBzZWN0aW9ucyAoYXJ0aWNsZS9ibG9nL2NoYW5nZWxvZykgbWF0Y2ggYnlcbiAqICBgcHJlZml4YC4gQ3VzdG9tIHNlY3Rpb25zIHdpdGggaW50ZXJuYWwgVVJMcyAoYC9gLWxlYWRpbmcsIG5vdFxuICogIGAvL2ApIG1hdGNoIGJ5IHRoZWlyIFVSTCDigJQgd2l0aCB0aGUgc2FtZSBleGFjdC1gL2AgZ3VhcmQgYXNcbiAqICBgY3VzdG9tU2VjdGlvbkFjdGl2ZWAgc28gYSBjdXN0b20gVVJMIG9mIGAvYCBvbmx5IGFjdGl2YXRlcyBvblxuICogIHRoZSBob21lIHBhZ2UgaXRzZWxmLiBDdXN0b20gc2VjdGlvbnMgd2l0aCBhYnNvbHV0ZSBVUkxzIG5ldmVyXG4gKiAgbWF0Y2guIExvbmdlc3QgbWF0Y2ggd2lucy4gKi9cbi8qKiBSZXNvbHZlIHdoZXJlIHRoZSBTaXRlVGl0bGUgc2hvdWxkIGxpbmsgdG8gZm9yIHRoZSBjdXJyZW50IHBhdGhuYW1lLlxuICogIElmIHRoZSBhY3RpdmUgc2VjdGlvbiBzZXRzIGBzaXRlTGlua2AsIHJldHVybnMgdGhhdCDigJQgb3RoZXJ3aXNlIGZhbGxzXG4gKiAgYmFjayB0byBgL2AgKHRoZSBob21lIHBhZ2UpLiBUaGUgcmV0dXJuZWQgdmFsdWUgbWF5IGJlIGFuIGludGVybmFsXG4gKiAgcGF0aCAoYC9mb28vYCkgb3IgYW4gYWJzb2x1dGUgVVJMIChgaHR0cHM6Ly/igKZgKTsgcmVuZGVyaW5nIGRlY2lkZXNcbiAqICB3aGljaCBlbGVtZW50IHRvIHVzZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhY3RpdmVTaXRlTGluayhwYXRobmFtZTogc3RyaW5nLCBzZWN0aW9uczogU2VjdGlvbltdKSB7XG4gIHJldHVybiBhY3RpdmVTaXRlU2VjdGlvbihwYXRobmFtZSwgc2VjdGlvbnMpPy5zaXRlTGluayA/PyBcIi9cIlxufVxuXG5leHBvcnQgZnVuY3Rpb24gYWN0aXZlU2l0ZVNlY3Rpb24ocGF0aG5hbWU6IHN0cmluZywgc2VjdGlvbnM6IFNlY3Rpb25bXSkge1xuICBjb25zdCBjdXJyZW50ID0gYC8ke3BhdGhuYW1lLnJlcGxhY2UoL15cXC98XFwvJC9nLCBcIlwiKX0vYFxuICBsZXQgYmVzdDogU2VjdGlvbiB8IHVuZGVmaW5lZFxuICBsZXQgYmVzdExlbiA9IDBcbiAgZm9yIChjb25zdCBzIG9mIHNlY3Rpb25zKSB7XG4gICAgY29uc3QgcHJlZml4ID0gc2VjdGlvbk1hdGNoUHJlZml4KHMpXG4gICAgaWYgKCFwcmVmaXgpIGNvbnRpbnVlXG4gICAgaWYgKHMudHlwZSA9PT0gXCJjdXN0b21cIiAmJiBwcmVmaXggPT09IFwiL1wiICYmIGN1cnJlbnQgIT09IFwiL1wiKSBjb250aW51ZVxuICAgIGlmICghY3VycmVudC5zdGFydHNXaXRoKHByZWZpeCkpIGNvbnRpbnVlXG4gICAgaWYgKHByZWZpeC5sZW5ndGggPiBiZXN0TGVuKSB7XG4gICAgICBiZXN0ID0gc1xuICAgICAgYmVzdExlbiA9IHByZWZpeC5sZW5ndGhcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGJlc3Rcbn1cblxuZnVuY3Rpb24gc2VjdGlvbk1hdGNoUHJlZml4KHM6IFNlY3Rpb24pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAocy50eXBlICE9PSBcImN1c3RvbVwiKSByZXR1cm4gcy5wcmVmaXhcbiAgaWYgKCFzLnVybC5zdGFydHNXaXRoKFwiL1wiKSB8fCBzLnVybC5zdGFydHNXaXRoKFwiLy9cIikpIHJldHVybiB1bmRlZmluZWRcbiAgY29uc3Qgc3RyaXBwZWQgPSBzLnVybC5zcGxpdCgvWz8jXS8pWzBdID8/IFwiXCJcbiAgcmV0dXJuIGAvJHtzdHJpcHBlZC5yZXBsYWNlKC9eXFwvfFxcLyQvZywgXCJcIil9L2Bcbn1cblxuLyoqIFdoZXRoZXIgYSBjdXN0b20gc2VjdGlvbidzIFVSTCBzaG91bGQgaGlnaGxpZ2h0IGFzIGFjdGl2ZSBmb3IgdGhlXG4gKiAgY3VycmVudCBwYXRobmFtZS4gT25seSBgL2AtbGVhZGluZyBpbnRlcm5hbCBwYXRocyBwYXJ0aWNpcGF0ZTtcbiAqICBwcm90b2NvbC1hYnNvbHV0ZSAoYGh0dHBzOi8v4oCmYCwgYC8vY2Ru4oCmYCkgVVJMcyBuZXZlciBoaWdobGlnaHQuXG4gKiAgTWF0Y2ggc2VtYW50aWNzIG1pcnJvciByb3V0ZWQgc2VjdGlvbnMg4oCUIGV4YWN0IHBhdGggb3IgYW55XG4gKiAgZGVzY2VuZGFudC4gQSBVUkwgb2YgYC9gIG9ubHkgaGlnaGxpZ2h0cyB0aGUgaG9tZSBwYWdlIGl0c2VsZlxuICogIChvdGhlcndpc2UgaXQgd291bGQgYWx3YXlzIG1hdGNoKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjdXN0b21TZWN0aW9uQWN0aXZlKHVybDogc3RyaW5nLCBwYXRobmFtZTogc3RyaW5nKSB7XG4gIGlmICghdXJsLnN0YXJ0c1dpdGgoXCIvXCIpIHx8IHVybC5zdGFydHNXaXRoKFwiLy9cIikpIHJldHVybiBmYWxzZVxuICBjb25zdCBzdHJpcHBlZCA9IHVybC5zcGxpdCgvWz8jXS8pWzBdID8/IFwiXCJcbiAgY29uc3QgdGFyZ2V0ID0gYC8ke3N0cmlwcGVkLnJlcGxhY2UoL15cXC98XFwvJC9nLCBcIlwiKX0vYFxuICBjb25zdCBjdXJyZW50ID0gYC8ke3BhdGhuYW1lLnJlcGxhY2UoL15cXC98XFwvJC9nLCBcIlwiKX0vYFxuICBpZiAodGFyZ2V0ID09PSBcIi9cIikgcmV0dXJuIGN1cnJlbnQgPT09IFwiL1wiXG4gIHJldHVybiBjdXJyZW50ID09PSB0YXJnZXQgfHwgY3VycmVudC5zdGFydHNXaXRoKHRhcmdldClcbn1cblxuLyoqIEZpbmQgdGhlIHNlY3Rpb24gd2hvc2UgcHJlZml4IGlzIHRoZSBsb25nZXN0IHByZWZpeCBvZiB0aGUgYXJ0aWNsZSBwYXRoICovXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hTZWN0aW9uPFMgZXh0ZW5kcyB7IHByZWZpeDogc3RyaW5nIH0+KFxuICBhcnRpY2xlUGF0aDogc3RyaW5nLFxuICBzZWN0aW9uczogU1tdLFxuKTogUyB8IHVuZGVmaW5lZCB7XG4gIGxldCBiZXN0OiBTIHwgdW5kZWZpbmVkXG4gIGxldCBiZXN0TGVuID0gMFxuICBmb3IgKGNvbnN0IHNlY3Rpb24gb2Ygc2VjdGlvbnMpIHtcbiAgICBpZiAoXG4gICAgICBhcnRpY2xlUGF0aC5zdGFydHNXaXRoKHNlY3Rpb24ucHJlZml4KSAmJlxuICAgICAgc2VjdGlvbi5wcmVmaXgubGVuZ3RoID4gYmVzdExlblxuICAgICkge1xuICAgICAgYmVzdCA9IHNlY3Rpb25cbiAgICAgIGJlc3RMZW4gPSBzZWN0aW9uLnByZWZpeC5sZW5ndGhcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGJlc3Rcbn1cblxuLyoqIFNwbGl0IGFydGljbGVzIGludG8gcGVyLXNlY3Rpb24gYnVja2V0cy4gVW5tYXRjaGVkIGFydGljbGVzIGdvIHRvIFwiX19kZWZhdWx0X19cIiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnRpdGlvbkJ5U2VjdGlvbjxUIGV4dGVuZHMgeyBwYXRoOiBzdHJpbmcgfT4oXG4gIGFydGljbGVzOiBUW10sXG4gIHNlY3Rpb25zOiB7IHByZWZpeDogc3RyaW5nIH1bXSxcbik6IE1hcDxzdHJpbmcsIFRbXT4ge1xuICBjb25zdCBidWNrZXRzID0gbmV3IE1hcDxzdHJpbmcsIFRbXT4oKVxuICBmb3IgKGNvbnN0IGFydGljbGUgb2YgYXJ0aWNsZXMpIHtcbiAgICBjb25zdCBzZWN0aW9uID0gbWF0Y2hTZWN0aW9uKGFydGljbGUucGF0aCwgc2VjdGlvbnMpXG4gICAgY29uc3Qga2V5ID0gc2VjdGlvbj8ucHJlZml4ID8/IFwiX19kZWZhdWx0X19cIlxuICAgIGNvbnN0IGJ1Y2tldCA9IGJ1Y2tldHMuZ2V0KGtleSlcbiAgICBpZiAoYnVja2V0KSB7XG4gICAgICBidWNrZXQucHVzaChhcnRpY2xlKVxuICAgIH0gZWxzZSB7XG4gICAgICBidWNrZXRzLnNldChrZXksIFthcnRpY2xlXSlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGJ1Y2tldHNcbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { describe, expect, it } from "vite-plus/test";
2
- import { activeSiteSection, customSectionActive, matchSection, partitionBySection, } from "./section.js";
2
+ import { activeSiteLink, activeSiteSection, customSectionActive, matchSection, partitionBySection, } from "./section.js";
3
3
  describe("matchSection", () => {
4
4
  const sections = [
5
5
  { title: "Docs", prefix: "/" },
@@ -144,4 +144,38 @@ describe("activeSiteSection", () => {
144
144
  expect(activeSiteSection("/anything/", [blog, apiCustom])).toBeUndefined();
145
145
  });
146
146
  });
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi51bml0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2hlbHBlcnMvc2VjdGlvbi51bml0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRXJELE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLFlBQVksRUFDWixrQkFBa0IsR0FDbkIsTUFBTSxjQUFjLENBQUE7QUFFckIsUUFBUSxDQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUU7SUFDNUIsTUFBTSxRQUFRLEdBQUc7UUFDZixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRTtRQUM5QixFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRTtRQUNqQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRTtLQUM1QyxDQUFBO0lBRUQsRUFBRSxDQUFDLHVDQUF1QyxFQUFFLEdBQUcsRUFBRTtRQUMvQyxNQUFNLENBQUMsWUFBWSxDQUFDLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUM1RSxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQywwREFBMEQsRUFBRSxHQUFHLEVBQUU7UUFDbEUsTUFBTSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2xFLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLHVDQUF1QyxFQUFFLEdBQUcsRUFBRTtRQUMvQyxNQUFNLENBQUMsWUFBWSxDQUFDLG1CQUFtQixFQUFFLFFBQVEsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUks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SUFBSSxDQUN0RSxLQUFLLENBQ04sQ0FBQTtJQUNILENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLGtEQUFrRCxFQUFFLEdBQUcsRUFBRTtRQUMxRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQ3pFLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLG1EQUFtRCxFQUFFLEdBQUcsRUFBRTtRQUMzRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDaEUsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUNwRSxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyxtRUFBbUUsRUFBRSxHQUFHLEVBQUU7UUFDM0UsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUM5RSxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyxpREFBaUQsRUFBRSxHQUFHLEVBQUU7UUFDekQsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDNUUsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlc2NyaWJlLCBleHBlY3QsIGl0IH0gZnJvbSBcInZpdGUtcGx1cy90ZXN0XCJcbmltcG9ydCB0eXBlIHsgU2VjdGlvbiB9IGZyb20gXCIuLi9tb2RlbHMvc2VjdGlvbi50c1wiXG5pbXBvcnQge1xuICBhY3RpdmVTaXRlU2VjdGlvbixcbiAgY3VzdG9tU2VjdGlvbkFjdGl2ZSxcbiAgbWF0Y2hTZWN0aW9uLFxuICBwYXJ0aXRpb25CeVNlY3Rpb24sXG59IGZyb20gXCIuL3NlY3Rpb24udHNcIlxuXG5kZXNjcmliZShcIm1hdGNoU2VjdGlvblwiLCAoKSA9PiB7XG4gIGNvbnN0IHNlY3Rpb25zID0gW1xuICAgIHsgdGl0bGU6IFwiRG9jc1wiLCBwcmVmaXg6IFwiL1wiIH0sXG4gICAgeyB0aXRsZTogXCJBUElcIiwgcHJlZml4OiBcIi9hcGkvXCIgfSxcbiAgICB7IHRpdGxlOiBcIkFQSSBBdXRoXCIsIHByZWZpeDogXCIvYXBpL2F1dGgvXCIgfSxcbiAgXVxuXG4gIGl0KFwic2hvdWxkIG1hdGNoIHRoZSBtb3N0IHNwZWNpZmljIHByZWZpeFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KG1hdGNoU2VjdGlvbihcIi9hcGkvYXV0aC9sb2dpbi9cIiwgc2VjdGlvbnMpPy50aXRsZSkudG9CZShcIkFQSSBBdXRoXCIpXG4gIH0pXG5cbiAgaXQoXCJzaG91bGQgbWF0Y2ggYSBsZXNzIHNwZWNpZmljIHByZWZpeCB3aGVuIG5vIGRlZXBlciBtYXRjaFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KG1hdGNoU2VjdGlvbihcIi9hcGkvdXNlcnMvXCIsIHNlY3Rpb25zKT8udGl0bGUpLnRvQmUoXCJBUElcIilcbiAgfSlcblxuICBpdChcInNob3VsZCBtYXRjaCByb290IHNlY3Rpb24gYXMgZmFsbGJhY2tcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChtYXRjaFNlY3Rpb24oXCIvZ2V0dGluZy1zdGFydGVkL1wiLCBzZWN0aW9ucyk/LnRpdGxlKS50b0JlKFwiRG9jc1wiKVxuICB9KVxuXG4gIGl0KFwic2hvdWxkIHJldHVybiB1bmRlZmluZWQgd2hlbiBubyBzZWN0aW9uIG1hdGNoZXNcIiwgKCkgPT4ge1xuICAgIGNvbnN0IG5hcnJvdyA9IFt7IHRpdGxlOiBcIkFQSVwiLCBwcmVmaXg6IFwiL2FwaS9cIiB9XVxuICAgIGV4cGVjdChtYXRjaFNlY3Rpb24oXCIvZ2V0dGluZy1zdGFydGVkL1wiLCBuYXJyb3cpKS50b0JlVW5kZWZpbmVkKClcbiAgfSlcblxuICBpdChcInNob3VsZCBtYXRjaCBhIHNpbmdsZSByb290IHNlY3Rpb24gZm9yIGFsbCBhcnRpY2xlc1wiLCAoKSA9PiB7XG4gICAgY29uc3Qgcm9vdCA9IFt7IHRpdGxlOiBcIkRvY3NcIiwgcHJlZml4OiBcIi9cIiB9XVxuICAgIGV4cGVjdChtYXRjaFNlY3Rpb24oXCIvYW55dGhpbmcvZGVlcC9wYXRoL1wiLCByb290KT8udGl0bGUpLnRvQmUoXCJEb2NzXCIpXG4gIH0pXG59KVxuXG5kZXNjcmliZShcInBhcnRpdGlvbkJ5U2VjdGlvblwiLCAoKSA9PiB7XG4gIGNvbnN0IHNlY3Rpb25zID0gW1xuICAgIHsgdGl0bGU6IFwiRG9jc1wiLCBwcmVmaXg6IFwiL1wiIH0sXG4gICAgeyB0aXRsZTogXCJBUElcIiwgcHJlZml4OiBcIi9hcGkvXCIgfSxcbiAgXVxuXG4gIGNvbnN0IGFydGljbGVzID0gW1xuICAgIHsgcGF0aDogXCIvZ2V0dGluZy1zdGFydGVkL1wiIH0sXG4gICAgeyBwYXRoOiBcIi9ndWlkZS9cIiB9LFxuICAgIHsgcGF0aDogXCIvYXBpL3VzZXJzL1wiIH0sXG4gICAgeyBwYXRoOiBcIi9hcGkvYXV0aC9cIiB9LFxuICBdXG5cbiAgaXQoXCJzaG91bGQgc3BsaXQgYXJ0aWNsZXMgaW50byBzZWN0aW9uIGJ1Y2tldHNcIiwgKCkgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IHBhcnRpdGlvbkJ5U2VjdGlvbihhcnRpY2xlcywgc2VjdGlvbnMpXG4gICAgZXhwZWN0KHJlc3VsdC5nZXQoXCIvXCIpPy5tYXAoYSA9PiBhLnBhdGgpKS50b0VxdWFsKFtcbiAgICAgIFwiL2dldHRpbmctc3RhcnRlZC9cIixcbiAgICAgIFwiL2d1aWRlL1wiLFxuICAgIF0pXG4gICAgZXhwZWN0KHJlc3VsdC5nZXQoXCIvYXBpL1wiKT8ubWFwKGEgPT4gYS5wYXRoKSkudG9FcXVhbChbXG4gICAgICBcIi9hcGkvdXNlcnMvXCIsXG4gICAgICBcIi9hcGkvYXV0aC9cIixcbiAgICBdKVxuICB9KVxuXG4gIGl0KFwic2hvdWxkIHB1dCB1bm1hdGNoZWQgYXJ0aWNsZXMgaW4gX19kZWZhdWx0X18gYnVja2V0XCIsICgpID0+IHtcbiAgICBjb25zdCBuYXJyb3cgPSBbeyB0aXRsZTogXCJBUElcIiwgcHJlZml4OiBcIi9hcGkvXCIgfV1cbiAgICBjb25zdCByZXN1bHQgPSBwYXJ0aXRpb25CeVNlY3Rpb24oYXJ0aWNsZXMsIG5hcnJvdylcbiAgICBleHBlY3QocmVzdWx0LmdldChcIl9fZGVmYXVsdF9fXCIpPy5tYXAoYSA9PiBhLnBhdGgpKS50b0VxdWFsKFtcbiAgICAgIFwiL2dldHRpbmctc3RhcnRlZC9cIixcbiAgICAgIFwiL2d1aWRlL1wiLFxuICAgIF0pXG4gICAgZXhwZWN0KHJlc3VsdC5nZXQoXCIvYXBpL1wiKT8ubWFwKGEgPT4gYS5wYXRoKSkudG9FcXVhbChbXG4gICAgICBcIi9hcGkvdXNlcnMvXCIsXG4gICAgICBcIi9hcGkvYXV0aC9cIixcbiAgICBdKVxuICB9KVxufSlcblxuZGVzY3JpYmUoXCJjdXN0b21TZWN0aW9uQWN0aXZlXCIsICgpID0+IHtcbiAgaXQoXCJzaG91bGQgbm90IG1hdGNoIGFuIGFic29sdXRlIGh0dHAgdXJsXCIsICgpID0+IHtcbiAgICBleHBlY3QoY3VzdG9tU2VjdGlvbkFjdGl2ZShcImh0dHBzOi8veC5jb20veVwiLCBcIi95L1wiKSkudG9CZShmYWxzZSlcbiAgICBleHBlY3QoY3VzdG9tU2VjdGlvbkFjdGl2ZShcImh0dHA6Ly94LmNvbS95XCIsIFwiL3kvXCIpKS50b0JlKGZhbHNlKVxuICB9KVxuXG4gIGl0KFwic2hvdWxkIG5vdCBtYXRjaCBhIHByb3RvY29sLXJlbGF0aXZlIHVybFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KGN1c3RvbVNlY3Rpb25BY3RpdmUoXCIvL2Nkbi54LmNvbS95XCIsIFwiL3kvXCIpKS50b0JlKGZhbHNlKVxuICB9KVxuXG4gIGl0KFwic2hvdWxkIG5vdCBtYXRjaCBhIGhhc2ggdXJsXCIsICgpID0+IHtcbiAgICBleHBlY3QoY3VzdG9tU2VjdGlvbkFjdGl2ZShcIiNzZWN0aW9uXCIsIFwiL3NlY3Rpb24vXCIpKS50b0JlKGZhbHNlKVxuICB9KVxuXG4gIGl0KFwic2hvdWxkIG1hdGNoIHRoZSBleGFjdCBwYXRoXCIsICgpID0+IHtcbiAgICBleHBlY3QoY3VzdG9tU2VjdGlvbkFjdGl2ZShcIi9hYm91dFwiLCBcIi9hYm91dC9cIikpLnRvQmUodHJ1ZSlcbiAgICBleHBlY3QoY3VzdG9tU2VjdGlvbkFjdGl2ZShcIi9hYm91dC9cIiwgXCIvYWJvdXQvXCIpKS50b0JlKHRydWUpXG4gIH0pXG5cbiAgaXQoXCJzaG91bGQgbWF0Y2ggYSBkZXNjZW5kYW50IHBhdGhcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChjdXN0b21TZWN0aW9uQWN0aXZlKFwiL2Fib3V0XCIsIFwiL2Fib3V0L3RlYW0vXCIpKS50b0JlKHRydWUpXG4gIH0pXG5cbiAgaXQoXCJzaG91bGQgbm90IG1hdGNoIGEgc2libGluZyBwYXRoIHdpdGggc2hhcmVkIHByZWZpeFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KGN1c3RvbVNlY3Rpb25BY3RpdmUoXCIvYWJvdXRcIiwgXCIvYWJvdXR1cy9cIikpLnRvQmUoZmFsc2UpXG4gIH0pXG5cbiAgaXQoXCJzaG91bGQgbWF0Y2ggZXhhY3Qgcm9vdCBvbmx5XCIsICgpID0+IHtcbiAgICBleHBlY3QoY3VzdG9tU2VjdGlvbkFjdGl2ZShcIi9cIiwgXCIvXCIpKS50b0JlKHRydWUpXG4gICAgZXhwZWN0KGN1c3RvbVNlY3Rpb25BY3RpdmUoXCIvXCIsIFwiL2Fib3V0L1wiKSkudG9CZShmYWxzZSlcbiAgfSlcblxuICBpdChcInNob3VsZCBpZ25vcmUgcXVlcnkgYW5kIGhhc2ggb24gdGhlIHVybFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KGN1c3RvbVNlY3Rpb25BY3RpdmUoXCIvYWJvdXQ/eD0xXCIsIFwiL2Fib3V0L1wiKSkudG9CZSh0cnVlKVxuICAgIGV4cGVjdChjdXN0b21TZWN0aW9uQWN0aXZlKFwiL2Fib3V0I3RvcFwiLCBcIi9hYm91dC90ZWFtL1wiKSkudG9CZSh0cnVlKVxuICB9KVxufSlcblxuZGVzY3JpYmUoXCJhY3RpdmVTaXRlU2VjdGlvblwiLCAoKSA9PiB7XG4gIGNvbnN0IGRvY3M6IFNlY3Rpb24gPSB7XG4gICAgdHlwZTogXCJhcnRpY2xlXCIsXG4gICAgdGl0bGU6IFwiRG9jc1wiLFxuICAgIHByZWZpeDogXCIvXCIsXG4gICAgcG9zaXRpb246IFwiaGVhZGVyXCIsXG4gIH1cbiAgY29uc3QgYmxvZzogU2VjdGlvbiA9IHtcbiAgICB0eXBlOiBcImJsb2dcIixcbiAgICB0aXRsZTogXCJCbG9nXCIsXG4gICAgcHJlZml4OiBcIi9ibG9nL1wiLFxuICAgIHBvc2l0aW9uOiBcImhlYWRlclwiLFxuICB9XG4gIGNvbnN0IGFwaUN1c3RvbTogU2VjdGlvbiA9IHtcbiAgICB0eXBlOiBcImN1c3RvbVwiLFxuICAgIHRpdGxlOiBcIkFQSVwiLFxuICAgIHVybDogXCIvYXBpL3YyXCIsXG4gICAgcG9zaXRpb246IFwiaGVhZGVyXCIsXG4gIH1cbiAgY29uc3QgZ2l0aHViQ3VzdG9tOiBTZWN0aW9uID0ge1xuICAgIHR5cGU6IFwiY3VzdG9tXCIsXG4gICAgdGl0bGU6IFwiR2l0SHViXCIsXG4gICAgdXJsOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9leGFtcGxlL3JlcG9cIixcbiAgICBwb3NpdGlvbjogXCJoZWFkZXJcIixcbiAgfVxuICBjb25zdCBob21lQ3VzdG9tOiBTZWN0aW9uID0ge1xuICAgIHR5cGU6IFwiY3VzdG9tXCIsXG4gICAgdGl0bGU6IFwiSG9tZVwiLFxuICAgIHVybDogXCIvXCIsXG4gICAgcG9zaXRpb246IFwiaGVhZGVyXCIsXG4gIH1cblxuICBpdChcInNob3VsZCByZXR1cm4gdGhlIHJvdXRlZCBzZWN0aW9uIG1hdGNoaW5nIGJ5IHByZWZpeFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KGFjdGl2ZVNpdGVTZWN0aW9uKFwiL2Jsb2cvcG9zdC9cIiwgW2RvY3MsIGJsb2ddKT8udGl0bGUpLnRvQmUoXCJCbG9nXCIpXG4gIH0pXG5cbiAgaXQoXCJzaG91bGQgcmV0dXJuIHRoZSBjdXN0b20gc2VjdGlvbiBtYXRjaGluZyBieSBpbnRlcm5hbCB1cmxcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChhY3RpdmVTaXRlU2VjdGlvbihcIi9hcGkvdjIvdXNlcnMvXCIsIFtkb2NzLCBhcGlDdXN0b21dKT8udGl0bGUpLnRvQmUoXG4gICAgICBcIkFQSVwiLFxuICAgIClcbiAgfSlcblxuICBpdChcInNob3VsZCBwaWNrIHRoZSBsb25nZXN0IG1hdGNoIGFtb25nIG92ZXJsYXBwaW5nIHByZWZpeGVzXCIsICgpID0+IHtcbiAgICBleHBlY3QoYWN0aXZlU2l0ZVNlY3Rpb24oXCIvYmxvZy9wb3N0L1wiLCBbZG9jcywgYmxvZ10pPy50aXRsZSkudG9CZShcIkJsb2dcIilcbiAgICBleHBlY3QoYWN0aXZlU2l0ZVNlY3Rpb24oXCIvYXBpL3YyL2Zvby9cIiwgW2RvY3MsIGFwaUN1c3RvbV0pPy50aXRsZSkudG9CZShcbiAgICAgIFwiQVBJXCIsXG4gICAgKVxuICB9KVxuXG4gIGl0KFwic2hvdWxkIGlnbm9yZSBjdXN0b20gc2VjdGlvbnMgd2l0aCBhYnNvbHV0ZSBVUkxzXCIsICgpID0+IHtcbiAgICBleHBlY3QoYWN0aXZlU2l0ZVNlY3Rpb24oXCIvYW55dGhpbmcvXCIsIFtnaXRodWJDdXN0b21dKSkudG9CZVVuZGVmaW5lZCgpXG4gIH0pXG5cbiAgaXQoXCJzaG91bGQgbWF0Y2ggY3VzdG9tIFVSTCBgL2Agb25seSBvbiB0aGUgaG9tZSBwYWdlXCIsICgpID0+IHtcbiAgICBleHBlY3QoYWN0aXZlU2l0ZVNlY3Rpb24oXCIvXCIsIFtob21lQ3VzdG9tXSk/LnRpdGxlKS50b0JlKFwiSG9tZVwiKVxuICAgIGV4cGVjdChhY3RpdmVTaXRlU2VjdGlvbihcIi9hYm91dC9cIiwgW2hvbWVDdXN0b21dKSkudG9CZVVuZGVmaW5lZCgpXG4gIH0pXG5cbiAgaXQoXCJzaG91bGQgbGV0IHJvdXRlZCBgL2AgbWF0Y2ggZGVzY2VuZGFudHMgd2hpbGUgY3VzdG9tIGAvYCBkb2VzIG5vdFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KGFjdGl2ZVNpdGVTZWN0aW9uKFwiL2Fib3V0L1wiLCBbZG9jcywgaG9tZUN1c3RvbV0pPy50aXRsZSkudG9CZShcIkRvY3NcIilcbiAgfSlcblxuICBpdChcInNob3VsZCByZXR1cm4gdW5kZWZpbmVkIHdoZW4gbm8gc2VjdGlvbiBtYXRjaGVzXCIsICgpID0+IHtcbiAgICBleHBlY3QoYWN0aXZlU2l0ZVNlY3Rpb24oXCIvYW55dGhpbmcvXCIsIFtibG9nLCBhcGlDdXN0b21dKSkudG9CZVVuZGVmaW5lZCgpXG4gIH0pXG59KVxuIl19
147
+ describe("activeSiteLink", () => {
148
+ const docs = {
149
+ type: "article",
150
+ title: "Docs",
151
+ prefix: "/",
152
+ position: "header",
153
+ };
154
+ const blog = {
155
+ type: "blog",
156
+ title: "Blog",
157
+ prefix: "/blog/",
158
+ position: "header",
159
+ siteLink: "/blog/",
160
+ };
161
+ const externalCustom = {
162
+ type: "custom",
163
+ title: "GitHub",
164
+ url: "/github",
165
+ position: "header",
166
+ siteLink: "https://github.com/example/repo",
167
+ };
168
+ it("should default to '/' when no section matches", () => {
169
+ expect(activeSiteLink("/anything/", [blog])).toBe("/");
170
+ });
171
+ it("should default to '/' when matching section has no siteLink", () => {
172
+ expect(activeSiteLink("/about/", [docs])).toBe("/");
173
+ });
174
+ it("should return the matching section's siteLink", () => {
175
+ expect(activeSiteLink("/blog/post/", [blog])).toBe("/blog/");
176
+ });
177
+ it("should support absolute URLs as the siteLink", () => {
178
+ expect(activeSiteLink("/github/", [externalCustom])).toBe("https://github.com/example/repo");
179
+ });
180
+ });
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi51bml0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2hlbHBlcnMvc2VjdGlvbi51bml0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRXJELE9BQU8sRUFDTCxjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixZQUFZLEVBQ1osa0JBQWtCLEdBQ25CLE1BQU0sY0FBYyxDQUFBO0FBRXJCLFFBQVEsQ0FBQyxjQUFjLEVBQUUsR0FBRyxFQUFFO0lBQzVCLE1BQU0sUUFBUSxHQUFHO1FBQ2YsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUU7UUFDOUIsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUU7UUFDakMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUU7S0FDNUMsQ0FBQTtJQUVELEVBQUUsQ0FBQyx1Q0FBdUMsRUFBRSxHQUFHLEVBQUU7UUFDL0MsTUFBTSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDNUUsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsMERBQTBELEVBQUUsR0FBRyxFQUFFO1FBQ2xFLE1BQU0sQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNsRSxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyx1Q0FBdUMsRUFBRSxHQUFHLEVBQUU7UUFDL0MsTUFBTSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxRQUFRLENBQUMsRUFBRSxLQUFLLENBQUMs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O0FBQ0osQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZXNjcmliZSwgZXhwZWN0LCBpdCB9IGZyb20gXCJ2aXRlLXBsdXMvdGVzdFwiXG5pbXBvcnQgdHlwZSB7IFNlY3Rpb24gfSBmcm9tIFwiLi4vbW9kZWxzL3NlY3Rpb24udHNcIlxuaW1wb3J0IHtcbiAgYWN0aXZlU2l0ZUxpbmssXG4gIGFjdGl2ZVNpdGVTZWN0aW9uLFxuICBjdXN0b21TZWN0aW9uQWN0aXZlLFxuICBtYXRjaFNlY3Rpb24sXG4gIHBhcnRpdGlvbkJ5U2VjdGlvbixcbn0gZnJvbSBcIi4vc2VjdGlvbi50c1wiXG5cbmRlc2NyaWJlKFwibWF0Y2hTZWN0aW9uXCIsICgpID0+IHtcbiAgY29uc3Qgc2VjdGlvbnMgPSBbXG4gICAgeyB0aXRsZTogXCJEb2NzXCIsIHByZWZpeDogXCIvXCIgfSxcbiAgICB7IHRpdGxlOiBcIkFQSVwiLCBwcmVmaXg6IFwiL2FwaS9cIiB9LFxuICAgIHsgdGl0bGU6IFwiQVBJIEF1dGhcIiwgcHJlZml4OiBcIi9hcGkvYXV0aC9cIiB9LFxuICBdXG5cbiAgaXQoXCJzaG91bGQgbWF0Y2ggdGhlIG1vc3Qgc3BlY2lmaWMgcHJlZml4XCIsICgpID0+IHtcbiAgICBleHBlY3QobWF0Y2hTZWN0aW9uKFwiL2FwaS9hdXRoL2xvZ2luL1wiLCBzZWN0aW9ucyk/LnRpdGxlKS50b0JlKFwiQVBJIEF1dGhcIilcbiAgfSlcblxuICBpdChcInNob3VsZCBtYXRjaCBhIGxlc3Mgc3BlY2lmaWMgcHJlZml4IHdoZW4gbm8gZGVlcGVyIG1hdGNoXCIsICgpID0+IHtcbiAgICBleHBlY3QobWF0Y2hTZWN0aW9uKFwiL2FwaS91c2Vycy9cIiwgc2VjdGlvbnMpPy50aXRsZSkudG9CZShcIkFQSVwiKVxuICB9KVxuXG4gIGl0KFwic2hvdWxkIG1hdGNoIHJvb3Qgc2VjdGlvbiBhcyBmYWxsYmFja1wiLCAoKSA9PiB7XG4gICAgZXhwZWN0KG1hdGNoU2VjdGlvbihcIi9nZXR0aW5nLXN0YXJ0ZWQvXCIsIHNlY3Rpb25zKT8udGl0bGUpLnRvQmUoXCJEb2NzXCIpXG4gIH0pXG5cbiAgaXQoXCJzaG91bGQgcmV0dXJuIHVuZGVmaW5lZCB3aGVuIG5vIHNlY3Rpb24gbWF0Y2hlc1wiLCAoKSA9PiB7XG4gICAgY29uc3QgbmFycm93ID0gW3sgdGl0bGU6IFwiQVBJXCIsIHByZWZpeDogXCIvYXBpL1wiIH1dXG4gICAgZXhwZWN0KG1hdGNoU2VjdGlvbihcIi9nZXR0aW5nLXN0YXJ0ZWQvXCIsIG5hcnJvdykpLnRvQmVVbmRlZmluZWQoKVxuICB9KVxuXG4gIGl0KFwic2hvdWxkIG1hdGNoIGEgc2luZ2xlIHJvb3Qgc2VjdGlvbiBmb3IgYWxsIGFydGljbGVzXCIsICgpID0+IHtcbiAgICBjb25zdCByb290ID0gW3sgdGl0bGU6IFwiRG9jc1wiLCBwcmVmaXg6IFwiL1wiIH1dXG4gICAgZXhwZWN0KG1hdGNoU2VjdGlvbihcIi9hbnl0aGluZy9kZWVwL3BhdGgvXCIsIHJvb3QpPy50aXRsZSkudG9CZShcIkRvY3NcIilcbiAgfSlcbn0pXG5cbmRlc2NyaWJlKFwicGFydGl0aW9uQnlTZWN0aW9uXCIsICgpID0+IHtcbiAgY29uc3Qgc2VjdGlvbnMgPSBbXG4gICAgeyB0aXRsZTogXCJEb2NzXCIsIHByZWZpeDogXCIvXCIgfSxcbiAgICB7IHRpdGxlOiBcIkFQSVwiLCBwcmVmaXg6IFwiL2FwaS9cIiB9LFxuICBdXG5cbiAgY29uc3QgYXJ0aWNsZXMgPSBbXG4gICAgeyBwYXRoOiBcIi9nZXR0aW5nLXN0YXJ0ZWQvXCIgfSxcbiAgICB7IHBhdGg6IFwiL2d1aWRlL1wiIH0sXG4gICAgeyBwYXRoOiBcIi9hcGkvdXNlcnMvXCIgfSxcbiAgICB7IHBhdGg6IFwiL2FwaS9hdXRoL1wiIH0sXG4gIF1cblxuICBpdChcInNob3VsZCBzcGxpdCBhcnRpY2xlcyBpbnRvIHNlY3Rpb24gYnVja2V0c1wiLCAoKSA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gcGFydGl0aW9uQnlTZWN0aW9uKGFydGljbGVzLCBzZWN0aW9ucylcbiAgICBleHBlY3QocmVzdWx0LmdldChcIi9cIik/Lm1hcChhID0+IGEucGF0aCkpLnRvRXF1YWwoW1xuICAgICAgXCIvZ2V0dGluZy1zdGFydGVkL1wiLFxuICAgICAgXCIvZ3VpZGUvXCIsXG4gICAgXSlcbiAgICBleHBlY3QocmVzdWx0LmdldChcIi9hcGkvXCIpPy5tYXAoYSA9PiBhLnBhdGgpKS50b0VxdWFsKFtcbiAgICAgIFwiL2FwaS91c2Vycy9cIixcbiAgICAgIFwiL2FwaS9hdXRoL1wiLFxuICAgIF0pXG4gIH0pXG5cbiAgaXQoXCJzaG91bGQgcHV0IHVubWF0Y2hlZCBhcnRpY2xlcyBpbiBfX2RlZmF1bHRfXyBidWNrZXRcIiwgKCkgPT4ge1xuICAgIGNvbnN0IG5hcnJvdyA9IFt7IHRpdGxlOiBcIkFQSVwiLCBwcmVmaXg6IFwiL2FwaS9cIiB9XVxuICAgIGNvbnN0IHJlc3VsdCA9IHBhcnRpdGlvbkJ5U2VjdGlvbihhcnRpY2xlcywgbmFycm93KVxuICAgIGV4cGVjdChyZXN1bHQuZ2V0KFwiX19kZWZhdWx0X19cIik/Lm1hcChhID0+IGEucGF0aCkpLnRvRXF1YWwoW1xuICAgICAgXCIvZ2V0dGluZy1zdGFydGVkL1wiLFxuICAgICAgXCIvZ3VpZGUvXCIsXG4gICAgXSlcbiAgICBleHBlY3QocmVzdWx0LmdldChcIi9hcGkvXCIpPy5tYXAoYSA9PiBhLnBhdGgpKS50b0VxdWFsKFtcbiAgICAgIFwiL2FwaS91c2Vycy9cIixcbiAgICAgIFwiL2FwaS9hdXRoL1wiLFxuICAgIF0pXG4gIH0pXG59KVxuXG5kZXNjcmliZShcImN1c3RvbVNlY3Rpb25BY3RpdmVcIiwgKCkgPT4ge1xuICBpdChcInNob3VsZCBub3QgbWF0Y2ggYW4gYWJzb2x1dGUgaHR0cCB1cmxcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChjdXN0b21TZWN0aW9uQWN0aXZlKFwiaHR0cHM6Ly94LmNvbS95XCIsIFwiL3kvXCIpKS50b0JlKGZhbHNlKVxuICAgIGV4cGVjdChjdXN0b21TZWN0aW9uQWN0aXZlKFwiaHR0cDovL3guY29tL3lcIiwgXCIveS9cIikpLnRvQmUoZmFsc2UpXG4gIH0pXG5cbiAgaXQoXCJzaG91bGQgbm90IG1hdGNoIGEgcHJvdG9jb2wtcmVsYXRpdmUgdXJsXCIsICgpID0+IHtcbiAgICBleHBlY3QoY3VzdG9tU2VjdGlvbkFjdGl2ZShcIi8vY2RuLnguY29tL3lcIiwgXCIveS9cIikpLnRvQmUoZmFsc2UpXG4gIH0pXG5cbiAgaXQoXCJzaG91bGQgbm90IG1hdGNoIGEgaGFzaCB1cmxcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChjdXN0b21TZWN0aW9uQWN0aXZlKFwiI3NlY3Rpb25cIiwgXCIvc2VjdGlvbi9cIikpLnRvQmUoZmFsc2UpXG4gIH0pXG5cbiAgaXQoXCJzaG91bGQgbWF0Y2ggdGhlIGV4YWN0IHBhdGhcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChjdXN0b21TZWN0aW9uQWN0aXZlKFwiL2Fib3V0XCIsIFwiL2Fib3V0L1wiKSkudG9CZSh0cnVlKVxuICAgIGV4cGVjdChjdXN0b21TZWN0aW9uQWN0aXZlKFwiL2Fib3V0L1wiLCBcIi9hYm91dC9cIikpLnRvQmUodHJ1ZSlcbiAgfSlcblxuICBpdChcInNob3VsZCBtYXRjaCBhIGRlc2NlbmRhbnQgcGF0aFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KGN1c3RvbVNlY3Rpb25BY3RpdmUoXCIvYWJvdXRcIiwgXCIvYWJvdXQvdGVhbS9cIikpLnRvQmUodHJ1ZSlcbiAgfSlcblxuICBpdChcInNob3VsZCBub3QgbWF0Y2ggYSBzaWJsaW5nIHBhdGggd2l0aCBzaGFyZWQgcHJlZml4XCIsICgpID0+IHtcbiAgICBleHBlY3QoY3VzdG9tU2VjdGlvbkFjdGl2ZShcIi9hYm91dFwiLCBcIi9hYm91dHVzL1wiKSkudG9CZShmYWxzZSlcbiAgfSlcblxuICBpdChcInNob3VsZCBtYXRjaCBleGFjdCByb290IG9ubHlcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChjdXN0b21TZWN0aW9uQWN0aXZlKFwiL1wiLCBcIi9cIikpLnRvQmUodHJ1ZSlcbiAgICBleHBlY3QoY3VzdG9tU2VjdGlvbkFjdGl2ZShcIi9cIiwgXCIvYWJvdXQvXCIpKS50b0JlKGZhbHNlKVxuICB9KVxuXG4gIGl0KFwic2hvdWxkIGlnbm9yZSBxdWVyeSBhbmQgaGFzaCBvbiB0aGUgdXJsXCIsICgpID0+IHtcbiAgICBleHBlY3QoY3VzdG9tU2VjdGlvbkFjdGl2ZShcIi9hYm91dD94PTFcIiwgXCIvYWJvdXQvXCIpKS50b0JlKHRydWUpXG4gICAgZXhwZWN0KGN1c3RvbVNlY3Rpb25BY3RpdmUoXCIvYWJvdXQjdG9wXCIsIFwiL2Fib3V0L3RlYW0vXCIpKS50b0JlKHRydWUpXG4gIH0pXG59KVxuXG5kZXNjcmliZShcImFjdGl2ZVNpdGVTZWN0aW9uXCIsICgpID0+IHtcbiAgY29uc3QgZG9jczogU2VjdGlvbiA9IHtcbiAgICB0eXBlOiBcImFydGljbGVcIixcbiAgICB0aXRsZTogXCJEb2NzXCIsXG4gICAgcHJlZml4OiBcIi9cIixcbiAgICBwb3NpdGlvbjogXCJoZWFkZXJcIixcbiAgfVxuICBjb25zdCBibG9nOiBTZWN0aW9uID0ge1xuICAgIHR5cGU6IFwiYmxvZ1wiLFxuICAgIHRpdGxlOiBcIkJsb2dcIixcbiAgICBwcmVmaXg6IFwiL2Jsb2cvXCIsXG4gICAgcG9zaXRpb246IFwiaGVhZGVyXCIsXG4gIH1cbiAgY29uc3QgYXBpQ3VzdG9tOiBTZWN0aW9uID0ge1xuICAgIHR5cGU6IFwiY3VzdG9tXCIsXG4gICAgdGl0bGU6IFwiQVBJXCIsXG4gICAgdXJsOiBcIi9hcGkvdjJcIixcbiAgICBwb3NpdGlvbjogXCJoZWFkZXJcIixcbiAgfVxuICBjb25zdCBnaXRodWJDdXN0b206IFNlY3Rpb24gPSB7XG4gICAgdHlwZTogXCJjdXN0b21cIixcbiAgICB0aXRsZTogXCJHaXRIdWJcIixcbiAgICB1cmw6IFwiaHR0cHM6Ly9naXRodWIuY29tL2V4YW1wbGUvcmVwb1wiLFxuICAgIHBvc2l0aW9uOiBcImhlYWRlclwiLFxuICB9XG4gIGNvbnN0IGhvbWVDdXN0b206IFNlY3Rpb24gPSB7XG4gICAgdHlwZTogXCJjdXN0b21cIixcbiAgICB0aXRsZTogXCJIb21lXCIsXG4gICAgdXJsOiBcIi9cIixcbiAgICBwb3NpdGlvbjogXCJoZWFkZXJcIixcbiAgfVxuXG4gIGl0KFwic2hvdWxkIHJldHVybiB0aGUgcm91dGVkIHNlY3Rpb24gbWF0Y2hpbmcgYnkgcHJlZml4XCIsICgpID0+IHtcbiAgICBleHBlY3QoYWN0aXZlU2l0ZVNlY3Rpb24oXCIvYmxvZy9wb3N0L1wiLCBbZG9jcywgYmxvZ10pPy50aXRsZSkudG9CZShcIkJsb2dcIilcbiAgfSlcblxuICBpdChcInNob3VsZCByZXR1cm4gdGhlIGN1c3RvbSBzZWN0aW9uIG1hdGNoaW5nIGJ5IGludGVybmFsIHVybFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KGFjdGl2ZVNpdGVTZWN0aW9uKFwiL2FwaS92Mi91c2Vycy9cIiwgW2RvY3MsIGFwaUN1c3RvbV0pPy50aXRsZSkudG9CZShcbiAgICAgIFwiQVBJXCIsXG4gICAgKVxuICB9KVxuXG4gIGl0KFwic2hvdWxkIHBpY2sgdGhlIGxvbmdlc3QgbWF0Y2ggYW1vbmcgb3ZlcmxhcHBpbmcgcHJlZml4ZXNcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChhY3RpdmVTaXRlU2VjdGlvbihcIi9ibG9nL3Bvc3QvXCIsIFtkb2NzLCBibG9nXSk/LnRpdGxlKS50b0JlKFwiQmxvZ1wiKVxuICAgIGV4cGVjdChhY3RpdmVTaXRlU2VjdGlvbihcIi9hcGkvdjIvZm9vL1wiLCBbZG9jcywgYXBpQ3VzdG9tXSk/LnRpdGxlKS50b0JlKFxuICAgICAgXCJBUElcIixcbiAgICApXG4gIH0pXG5cbiAgaXQoXCJzaG91bGQgaWdub3JlIGN1c3RvbSBzZWN0aW9ucyB3aXRoIGFic29sdXRlIFVSTHNcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChhY3RpdmVTaXRlU2VjdGlvbihcIi9hbnl0aGluZy9cIiwgW2dpdGh1YkN1c3RvbV0pKS50b0JlVW5kZWZpbmVkKClcbiAgfSlcblxuICBpdChcInNob3VsZCBtYXRjaCBjdXN0b20gVVJMIGAvYCBvbmx5IG9uIHRoZSBob21lIHBhZ2VcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChhY3RpdmVTaXRlU2VjdGlvbihcIi9cIiwgW2hvbWVDdXN0b21dKT8udGl0bGUpLnRvQmUoXCJIb21lXCIpXG4gICAgZXhwZWN0KGFjdGl2ZVNpdGVTZWN0aW9uKFwiL2Fib3V0L1wiLCBbaG9tZUN1c3RvbV0pKS50b0JlVW5kZWZpbmVkKClcbiAgfSlcblxuICBpdChcInNob3VsZCBsZXQgcm91dGVkIGAvYCBtYXRjaCBkZXNjZW5kYW50cyB3aGlsZSBjdXN0b20gYC9gIGRvZXMgbm90XCIsICgpID0+IHtcbiAgICBleHBlY3QoYWN0aXZlU2l0ZVNlY3Rpb24oXCIvYWJvdXQvXCIsIFtkb2NzLCBob21lQ3VzdG9tXSk/LnRpdGxlKS50b0JlKFwiRG9jc1wiKVxuICB9KVxuXG4gIGl0KFwic2hvdWxkIHJldHVybiB1bmRlZmluZWQgd2hlbiBubyBzZWN0aW9uIG1hdGNoZXNcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChhY3RpdmVTaXRlU2VjdGlvbihcIi9hbnl0aGluZy9cIiwgW2Jsb2csIGFwaUN1c3RvbV0pKS50b0JlVW5kZWZpbmVkKClcbiAgfSlcbn0pXG5cbmRlc2NyaWJlKFwiYWN0aXZlU2l0ZUxpbmtcIiwgKCkgPT4ge1xuICBjb25zdCBkb2NzOiBTZWN0aW9uID0ge1xuICAgIHR5cGU6IFwiYXJ0aWNsZVwiLFxuICAgIHRpdGxlOiBcIkRvY3NcIixcbiAgICBwcmVmaXg6IFwiL1wiLFxuICAgIHBvc2l0aW9uOiBcImhlYWRlclwiLFxuICB9XG4gIGNvbnN0IGJsb2c6IFNlY3Rpb24gPSB7XG4gICAgdHlwZTogXCJibG9nXCIsXG4gICAgdGl0bGU6IFwiQmxvZ1wiLFxuICAgIHByZWZpeDogXCIvYmxvZy9cIixcbiAgICBwb3NpdGlvbjogXCJoZWFkZXJcIixcbiAgICBzaXRlTGluazogXCIvYmxvZy9cIixcbiAgfVxuICBjb25zdCBleHRlcm5hbEN1c3RvbTogU2VjdGlvbiA9IHtcbiAgICB0eXBlOiBcImN1c3RvbVwiLFxuICAgIHRpdGxlOiBcIkdpdEh1YlwiLFxuICAgIHVybDogXCIvZ2l0aHViXCIsXG4gICAgcG9zaXRpb246IFwiaGVhZGVyXCIsXG4gICAgc2l0ZUxpbms6IFwiaHR0cHM6Ly9naXRodWIuY29tL2V4YW1wbGUvcmVwb1wiLFxuICB9XG5cbiAgaXQoXCJzaG91bGQgZGVmYXVsdCB0byAnLycgd2hlbiBubyBzZWN0aW9uIG1hdGNoZXNcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChhY3RpdmVTaXRlTGluayhcIi9hbnl0aGluZy9cIiwgW2Jsb2ddKSkudG9CZShcIi9cIilcbiAgfSlcblxuICBpdChcInNob3VsZCBkZWZhdWx0IHRvICcvJyB3aGVuIG1hdGNoaW5nIHNlY3Rpb24gaGFzIG5vIHNpdGVMaW5rXCIsICgpID0+IHtcbiAgICBleHBlY3QoYWN0aXZlU2l0ZUxpbmsoXCIvYWJvdXQvXCIsIFtkb2NzXSkpLnRvQmUoXCIvXCIpXG4gIH0pXG5cbiAgaXQoXCJzaG91bGQgcmV0dXJuIHRoZSBtYXRjaGluZyBzZWN0aW9uJ3Mgc2l0ZUxpbmtcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChhY3RpdmVTaXRlTGluayhcIi9ibG9nL3Bvc3QvXCIsIFtibG9nXSkpLnRvQmUoXCIvYmxvZy9cIilcbiAgfSlcblxuICBpdChcInNob3VsZCBzdXBwb3J0IGFic29sdXRlIFVSTHMgYXMgdGhlIHNpdGVMaW5rXCIsICgpID0+IHtcbiAgICBleHBlY3QoYWN0aXZlU2l0ZUxpbmsoXCIvZ2l0aHViL1wiLCBbZXh0ZXJuYWxDdXN0b21dKSkudG9CZShcbiAgICAgIFwiaHR0cHM6Ly9naXRodWIuY29tL2V4YW1wbGUvcmVwb1wiLFxuICAgIClcbiAgfSlcbn0pXG4iXX0=
@@ -122,6 +122,7 @@ export declare const UserConfig: z.ZodObject<{
122
122
  }>>;
123
123
  siteTitle: z.ZodOptional<z.ZodString>;
124
124
  siteDescription: z.ZodOptional<z.ZodString>;
125
+ siteLink: z.ZodOptional<z.ZodString>;
125
126
  type: z.ZodLiteral<"article">;
126
127
  prefix: z.ZodString;
127
128
  }, z.core.$strip>, z.ZodObject<{
@@ -133,6 +134,7 @@ export declare const UserConfig: z.ZodObject<{
133
134
  }>>;
134
135
  siteTitle: z.ZodOptional<z.ZodString>;
135
136
  siteDescription: z.ZodOptional<z.ZodString>;
137
+ siteLink: z.ZodOptional<z.ZodString>;
136
138
  type: z.ZodLiteral<"blog">;
137
139
  prefix: z.ZodString;
138
140
  }, z.core.$strip>, z.ZodObject<{
@@ -144,6 +146,7 @@ export declare const UserConfig: z.ZodObject<{
144
146
  }>>;
145
147
  siteTitle: z.ZodOptional<z.ZodString>;
146
148
  siteDescription: z.ZodOptional<z.ZodString>;
149
+ siteLink: z.ZodOptional<z.ZodString>;
147
150
  type: z.ZodLiteral<"changelog">;
148
151
  prefix: z.ZodString;
149
152
  source: z.ZodString;
@@ -157,6 +160,7 @@ export declare const UserConfig: z.ZodObject<{
157
160
  }>>;
158
161
  siteTitle: z.ZodOptional<z.ZodString>;
159
162
  siteDescription: z.ZodOptional<z.ZodString>;
163
+ siteLink: z.ZodOptional<z.ZodString>;
160
164
  type: z.ZodLiteral<"custom">;
161
165
  url: z.ZodString;
162
166
  }, z.core.$strip>], "type">>>>;
@@ -213,6 +217,7 @@ export declare const WebsiteConfig: z.ZodObject<{
213
217
  }>>;
214
218
  siteTitle: z.ZodOptional<z.ZodString>;
215
219
  siteDescription: z.ZodOptional<z.ZodString>;
220
+ siteLink: z.ZodOptional<z.ZodString>;
216
221
  type: z.ZodLiteral<"article">;
217
222
  prefix: z.ZodString;
218
223
  }, z.core.$strip>, z.ZodObject<{
@@ -224,6 +229,7 @@ export declare const WebsiteConfig: z.ZodObject<{
224
229
  }>>;
225
230
  siteTitle: z.ZodOptional<z.ZodString>;
226
231
  siteDescription: z.ZodOptional<z.ZodString>;
232
+ siteLink: z.ZodOptional<z.ZodString>;
227
233
  type: z.ZodLiteral<"blog">;
228
234
  prefix: z.ZodString;
229
235
  }, z.core.$strip>, z.ZodObject<{
@@ -235,6 +241,7 @@ export declare const WebsiteConfig: z.ZodObject<{
235
241
  }>>;
236
242
  siteTitle: z.ZodOptional<z.ZodString>;
237
243
  siteDescription: z.ZodOptional<z.ZodString>;
244
+ siteLink: z.ZodOptional<z.ZodString>;
238
245
  type: z.ZodLiteral<"changelog">;
239
246
  prefix: z.ZodString;
240
247
  source: z.ZodString;
@@ -248,6 +255,7 @@ export declare const WebsiteConfig: z.ZodObject<{
248
255
  }>>;
249
256
  siteTitle: z.ZodOptional<z.ZodString>;
250
257
  siteDescription: z.ZodOptional<z.ZodString>;
258
+ siteLink: z.ZodOptional<z.ZodString>;
251
259
  type: z.ZodLiteral<"custom">;
252
260
  url: z.ZodString;
253
261
  }, z.core.$strip>], "type">>>>;
@@ -370,6 +378,7 @@ export declare const Config: z.ZodObject<{
370
378
  }>>;
371
379
  siteTitle: z.ZodOptional<z.ZodString>;
372
380
  siteDescription: z.ZodOptional<z.ZodString>;
381
+ siteLink: z.ZodOptional<z.ZodString>;
373
382
  type: z.ZodLiteral<"article">;
374
383
  prefix: z.ZodString;
375
384
  }, z.core.$strip>, z.ZodObject<{
@@ -381,6 +390,7 @@ export declare const Config: z.ZodObject<{
381
390
  }>>;
382
391
  siteTitle: z.ZodOptional<z.ZodString>;
383
392
  siteDescription: z.ZodOptional<z.ZodString>;
393
+ siteLink: z.ZodOptional<z.ZodString>;
384
394
  type: z.ZodLiteral<"blog">;
385
395
  prefix: z.ZodString;
386
396
  }, z.core.$strip>, z.ZodObject<{
@@ -392,6 +402,7 @@ export declare const Config: z.ZodObject<{
392
402
  }>>;
393
403
  siteTitle: z.ZodOptional<z.ZodString>;
394
404
  siteDescription: z.ZodOptional<z.ZodString>;
405
+ siteLink: z.ZodOptional<z.ZodString>;
395
406
  type: z.ZodLiteral<"changelog">;
396
407
  prefix: z.ZodString;
397
408
  source: z.ZodString;
@@ -405,6 +416,7 @@ export declare const Config: z.ZodObject<{
405
416
  }>>;
406
417
  siteTitle: z.ZodOptional<z.ZodString>;
407
418
  siteDescription: z.ZodOptional<z.ZodString>;
419
+ siteLink: z.ZodOptional<z.ZodString>;
408
420
  type: z.ZodLiteral<"custom">;
409
421
  url: z.ZodString;
410
422
  }, z.core.$strip>], "type">>>>;
@@ -10,6 +10,7 @@ export declare const ArticleSection: z.ZodObject<{
10
10
  }>>;
11
11
  siteTitle: z.ZodOptional<z.ZodString>;
12
12
  siteDescription: z.ZodOptional<z.ZodString>;
13
+ siteLink: z.ZodOptional<z.ZodString>;
13
14
  type: z.ZodLiteral<"article">;
14
15
  prefix: z.ZodString;
15
16
  }, z.core.$strip>;
@@ -24,6 +25,7 @@ export declare const BlogSection: z.ZodObject<{
24
25
  }>>;
25
26
  siteTitle: z.ZodOptional<z.ZodString>;
26
27
  siteDescription: z.ZodOptional<z.ZodString>;
28
+ siteLink: z.ZodOptional<z.ZodString>;
27
29
  type: z.ZodLiteral<"blog">;
28
30
  prefix: z.ZodString;
29
31
  }, z.core.$strip>;
@@ -38,6 +40,7 @@ export declare const ChangelogSection: z.ZodObject<{
38
40
  }>>;
39
41
  siteTitle: z.ZodOptional<z.ZodString>;
40
42
  siteDescription: z.ZodOptional<z.ZodString>;
43
+ siteLink: z.ZodOptional<z.ZodString>;
41
44
  type: z.ZodLiteral<"changelog">;
42
45
  prefix: z.ZodString;
43
46
  source: z.ZodString;
@@ -56,6 +59,7 @@ export declare const CustomSection: z.ZodObject<{
56
59
  }>>;
57
60
  siteTitle: z.ZodOptional<z.ZodString>;
58
61
  siteDescription: z.ZodOptional<z.ZodString>;
62
+ siteLink: z.ZodOptional<z.ZodString>;
59
63
  type: z.ZodLiteral<"custom">;
60
64
  url: z.ZodString;
61
65
  }, z.core.$strip>;
@@ -74,6 +78,7 @@ export declare const Section: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodD
74
78
  }>>;
75
79
  siteTitle: z.ZodOptional<z.ZodString>;
76
80
  siteDescription: z.ZodOptional<z.ZodString>;
81
+ siteLink: z.ZodOptional<z.ZodString>;
77
82
  type: z.ZodLiteral<"article">;
78
83
  prefix: z.ZodString;
79
84
  }, z.core.$strip>, z.ZodObject<{
@@ -85,6 +90,7 @@ export declare const Section: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodD
85
90
  }>>;
86
91
  siteTitle: z.ZodOptional<z.ZodString>;
87
92
  siteDescription: z.ZodOptional<z.ZodString>;
93
+ siteLink: z.ZodOptional<z.ZodString>;
88
94
  type: z.ZodLiteral<"blog">;
89
95
  prefix: z.ZodString;
90
96
  }, z.core.$strip>, z.ZodObject<{
@@ -96,6 +102,7 @@ export declare const Section: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodD
96
102
  }>>;
97
103
  siteTitle: z.ZodOptional<z.ZodString>;
98
104
  siteDescription: z.ZodOptional<z.ZodString>;
105
+ siteLink: z.ZodOptional<z.ZodString>;
99
106
  type: z.ZodLiteral<"changelog">;
100
107
  prefix: z.ZodString;
101
108
  source: z.ZodString;
@@ -109,6 +116,7 @@ export declare const Section: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodD
109
116
  }>>;
110
117
  siteTitle: z.ZodOptional<z.ZodString>;
111
118
  siteDescription: z.ZodOptional<z.ZodString>;
119
+ siteLink: z.ZodOptional<z.ZodString>;
112
120
  type: z.ZodLiteral<"custom">;
113
121
  url: z.ZodString;
114
122
  }, z.core.$strip>], "type">>;
@@ -5,6 +5,7 @@ const BaseSection = z.object({
5
5
  position: z.enum(["header", "sidebar"]).default("header"),
6
6
  siteTitle: z.string().optional(),
7
7
  siteDescription: z.string().optional(),
8
+ siteLink: z.string().optional(),
8
9
  });
9
10
  export const ArticleSection = BaseSection.extend({
10
11
  type: z.literal("article"),
@@ -36,4 +37,4 @@ export const Section = z.preprocess(input => {
36
37
  ChangelogSection,
37
38
  CustomSection,
38
39
  ]));
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9tb2RlbHMvc2VjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFBO0FBRXZCLE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDM0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDM0IsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDakIsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQ3pELFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2hDLGVBQWUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ3ZDLENBQUMsQ0FBQTtBQUlGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDO0lBQy9DLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUMxQixNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtDQUNuQixDQUFDLENBQUE7QUFJRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztJQUM1QyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDdkIsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDbkIsQ0FBQyxDQUFBO0FBSUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztJQUNqRCxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDNUIsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDbEIsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDbEIsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDaEMsQ0FBQyxDQUFBO0FBTUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7SUFDOUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQ3pCLEdBQUcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0NBQ2hCLENBQUMsQ0FBQTtBQVFGLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsVUFBVSxDQUNqQyxLQUFLLENBQUMsRUFBRTtJQUNOLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3hFLE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUNELE1BQU0sTUFBTSxHQUFHLEtBQWdDLENBQUE7SUFDL0MsT0FBTyxNQUFNLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFBO0FBQ25FLENBQUMsRUFDRCxDQUFDLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFO0lBQzNCLGNBQWM7SUFDZCxXQUFXO0lBQ1gsZ0JBQWdCO0lBQ2hCLGFBQWE7Q0FDZCxDQUFDLENBQ0gsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHogfSBmcm9tIFwiem9kXCJcblxuY29uc3QgQmFzZVNlY3Rpb24gPSB6Lm9iamVjdCh7XG4gIGljb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgdGl0bGU6IHouc3RyaW5nKCksXG4gIHBvc2l0aW9uOiB6LmVudW0oW1wiaGVhZGVyXCIsIFwic2lkZWJhclwiXSkuZGVmYXVsdChcImhlYWRlclwiKSxcbiAgc2l0ZVRpdGxlOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHNpdGVEZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxufSlcblxuLyoqIERlZmF1bHQgc2VjdGlvbjogcmVuZGVycyBhcnRpY2xlcy4gKi9cbmV4cG9ydCB0eXBlIEFydGljbGVTZWN0aW9uID0gei5pbmZlcjx0eXBlb2YgQXJ0aWNsZVNlY3Rpb24+XG5leHBvcnQgY29uc3QgQXJ0aWNsZVNlY3Rpb24gPSBCYXNlU2VjdGlvbi5leHRlbmQoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJhcnRpY2xlXCIpLFxuICBwcmVmaXg6IHouc3RyaW5nKCksXG59KVxuXG4vKiogQmxvZyBzZWN0aW9uOiBkYXRlLXNvcnRlZCBwb3N0cyB3aXRoIHRhZ3MgYW5kIGluZGV4LiAqL1xuZXhwb3J0IHR5cGUgQmxvZ1NlY3Rpb24gPSB6LmluZmVyPHR5cGVvZiBCbG9nU2VjdGlvbj5cbmV4cG9ydCBjb25zdCBCbG9nU2VjdGlvbiA9IEJhc2VTZWN0aW9uLmV4dGVuZCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcImJsb2dcIiksXG4gIHByZWZpeDogei5zdHJpbmcoKSxcbn0pXG5cbi8qKiBDaGFuZ2Vsb2cgc2VjdGlvbjogc2luZ2xlIGZpbGUgb3IgR2l0SHViIHJlbGVhc2VzLCBzcGxpdCBwZXIgdmVyc2lvbi4gKi9cbmV4cG9ydCB0eXBlIENoYW5nZWxvZ1NlY3Rpb24gPSB6LmluZmVyPHR5cGVvZiBDaGFuZ2Vsb2dTZWN0aW9uPlxuZXhwb3J0IGNvbnN0IENoYW5nZWxvZ1NlY3Rpb24gPSBCYXNlU2VjdGlvbi5leHRlbmQoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJjaGFuZ2Vsb2dcIiksXG4gIHByZWZpeDogei5zdHJpbmcoKSxcbiAgc291cmNlOiB6LnN0cmluZygpLFxuICB2ZXJzaW9uOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxufSlcblxuLyoqIEN1c3RvbSBzZWN0aW9uOiByZW5kZXJzIGFzIGEgbGluayB0byBhbiBhcmJpdHJhcnkgVVJMIOKAlCBhYnNvbHV0ZVxuICogIChgaHR0cHM6Ly/igKZgKSBvciBpbnRlcm5hbCAoYC9jaGFuZ2Vsb2dgKS4gSW50ZXJuYWwgVVJMcyBwYXJ0aWNpcGF0ZVxuICogIGluIGFjdGl2ZS1zdGF0ZSBoaWdobGlnaHRpbmcgbGlrZSByb3V0ZWQgc2VjdGlvbnMuICovXG5leHBvcnQgdHlwZSBDdXN0b21TZWN0aW9uID0gei5pbmZlcjx0eXBlb2YgQ3VzdG9tU2VjdGlvbj5cbmV4cG9ydCBjb25zdCBDdXN0b21TZWN0aW9uID0gQmFzZVNlY3Rpb24uZXh0ZW5kKHtcbiAgdHlwZTogei5saXRlcmFsKFwiY3VzdG9tXCIpLFxuICB1cmw6IHouc3RyaW5nKCksXG59KVxuXG4vKipcbiAqIEEgc2l0ZSBzZWN0aW9uLiBEaXNjcmltaW5hdGVkIG9uIGB0eXBlYC5cbiAqIFdoZW4gYHR5cGVgIGlzIG9taXR0ZWQsIGl0IGRlZmF1bHRzIHRvIFwiYXJ0aWNsZVwiIHNvIHBsYWluXG4gKiBgeyB0aXRsZSwgcHJlZml4IH1gIGVudHJpZXMga2VlcCB3b3JraW5nLlxuICovXG5leHBvcnQgdHlwZSBTZWN0aW9uID0gei5pbmZlcjx0eXBlb2YgU2VjdGlvbj5cbmV4cG9ydCBjb25zdCBTZWN0aW9uID0gei5wcmVwcm9jZXNzKFxuICBpbnB1dCA9PiB7XG4gICAgaWYgKGlucHV0ID09PSBudWxsIHx8IHR5cGVvZiBpbnB1dCAhPT0gXCJvYmplY3RcIiB8fCBBcnJheS5pc0FycmF5KGlucHV0KSkge1xuICAgICAgcmV0dXJuIGlucHV0XG4gICAgfVxuICAgIGNvbnN0IHJlY29yZCA9IGlucHV0IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgcmV0dXJuIFwidHlwZVwiIGluIHJlY29yZCA/IHJlY29yZCA6IHsgLi4ucmVjb3JkLCB0eXBlOiBcImFydGljbGVcIiB9XG4gIH0sXG4gIHouZGlzY3JpbWluYXRlZFVuaW9uKFwidHlwZVwiLCBbXG4gICAgQXJ0aWNsZVNlY3Rpb24sXG4gICAgQmxvZ1NlY3Rpb24sXG4gICAgQ2hhbmdlbG9nU2VjdGlvbixcbiAgICBDdXN0b21TZWN0aW9uLFxuICBdKSxcbilcbiJdfQ==
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9tb2RlbHMvc2VjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFBO0FBRXZCLE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDM0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDM0IsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDakIsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQ3pELFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2hDLGVBQWUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3RDLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ2hDLENBQUMsQ0FBQTtBQUlGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDO0lBQy9DLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUMxQixNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtDQUNuQixDQUFDLENBQUE7QUFJRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztJQUM1QyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDdkIsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDbkIsQ0FBQyxDQUFBO0FBSUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztJQUNqRCxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDNUIsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDbEIsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDbEIsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDaEMsQ0FBQyxDQUFBO0FBTUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7SUFDOUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQ3pCLEdBQUcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0NBQ2hCLENBQUMsQ0FBQTtBQVFGLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsVUFBVSxDQUNqQyxLQUFLLENBQUMsRUFBRTtJQUNOLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3hFLE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUNELE1BQU0sTUFBTSxHQUFHLEtBQWdDLENBQUE7SUFDL0MsT0FBTyxNQUFNLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFBO0FBQ25FLENBQUMsRUFDRCxDQUFDLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFO0lBQzNCLGNBQWM7SUFDZCxXQUFXO0lBQ1gsZ0JBQWdCO0lBQ2hCLGFBQWE7Q0FDZCxDQUFDLENBQ0gsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHogfSBmcm9tIFwiem9kXCJcblxuY29uc3QgQmFzZVNlY3Rpb24gPSB6Lm9iamVjdCh7XG4gIGljb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgdGl0bGU6IHouc3RyaW5nKCksXG4gIHBvc2l0aW9uOiB6LmVudW0oW1wiaGVhZGVyXCIsIFwic2lkZWJhclwiXSkuZGVmYXVsdChcImhlYWRlclwiKSxcbiAgc2l0ZVRpdGxlOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHNpdGVEZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBzaXRlTGluazogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxufSlcblxuLyoqIERlZmF1bHQgc2VjdGlvbjogcmVuZGVycyBhcnRpY2xlcy4gKi9cbmV4cG9ydCB0eXBlIEFydGljbGVTZWN0aW9uID0gei5pbmZlcjx0eXBlb2YgQXJ0aWNsZVNlY3Rpb24+XG5leHBvcnQgY29uc3QgQXJ0aWNsZVNlY3Rpb24gPSBCYXNlU2VjdGlvbi5leHRlbmQoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJhcnRpY2xlXCIpLFxuICBwcmVmaXg6IHouc3RyaW5nKCksXG59KVxuXG4vKiogQmxvZyBzZWN0aW9uOiBkYXRlLXNvcnRlZCBwb3N0cyB3aXRoIHRhZ3MgYW5kIGluZGV4LiAqL1xuZXhwb3J0IHR5cGUgQmxvZ1NlY3Rpb24gPSB6LmluZmVyPHR5cGVvZiBCbG9nU2VjdGlvbj5cbmV4cG9ydCBjb25zdCBCbG9nU2VjdGlvbiA9IEJhc2VTZWN0aW9uLmV4dGVuZCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcImJsb2dcIiksXG4gIHByZWZpeDogei5zdHJpbmcoKSxcbn0pXG5cbi8qKiBDaGFuZ2Vsb2cgc2VjdGlvbjogc2luZ2xlIGZpbGUgb3IgR2l0SHViIHJlbGVhc2VzLCBzcGxpdCBwZXIgdmVyc2lvbi4gKi9cbmV4cG9ydCB0eXBlIENoYW5nZWxvZ1NlY3Rpb24gPSB6LmluZmVyPHR5cGVvZiBDaGFuZ2Vsb2dTZWN0aW9uPlxuZXhwb3J0IGNvbnN0IENoYW5nZWxvZ1NlY3Rpb24gPSBCYXNlU2VjdGlvbi5leHRlbmQoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJjaGFuZ2Vsb2dcIiksXG4gIHByZWZpeDogei5zdHJpbmcoKSxcbiAgc291cmNlOiB6LnN0cmluZygpLFxuICB2ZXJzaW9uOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxufSlcblxuLyoqIEN1c3RvbSBzZWN0aW9uOiByZW5kZXJzIGFzIGEgbGluayB0byBhbiBhcmJpdHJhcnkgVVJMIOKAlCBhYnNvbHV0ZVxuICogIChgaHR0cHM6Ly/igKZgKSBvciBpbnRlcm5hbCAoYC9jaGFuZ2Vsb2dgKS4gSW50ZXJuYWwgVVJMcyBwYXJ0aWNpcGF0ZVxuICogIGluIGFjdGl2ZS1zdGF0ZSBoaWdobGlnaHRpbmcgbGlrZSByb3V0ZWQgc2VjdGlvbnMuICovXG5leHBvcnQgdHlwZSBDdXN0b21TZWN0aW9uID0gei5pbmZlcjx0eXBlb2YgQ3VzdG9tU2VjdGlvbj5cbmV4cG9ydCBjb25zdCBDdXN0b21TZWN0aW9uID0gQmFzZVNlY3Rpb24uZXh0ZW5kKHtcbiAgdHlwZTogei5saXRlcmFsKFwiY3VzdG9tXCIpLFxuICB1cmw6IHouc3RyaW5nKCksXG59KVxuXG4vKipcbiAqIEEgc2l0ZSBzZWN0aW9uLiBEaXNjcmltaW5hdGVkIG9uIGB0eXBlYC5cbiAqIFdoZW4gYHR5cGVgIGlzIG9taXR0ZWQsIGl0IGRlZmF1bHRzIHRvIFwiYXJ0aWNsZVwiIHNvIHBsYWluXG4gKiBgeyB0aXRsZSwgcHJlZml4IH1gIGVudHJpZXMga2VlcCB3b3JraW5nLlxuICovXG5leHBvcnQgdHlwZSBTZWN0aW9uID0gei5pbmZlcjx0eXBlb2YgU2VjdGlvbj5cbmV4cG9ydCBjb25zdCBTZWN0aW9uID0gei5wcmVwcm9jZXNzKFxuICBpbnB1dCA9PiB7XG4gICAgaWYgKGlucHV0ID09PSBudWxsIHx8IHR5cGVvZiBpbnB1dCAhPT0gXCJvYmplY3RcIiB8fCBBcnJheS5pc0FycmF5KGlucHV0KSkge1xuICAgICAgcmV0dXJuIGlucHV0XG4gICAgfVxuICAgIGNvbnN0IHJlY29yZCA9IGlucHV0IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgcmV0dXJuIFwidHlwZVwiIGluIHJlY29yZCA/IHJlY29yZCA6IHsgLi4ucmVjb3JkLCB0eXBlOiBcImFydGljbGVcIiB9XG4gIH0sXG4gIHouZGlzY3JpbWluYXRlZFVuaW9uKFwidHlwZVwiLCBbXG4gICAgQXJ0aWNsZVNlY3Rpb24sXG4gICAgQmxvZ1NlY3Rpb24sXG4gICAgQ2hhbmdlbG9nU2VjdGlvbixcbiAgICBDdXN0b21TZWN0aW9uLFxuICBdKSxcbilcbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "livemark",
3
- "version": "0.19.0",
3
+ "version": "0.20.0",
4
4
  "description": "Livemark description",
5
5
  "license": "MIT",
6
6
  "author": "Evgeny Karev",
@@ -9,7 +9,7 @@ import {
9
9
  } from "../content/article.ts"
10
10
  import { DynamicIcon } from "../helpers/dynamic-icon.tsx"
11
11
  import { prefixUrl } from "../helpers/prefix-url.ts"
12
- import { customSectionActive } from "../helpers/section.ts"
12
+ import { activeSiteLink, customSectionActive } from "../helpers/section.ts"
13
13
  import {
14
14
  SidebarInset,
15
15
  SidebarProvider,
@@ -19,6 +19,7 @@ import {
19
19
  import { BackToTop } from "./BackToTop.tsx"
20
20
  import { Banner } from "./Banner.tsx"
21
21
  import { Sidebar } from "./Sidebar.tsx"
22
+ import { SiteLink } from "./SiteLink.tsx"
22
23
  import { SiteTitle } from "./SiteTitle.tsx"
23
24
 
24
25
  function splatFor(pathname: string) {
@@ -34,6 +35,7 @@ export function Layout(props: {
34
35
  const activeSection = articleRoute
35
36
  ? currentSection(`/${pathname.replace(/^\/|\/$/g, "")}/`)
36
37
  : undefined
38
+ const siteLinkTarget = activeSiteLink(pathname, config.sections ?? [])
37
39
 
38
40
  useHotkey("J", () =>
39
41
  window.scrollBy({ top: window.innerHeight * 0.8, behavior: "smooth" }),
@@ -54,14 +56,17 @@ export function Layout(props: {
54
56
  <div className="hidden lg:flex">
55
57
  <SidebarTrigger />
56
58
  </div>
57
- <Link to="/" className="lg:hidden flex items-center gap-2">
59
+ <SiteLink
60
+ to={siteLinkTarget}
61
+ className="lg:hidden flex items-center gap-2"
62
+ >
58
63
  <SiteTitle />
59
- </Link>
64
+ </SiteLink>
60
65
  </>
61
66
  ) : (
62
- <Link to="/" className="flex items-center gap-2">
67
+ <SiteLink to={siteLinkTarget} className="flex items-center gap-2">
63
68
  <SiteTitle />
64
- </Link>
69
+ </SiteLink>
65
70
  )}
66
71
  </div>
67
72
  <div className="hidden lg:flex flex-1 items-center gap-8 self-stretch px-6 text-sm">
@@ -1,6 +1,8 @@
1
- import { Link, useLocation, useMatch } from "@tanstack/react-router"
1
+ import { config } from "livemark:virtual"
2
+ import { useLocation, useMatch } from "@tanstack/react-router"
2
3
  import { useHotkey } from "@tanstack/react-hotkeys"
3
4
  import { currentSection } from "../content/article.ts"
5
+ import { activeSiteLink } from "../helpers/section.ts"
4
6
  import {
5
7
  Sidebar as SidebarRoot,
6
8
  SidebarContent,
@@ -18,6 +20,7 @@ import { SidebarLinks } from "./SidebarLinks.tsx"
18
20
  import { SidebarPosts } from "./SidebarPosts.tsx"
19
21
  import { SidebarReleases } from "./SidebarReleases.tsx"
20
22
  import { SidebarSections } from "./SidebarSections.tsx"
23
+ import { SiteLink } from "./SiteLink.tsx"
21
24
  import { SiteTitle } from "./SiteTitle.tsx"
22
25
  import { Theme } from "./Theme.tsx"
23
26
 
@@ -34,13 +37,17 @@ export function Sidebar(props: { withSidebar?: boolean }) {
34
37
  const section = articleRoute
35
38
  ? currentSection(`/${pathname.replace(/^\/|\/$/g, "")}/`)
36
39
  : undefined
40
+ const siteLinkTarget = activeSiteLink(pathname, config.sections ?? [])
37
41
 
38
42
  return (
39
43
  <SidebarRoot>
40
44
  <SidebarHeader>
41
45
  <SidebarMenu>
42
46
  <SidebarMenuItem>
43
- <SidebarMenuButton size="lg" render={<Link to="/" />}>
47
+ <SidebarMenuButton
48
+ size="lg"
49
+ render={<SiteLink to={siteLinkTarget} />}
50
+ >
44
51
  <SiteTitle />
45
52
  </SidebarMenuButton>
46
53
  </SidebarMenuItem>
@@ -0,0 +1,46 @@
1
+ import { config } from "livemark:virtual"
2
+ import { Link } from "@tanstack/react-router"
3
+ import type { ReactNode } from "react"
4
+ import { prefixUrl } from "../helpers/prefix-url.ts"
5
+
6
+ /** Wrapper for the SiteTitle's link target. Picks `<Link>` for internal
7
+ * paths (rooted at `/`) and a plain `<a>` for absolute URLs (`http(s)`,
8
+ * protocol-relative, `mailto:`). Designed to be used both directly
9
+ * (`<SiteLink to={...}>...</SiteLink>`) and as the `render` element of
10
+ * a `SidebarMenuButton`, which means props (`className`, children) are
11
+ * forwarded onto the underlying anchor or Link. */
12
+ export function SiteLink(props: {
13
+ to: string
14
+ className?: string
15
+ children?: ReactNode
16
+ }) {
17
+ if (isAbsolute(props.to)) {
18
+ return (
19
+ <a href={prefixUrl(props.to, config.base)} className={props.className}>
20
+ {props.children}
21
+ </a>
22
+ )
23
+ }
24
+ if (props.to === "/") {
25
+ return (
26
+ <Link to="/" className={props.className}>
27
+ {props.children}
28
+ </Link>
29
+ )
30
+ }
31
+ const splat = props.to.replace(/^\/|\/$/g, "")
32
+ return (
33
+ <Link to="/$" params={{ _splat: splat }} className={props.className}>
34
+ {props.children}
35
+ </Link>
36
+ )
37
+ }
38
+
39
+ function isAbsolute(url: string) {
40
+ return (
41
+ url.startsWith("http://") ||
42
+ url.startsWith("https://") ||
43
+ url.startsWith("//") ||
44
+ url.startsWith("mailto:")
45
+ )
46
+ }
@@ -7,6 +7,15 @@ import type { Section } from "../models/section.ts"
7
7
  * `customSectionActive` so a custom URL of `/` only activates on
8
8
  * the home page itself. Custom sections with absolute URLs never
9
9
  * match. Longest match wins. */
10
+ /** Resolve where the SiteTitle should link to for the current pathname.
11
+ * If the active section sets `siteLink`, returns that — otherwise falls
12
+ * back to `/` (the home page). The returned value may be an internal
13
+ * path (`/foo/`) or an absolute URL (`https://…`); rendering decides
14
+ * which element to use. */
15
+ export function activeSiteLink(pathname: string, sections: Section[]) {
16
+ return activeSiteSection(pathname, sections)?.siteLink ?? "/"
17
+ }
18
+
10
19
  export function activeSiteSection(pathname: string, sections: Section[]) {
11
20
  const current = `/${pathname.replace(/^\/|\/$/g, "")}/`
12
21
  let best: Section | undefined
@@ -1,6 +1,7 @@
1
1
  import { describe, expect, it } from "vite-plus/test"
2
2
  import type { Section } from "../models/section.ts"
3
3
  import {
4
+ activeSiteLink,
4
5
  activeSiteSection,
5
6
  customSectionActive,
6
7
  matchSection,
@@ -180,3 +181,44 @@ describe("activeSiteSection", () => {
180
181
  expect(activeSiteSection("/anything/", [blog, apiCustom])).toBeUndefined()
181
182
  })
182
183
  })
184
+
185
+ describe("activeSiteLink", () => {
186
+ const docs: Section = {
187
+ type: "article",
188
+ title: "Docs",
189
+ prefix: "/",
190
+ position: "header",
191
+ }
192
+ const blog: Section = {
193
+ type: "blog",
194
+ title: "Blog",
195
+ prefix: "/blog/",
196
+ position: "header",
197
+ siteLink: "/blog/",
198
+ }
199
+ const externalCustom: Section = {
200
+ type: "custom",
201
+ title: "GitHub",
202
+ url: "/github",
203
+ position: "header",
204
+ siteLink: "https://github.com/example/repo",
205
+ }
206
+
207
+ it("should default to '/' when no section matches", () => {
208
+ expect(activeSiteLink("/anything/", [blog])).toBe("/")
209
+ })
210
+
211
+ it("should default to '/' when matching section has no siteLink", () => {
212
+ expect(activeSiteLink("/about/", [docs])).toBe("/")
213
+ })
214
+
215
+ it("should return the matching section's siteLink", () => {
216
+ expect(activeSiteLink("/blog/post/", [blog])).toBe("/blog/")
217
+ })
218
+
219
+ it("should support absolute URLs as the siteLink", () => {
220
+ expect(activeSiteLink("/github/", [externalCustom])).toBe(
221
+ "https://github.com/example/repo",
222
+ )
223
+ })
224
+ })
@@ -6,6 +6,7 @@ const BaseSection = z.object({
6
6
  position: z.enum(["header", "sidebar"]).default("header"),
7
7
  siteTitle: z.string().optional(),
8
8
  siteDescription: z.string().optional(),
9
+ siteLink: z.string().optional(),
9
10
  })
10
11
 
11
12
  /** Default section: renders articles. */