livemark 0.10.5 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/actions/changelog/build.d.ts +22 -0
- package/build/actions/changelog/build.js +198 -0
- package/build/actions/config/load.d.ts +12 -0
- package/build/actions/config/load.js +41 -0
- package/build/actions/config/load.unit.js +39 -0
- package/build/actions/target/build.d.ts +29 -0
- package/build/actions/target/build.js +87 -0
- package/build/commands/build.js +15 -0
- package/{target → build}/commands/escape.d.ts +1 -1
- package/build/commands/escape.js +62 -0
- package/build/commands/preview.js +19 -0
- package/build/commands/start.js +20 -0
- package/build/components/Breadcrumbs.js +14 -0
- package/build/components/Layout.js +66 -0
- package/build/components/SidebarArticles.js +46 -0
- package/build/components/SidebarLinks.js +27 -0
- package/build/components/SidebarSections.js +37 -0
- package/build/components/SiteTitle.js +13 -0
- package/build/content/article.js +55 -0
- package/build/content/tag.js +31 -0
- package/build/content-collections.js +218 -0
- package/{target → build}/models/config.d.ts +17 -1
- package/build/models/config.js +38 -0
- package/build/plugins/vite-livemark.d.ts +12 -0
- package/build/plugins/vite-livemark.js +165 -0
- package/build/routes/__root.js +68 -0
- package/build/settings.d.ts +9 -0
- package/build/settings.js +25 -0
- package/build/vite.config.js +30 -0
- package/package.json +9 -7
- package/source/actions/changelog/build.ts +26 -9
- package/source/actions/config/load.ts +21 -6
- package/source/actions/config/load.unit.ts +19 -2
- package/source/actions/target/build.ts +89 -0
- package/source/commands/build.ts +1 -0
- package/source/commands/escape.ts +18 -11
- package/source/commands/preview.ts +1 -0
- package/source/commands/start.ts +1 -0
- package/source/components/Breadcrumbs.tsx +2 -1
- package/source/components/Layout.tsx +3 -2
- package/source/components/SidebarArticles.tsx +2 -1
- package/source/components/SidebarLinks.tsx +2 -1
- package/source/components/SidebarSections.tsx +2 -1
- package/source/components/SiteTitle.tsx +5 -10
- package/source/content/article.ts +2 -1
- package/source/content/tag.ts +2 -1
- package/source/content-collections.ts +1 -1
- package/source/env.d.ts +2 -2
- package/source/models/config.ts +22 -1
- package/source/plugins/vite-livemark.ts +168 -94
- package/source/routeTree.gen.ts +86 -0
- package/source/routes/__root.tsx +7 -9
- package/source/settings.ts +13 -2
- package/source/vite.config.ts +4 -78
- package/target/actions/changelog/build.d.ts +0 -15
- package/target/actions/changelog/build.js +0 -187
- package/target/actions/config/load.d.ts +0 -5
- package/target/actions/config/load.js +0 -25
- package/target/actions/config/load.unit.js +0 -25
- package/target/commands/build.js +0 -14
- package/target/commands/escape.js +0 -56
- package/target/commands/preview.js +0 -18
- package/target/commands/start.js +0 -19
- package/target/components/Breadcrumbs.js +0 -13
- package/target/components/Layout.js +0 -65
- package/target/components/SidebarArticles.js +0 -45
- package/target/components/SidebarLinks.js +0 -26
- package/target/components/SidebarSections.js +0 -36
- package/target/components/SiteTitle.js +0 -12
- package/target/content/article.js +0 -54
- package/target/content/tag.js +0 -30
- package/target/content-collections.js +0 -218
- package/target/models/config.js +0 -34
- package/target/plugins/vite-livemark.d.ts +0 -18
- package/target/plugins/vite-livemark.js +0 -111
- package/target/routes/__root.js +0 -69
- package/target/settings.d.ts +0 -5
- package/target/settings.js +0 -15
- package/target/vite.config.js +0 -89
- package/{target → build}/actions/changelog/build.unit.d.ts +0 -0
- package/{target → build}/actions/changelog/build.unit.js +0 -0
- package/{target → build}/actions/config/define.d.ts +0 -0
- package/{target → build}/actions/config/define.js +0 -0
- package/{target → build}/actions/config/define.unit.d.ts +0 -0
- package/{target → build}/actions/config/define.unit.js +0 -0
- package/{target → build}/actions/config/load.unit.d.ts +0 -0
- package/{target → build}/client.d.ts +0 -0
- package/{target → build}/client.js +0 -0
- package/{target → build}/commands/build.d.ts +0 -0
- package/{target → build}/commands/preview.d.ts +0 -0
- package/{target → build}/commands/start.d.ts +0 -0
- package/{target → build}/components/Abbr.d.ts +0 -0
- package/{target → build}/components/Abbr.js +0 -0
- package/{target → build}/components/AnsiCode.d.ts +0 -0
- package/{target → build}/components/AnsiCode.js +0 -0
- package/{target → build}/components/Article.d.ts +0 -0
- package/{target → build}/components/Article.js +0 -0
- package/{target → build}/components/BackToTop.d.ts +0 -0
- package/{target → build}/components/BackToTop.js +0 -0
- package/{target → build}/components/Banner.d.ts +0 -0
- package/{target → build}/components/Banner.js +0 -0
- package/{target → build}/components/BlogIndex.d.ts +0 -0
- package/{target → build}/components/BlogIndex.js +0 -0
- package/{target → build}/components/Breadcrumbs.d.ts +0 -0
- package/{target → build}/components/Callout.d.ts +0 -0
- package/{target → build}/components/Callout.js +0 -0
- package/{target → build}/components/Card.d.ts +0 -0
- package/{target → build}/components/Card.js +0 -0
- package/{target → build}/components/Cards.d.ts +0 -0
- package/{target → build}/components/Cards.js +0 -0
- package/{target → build}/components/ChangelogIndex.d.ts +0 -0
- package/{target → build}/components/ChangelogIndex.js +0 -0
- package/{target → build}/components/CodeBlock.d.ts +0 -0
- package/{target → build}/components/CodeBlock.js +0 -0
- package/{target → build}/components/CodeTabs.d.ts +0 -0
- package/{target → build}/components/CodeTabs.js +0 -0
- package/{target → build}/components/Column.d.ts +0 -0
- package/{target → build}/components/Column.js +0 -0
- package/{target → build}/components/Columns.d.ts +0 -0
- package/{target → build}/components/Columns.js +0 -0
- package/{target → build}/components/Content.d.ts +0 -0
- package/{target → build}/components/Content.js +0 -0
- package/{target → build}/components/ContentTab.d.ts +0 -0
- package/{target → build}/components/ContentTab.js +0 -0
- package/{target → build}/components/ContentTabs.d.ts +0 -0
- package/{target → build}/components/ContentTabs.js +0 -0
- package/{target → build}/components/DefaultCatchBoundary.d.ts +0 -0
- package/{target → build}/components/DefaultCatchBoundary.js +0 -0
- package/{target → build}/components/DefinitionList.d.ts +0 -0
- package/{target → build}/components/DefinitionList.js +0 -0
- package/{target → build}/components/Details.d.ts +0 -0
- package/{target → build}/components/Details.js +0 -0
- package/{target → build}/components/FileTree.d.ts +0 -0
- package/{target → build}/components/FileTree.js +0 -0
- package/{target → build}/components/Footer.d.ts +0 -0
- package/{target → build}/components/Footer.js +0 -0
- package/{target → build}/components/FootnoteRef.d.ts +0 -0
- package/{target → build}/components/FootnoteRef.js +0 -0
- package/{target → build}/components/Heading.d.ts +0 -0
- package/{target → build}/components/Heading.js +0 -0
- package/{target → build}/components/InlineBadge.d.ts +0 -0
- package/{target → build}/components/InlineBadge.js +0 -0
- package/{target → build}/components/InlineIcon.d.ts +0 -0
- package/{target → build}/components/InlineIcon.js +0 -0
- package/{target → build}/components/InlineToc.d.ts +0 -0
- package/{target → build}/components/InlineToc.js +0 -0
- package/{target → build}/components/Layout.d.ts +0 -0
- package/{target → build}/components/LinkButton.d.ts +0 -0
- package/{target → build}/components/LinkButton.js +0 -0
- package/{target → build}/components/Mermaid.d.ts +0 -0
- package/{target → build}/components/Mermaid.js +0 -0
- package/{target → build}/components/MermaidRenderer.d.ts +0 -0
- package/{target → build}/components/MermaidRenderer.js +0 -0
- package/{target → build}/components/NotFound.d.ts +0 -0
- package/{target → build}/components/NotFound.js +0 -0
- package/{target → build}/components/PackageTabs.d.ts +0 -0
- package/{target → build}/components/PackageTabs.js +0 -0
- package/{target → build}/components/PageToolbar.d.ts +0 -0
- package/{target → build}/components/PageToolbar.js +0 -0
- package/{target → build}/components/PrevNext.d.ts +0 -0
- package/{target → build}/components/PrevNext.js +0 -0
- package/{target → build}/components/Search.d.ts +0 -0
- package/{target → build}/components/Search.js +0 -0
- package/{target → build}/components/SearchDialog.d.ts +0 -0
- package/{target → build}/components/SearchDialog.js +0 -0
- package/{target → build}/components/Section.d.ts +0 -0
- package/{target → build}/components/Section.js +0 -0
- package/{target → build}/components/SectionHeader.d.ts +0 -0
- package/{target → build}/components/SectionHeader.js +0 -0
- package/{target → build}/components/Sidebar.d.ts +0 -0
- package/{target → build}/components/Sidebar.js +0 -0
- package/{target → build}/components/SidebarArticles.d.ts +0 -0
- package/{target → build}/components/SidebarLinks.d.ts +0 -0
- package/{target → build}/components/SidebarPosts.d.ts +0 -0
- package/{target → build}/components/SidebarPosts.js +0 -0
- package/{target → build}/components/SidebarReleases.d.ts +0 -0
- package/{target → build}/components/SidebarReleases.js +0 -0
- package/{target → build}/components/SidebarSections.d.ts +0 -0
- package/{target → build}/components/SiteTitle.d.ts +0 -0
- package/{target → build}/components/SortableTable.d.ts +0 -0
- package/{target → build}/components/SortableTable.js +0 -0
- package/{target → build}/components/SoundCloud.d.ts +0 -0
- package/{target → build}/components/SoundCloud.js +0 -0
- package/{target → build}/components/TagIndex.d.ts +0 -0
- package/{target → build}/components/TagIndex.js +0 -0
- package/{target → build}/components/Theme.d.ts +0 -0
- package/{target → build}/components/Theme.js +0 -0
- package/{target → build}/components/Toc.d.ts +0 -0
- package/{target → build}/components/Toc.js +0 -0
- package/{target → build}/components/YouTube.d.ts +0 -0
- package/{target → build}/components/YouTube.js +0 -0
- package/{target → build}/components/ZoomImage.d.ts +0 -0
- package/{target → build}/components/ZoomImage.js +0 -0
- package/{target → build}/content/article.d.ts +5 -5
- /package/{target → build}/content/tag.d.ts +0 -0
- /package/{target → build}/content-collections.d.ts +0 -0
- /package/{target → build}/elements/accordion.d.ts +0 -0
- /package/{target → build}/elements/accordion.js +0 -0
- /package/{target → build}/elements/alert-dialog.d.ts +0 -0
- /package/{target → build}/elements/alert-dialog.js +0 -0
- /package/{target → build}/elements/alert.d.ts +0 -0
- /package/{target → build}/elements/alert.js +0 -0
- /package/{target → build}/elements/aspect-ratio.d.ts +0 -0
- /package/{target → build}/elements/aspect-ratio.js +0 -0
- /package/{target → build}/elements/avatar.d.ts +0 -0
- /package/{target → build}/elements/avatar.js +0 -0
- /package/{target → build}/elements/badge.d.ts +0 -0
- /package/{target → build}/elements/badge.js +0 -0
- /package/{target → build}/elements/breadcrumb.d.ts +0 -0
- /package/{target → build}/elements/breadcrumb.js +0 -0
- /package/{target → build}/elements/button-group.d.ts +0 -0
- /package/{target → build}/elements/button-group.js +0 -0
- /package/{target → build}/elements/button.d.ts +0 -0
- /package/{target → build}/elements/button.js +0 -0
- /package/{target → build}/elements/calendar.d.ts +0 -0
- /package/{target → build}/elements/calendar.js +0 -0
- /package/{target → build}/elements/card.d.ts +0 -0
- /package/{target → build}/elements/card.js +0 -0
- /package/{target → build}/elements/carousel.d.ts +0 -0
- /package/{target → build}/elements/carousel.js +0 -0
- /package/{target → build}/elements/chart.d.ts +0 -0
- /package/{target → build}/elements/chart.js +0 -0
- /package/{target → build}/elements/checkbox.d.ts +0 -0
- /package/{target → build}/elements/checkbox.js +0 -0
- /package/{target → build}/elements/collapsible.d.ts +0 -0
- /package/{target → build}/elements/collapsible.js +0 -0
- /package/{target → build}/elements/command.d.ts +0 -0
- /package/{target → build}/elements/command.js +0 -0
- /package/{target → build}/elements/context-menu.d.ts +0 -0
- /package/{target → build}/elements/context-menu.js +0 -0
- /package/{target → build}/elements/dialog.d.ts +0 -0
- /package/{target → build}/elements/dialog.js +0 -0
- /package/{target → build}/elements/direction.d.ts +0 -0
- /package/{target → build}/elements/direction.js +0 -0
- /package/{target → build}/elements/drawer.d.ts +0 -0
- /package/{target → build}/elements/drawer.js +0 -0
- /package/{target → build}/elements/dropdown-menu.d.ts +0 -0
- /package/{target → build}/elements/dropdown-menu.js +0 -0
- /package/{target → build}/elements/empty.d.ts +0 -0
- /package/{target → build}/elements/empty.js +0 -0
- /package/{target → build}/elements/field.d.ts +0 -0
- /package/{target → build}/elements/field.js +0 -0
- /package/{target → build}/elements/hover-card.d.ts +0 -0
- /package/{target → build}/elements/hover-card.js +0 -0
- /package/{target → build}/elements/input-group.d.ts +0 -0
- /package/{target → build}/elements/input-group.js +0 -0
- /package/{target → build}/elements/input-otp.d.ts +0 -0
- /package/{target → build}/elements/input-otp.js +0 -0
- /package/{target → build}/elements/input.d.ts +0 -0
- /package/{target → build}/elements/input.js +0 -0
- /package/{target → build}/elements/item.d.ts +0 -0
- /package/{target → build}/elements/item.js +0 -0
- /package/{target → build}/elements/kbd.d.ts +0 -0
- /package/{target → build}/elements/kbd.js +0 -0
- /package/{target → build}/elements/label.d.ts +0 -0
- /package/{target → build}/elements/label.js +0 -0
- /package/{target → build}/elements/menubar.d.ts +0 -0
- /package/{target → build}/elements/menubar.js +0 -0
- /package/{target → build}/elements/native-select.d.ts +0 -0
- /package/{target → build}/elements/native-select.js +0 -0
- /package/{target → build}/elements/navigation-menu.d.ts +0 -0
- /package/{target → build}/elements/navigation-menu.js +0 -0
- /package/{target → build}/elements/pagination.d.ts +0 -0
- /package/{target → build}/elements/pagination.js +0 -0
- /package/{target → build}/elements/popover.d.ts +0 -0
- /package/{target → build}/elements/popover.js +0 -0
- /package/{target → build}/elements/progress.d.ts +0 -0
- /package/{target → build}/elements/progress.js +0 -0
- /package/{target → build}/elements/radio-group.d.ts +0 -0
- /package/{target → build}/elements/radio-group.js +0 -0
- /package/{target → build}/elements/resizable.d.ts +0 -0
- /package/{target → build}/elements/resizable.js +0 -0
- /package/{target → build}/elements/scroll-area.d.ts +0 -0
- /package/{target → build}/elements/scroll-area.js +0 -0
- /package/{target → build}/elements/select.d.ts +0 -0
- /package/{target → build}/elements/select.js +0 -0
- /package/{target → build}/elements/separator.d.ts +0 -0
- /package/{target → build}/elements/separator.js +0 -0
- /package/{target → build}/elements/sheet.d.ts +0 -0
- /package/{target → build}/elements/sheet.js +0 -0
- /package/{target → build}/elements/sidebar.d.ts +0 -0
- /package/{target → build}/elements/sidebar.js +0 -0
- /package/{target → build}/elements/skeleton.d.ts +0 -0
- /package/{target → build}/elements/skeleton.js +0 -0
- /package/{target → build}/elements/slider.d.ts +0 -0
- /package/{target → build}/elements/slider.js +0 -0
- /package/{target → build}/elements/sonner.d.ts +0 -0
- /package/{target → build}/elements/sonner.js +0 -0
- /package/{target → build}/elements/spinner.d.ts +0 -0
- /package/{target → build}/elements/spinner.js +0 -0
- /package/{target → build}/elements/switch.d.ts +0 -0
- /package/{target → build}/elements/switch.js +0 -0
- /package/{target → build}/elements/table.d.ts +0 -0
- /package/{target → build}/elements/table.js +0 -0
- /package/{target → build}/elements/tabs.d.ts +0 -0
- /package/{target → build}/elements/tabs.js +0 -0
- /package/{target → build}/elements/textarea.d.ts +0 -0
- /package/{target → build}/elements/textarea.js +0 -0
- /package/{target → build}/elements/toggle-group.d.ts +0 -0
- /package/{target → build}/elements/toggle-group.js +0 -0
- /package/{target → build}/elements/toggle.d.ts +0 -0
- /package/{target → build}/elements/toggle.js +0 -0
- /package/{target → build}/elements/tooltip.d.ts +0 -0
- /package/{target → build}/elements/tooltip.js +0 -0
- /package/{target → build}/entrypoints/main.d.ts +0 -0
- /package/{target → build}/entrypoints/main.js +0 -0
- /package/{target → build}/helpers/article-icon.d.ts +0 -0
- /package/{target → build}/helpers/article-icon.js +0 -0
- /package/{target → build}/helpers/article.d.ts +0 -0
- /package/{target → build}/helpers/article.js +0 -0
- /package/{target → build}/helpers/changelog-source.d.ts +0 -0
- /package/{target → build}/helpers/changelog-source.js +0 -0
- /package/{target → build}/helpers/changelog-source.unit.d.ts +0 -0
- /package/{target → build}/helpers/changelog-source.unit.js +0 -0
- /package/{target → build}/helpers/dynamic-icon-resolver.d.ts +0 -0
- /package/{target → build}/helpers/dynamic-icon-resolver.js +0 -0
- /package/{target → build}/helpers/dynamic-icon.d.ts +0 -0
- /package/{target → build}/helpers/dynamic-icon.js +0 -0
- /package/{target → build}/helpers/favicon.d.ts +0 -0
- /package/{target → build}/helpers/favicon.js +0 -0
- /package/{target → build}/helpers/model.d.ts +0 -0
- /package/{target → build}/helpers/model.js +0 -0
- /package/{target → build}/helpers/program.d.ts +0 -0
- /package/{target → build}/helpers/program.js +0 -0
- /package/{target → build}/helpers/resolve-asset-path.d.ts +0 -0
- /package/{target → build}/helpers/resolve-asset-path.js +0 -0
- /package/{target → build}/helpers/resolve-includes.d.ts +0 -0
- /package/{target → build}/helpers/resolve-includes.js +0 -0
- /package/{target → build}/helpers/resolve-includes.unit.d.ts +0 -0
- /package/{target → build}/helpers/resolve-includes.unit.js +0 -0
- /package/{target → build}/helpers/search-text.d.ts +0 -0
- /package/{target → build}/helpers/search-text.js +0 -0
- /package/{target → build}/helpers/section.d.ts +0 -0
- /package/{target → build}/helpers/section.js +0 -0
- /package/{target → build}/helpers/section.unit.d.ts +0 -0
- /package/{target → build}/helpers/section.unit.js +0 -0
- /package/{target → build}/helpers/theme.d.ts +0 -0
- /package/{target → build}/helpers/theme.js +0 -0
- /package/{target → build}/helpers/toc-context.d.ts +0 -0
- /package/{target → build}/helpers/toc-context.js +0 -0
- /package/{target → build}/helpers/toc.d.ts +0 -0
- /package/{target → build}/helpers/toc.js +0 -0
- /package/{target → build}/helpers/toc.unit.d.ts +0 -0
- /package/{target → build}/helpers/toc.unit.js +0 -0
- /package/{target → build}/hooks/in-view.d.ts +0 -0
- /package/{target → build}/hooks/in-view.js +0 -0
- /package/{target → build}/hooks/media.d.ts +0 -0
- /package/{target → build}/hooks/media.js +0 -0
- /package/{target → build}/index.d.ts +0 -0
- /package/{target → build}/index.js +0 -0
- /package/{target → build}/models/article.d.ts +0 -0
- /package/{target → build}/models/article.js +0 -0
- /package/{target → build}/models/link.d.ts +0 -0
- /package/{target → build}/models/link.js +0 -0
- /package/{target → build}/models/patch.d.ts +0 -0
- /package/{target → build}/models/patch.js +0 -0
- /package/{target → build}/models/section.d.ts +0 -0
- /package/{target → build}/models/section.js +0 -0
- /package/{target → build}/models/theme.d.ts +0 -0
- /package/{target → build}/models/theme.js +0 -0
- /package/{target → build}/models/toc.d.ts +0 -0
- /package/{target → build}/models/toc.js +0 -0
- /package/{target → build}/plugins/rehype-inline-code.d.ts +0 -0
- /package/{target → build}/plugins/rehype-inline-code.js +0 -0
- /package/{target → build}/plugins/rehype-task-list-a11y.d.ts +0 -0
- /package/{target → build}/plugins/rehype-task-list-a11y.js +0 -0
- /package/{target → build}/plugins/remark-abbr.d.ts +0 -0
- /package/{target → build}/plugins/remark-abbr.js +0 -0
- /package/{target → build}/plugins/remark-abbr.unit.d.ts +0 -0
- /package/{target → build}/plugins/remark-abbr.unit.js +0 -0
- /package/{target → build}/plugins/remark-ansi.d.ts +0 -0
- /package/{target → build}/plugins/remark-ansi.js +0 -0
- /package/{target → build}/plugins/remark-ansi.unit.d.ts +0 -0
- /package/{target → build}/plugins/remark-ansi.unit.js +0 -0
- /package/{target → build}/plugins/remark-badge.d.ts +0 -0
- /package/{target → build}/plugins/remark-badge.js +0 -0
- /package/{target → build}/plugins/remark-badge.unit.d.ts +0 -0
- /package/{target → build}/plugins/remark-badge.unit.js +0 -0
- /package/{target → build}/plugins/remark-button.d.ts +0 -0
- /package/{target → build}/plugins/remark-button.js +0 -0
- /package/{target → build}/plugins/remark-button.unit.d.ts +0 -0
- /package/{target → build}/plugins/remark-button.unit.js +0 -0
- /package/{target → build}/plugins/remark-callout.d.ts +0 -0
- /package/{target → build}/plugins/remark-callout.js +0 -0
- /package/{target → build}/plugins/remark-card.d.ts +0 -0
- /package/{target → build}/plugins/remark-card.js +0 -0
- /package/{target → build}/plugins/remark-code-tabs.d.ts +0 -0
- /package/{target → build}/plugins/remark-code-tabs.js +0 -0
- /package/{target → build}/plugins/remark-columns.d.ts +0 -0
- /package/{target → build}/plugins/remark-columns.js +0 -0
- /package/{target → build}/plugins/remark-custom-heading-id.d.ts +0 -0
- /package/{target → build}/plugins/remark-custom-heading-id.js +0 -0
- /package/{target → build}/plugins/remark-custom-heading-id.unit.d.ts +0 -0
- /package/{target → build}/plugins/remark-custom-heading-id.unit.js +0 -0
- /package/{target → build}/plugins/remark-deflist.d.ts +0 -0
- /package/{target → build}/plugins/remark-deflist.js +0 -0
- /package/{target → build}/plugins/remark-details.d.ts +0 -0
- /package/{target → build}/plugins/remark-details.js +0 -0
- /package/{target → build}/plugins/remark-filetree.d.ts +0 -0
- /package/{target → build}/plugins/remark-filetree.js +0 -0
- /package/{target → build}/plugins/remark-filetree.unit.d.ts +0 -0
- /package/{target → build}/plugins/remark-filetree.unit.js +0 -0
- /package/{target → build}/plugins/remark-github-callout.d.ts +0 -0
- /package/{target → build}/plugins/remark-github-callout.js +0 -0
- /package/{target → build}/plugins/remark-icon.d.ts +0 -0
- /package/{target → build}/plugins/remark-icon.js +0 -0
- /package/{target → build}/plugins/remark-image.d.ts +0 -0
- /package/{target → build}/plugins/remark-image.js +0 -0
- /package/{target → build}/plugins/remark-media.d.ts +0 -0
- /package/{target → build}/plugins/remark-media.js +0 -0
- /package/{target → build}/plugins/remark-media.unit.d.ts +0 -0
- /package/{target → build}/plugins/remark-media.unit.js +0 -0
- /package/{target → build}/plugins/remark-mermaid.d.ts +0 -0
- /package/{target → build}/plugins/remark-mermaid.js +0 -0
- /package/{target → build}/plugins/remark-npm.d.ts +0 -0
- /package/{target → build}/plugins/remark-npm.js +0 -0
- /package/{target → build}/plugins/remark-passthrough-directive.d.ts +0 -0
- /package/{target → build}/plugins/remark-passthrough-directive.js +0 -0
- /package/{target → build}/plugins/remark-steps.d.ts +0 -0
- /package/{target → build}/plugins/remark-steps.js +0 -0
- /package/{target → build}/plugins/remark-steps.unit.d.ts +0 -0
- /package/{target → build}/plugins/remark-steps.unit.js +0 -0
- /package/{target → build}/plugins/remark-tab.d.ts +0 -0
- /package/{target → build}/plugins/remark-tab.js +0 -0
- /package/{target → build}/plugins/remark-tab.unit.d.ts +0 -0
- /package/{target → build}/plugins/remark-tab.unit.js +0 -0
- /package/{target → build}/plugins/remark-toc.d.ts +0 -0
- /package/{target → build}/plugins/remark-toc.js +0 -0
- /package/{target → build}/plugins/remark-toc.unit.d.ts +0 -0
- /package/{target → build}/plugins/remark-toc.unit.js +0 -0
- /package/{target → build}/plugins/shiki-icon.d.ts +0 -0
- /package/{target → build}/plugins/shiki-icon.js +0 -0
- /package/{target → build}/plugins/shiki-line-highlight.d.ts +0 -0
- /package/{target → build}/plugins/shiki-line-highlight.js +0 -0
- /package/{target → build}/program.d.ts +0 -0
- /package/{target → build}/program.js +0 -0
- /package/{target → build}/routeTree.gen.d.ts +0 -0
- /package/{target → build}/routeTree.gen.js +0 -0
- /package/{target → build}/router.d.ts +0 -0
- /package/{target → build}/router.js +0 -0
- /package/{target → build}/routes/$.d.ts +0 -0
- /package/{target → build}/routes/$.js +0 -0
- /package/{target → build}/routes/__root.d.ts +0 -0
- /package/{target → build}/server.d.ts +0 -0
- /package/{target → build}/server.js +0 -0
- /package/{target → build}/utils/style.d.ts +0 -0
- /package/{target → build}/utils/style.js +0 -0
- /package/{target → build}/vite.config.d.ts +0 -0
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Link, useLocation } from "@tanstack/react-router";
|
|
3
|
-
import { ChevronRight } from "lucide-react";
|
|
4
|
-
import { articleGroups, currentSection, sectionArticleGroups, } from "../content/article.js";
|
|
5
|
-
import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from "../elements/collapsible.js";
|
|
6
|
-
import { SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarMenu, SidebarMenuButton, SidebarMenuItem, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, } from "../elements/sidebar.js";
|
|
7
|
-
import { resolveArticleIcon } from "../helpers/article-icon.js";
|
|
8
|
-
/** Article-tree body slot for the Sidebar shell */
|
|
9
|
-
export function SidebarArticles() {
|
|
10
|
-
const pathname = useLocation({ select: l => l.pathname });
|
|
11
|
-
const configSections = import.meta.env.CONFIG.sections;
|
|
12
|
-
const section = currentSection(`/${pathname.replace(/^\/|\/$/g, "")}/`);
|
|
13
|
-
const groups = configSections?.length
|
|
14
|
-
? (sectionArticleGroups.get(section?.prefix ?? "__default__") ??
|
|
15
|
-
articleGroups)
|
|
16
|
-
: articleGroups;
|
|
17
|
-
return (_jsx(_Fragment, { children: groups.map((group, index) => (_jsxs(SidebarGroup, { children: [group.name && (_jsx(SidebarGroupLabel, { className: "uppercase font-mono text-xs tracking-widest", children: group.name })), _jsx(SidebarGroupContent, { children: _jsx(SidebarMenu, { children: group.nodes.map(node => (_jsx(NavNode, { node: node, currentPath: pathname }, node.path))) }) })
|
|
18
|
-
] }, group.name ?? `__unnamed-${index}`))) }));
|
|
19
|
-
}
|
|
20
|
-
function splatFor(pathname) {
|
|
21
|
-
return { _splat: pathname.replace(/^\/|\/$/g, "") };
|
|
22
|
-
}
|
|
23
|
-
function isActive(articlePathname, currentPath) {
|
|
24
|
-
const normalized = `/${currentPath.replace(/^\/|\/$/g, "")}/`;
|
|
25
|
-
return articlePathname === normalized;
|
|
26
|
-
}
|
|
27
|
-
function NavNode(props) {
|
|
28
|
-
const { node, currentPath } = props;
|
|
29
|
-
const Icon = resolveArticleIcon(node.icon);
|
|
30
|
-
const active = isActive(node.path, currentPath);
|
|
31
|
-
if (node.children.length === 0) {
|
|
32
|
-
return (_jsx(SidebarMenuItem, { children: _jsxs(SidebarMenuButton, { isActive: active, className: active ? "" : "opacity-75", render: _jsx(Link, { to: "/$", params: splatFor(node.path) }), children: [
|
|
33
|
-
_jsx(Icon, { className: "size-4" }), _jsx("span", { children: node.label ?? node.title })
|
|
34
|
-
] }) }));
|
|
35
|
-
}
|
|
36
|
-
return (_jsx(SidebarMenuItem, { children: _jsxs(Collapsible, { defaultOpen: true, className: "group/collapsible", children: [
|
|
37
|
-
_jsxs(SidebarMenuButton, { isActive: active, className: active ? "" : "opacity-75", render: _jsx(Link, { to: "/$", params: splatFor(node.path) }), children: [
|
|
38
|
-
_jsx(Icon, { className: "size-4" }), _jsx("span", { children: node.label ?? node.title })
|
|
39
|
-
] }), _jsx(CollapsibleTrigger, { "aria-label": `Toggle ${node.label ?? node.title} submenu`, className: "absolute right-1 top-1.5 p-1 rounded-md hover:bg-sidebar-accent", children: _jsx(ChevronRight, { className: "size-3.5 transition-transform group-data-[open]/collapsible:rotate-90" }) }), _jsx(CollapsibleContent, { children: _jsx(SidebarMenuSub, { children: node.children.map(child => {
|
|
40
|
-
const childIsActive = isActive(child.path, currentPath);
|
|
41
|
-
return (_jsx(SidebarMenuSubItem, { children: _jsx(SidebarMenuSubButton, { isActive: childIsActive, className: childIsActive ? "" : "opacity-75", render: _jsx(Link, { to: "/$", params: splatFor(child.path) }), children: _jsx("span", { children: child.label ?? child.title }) }) }, child.path));
|
|
42
|
-
}) }) })
|
|
43
|
-
] }) }));
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2lkZWJhckFydGljbGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvU2lkZWJhckFydGljbGVzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQzNDLE9BQU8sRUFDTCxhQUFhLEVBQ2IsY0FBYyxFQUNkLG9CQUFvQixHQUNyQixNQUFNLHVCQUF1QixDQUFBO0FBQzlCLE9BQU8sRUFDTCxXQUFXLEVBQ1gsa0JBQWtCLEVBQ2xCLGtCQUFrQixHQUNuQixNQUFNLDRCQUE2QixDQUFBO0FBQ3BDLE9BQU8sRUFDTCxZQUFZLEVBQ1osbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixjQUFjLEVBQ2Qsb0JBQW9CLEVBQ3BCLGtCQUFrQixHQUNuQixNQUFNLHdCQUF5QixDQUFBO0FBQ2hDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBRy9ELG1EQUFtRDtBQUNuRCxNQUFNLFVBQVUsZUFBZTtJQUM3QixNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUV6RCxNQUFNLGNBQWMsR0FBRyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQTtJQUN0RCxNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUMsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDdkUsTUFBTSxNQUFNLEdBQUcsY0FBYyxFQUFFLE1BQU07UUFDbkMsQ0FBQyxDQUFDLENBQUMsb0JBQW9C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QixLQUFDLGtCQUFrQixrQkFDTCxVQUFVLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssVUFBVSxFQUN4RCxTQUFTLEVBQUMsaUVBQWlFLFlBRTNFLEtBQUMsWUFBWSxJQUFDLFNBQVMsRUFBQyx1RUFBdUUsR0FBRyxHQUMvRSxFQUNyQixLQUFDLGtCQUFrQixjQUNqQixLQUFDLGNBQWMsY0FDWixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTs0QkFDekIsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUE7NEJBQ3ZELE9BQU8sQ0FDTCxLQUFDLGtCQUFrQixjQUNqQixLQUFDLG9CQUFvQixJQUNuQixRQUFRLEVBQUUsYUFBYSxFQUN2QixTQUFTLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFDNUMsTUFBTSxFQUFFLEtBQUMsSUFBSSxJQUFDLEVBQUUsRUFBQyxJQUFJLEVBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUksWUFFdEQseUJBQU8sS0FBSyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsS0FBSyxHQUFRLEdBQ3BCLElBUEEsS0FBSyxDQUFDLElBQUksQ0FRZCxDQUN0QixDQUFBO3dCQUNILENBQUMsQ0FBQyxHQUNhLEdBQ0U7Z0JBQ1QsR0FDRSxDQUNuQixDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExpbmssIHVzZUxvY2F0aW9uIH0gZnJvbSBcIkB0YW5zdGFjay9yZWFjdC1yb3V0ZXJcIlxuaW1wb3J0IHsgQ2hldnJvblJpZ2h0IH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiXG5pbXBvcnQge1xuICBhcnRpY2xlR3JvdXBzLFxuICBjdXJyZW50U2VjdGlvbixcbiAgc2VjdGlvbkFydGljbGVHcm91cHMsXG59IGZyb20gXCIuLi9jb250ZW50L2FydGljbGUudHNcIlxuaW1wb3J0IHtcbiAgQ29sbGFwc2libGUsXG4gIENvbGxhcHNpYmxlQ29udGVudCxcbiAgQ29sbGFwc2libGVUcmlnZ2VyLFxufSBmcm9tIFwiLi4vZWxlbWVudHMvY29sbGFwc2libGUudHN4XCJcbmltcG9ydCB7XG4gIFNpZGViYXJHcm91cCxcbiAgU2lkZWJhckdyb3VwQ29udGVudCxcbiAgU2lkZWJhckdyb3VwTGFiZWwsXG4gIFNpZGViYXJNZW51LFxuICBTaWRlYmFyTWVudUJ1dHRvbixcbiAgU2lkZWJhck1lbnVJdGVtLFxuICBTaWRlYmFyTWVudVN1YixcbiAgU2lkZWJhck1lbnVTdWJCdXR0b24sXG4gIFNpZGViYXJNZW51U3ViSXRlbSxcbn0gZnJvbSBcIi4uL2VsZW1lbnRzL3NpZGViYXIudHN4XCJcbmltcG9ydCB7IHJlc29sdmVBcnRpY2xlSWNvbiB9IGZyb20gXCIuLi9oZWxwZXJzL2FydGljbGUtaWNvbi50c1wiXG5pbXBvcnQgdHlwZSB7IEFydGljbGVOb2RlIH0gZnJvbSBcIi4uL21vZGVscy9hcnRpY2xlLnRzXCJcblxuLyoqIEFydGljbGUtdHJlZSBib2R5IHNsb3QgZm9yIHRoZSBTaWRlYmFyIHNoZWxsICovXG5leHBvcnQgZnVuY3Rpb24gU2lkZWJhckFydGljbGVzKCkge1xuICBjb25zdCBwYXRobmFtZSA9IHVzZUxvY2F0aW9uKHsgc2VsZWN0OiBsID0+IGwucGF0aG5hbWUgfSlcblxuICBjb25zdCBjb25maWdTZWN0aW9ucyA9IGltcG9ydC5tZXRhLmVudi5DT05GSUcuc2VjdGlvbnNcbiAgY29uc3Qgc2VjdGlvbiA9IGN1cnJlbnRTZWN0aW9uKGAvJHtwYXRobmFtZS5yZXBsYWNlKC9eXFwvfFxcLyQvZywgXCJcIil9L2ApXG4gIGNvbnN0IGdyb3VwcyA9IGNvbmZpZ1NlY3Rpb25zPy5sZW5ndGhcbiAgICA/IChzZWN0aW9uQXJ0aWNsZUdyb3Vwcy5nZXQoc2VjdGlvbj8ucHJlZml4ID8/IFwiX19kZWZhdWx0X19cIikgPz9cbiAgICAgIGFydGljbGVHcm91cHMpXG4gICAgOiBhcnRpY2xlR3JvdXBzXG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge2dyb3Vwcy5tYXAoKGdyb3VwLCBpbmRleCkgPT4gKFxuICAgICAgICA8U2lkZWJhckdyb3VwIGtleT17Z3JvdXAubmFtZSA/PyBgX191bm5hbWVkLSR7aW5kZXh9YH0+XG4gICAgICAgICAge2dyb3VwLm5hbWUgJiYgKFxuICAgICAgICAgICAgPFNpZGViYXJHcm91cExhYmVsIGNsYXNzTmFtZT1cInVwcGVyY2FzZSBmb250LW1vbm8gdGV4dC14cyB0cmFja2luZy13aWRlc3RcIj5cbiAgICAgICAgICAgICAge2dyb3VwLm5hbWV9XG4gICAgICAgICAgICA8L1NpZGViYXJHcm91cExhYmVsPlxuICAgICAgICAgICl9XG4gICAgICAgICAgPFNpZGViYXJHcm91cENvbnRlbnQ+XG4gICAgICAgICAgICA8U2lkZWJhck1lbnU+XG4gICAgICAgICAgICAgIHtncm91cC5ub2Rlcy5tYXAobm9kZSA9PiAoXG4gICAgICAgICAgICAgICAgPE5hdk5vZGUga2V5PXtub2RlLnBhdGh9IG5vZGU9e25vZGV9IGN1cnJlbnRQYXRoPXtwYXRobmFtZX0gLz5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L1NpZGViYXJNZW51PlxuICAgICAgICAgIDwvU2lkZWJhckdyb3VwQ29udGVudD5cbiAgICAgICAgPC9TaWRlYmFyR3JvdXA+XG4gICAgICApKX1cbiAgICA8Lz5cbiAgKVxufVxuXG5mdW5jdGlvbiBzcGxhdEZvcihwYXRobmFtZTogc3RyaW5nKSB7XG4gIHJldHVybiB7IF9zcGxhdDogcGF0aG5hbWUucmVwbGFjZSgvXlxcL3xcXC8kL2csIFwiXCIpIH1cbn1cblxuZnVuY3Rpb24gaXNBY3RpdmUoYXJ0aWNsZVBhdGhuYW1lOiBzdHJpbmcsIGN1cnJlbnRQYXRoOiBzdHJpbmcpIHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IGAvJHtjdXJyZW50UGF0aC5yZXBsYWNlKC9eXFwvfFxcLyQvZywgXCJcIil9L2BcbiAgcmV0dXJuIGFydGljbGVQYXRobmFtZSA9PT0gbm9ybWFsaXplZFxufVxuXG5mdW5jdGlvbiBOYXZOb2RlKHByb3BzOiB7IG5vZGU6IEFydGljbGVOb2RlOyBjdXJyZW50UGF0aDogc3RyaW5nIH0pIHtcbiAgY29uc3QgeyBub2RlLCBjdXJyZW50UGF0aCB9ID0gcHJvcHNcbiAgY29uc3QgSWNvbiA9IHJlc29sdmVBcnRpY2xlSWNvbihub2RlLmljb24pXG4gIGNvbnN0IGFjdGl2ZSA9IGlzQWN0aXZlKG5vZGUucGF0aCwgY3VycmVudFBhdGgpXG5cbiAgaWYgKG5vZGUuY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTaWRlYmFyTWVudUl0ZW0+XG4gICAgICAgIDxTaWRlYmFyTWVudUJ1dHRvblxuICAgICAgICAgIGlzQWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgY2xhc3NOYW1lPXthY3RpdmUgPyBcIlwiIDogXCJvcGFjaXR5LTc1XCJ9XG4gICAgICAgICAgcmVuZGVyPXs8TGluayB0bz1cIi8kXCIgcGFyYW1zPXtzcGxhdEZvcihub2RlLnBhdGgpfSAvPn1cbiAgICAgICAgPlxuICAgICAgICAgIDxJY29uIGNsYXNzTmFtZT1cInNpemUtNFwiIC8+XG4gICAgICAgICAgPHNwYW4+e25vZGUubGFiZWwgPz8gbm9kZS50aXRsZX08L3NwYW4+XG4gICAgICAgIDwvU2lkZWJhck1lbnVCdXR0b24+XG4gICAgICA8L1NpZGViYXJNZW51SXRlbT5cbiAgICApXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTaWRlYmFyTWVudUl0ZW0+XG4gICAgICA8Q29sbGFwc2libGUgZGVmYXVsdE9wZW4gY2xhc3NOYW1lPVwiZ3JvdXAvY29sbGFwc2libGVcIj5cbiAgICAgICAgPFNpZGViYXJNZW51QnV0dG9uXG4gICAgICAgICAgaXNBY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICBjbGFzc05hbWU9e2FjdGl2ZSA/IFwiXCIgOiBcIm9wYWNpdHktNzVcIn1cbiAgICAgICAgICByZW5kZXI9ezxMaW5rIHRvPVwiLyRcIiBwYXJhbXM9e3NwbGF0Rm9yKG5vZGUucGF0aCl9IC8+fVxuICAgICAgICA+XG4gICAgICAgICAgPEljb24gY2xhc3NOYW1lPVwic2l6ZS00XCIgLz5cbiAgICAgICAgICA8c3Bhbj57bm9kZS5sYWJlbCA/PyBub2RlLnRpdGxlfTwvc3Bhbj5cbiAgICAgICAgPC9TaWRlYmFyTWVudUJ1dHRvbj5cbiAgICAgICAgPENvbGxhcHNpYmxlVHJpZ2dlclxuICAgICAgICAgIGFyaWEtbGFiZWw9e2BUb2dnbGUgJHtub2RlLmxhYmVsID8/IG5vZGUudGl0bGV9IHN1Ym1lbnVgfVxuICAgICAgICAgIGNsYXNzTmFtZT1cImFic29sdXRlIHJpZ2h0LTEgdG9wLTEuNSBwLTEgcm91bmRlZC1tZCBob3ZlcjpiZy1zaWRlYmFyLWFjY2VudFwiXG4gICAgICAgID5cbiAgICAgICAgICA8Q2hldnJvblJpZ2h0IGNsYXNzTmFtZT1cInNpemUtMy41IHRyYW5zaXRpb24tdHJhbnNmb3JtIGdyb3VwLWRhdGEtW29wZW5dL2NvbGxhcHNpYmxlOnJvdGF0ZS05MFwiIC8+XG4gICAgICAgIDwvQ29sbGFwc2libGVUcmlnZ2VyPlxuICAgICAgICA8Q29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDxTaWRlYmFyTWVudVN1Yj5cbiAgICAgICAgICAgIHtub2RlLmNoaWxkcmVuLm1hcChjaGlsZCA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGNoaWxkSXNBY3RpdmUgPSBpc0FjdGl2ZShjaGlsZC5wYXRoLCBjdXJyZW50UGF0aClcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8U2lkZWJhck1lbnVTdWJJdGVtIGtleT17Y2hpbGQucGF0aH0+XG4gICAgICAgICAgICAgICAgICA8U2lkZWJhck1lbnVTdWJCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgaXNBY3RpdmU9e2NoaWxkSXNBY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2hpbGRJc0FjdGl2ZSA/IFwiXCIgOiBcIm9wYWNpdHktNzVcIn1cbiAgICAgICAgICAgICAgICAgICAgcmVuZGVyPXs8TGluayB0bz1cIi8kXCIgcGFyYW1zPXtzcGxhdEZvcihjaGlsZC5wYXRoKX0gLz59XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPntjaGlsZC5sYWJlbCA/PyBjaGlsZC50aXRsZX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L1NpZGViYXJNZW51U3ViQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvU2lkZWJhck1lbnVTdWJJdGVtPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L1NpZGViYXJNZW51U3ViPlxuICAgICAgICA8L0NvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgIDwvQ29sbGFwc2libGU+XG4gICAgPC9TaWRlYmFyTWVudUl0ZW0+XG4gIClcbn1cbiJdfQ==
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useLocation } from "@tanstack/react-router";
|
|
3
|
-
import { ExternalLink } from "lucide-react";
|
|
4
|
-
import { currentSection } from "../content/article.js";
|
|
5
|
-
import { DynamicIcon } from "../helpers/dynamic-icon.js";
|
|
6
|
-
import { SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarMenu, SidebarMenuButton, SidebarMenuItem, } from "../elements/sidebar.js";
|
|
7
|
-
/** Shared Links group. Renders sidebar-positioned links always, and
|
|
8
|
-
* header-positioned links only on mobile (mobile collapses all chrome
|
|
9
|
-
* links into the sidebar since the header strip is hidden below `md`). */
|
|
10
|
-
export function SidebarLinks() {
|
|
11
|
-
const pathname = useLocation({ select: l => l.pathname });
|
|
12
|
-
const section = currentSection(`/${pathname.replace(/^\/|\/$/g, "")}/`);
|
|
13
|
-
const links = import.meta.env.CONFIG.links?.filter(link => !link.prefix || link.prefix === section?.prefix) ?? [];
|
|
14
|
-
if (!links.length)
|
|
15
|
-
return null;
|
|
16
|
-
const hasDesktopItems = links.some(l => l.position === "sidebar");
|
|
17
|
-
return (_jsxs(SidebarGroup, { className: hasDesktopItems ? undefined : "md:hidden", children: [
|
|
18
|
-
_jsx(SidebarGroupLabel, { className: "uppercase font-mono text-xs tracking-widest", children: "Links" }), _jsx(SidebarGroupContent, { children: _jsx(SidebarMenu, { children: links.map(link => {
|
|
19
|
-
const mobileOnly = link.position !== "sidebar";
|
|
20
|
-
return (_jsx(SidebarMenuItem, { className: mobileOnly ? "md:hidden" : undefined, children: _jsxs(SidebarMenuButton, { className: "text-muted-foreground", render: _jsx("a", { href: link.url, target: "_blank", rel: "noopener noreferrer" }), children: [link.icon && (_jsx(DynamicIcon, { name: link.icon, className: "size-4" })), _jsxs("span", { children: [link.title, " ", _jsx(ExternalLink, { className: "inline -mt-0.5 opacity-75", style: { width: 12, height: 12 } })
|
|
21
|
-
] })
|
|
22
|
-
] }) }, link.url));
|
|
23
|
-
}) }) })
|
|
24
|
-
] }));
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2lkZWJhckxpbmtzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvU2lkZWJhckxpbmtzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNkIsQ0FBQTtBQUN6RCxPQUFPLEVBQ0wsWUFBWSxFQUNaLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsV0FBVyxFQUNYLGlCQUFpQixFQUNqQixlQUFlLEdBQ2hCLE1BQU0sd0JBQXlCLENBQUE7QUFFaEM7OzBFQUUwRTtBQUMxRSxNQUFNLFVBQVUsWUFBWTtJQUMxQixNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUN6RCxNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUMsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDdkUsTUFBTSxLQUFLLEdBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUNsQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLE9BQU8sRUFBRSxNQUFNLENBQ3hELElBQUksRUFBRSxDQUFBO0lBRVQsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO1FBQUUsT0FBTyxJQUFJLENBQUE7SUFDOUIsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUE7SUFFakUsT0FBTyxDQUNMLE1BQUMsWUFBWSxJQUFDLFNBQVMsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVztZQUNoRSxLQUFDLGlCQUFpQixJQUFDLFNBQVMsRUFBQyw2Q0FBNkMsc0JBRXRELEVBQ3BCLEtBQUMsbUJBQW1CLGNBQ2xCLEtBQUMsV0FBVyxjQUNULEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7d0JBQ2hCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFBO3dCQUM5QyxPQUFPLENBQ0wsS0FBQyxlQUFlLElBRWQsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLFlBRS9DLE1BQUMsaUJBQWlCLElBQ2hCLFNBQVMsRUFBQyx1QkFBdUIsRUFDakMsTUFBTSxFQUNKLFlBQ0UsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQ2QsTUFBTSxFQUFDLFFBQVEsRUFDZixHQUFHLEVBQUMscUJBQXFCLEdBQ3pCLGFBR0gsSUFBSSxDQUFDLElBQUksSUFBSSxDQUNaLEtBQUMsV0FBVyxJQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBQyxRQUFRLEdBQUcsQ0FDcEQsRUFDRCwyQkFDRyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFDaEIsS0FBQyxZQUFZLElBQ1gsU0FBUyxFQUFDLDJCQUEyQixFQUNyQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FDaEM7NENBQ0c7b0NBQ1csSUF2QmYsSUFBSSxDQUFDLEdBQUcsQ0F3QkcsQ0FDbkIsQ0FBQTtvQkFDSCxDQUFDLENBQUMsR0FDVSxHQUNNO1lBQ1QsQ0FDaEIsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VMb2NhdGlvbiB9IGZyb20gXCJAdGFuc3RhY2svcmVhY3Qtcm91dGVyXCJcbmltcG9ydCB7IEV4dGVybmFsTGluayB9IGZyb20gXCJsdWNpZGUtcmVhY3RcIlxuaW1wb3J0IHsgY3VycmVudFNlY3Rpb24gfSBmcm9tIFwiLi4vY29udGVudC9hcnRpY2xlLnRzXCJcbmltcG9ydCB7IER5bmFtaWNJY29uIH0gZnJvbSBcIi4uL2hlbHBlcnMvZHluYW1pYy1pY29uLnRzeFwiXG5pbXBvcnQge1xuICBTaWRlYmFyR3JvdXAsXG4gIFNpZGViYXJHcm91cENvbnRlbnQsXG4gIFNpZGViYXJHcm91cExhYmVsLFxuICBTaWRlYmFyTWVudSxcbiAgU2lkZWJhck1lbnVCdXR0b24sXG4gIFNpZGViYXJNZW51SXRlbSxcbn0gZnJvbSBcIi4uL2VsZW1lbnRzL3NpZGViYXIudHN4XCJcblxuLyoqIFNoYXJlZCBMaW5rcyBncm91cC4gUmVuZGVycyBzaWRlYmFyLXBvc2l0aW9uZWQgbGlua3MgYWx3YXlzLCBhbmRcbiAqIGhlYWRlci1wb3NpdGlvbmVkIGxpbmtzIG9ubHkgb24gbW9iaWxlIChtb2JpbGUgY29sbGFwc2VzIGFsbCBjaHJvbWVcbiAqIGxpbmtzIGludG8gdGhlIHNpZGViYXIgc2luY2UgdGhlIGhlYWRlciBzdHJpcCBpcyBoaWRkZW4gYmVsb3cgYG1kYCkuICovXG5leHBvcnQgZnVuY3Rpb24gU2lkZWJhckxpbmtzKCkge1xuICBjb25zdCBwYXRobmFtZSA9IHVzZUxvY2F0aW9uKHsgc2VsZWN0OiBsID0+IGwucGF0aG5hbWUgfSlcbiAgY29uc3Qgc2VjdGlvbiA9IGN1cnJlbnRTZWN0aW9uKGAvJHtwYXRobmFtZS5yZXBsYWNlKC9eXFwvfFxcLyQvZywgXCJcIil9L2ApXG4gIGNvbnN0IGxpbmtzID1cbiAgICBpbXBvcnQubWV0YS5lbnYuQ09ORklHLmxpbmtzPy5maWx0ZXIoXG4gICAgICBsaW5rID0+ICFsaW5rLnByZWZpeCB8fCBsaW5rLnByZWZpeCA9PT0gc2VjdGlvbj8ucHJlZml4LFxuICAgICkgPz8gW11cblxuICBpZiAoIWxpbmtzLmxlbmd0aCkgcmV0dXJuIG51bGxcbiAgY29uc3QgaGFzRGVza3RvcEl0ZW1zID0gbGlua3Muc29tZShsID0+IGwucG9zaXRpb24gPT09IFwic2lkZWJhclwiKVxuXG4gIHJldHVybiAoXG4gICAgPFNpZGViYXJHcm91cCBjbGFzc05hbWU9e2hhc0Rlc2t0b3BJdGVtcyA/IHVuZGVmaW5lZCA6IFwibWQ6aGlkZGVuXCJ9PlxuICAgICAgPFNpZGViYXJHcm91cExhYmVsIGNsYXNzTmFtZT1cInVwcGVyY2FzZSBmb250LW1vbm8gdGV4dC14cyB0cmFja2luZy13aWRlc3RcIj5cbiAgICAgICAgTGlua3NcbiAgICAgIDwvU2lkZWJhckdyb3VwTGFiZWw+XG4gICAgICA8U2lkZWJhckdyb3VwQ29udGVudD5cbiAgICAgICAgPFNpZGViYXJNZW51PlxuICAgICAgICAgIHtsaW5rcy5tYXAobGluayA9PiB7XG4gICAgICAgICAgICBjb25zdCBtb2JpbGVPbmx5ID0gbGluay5wb3NpdGlvbiAhPT0gXCJzaWRlYmFyXCJcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxTaWRlYmFyTWVudUl0ZW1cbiAgICAgICAgICAgICAgICBrZXk9e2xpbmsudXJsfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17bW9iaWxlT25seSA/IFwibWQ6aGlkZGVuXCIgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U2lkZWJhck1lbnVCdXR0b25cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiXG4gICAgICAgICAgICAgICAgICByZW5kZXI9e1xuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e2xpbmsudXJsfVxuICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2xpbmsuaWNvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxEeW5hbWljSWNvbiBuYW1lPXtsaW5rLmljb259IGNsYXNzTmFtZT1cInNpemUtNFwiIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgICAgIHtsaW5rLnRpdGxlfXtcIiBcIn1cbiAgICAgICAgICAgICAgICAgICAgPEV4dGVybmFsTGlua1xuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImlubGluZSAtbXQtMC41IG9wYWNpdHktNzVcIlxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiAxMiwgaGVpZ2h0OiAxMiB9fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvU2lkZWJhck1lbnVCdXR0b24+XG4gICAgICAgICAgICAgIDwvU2lkZWJhck1lbnVJdGVtPlxuICAgICAgICAgICAgKVxuICAgICAgICAgIH0pfVxuICAgICAgICA8L1NpZGViYXJNZW51PlxuICAgICAgPC9TaWRlYmFyR3JvdXBDb250ZW50PlxuICAgIDwvU2lkZWJhckdyb3VwPlxuICApXG59XG4iXX0=
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Link, useLocation, useMatch } from "@tanstack/react-router";
|
|
3
|
-
import { currentSection, sectionFirstArticle } from "../content/article.js";
|
|
4
|
-
import { DynamicIcon } from "../helpers/dynamic-icon.js";
|
|
5
|
-
import { sectionIcon } from "../helpers/section.js";
|
|
6
|
-
import { SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarMenu, SidebarMenuButton, SidebarMenuItem, } from "../elements/sidebar.js";
|
|
7
|
-
function splatFor(pathname) {
|
|
8
|
-
return { _splat: pathname.replace(/^\/|\/$/g, "") };
|
|
9
|
-
}
|
|
10
|
-
/** Shared Sections group. Renders sidebar-positioned sections always, and
|
|
11
|
-
* header-positioned sections only on mobile (mobile collapses all sections
|
|
12
|
-
* into the sidebar since the header nav strip is hidden below `md`). */
|
|
13
|
-
export function SidebarSections() {
|
|
14
|
-
const pathname = useLocation({ select: l => l.pathname });
|
|
15
|
-
const articleRoute = useMatch({ from: "/$", shouldThrow: false });
|
|
16
|
-
const section = articleRoute
|
|
17
|
-
? currentSection(`/${pathname.replace(/^\/|\/$/g, "")}/`)
|
|
18
|
-
: undefined;
|
|
19
|
-
const sections = import.meta.env.CONFIG.sections ?? [];
|
|
20
|
-
if (!sections.length)
|
|
21
|
-
return null;
|
|
22
|
-
const hasDesktopItems = sections.some(s => s.position === "sidebar");
|
|
23
|
-
return (_jsxs(SidebarGroup, { className: hasDesktopItems ? undefined : "md:hidden", children: [
|
|
24
|
-
_jsx(SidebarGroupLabel, { className: "uppercase font-mono text-xs tracking-widest", children: "Sections" }), _jsx(SidebarGroupContent, { children: _jsx(SidebarMenu, { children: sections.map(s => {
|
|
25
|
-
const target = s.type === "blog" || s.type === "changelog"
|
|
26
|
-
? s.prefix
|
|
27
|
-
: (sectionFirstArticle.get(s.prefix) ?? s.prefix);
|
|
28
|
-
const active = section?.prefix === s.prefix;
|
|
29
|
-
const mobileOnly = s.position !== "sidebar";
|
|
30
|
-
return (_jsx(SidebarMenuItem, { className: mobileOnly ? "md:hidden" : undefined, children: _jsxs(SidebarMenuButton, { isActive: active, className: active ? "" : "opacity-75", render: _jsx(Link, { to: target === "/" ? "/" : "/$", params: target && target !== "/" ? splatFor(target) : {} }), children: [
|
|
31
|
-
_jsx(DynamicIcon, { name: sectionIcon(s), className: "size-4" }), _jsx("span", { children: s.title })
|
|
32
|
-
] }) }, s.prefix));
|
|
33
|
-
}) }) })
|
|
34
|
-
] }));
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2lkZWJhclNlY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvU2lkZWJhclNlY3Rpb25zLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQzNFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNkIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDbkQsT0FBTyxFQUNMLFlBQVksRUFDWixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsZUFBZSxHQUNoQixNQUFNLHdCQUF5QixDQUFBO0FBRWhDLFNBQVMsUUFBUSxDQUFDLFFBQWdCO0lBQ2hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQTtBQUNyRCxDQUFDO0FBRUQ7O3dFQUV3RTtBQUN4RSxNQUFNLFVBQVUsZUFBZTtJQUM3QixNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUN6RCxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO0lBQ2pFLE1BQU0sT0FBTyxHQUFHLFlBQVk7UUFDMUIsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUM7UUFDekQsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtJQUNiLE1BQU0sUUFBUSxHQUFHLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQTtJQUV0RCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU07UUFBRSxPQUFPLElBQUksQ0FBQTtJQUNqQyxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsQ0FBQTtJQUVwRSxPQUFPLENBQ0wsTUFBQyxZQUFZLElBQUMsU0FBUyxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxXQUFXO1lBQ2hFLEtBQUMsaUJBQWlCLElBQUMsU0FBUyxFQUFDLDZDQUE2Qyx5QkFFdEQsRUFDcEIsS0FBQyxtQkFBbUIsY0FDbEIsS0FBQyxXQUFXLGNBQ1QsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTt3QkFDaEIsTUFBTSxNQUFNLEdBQ1YsQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxXQUFXOzRCQUN6QyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU07NEJBQ1YsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUE7d0JBQ3JELE1BQU0sTUFBTSxHQUFHLE9BQU8sRUFBRSxNQUFNLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQTt3QkFDM0MsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUE7d0JBQzNDLE9BQU8sQ0FDTCxLQUFDLGVBQWUsSUFFZCxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsWUFFL0MsTUFBQyxpQkFBaUIsSUFDaEIsUUFBUSxFQUFFLE1BQU0sRUFDaEIsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQ3JDLE1BQU0sRUFDSixLQUFDLElBQUksSUFDSCxFQUFFLEVBQUUsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQy9CLE1BQU0sRUFBRSxNQUFNLElBQUksTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQ3hEO29DQUdKLEtBQUMsV0FBVyxJQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFDLFFBQVEsR0FBRyxFQUN4RCx5QkFBTyxDQUFDLENBQUMsS0FBSyxHQUFRO29DQUNKLElBZmYsQ0FBQyxDQUFDLE1BQU0sQ0FnQkcsQ0FDbkIsQ0FBQTtvQkFDSCxDQUFDLENBQUMsR0FDVSxHQUNNO1lBQ1QsQ0FDaEIsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMaW5rLCB1c2VMb2NhdGlvbiwgdXNlTWF0Y2ggfSBmcm9tIFwiQHRhbnN0YWNrL3JlYWN0LXJvdXRlclwiXG5pbXBvcnQgeyBjdXJyZW50U2VjdGlvbiwgc2VjdGlvbkZpcnN0QXJ0aWNsZSB9IGZyb20gXCIuLi9jb250ZW50L2FydGljbGUudHNcIlxuaW1wb3J0IHsgRHluYW1pY0ljb24gfSBmcm9tIFwiLi4vaGVscGVycy9keW5hbWljLWljb24udHN4XCJcbmltcG9ydCB7IHNlY3Rpb25JY29uIH0gZnJvbSBcIi4uL2hlbHBlcnMvc2VjdGlvbi50c1wiXG5pbXBvcnQge1xuICBTaWRlYmFyR3JvdXAsXG4gIFNpZGViYXJHcm91cENvbnRlbnQsXG4gIFNpZGViYXJHcm91cExhYmVsLFxuICBTaWRlYmFyTWVudSxcbiAgU2lkZWJhck1lbnVCdXR0b24sXG4gIFNpZGViYXJNZW51SXRlbSxcbn0gZnJvbSBcIi4uL2VsZW1lbnRzL3NpZGViYXIudHN4XCJcblxuZnVuY3Rpb24gc3BsYXRGb3IocGF0aG5hbWU6IHN0cmluZykge1xuICByZXR1cm4geyBfc3BsYXQ6IHBhdGhuYW1lLnJlcGxhY2UoL15cXC98XFwvJC9nLCBcIlwiKSB9XG59XG5cbi8qKiBTaGFyZWQgU2VjdGlvbnMgZ3JvdXAuIFJlbmRlcnMgc2lkZWJhci1wb3NpdGlvbmVkIHNlY3Rpb25zIGFsd2F5cywgYW5kXG4gKiBoZWFkZXItcG9zaXRpb25lZCBzZWN0aW9ucyBvbmx5IG9uIG1vYmlsZSAobW9iaWxlIGNvbGxhcHNlcyBhbGwgc2VjdGlvbnNcbiAqIGludG8gdGhlIHNpZGViYXIgc2luY2UgdGhlIGhlYWRlciBuYXYgc3RyaXAgaXMgaGlkZGVuIGJlbG93IGBtZGApLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNpZGViYXJTZWN0aW9ucygpIHtcbiAgY29uc3QgcGF0aG5hbWUgPSB1c2VMb2NhdGlvbih7IHNlbGVjdDogbCA9PiBsLnBhdGhuYW1lIH0pXG4gIGNvbnN0IGFydGljbGVSb3V0ZSA9IHVzZU1hdGNoKHsgZnJvbTogXCIvJFwiLCBzaG91bGRUaHJvdzogZmFsc2UgfSlcbiAgY29uc3Qgc2VjdGlvbiA9IGFydGljbGVSb3V0ZVxuICAgID8gY3VycmVudFNlY3Rpb24oYC8ke3BhdGhuYW1lLnJlcGxhY2UoL15cXC98XFwvJC9nLCBcIlwiKX0vYClcbiAgICA6IHVuZGVmaW5lZFxuICBjb25zdCBzZWN0aW9ucyA9IGltcG9ydC5tZXRhLmVudi5DT05GSUcuc2VjdGlvbnMgPz8gW11cblxuICBpZiAoIXNlY3Rpb25zLmxlbmd0aCkgcmV0dXJuIG51bGxcbiAgY29uc3QgaGFzRGVza3RvcEl0ZW1zID0gc2VjdGlvbnMuc29tZShzID0+IHMucG9zaXRpb24gPT09IFwic2lkZWJhclwiKVxuXG4gIHJldHVybiAoXG4gICAgPFNpZGViYXJHcm91cCBjbGFzc05hbWU9e2hhc0Rlc2t0b3BJdGVtcyA/IHVuZGVmaW5lZCA6IFwibWQ6aGlkZGVuXCJ9PlxuICAgICAgPFNpZGViYXJHcm91cExhYmVsIGNsYXNzTmFtZT1cInVwcGVyY2FzZSBmb250LW1vbm8gdGV4dC14cyB0cmFja2luZy13aWRlc3RcIj5cbiAgICAgICAgU2VjdGlvbnNcbiAgICAgIDwvU2lkZWJhckdyb3VwTGFiZWw+XG4gICAgICA8U2lkZWJhckdyb3VwQ29udGVudD5cbiAgICAgICAgPFNpZGViYXJNZW51PlxuICAgICAgICAgIHtzZWN0aW9ucy5tYXAocyA9PiB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPVxuICAgICAgICAgICAgICBzLnR5cGUgPT09IFwiYmxvZ1wiIHx8IHMudHlwZSA9PT0gXCJjaGFuZ2Vsb2dcIlxuICAgICAgICAgICAgICAgID8gcy5wcmVmaXhcbiAgICAgICAgICAgICAgICA6IChzZWN0aW9uRmlyc3RBcnRpY2xlLmdldChzLnByZWZpeCkgPz8gcy5wcmVmaXgpXG4gICAgICAgICAgICBjb25zdCBhY3RpdmUgPSBzZWN0aW9uPy5wcmVmaXggPT09IHMucHJlZml4XG4gICAgICAgICAgICBjb25zdCBtb2JpbGVPbmx5ID0gcy5wb3NpdGlvbiAhPT0gXCJzaWRlYmFyXCJcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxTaWRlYmFyTWVudUl0ZW1cbiAgICAgICAgICAgICAgICBrZXk9e3MucHJlZml4fVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17bW9iaWxlT25seSA/IFwibWQ6aGlkZGVuXCIgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U2lkZWJhck1lbnVCdXR0b25cbiAgICAgICAgICAgICAgICAgIGlzQWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2FjdGl2ZSA/IFwiXCIgOiBcIm9wYWNpdHktNzVcIn1cbiAgICAgICAgICAgICAgICAgIHJlbmRlcj17XG4gICAgICAgICAgICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICAgICAgICAgICAgdG89e3RhcmdldCA9PT0gXCIvXCIgPyBcIi9cIiA6IFwiLyRcIn1cbiAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM9e3RhcmdldCAmJiB0YXJnZXQgIT09IFwiL1wiID8gc3BsYXRGb3IodGFyZ2V0KSA6IHt9fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxEeW5hbWljSWNvbiBuYW1lPXtzZWN0aW9uSWNvbihzKX0gY2xhc3NOYW1lPVwic2l6ZS00XCIgLz5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPntzLnRpdGxlfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L1NpZGViYXJNZW51QnV0dG9uPlxuICAgICAgICAgICAgICA8L1NpZGViYXJNZW51SXRlbT5cbiAgICAgICAgICAgIClcbiAgICAgICAgICB9KX1cbiAgICAgICAgPC9TaWRlYmFyTWVudT5cbiAgICAgIDwvU2lkZWJhckdyb3VwQ29udGVudD5cbiAgICA8L1NpZGViYXJHcm91cD5cbiAgKVxufVxuIl19
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import defaultLogo from "../assets/logo.svg";
|
|
3
|
-
/** Renders the site logo, title, and description in the sidebar header */
|
|
4
|
-
export function SiteTitle() {
|
|
5
|
-
const logo = import.meta.env.CONFIG.logo ?? defaultLogo;
|
|
6
|
-
return (_jsxs("div", { className: "flex items-end gap-2.5 text-sm", children: [
|
|
7
|
-
_jsx("img", { src: logo, alt: import.meta.env.CONFIG.title, className: "size-6.5 mb-1.25" }), _jsxs("div", { className: "flex flex-col gap-0.5 leading-none", children: [
|
|
8
|
-
_jsx("span", { className: "font-semibold", children: import.meta.env.CONFIG.title }), _jsx("span", { className: "text-xs opacity-80", children: import.meta.env.CONFIG.description })
|
|
9
|
-
] })
|
|
10
|
-
] }));
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2l0ZVRpdGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvU2l0ZVRpdGxlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxXQUFXLE1BQU0sb0JBQW9CLENBQUE7QUFFNUMsMEVBQTBFO0FBQzFFLE1BQU0sVUFBVSxTQUFTO0lBQ3ZCLE1BQU0sSUFBSSxHQUFHLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLFdBQVcsQ0FBQTtJQUN2RCxPQUFPLENBQ0wsZUFBSyxTQUFTLEVBQUMsZ0NBQWdDO1lBQzdDLGNBQ0UsR0FBRyxFQUFFLElBQUksRUFDVCxHQUFHLEVBQUUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQ2pDLFNBQVMsRUFBQyxrQkFBa0IsR0FDNUIsRUFDRixlQUFLLFNBQVMsRUFBQyxvQ0FBb0M7b0JBQ2pELGVBQU0sU0FBUyxFQUFDLGVBQWUsWUFBRSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBUSxFQUNyRSxlQUFNLFNBQVMsRUFBQyxvQkFBb0IsWUFDakMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEdBQzlCO29CQUNIO1lBQ0YsQ0FDUCxDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkZWZhdWx0TG9nbyBmcm9tIFwiLi4vYXNzZXRzL2xvZ28uc3ZnXCJcblxuLyoqIFJlbmRlcnMgdGhlIHNpdGUgbG9nbywgdGl0bGUsIGFuZCBkZXNjcmlwdGlvbiBpbiB0aGUgc2lkZWJhciBoZWFkZXIgKi9cbmV4cG9ydCBmdW5jdGlvbiBTaXRlVGl0bGUoKSB7XG4gIGNvbnN0IGxvZ28gPSBpbXBvcnQubWV0YS5lbnYuQ09ORklHLmxvZ28gPz8gZGVmYXVsdExvZ29cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtZW5kIGdhcC0yLjUgdGV4dC1zbVwiPlxuICAgICAgPGltZ1xuICAgICAgICBzcmM9e2xvZ299XG4gICAgICAgIGFsdD17aW1wb3J0Lm1ldGEuZW52LkNPTkZJRy50aXRsZX1cbiAgICAgICAgY2xhc3NOYW1lPVwic2l6ZS02LjUgbWItMS4yNVwiXG4gICAgICAvPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIGdhcC0wLjUgbGVhZGluZy1ub25lXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZvbnQtc2VtaWJvbGRcIj57aW1wb3J0Lm1ldGEuZW52LkNPTkZJRy50aXRsZX08L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQteHMgb3BhY2l0eS04MFwiPlxuICAgICAgICAgIHtpbXBvcnQubWV0YS5lbnYuQ09ORklHLmRlc2NyaXB0aW9ufVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuIl19
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { allArticles } from "content-collections";
|
|
2
|
-
import { buildArticleTree, flattenArticleTree, groupArticleTree, } from "../helpers/article.js";
|
|
3
|
-
import { matchSection, partitionBySection } from "../helpers/section.js";
|
|
4
|
-
/**
|
|
5
|
-
* Articles sorted by frontmatter `order`:
|
|
6
|
-
* positive values first (ascending), then unordered, then negative values
|
|
7
|
-
* (so `order: -1` lands at the very end, `-2` just before it, and so on).
|
|
8
|
-
*/
|
|
9
|
-
export const sortedArticles = [...allArticles].sort((a, b) => orderKey(a.order) - orderKey(b.order));
|
|
10
|
-
/** The article whose path is `/`, if any (rendered in place at the root) */
|
|
11
|
-
export const homeArticle = sortedArticles.find(a => a.path === "/");
|
|
12
|
-
/** Sidebar sections derived from the path tree, partitioned by `group` */
|
|
13
|
-
export const articleGroups = groupArticleTree(buildArticleTree(sortedArticles), sortedArticles);
|
|
14
|
-
/** Articles in depth-first order across all sections (matches sidebar walk) */
|
|
15
|
-
export const flatArticles = articleGroups.flatMap(group => flattenArticleTree(group.nodes));
|
|
16
|
-
/** The first article in sidebar order, used as the default landing page */
|
|
17
|
-
export const firstArticle = sortedArticles.find(a => a.path === flatArticles[0]);
|
|
18
|
-
function orderKey(order) {
|
|
19
|
-
if (order === undefined)
|
|
20
|
-
return Number.MAX_SAFE_INTEGER / 2;
|
|
21
|
-
if (order < 0)
|
|
22
|
-
return Number.MAX_SAFE_INTEGER + order;
|
|
23
|
-
return order;
|
|
24
|
-
}
|
|
25
|
-
const configSections = import.meta.env.CONFIG.sections;
|
|
26
|
-
/** Per-section article groups, keyed by section prefix */
|
|
27
|
-
export const sectionArticleGroups = new Map();
|
|
28
|
-
/** Per-section flat article lists, keyed by section prefix */
|
|
29
|
-
export const sectionFlatArticles = new Map();
|
|
30
|
-
/** Per-section first article path, keyed by section prefix */
|
|
31
|
-
export const sectionFirstArticle = new Map();
|
|
32
|
-
if (configSections?.length) {
|
|
33
|
-
const sectionByPrefix = new Map(configSections.map(s => [s.prefix, s]));
|
|
34
|
-
const buckets = partitionBySection(sortedArticles, configSections);
|
|
35
|
-
for (const [key, bucket] of buckets) {
|
|
36
|
-
const section = sectionByPrefix.get(key);
|
|
37
|
-
const sorted = section?.type === "blog" || section?.type === "changelog"
|
|
38
|
-
? [...bucket].sort((a, b) => new Date(b.date ?? 0).getTime() - new Date(a.date ?? 0).getTime())
|
|
39
|
-
: bucket;
|
|
40
|
-
const tree = buildArticleTree(sorted);
|
|
41
|
-
const groups = groupArticleTree(tree, sorted);
|
|
42
|
-
const flat = groups.flatMap(g => flattenArticleTree(g.nodes));
|
|
43
|
-
sectionArticleGroups.set(key, groups);
|
|
44
|
-
sectionFlatArticles.set(key, flat);
|
|
45
|
-
sectionFirstArticle.set(key, flat[0]);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
/** Find which config section an article path belongs to */
|
|
49
|
-
export function currentSection(path) {
|
|
50
|
-
if (!configSections?.length)
|
|
51
|
-
return undefined;
|
|
52
|
-
return matchSection(path, configSections);
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWNsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9jb250ZW50L2FydGljbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBRWpELE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLGdCQUFnQixHQUNqQixNQUFNLHVCQUF1QixDQUFBO0FBQzlCLE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUV4RTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQ2pELENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUNoRCxDQUFBO0FBRUQsNEVBQTRFO0FBQzVFLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQTtBQUVuRSwwRUFBMEU7QUFDMUUsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUMzQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsRUFDaEMsY0FBYyxDQUNmLENBQUE7QUFFRCwrRUFBK0U7QUFDL0UsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FDeEQsa0JBQWtCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUNoQyxDQUFBO0FBRUQsMkVBQTJFO0FBQzNFLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUVoRixTQUFTLFFBQVEsQ0FBQyxLQUFjO0lBQzlCLElBQUksS0FBSyxLQUFLLFNBQVM7UUFBRSxPQUFPLE1BQU0sQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUE7SUFDM0QsSUFBSSxLQUFLLEdBQUcsQ0FBQztRQUFFLE9BQU8sTUFBTSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQTtJQUNyRCxPQUFPLEtBQUssQ0FBQTtBQUNkLENBQUM7QUFFRCxNQUFNLGNBQWMsR0FBRyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQTtBQUV0RCwwREFBMEQ7QUFDMUQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxHQUFHLEVBQTBCLENBQUE7QUFFckUsOERBQThEO0FBQzlELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLElBQUksR0FBRyxFQUFvQixDQUFBO0FBRTlELDhEQUE4RDtBQUM5RCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLEdBQUcsRUFBOEIsQ0FBQTtBQUV4RSxJQUFJLGNBQWMsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUMzQixNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN2RSxNQUFNLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUE7SUFDbEUsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3BDLE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDeEMsTUFBTSxNQUFNLEdBQ1YsT0FBTyxFQUFFLElBQUksS0FBSyxNQUFNLElBQUksT0FBTyxFQUFFLElBQUksS0FBSyxXQUFXO1lBQ3ZELENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUNkLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQ1AsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUNwRTtZQUNILENBQUMsQ0FBQyxNQUFNLENBQUE7UUFDWixNQUFNLElBQUksR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNyQyxNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDN0MsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO1FBQzdELG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDckMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUNsQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3ZDLENBQUM7QUFDSCxDQUFDO0FBRUQsMkRBQTJEO0FBQzNELE1BQU0sVUFBVSxjQUFjLENBQUMsSUFBWTtJQUN6QyxJQUFJLENBQUMsY0FBYyxFQUFFLE1BQU07UUFBRSxPQUFPLFNBQVMsQ0FBQTtJQUM3QyxPQUFPLFlBQVksQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUE7QUFDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFsbEFydGljbGVzIH0gZnJvbSBcImNvbnRlbnQtY29sbGVjdGlvbnNcIlxuaW1wb3J0IHR5cGUgeyBBcnRpY2xlR3JvdXAgfSBmcm9tIFwiLi4vbW9kZWxzL2FydGljbGUudHNcIlxuaW1wb3J0IHtcbiAgYnVpbGRBcnRpY2xlVHJlZSxcbiAgZmxhdHRlbkFydGljbGVUcmVlLFxuICBncm91cEFydGljbGVUcmVlLFxufSBmcm9tIFwiLi4vaGVscGVycy9hcnRpY2xlLnRzXCJcbmltcG9ydCB7IG1hdGNoU2VjdGlvbiwgcGFydGl0aW9uQnlTZWN0aW9uIH0gZnJvbSBcIi4uL2hlbHBlcnMvc2VjdGlvbi50c1wiXG5cbi8qKlxuICogQXJ0aWNsZXMgc29ydGVkIGJ5IGZyb250bWF0dGVyIGBvcmRlcmA6XG4gKiBwb3NpdGl2ZSB2YWx1ZXMgZmlyc3QgKGFzY2VuZGluZyksIHRoZW4gdW5vcmRlcmVkLCB0aGVuIG5lZ2F0aXZlIHZhbHVlc1xuICogKHNvIGBvcmRlcjogLTFgIGxhbmRzIGF0IHRoZSB2ZXJ5IGVuZCwgYC0yYCBqdXN0IGJlZm9yZSBpdCwgYW5kIHNvIG9uKS5cbiAqL1xuZXhwb3J0IGNvbnN0IHNvcnRlZEFydGljbGVzID0gWy4uLmFsbEFydGljbGVzXS5zb3J0KFxuICAoYSwgYikgPT4gb3JkZXJLZXkoYS5vcmRlcikgLSBvcmRlcktleShiLm9yZGVyKSxcbilcblxuLyoqIFRoZSBhcnRpY2xlIHdob3NlIHBhdGggaXMgYC9gLCBpZiBhbnkgKHJlbmRlcmVkIGluIHBsYWNlIGF0IHRoZSByb290KSAqL1xuZXhwb3J0IGNvbnN0IGhvbWVBcnRpY2xlID0gc29ydGVkQXJ0aWNsZXMuZmluZChhID0+IGEucGF0aCA9PT0gXCIvXCIpXG5cbi8qKiBTaWRlYmFyIHNlY3Rpb25zIGRlcml2ZWQgZnJvbSB0aGUgcGF0aCB0cmVlLCBwYXJ0aXRpb25lZCBieSBgZ3JvdXBgICovXG5leHBvcnQgY29uc3QgYXJ0aWNsZUdyb3VwcyA9IGdyb3VwQXJ0aWNsZVRyZWUoXG4gIGJ1aWxkQXJ0aWNsZVRyZWUoc29ydGVkQXJ0aWNsZXMpLFxuICBzb3J0ZWRBcnRpY2xlcyxcbilcblxuLyoqIEFydGljbGVzIGluIGRlcHRoLWZpcnN0IG9yZGVyIGFjcm9zcyBhbGwgc2VjdGlvbnMgKG1hdGNoZXMgc2lkZWJhciB3YWxrKSAqL1xuZXhwb3J0IGNvbnN0IGZsYXRBcnRpY2xlcyA9IGFydGljbGVHcm91cHMuZmxhdE1hcChncm91cCA9PlxuICBmbGF0dGVuQXJ0aWNsZVRyZWUoZ3JvdXAubm9kZXMpLFxuKVxuXG4vKiogVGhlIGZpcnN0IGFydGljbGUgaW4gc2lkZWJhciBvcmRlciwgdXNlZCBhcyB0aGUgZGVmYXVsdCBsYW5kaW5nIHBhZ2UgKi9cbmV4cG9ydCBjb25zdCBmaXJzdEFydGljbGUgPSBzb3J0ZWRBcnRpY2xlcy5maW5kKGEgPT4gYS5wYXRoID09PSBmbGF0QXJ0aWNsZXNbMF0pXG5cbmZ1bmN0aW9uIG9yZGVyS2V5KG9yZGVyPzogbnVtYmVyKSB7XG4gIGlmIChvcmRlciA9PT0gdW5kZWZpbmVkKSByZXR1cm4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIgLyAyXG4gIGlmIChvcmRlciA8IDApIHJldHVybiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUiArIG9yZGVyXG4gIHJldHVybiBvcmRlclxufVxuXG5jb25zdCBjb25maWdTZWN0aW9ucyA9IGltcG9ydC5tZXRhLmVudi5DT05GSUcuc2VjdGlvbnNcblxuLyoqIFBlci1zZWN0aW9uIGFydGljbGUgZ3JvdXBzLCBrZXllZCBieSBzZWN0aW9uIHByZWZpeCAqL1xuZXhwb3J0IGNvbnN0IHNlY3Rpb25BcnRpY2xlR3JvdXBzID0gbmV3IE1hcDxzdHJpbmcsIEFydGljbGVHcm91cFtdPigpXG5cbi8qKiBQZXItc2VjdGlvbiBmbGF0IGFydGljbGUgbGlzdHMsIGtleWVkIGJ5IHNlY3Rpb24gcHJlZml4ICovXG5leHBvcnQgY29uc3Qgc2VjdGlvbkZsYXRBcnRpY2xlcyA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmdbXT4oKVxuXG4vKiogUGVyLXNlY3Rpb24gZmlyc3QgYXJ0aWNsZSBwYXRoLCBrZXllZCBieSBzZWN0aW9uIHByZWZpeCAqL1xuZXhwb3J0IGNvbnN0IHNlY3Rpb25GaXJzdEFydGljbGUgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPigpXG5cbmlmIChjb25maWdTZWN0aW9ucz8ubGVuZ3RoKSB7XG4gIGNvbnN0IHNlY3Rpb25CeVByZWZpeCA9IG5ldyBNYXAoY29uZmlnU2VjdGlvbnMubWFwKHMgPT4gW3MucHJlZml4LCBzXSkpXG4gIGNvbnN0IGJ1Y2tldHMgPSBwYXJ0aXRpb25CeVNlY3Rpb24oc29ydGVkQXJ0aWNsZXMsIGNvbmZpZ1NlY3Rpb25zKVxuICBmb3IgKGNvbnN0IFtrZXksIGJ1Y2tldF0gb2YgYnVja2V0cykge1xuICAgIGNvbnN0IHNlY3Rpb24gPSBzZWN0aW9uQnlQcmVmaXguZ2V0KGtleSlcbiAgICBjb25zdCBzb3J0ZWQgPVxuICAgICAgc2VjdGlvbj8udHlwZSA9PT0gXCJibG9nXCIgfHwgc2VjdGlvbj8udHlwZSA9PT0gXCJjaGFuZ2Vsb2dcIlxuICAgICAgICA/IFsuLi5idWNrZXRdLnNvcnQoXG4gICAgICAgICAgICAoYSwgYikgPT5cbiAgICAgICAgICAgICAgbmV3IERhdGUoYi5kYXRlID8/IDApLmdldFRpbWUoKSAtIG5ldyBEYXRlKGEuZGF0ZSA/PyAwKS5nZXRUaW1lKCksXG4gICAgICAgICAgKVxuICAgICAgICA6IGJ1Y2tldFxuICAgIGNvbnN0IHRyZWUgPSBidWlsZEFydGljbGVUcmVlKHNvcnRlZClcbiAgICBjb25zdCBncm91cHMgPSBncm91cEFydGljbGVUcmVlKHRyZWUsIHNvcnRlZClcbiAgICBjb25zdCBmbGF0ID0gZ3JvdXBzLmZsYXRNYXAoZyA9PiBmbGF0dGVuQXJ0aWNsZVRyZWUoZy5ub2RlcykpXG4gICAgc2VjdGlvbkFydGljbGVHcm91cHMuc2V0KGtleSwgZ3JvdXBzKVxuICAgIHNlY3Rpb25GbGF0QXJ0aWNsZXMuc2V0KGtleSwgZmxhdClcbiAgICBzZWN0aW9uRmlyc3RBcnRpY2xlLnNldChrZXksIGZsYXRbMF0pXG4gIH1cbn1cblxuLyoqIEZpbmQgd2hpY2ggY29uZmlnIHNlY3Rpb24gYW4gYXJ0aWNsZSBwYXRoIGJlbG9uZ3MgdG8gKi9cbmV4cG9ydCBmdW5jdGlvbiBjdXJyZW50U2VjdGlvbihwYXRoOiBzdHJpbmcpIHtcbiAgaWYgKCFjb25maWdTZWN0aW9ucz8ubGVuZ3RoKSByZXR1cm4gdW5kZWZpbmVkXG4gIHJldHVybiBtYXRjaFNlY3Rpb24ocGF0aCwgY29uZmlnU2VjdGlvbnMpXG59XG4iXX0=
|
package/target/content/tag.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { sectionFlatArticles, sortedArticles } from "./article.js";
|
|
2
|
-
const configSections = import.meta.env.CONFIG.sections;
|
|
3
|
-
/** Per-section tag → article paths mapping. Articles sorted by date descending. */
|
|
4
|
-
export const sectionTags = new Map();
|
|
5
|
-
if (configSections?.length) {
|
|
6
|
-
for (const section of configSections) {
|
|
7
|
-
if (section.type !== "blog")
|
|
8
|
-
continue;
|
|
9
|
-
const flat = sectionFlatArticles.get(section.prefix) ?? [];
|
|
10
|
-
const tagMap = new Map();
|
|
11
|
-
for (const path of flat) {
|
|
12
|
-
const article = sortedArticles.find(a => a.path === path);
|
|
13
|
-
if (!article?.tags)
|
|
14
|
-
continue;
|
|
15
|
-
for (const tag of article.tags) {
|
|
16
|
-
const list = tagMap.get(tag);
|
|
17
|
-
if (list) {
|
|
18
|
-
list.push(path);
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
21
|
-
tagMap.set(tag, [path]);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
if (tagMap.size > 0) {
|
|
26
|
-
sectionTags.set(section.prefix, tagMap);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbnRlbnQvdGFnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFbEUsTUFBTSxjQUFjLEdBQUcsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUE7QUFFdEQsbUZBQW1GO0FBQ25GLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFBaUMsQ0FBQTtBQUVuRSxJQUFJLGNBQWMsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUMzQixLQUFLLE1BQU0sT0FBTyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ3JDLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxNQUFNO1lBQUUsU0FBUTtRQUNyQyxNQUFNLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUMxRCxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQTtRQUMxQyxLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3hCLE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFBO1lBQ3pELElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSTtnQkFBRSxTQUFRO1lBQzVCLEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUMvQixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO2dCQUM1QixJQUFJLElBQUksRUFBRSxDQUFDO29CQUNULElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7Z0JBQ2pCLENBQUM7cUJBQU0sQ0FBQztvQkFDTixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7Z0JBQ3pCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNwQixXQUFXLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDekMsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2VjdGlvbkZsYXRBcnRpY2xlcywgc29ydGVkQXJ0aWNsZXMgfSBmcm9tIFwiLi9hcnRpY2xlLnRzXCJcblxuY29uc3QgY29uZmlnU2VjdGlvbnMgPSBpbXBvcnQubWV0YS5lbnYuQ09ORklHLnNlY3Rpb25zXG5cbi8qKiBQZXItc2VjdGlvbiB0YWcg4oaSIGFydGljbGUgcGF0aHMgbWFwcGluZy4gQXJ0aWNsZXMgc29ydGVkIGJ5IGRhdGUgZGVzY2VuZGluZy4gKi9cbmV4cG9ydCBjb25zdCBzZWN0aW9uVGFncyA9IG5ldyBNYXA8c3RyaW5nLCBNYXA8c3RyaW5nLCBzdHJpbmdbXT4+KClcblxuaWYgKGNvbmZpZ1NlY3Rpb25zPy5sZW5ndGgpIHtcbiAgZm9yIChjb25zdCBzZWN0aW9uIG9mIGNvbmZpZ1NlY3Rpb25zKSB7XG4gICAgaWYgKHNlY3Rpb24udHlwZSAhPT0gXCJibG9nXCIpIGNvbnRpbnVlXG4gICAgY29uc3QgZmxhdCA9IHNlY3Rpb25GbGF0QXJ0aWNsZXMuZ2V0KHNlY3Rpb24ucHJlZml4KSA/PyBbXVxuICAgIGNvbnN0IHRhZ01hcCA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmdbXT4oKVxuICAgIGZvciAoY29uc3QgcGF0aCBvZiBmbGF0KSB7XG4gICAgICBjb25zdCBhcnRpY2xlID0gc29ydGVkQXJ0aWNsZXMuZmluZChhID0+IGEucGF0aCA9PT0gcGF0aClcbiAgICAgIGlmICghYXJ0aWNsZT8udGFncykgY29udGludWVcbiAgICAgIGZvciAoY29uc3QgdGFnIG9mIGFydGljbGUudGFncykge1xuICAgICAgICBjb25zdCBsaXN0ID0gdGFnTWFwLmdldCh0YWcpXG4gICAgICAgIGlmIChsaXN0KSB7XG4gICAgICAgICAgbGlzdC5wdXNoKHBhdGgpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGFnTWFwLnNldCh0YWcsIFtwYXRoXSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGFnTWFwLnNpemUgPiAwKSB7XG4gICAgICBzZWN0aW9uVGFncy5zZXQoc2VjdGlvbi5wcmVmaXgsIHRhZ01hcClcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
import { execSync } from "node:child_process";
|
|
2
|
-
import { existsSync } from "node:fs";
|
|
3
|
-
import { basename, relative, resolve } from "node:path";
|
|
4
|
-
import { DEFAULT_EXCLUDES } from "./settings.js";
|
|
5
|
-
import { defineCollection, defineConfig } from "@content-collections/core";
|
|
6
|
-
import { compileMDX } from "@content-collections/mdx";
|
|
7
|
-
import rehypeShiki from "@shikijs/rehype";
|
|
8
|
-
import { transformerTwoslash } from "@shikijs/twoslash";
|
|
9
|
-
import rehypeKatex from "rehype-katex";
|
|
10
|
-
import rehypeSlug from "rehype-slug";
|
|
11
|
-
import remarkDefinitionList from "remark-definition-list";
|
|
12
|
-
import remarkDirective from "remark-directive";
|
|
13
|
-
import remarkGemoji from "remark-gemoji";
|
|
14
|
-
import remarkGfm from "remark-gfm";
|
|
15
|
-
import remarkMath from "remark-math";
|
|
16
|
-
import { loadConfig } from "./actions/config/load.js";
|
|
17
|
-
import { buildChangelog, cacheIncludeGlob } from "./actions/changelog/build.js";
|
|
18
|
-
import { Article } from "./models/article.js";
|
|
19
|
-
import { pickDefaultIcon } from "./helpers/article-icon.js";
|
|
20
|
-
import slugify from "@sindresorhus/slugify";
|
|
21
|
-
import remarkCustomHeadingId from "./plugins/remark-custom-heading-id.js";
|
|
22
|
-
import { remarkCallout } from "./plugins/remark-callout.js";
|
|
23
|
-
import { remarkCard } from "./plugins/remark-card.js";
|
|
24
|
-
import { remarkColumns } from "./plugins/remark-columns.js";
|
|
25
|
-
import { remarkTab } from "./plugins/remark-tab.js";
|
|
26
|
-
import { remarkBadge } from "./plugins/remark-badge.js";
|
|
27
|
-
import { remarkButton } from "./plugins/remark-button.js";
|
|
28
|
-
import { remarkAbbr } from "./plugins/remark-abbr.js";
|
|
29
|
-
import { remarkDeflist } from "./plugins/remark-deflist.js";
|
|
30
|
-
import { remarkDetails } from "./plugins/remark-details.js";
|
|
31
|
-
import { remarkFiletree } from "./plugins/remark-filetree.js";
|
|
32
|
-
import { remarkIcon } from "./plugins/remark-icon.js";
|
|
33
|
-
import { remarkCodeTabs } from "./plugins/remark-code-tabs.js";
|
|
34
|
-
import { remarkGithubCallout } from "./plugins/remark-github-callout.js";
|
|
35
|
-
import { remarkImage } from "./plugins/remark-image.js";
|
|
36
|
-
import { remarkMedia } from "./plugins/remark-media.js";
|
|
37
|
-
import { remarkAnsi } from "./plugins/remark-ansi.js";
|
|
38
|
-
import { remarkMermaid } from "./plugins/remark-mermaid.js";
|
|
39
|
-
import { remarkToc } from "./plugins/remark-toc.js";
|
|
40
|
-
import { remarkNpm } from "./plugins/remark-npm.js";
|
|
41
|
-
import { remarkSteps } from "./plugins/remark-steps.js";
|
|
42
|
-
import { remarkPassthroughDirective } from "./plugins/remark-passthrough-directive.js";
|
|
43
|
-
import { transformerLineHighlight, transformerNotations, } from "./plugins/shiki-line-highlight.js";
|
|
44
|
-
import { rehypeInlineCode } from "./plugins/rehype-inline-code.js";
|
|
45
|
-
import { rehypeTaskListA11y } from "./plugins/rehype-task-list-a11y.js";
|
|
46
|
-
import { transformerIcon } from "./plugins/shiki-icon.js";
|
|
47
|
-
import { resolveAssetPath } from "./helpers/resolve-asset-path.js";
|
|
48
|
-
import { resolveIncludes } from "./helpers/resolve-includes.js";
|
|
49
|
-
import { extractSearchText } from "./helpers/search-text.js";
|
|
50
|
-
import { extractToc } from "./helpers/toc.js";
|
|
51
|
-
const config = await loadConfig();
|
|
52
|
-
const changelogSections = config.sections?.filter(s => s.type === "changelog") ?? [];
|
|
53
|
-
for (const section of changelogSections) {
|
|
54
|
-
await buildChangelog(section, config);
|
|
55
|
-
}
|
|
56
|
-
const configInclude = Array.isArray(config.include)
|
|
57
|
-
? config.include
|
|
58
|
-
: [config.include];
|
|
59
|
-
const include = changelogSections.length
|
|
60
|
-
? [...configInclude, cacheIncludeGlob()]
|
|
61
|
-
: configInclude;
|
|
62
|
-
const userExclude = config.exclude
|
|
63
|
-
? Array.isArray(config.exclude)
|
|
64
|
-
? config.exclude
|
|
65
|
-
: [config.exclude]
|
|
66
|
-
: [];
|
|
67
|
-
// When the consumer doesn't have a .gitignore, fall back to a sensible
|
|
68
|
-
// floor so `**/*.md` doesn't sweep up every README.md under node_modules,
|
|
69
|
-
// build outputs, etc. With a .gitignore present we trust the user.
|
|
70
|
-
const hasGitignore = existsSync(resolve(config.root, ".gitignore"));
|
|
71
|
-
const defaultExclude = hasGitignore ? [] : [...DEFAULT_EXCLUDES];
|
|
72
|
-
const exclude = [...defaultExclude, ...userExclude];
|
|
73
|
-
// content-collections compiles this file to .content-collections/cache/;
|
|
74
|
-
// going up 2 levels reconstructs the baseDirectory it uses for path resolution
|
|
75
|
-
const baseDir = resolve(import.meta.dirname, "../..");
|
|
76
|
-
const directory = relative(baseDir, config.root) || ".";
|
|
77
|
-
function toPath(filePath) {
|
|
78
|
-
const name = basename(filePath).replace(/\.\w+$/, "");
|
|
79
|
-
return slugify(name);
|
|
80
|
-
}
|
|
81
|
-
function getLastUpdated(filePath) {
|
|
82
|
-
try {
|
|
83
|
-
const timestamp = execSync(`git log -1 --format=%cI -- "${filePath}"`, {
|
|
84
|
-
cwd: config.root,
|
|
85
|
-
encoding: "utf-8",
|
|
86
|
-
}).trim();
|
|
87
|
-
return timestamp || undefined;
|
|
88
|
-
}
|
|
89
|
-
catch {
|
|
90
|
-
return undefined;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
function stripLeadingH1(content) {
|
|
94
|
-
return content.replace(/^[ \t]*#\s+[^\n]*\n+/, "");
|
|
95
|
-
}
|
|
96
|
-
function extractTitle(content, path) {
|
|
97
|
-
const match = /^#\s+(.+)$/m.exec(content);
|
|
98
|
-
if (match)
|
|
99
|
-
return match[1];
|
|
100
|
-
return (path
|
|
101
|
-
.split("/")
|
|
102
|
-
.pop()
|
|
103
|
-
?.replace(/\.\w+$/, "") ?? path);
|
|
104
|
-
}
|
|
105
|
-
const articles = defineCollection({
|
|
106
|
-
name: "articles",
|
|
107
|
-
directory,
|
|
108
|
-
include,
|
|
109
|
-
exclude,
|
|
110
|
-
schema: Article,
|
|
111
|
-
transform: async (document, context) => {
|
|
112
|
-
const patch = config.patches?.find(p => p.file === document._meta.filePath);
|
|
113
|
-
const doc = patch ? { ...document, ...patch.article } : document;
|
|
114
|
-
const filePath = resolve(config.root, doc._meta.filePath);
|
|
115
|
-
const content = resolveIncludes(doc.content, filePath);
|
|
116
|
-
const title = doc.title ?? extractTitle(content, doc._meta.path);
|
|
117
|
-
const icon = doc.icon ?? pickDefaultIcon(doc._meta.path);
|
|
118
|
-
const path = doc.path ?? toPath(doc._meta.filePath);
|
|
119
|
-
// The article's h1 is rendered from `title` by the layout, so strip any
|
|
120
|
-
// leading h1 in the body to avoid two h1s side-by-side (especially when
|
|
121
|
-
// a content patch overrides the title to something different from the
|
|
122
|
-
// body's own heading).
|
|
123
|
-
const bodyContent = stripLeadingH1(content);
|
|
124
|
-
const mdx = await compileMDX(context, { ...doc, content: bodyContent }, {
|
|
125
|
-
remarkPlugins: [
|
|
126
|
-
remarkGfm,
|
|
127
|
-
remarkGemoji,
|
|
128
|
-
remarkDefinitionList,
|
|
129
|
-
remarkDeflist,
|
|
130
|
-
remarkMath,
|
|
131
|
-
remarkDirective,
|
|
132
|
-
remarkCallout,
|
|
133
|
-
remarkCard,
|
|
134
|
-
remarkColumns,
|
|
135
|
-
remarkTab,
|
|
136
|
-
remarkDetails,
|
|
137
|
-
remarkFiletree,
|
|
138
|
-
remarkIcon,
|
|
139
|
-
remarkBadge,
|
|
140
|
-
remarkButton,
|
|
141
|
-
remarkAbbr,
|
|
142
|
-
remarkGithubCallout,
|
|
143
|
-
[
|
|
144
|
-
remarkImage,
|
|
145
|
-
{
|
|
146
|
-
filePath: resolve(config.root, doc._meta.filePath),
|
|
147
|
-
root: config.root,
|
|
148
|
-
},
|
|
149
|
-
],
|
|
150
|
-
remarkAnsi,
|
|
151
|
-
remarkMermaid,
|
|
152
|
-
remarkMedia,
|
|
153
|
-
remarkToc,
|
|
154
|
-
remarkNpm,
|
|
155
|
-
remarkCodeTabs,
|
|
156
|
-
remarkSteps,
|
|
157
|
-
remarkCustomHeadingId,
|
|
158
|
-
// Run last: anything still typed as a directive after every handler
|
|
159
|
-
// above is unintended (e.g. `3.2:1`, `port:8080`) — passthrough as
|
|
160
|
-
// plain text so it doesn't render as an empty span/div.
|
|
161
|
-
remarkPassthroughDirective,
|
|
162
|
-
],
|
|
163
|
-
rehypePlugins: [
|
|
164
|
-
[
|
|
165
|
-
rehypeShiki,
|
|
166
|
-
{
|
|
167
|
-
themes: {
|
|
168
|
-
light: config.codeThemeLight,
|
|
169
|
-
dark: config.codeThemeDark,
|
|
170
|
-
},
|
|
171
|
-
// Darken catppuccin-latte's green (the colour used for strings and
|
|
172
|
-
// some comments) — the theme default #40A02B lands at 3.2:1 on the
|
|
173
|
-
// code-block background, below the WCAG AA 4.5:1 threshold.
|
|
174
|
-
colorReplacements: {
|
|
175
|
-
"catppuccin-latte": {
|
|
176
|
-
"#40a02b": "#2a7e16",
|
|
177
|
-
},
|
|
178
|
-
},
|
|
179
|
-
transformers: [
|
|
180
|
-
transformerTwoslash({ explicitTrigger: true }),
|
|
181
|
-
transformerIcon(),
|
|
182
|
-
transformerNotations(),
|
|
183
|
-
transformerLineHighlight(),
|
|
184
|
-
],
|
|
185
|
-
parseMetaString: (meta) => ({ "data-meta": meta }),
|
|
186
|
-
},
|
|
187
|
-
],
|
|
188
|
-
rehypeInlineCode,
|
|
189
|
-
rehypeSlug,
|
|
190
|
-
rehypeKatex,
|
|
191
|
-
rehypeTaskListA11y,
|
|
192
|
-
],
|
|
193
|
-
});
|
|
194
|
-
const tocItems = extractToc(content);
|
|
195
|
-
const searchText = extractSearchText(content);
|
|
196
|
-
const lastUpdated = getLastUpdated(doc._meta.filePath);
|
|
197
|
-
const image = doc.image
|
|
198
|
-
? resolveAssetPath(doc.image, filePath, config.root)
|
|
199
|
-
: undefined;
|
|
200
|
-
return {
|
|
201
|
-
...doc,
|
|
202
|
-
file: doc._meta.filePath,
|
|
203
|
-
lastUpdated,
|
|
204
|
-
image,
|
|
205
|
-
title,
|
|
206
|
-
icon,
|
|
207
|
-
path,
|
|
208
|
-
tocItems,
|
|
209
|
-
searchText,
|
|
210
|
-
mdx,
|
|
211
|
-
};
|
|
212
|
-
},
|
|
213
|
-
});
|
|
214
|
-
export default defineConfig({
|
|
215
|
-
// @ts-expect-error tsgo picks wrong overload when rehype-slug augments unified types
|
|
216
|
-
content: [articles],
|
|
217
|
-
});
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1jb2xsZWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9jb250ZW50LWNvbGxlY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ3BDLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNyRCxPQUFPLFdBQVcsTUFBTSxpQkFBaUIsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUN2RCxPQUFPLFdBQVcsTUFBTSxjQUFjLENBQUE7QUFDdEMsT0FBTyxVQUFVLE1BQU0sYUFBYSxDQUFBO0FBQ3BDLE9BQU8sb0JBQW9CLE1BQU0sd0JBQXdCLENBQUE7QUFDekQsT0FBTyxlQUFlLE1BQU0sa0JBQWtCLENBQUE7QUFDOUMsT0FBTyxZQUFZLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQTtBQUNsQyxPQUFPLFVBQVUsTUFBTSxhQUFhLENBQUE7QUFDcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUMvRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFB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QUMsQ0FBQTtRQUM3QyxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUN0RCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSztZQUNyQixDQUFDLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQztZQUNwRCxDQUFDLENBQUMsU0FBUyxDQUFBO1FBQ2IsT0FBTztZQUNMLEdBQUcsR0FBRztZQUNOLElBQUksRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVE7WUFDeEIsV0FBVztZQUNYLEtBQUs7WUFDTCxLQUFLO1lBQ0wsSUFBSTtZQUNKLElBQUk7WUFDSixRQUFRO1lBQ1IsVUFBVTtZQUNWLEdBQUc7U0FDSixDQUFBO0lBQ0gsQ0FBQztDQUNGLENBQUMsQ0FBQTtBQUVGLGVBQWUsWUFBWSxDQUFDO0lBQzFCLHFGQUFxRjtJQUNyRixPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Q0FDcEIsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhlY1N5bmMgfSBmcm9tIFwibm9kZTpjaGlsZF9wcm9jZXNzXCJcbmltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tIFwibm9kZTpmc1wiXG5pbXBvcnQgeyBiYXNlbmFtZSwgcmVsYXRpdmUsIHJlc29sdmUgfSBmcm9tIFwibm9kZTpwYXRoXCJcbmltcG9ydCB7IERFRkFVTFRfRVhDTFVERVMgfSBmcm9tIFwiLi9zZXR0aW5ncy50c1wiXG5pbXBvcnQgeyBkZWZpbmVDb2xsZWN0aW9uLCBkZWZpbmVDb25maWcgfSBmcm9tIFwiQGNvbnRlbnQtY29sbGVjdGlvbnMvY29yZVwiXG5pbXBvcnQgeyBjb21waWxlTURYIH0gZnJvbSBcIkBjb250ZW50LWNvbGxlY3Rpb25zL21keFwiXG5pbXBvcnQgcmVoeXBlU2hpa2kgZnJvbSBcIkBzaGlraWpzL3JlaHlwZVwiXG5pbXBvcnQgeyB0cmFuc2Zvcm1lclR3b3NsYXNoIH0gZnJvbSBcIkBzaGlraWpzL3R3b3NsYXNoXCJcbmltcG9ydCByZWh5cGVLYXRleCBmcm9tIFwicmVoeXBlLWthdGV4XCJcbmltcG9ydCByZWh5cGVTbHVnIGZyb20gXCJyZWh5cGUtc2x1Z1wiXG5pbXBvcnQgcmVtYXJrRGVmaW5pdGlvbkxpc3QgZnJvbSBcInJlbWFyay1kZWZpbml0aW9uLWxpc3RcIlxuaW1wb3J0IHJlbWFya0RpcmVjdGl2ZSBmcm9tIFwicmVtYXJrLWRpcmVjdGl2ZVwiXG5pbXBvcnQgcmVtYXJrR2Vtb2ppIGZyb20gXCJyZW1hcmstZ2Vtb2ppXCJcbmltcG9ydCByZW1hcmtHZm0gZnJvbSBcInJlbWFyay1nZm1cIlxuaW1wb3J0IHJlbWFya01hdGggZnJvbSBcInJlbWFyay1tYXRoXCJcbmltcG9ydCB7IGxvYWRDb25maWcgfSBmcm9tIFwiLi9hY3Rpb25zL2NvbmZpZy9sb2FkLnRzXCJcbmltcG9ydCB7IGJ1aWxkQ2hhbmdlbG9nLCBjYWNoZUluY2x1ZGVHbG9iIH0gZnJvbSBcIi4vYWN0aW9ucy9jaGFuZ2Vsb2cvYnVpbGQudHNcIlxuaW1wb3J0IHsgQXJ0aWNsZSB9IGZyb20gXCIuL21vZGVscy9hcnRpY2xlLnRzXCJcbmltcG9ydCB7IHBpY2tEZWZhdWx0SWNvbiB9IGZyb20gXCIuL2hlbHBlcnMvYXJ0aWNsZS1pY29uLnRzXCJcbmltcG9ydCBzbHVnaWZ5IGZyb20gXCJAc2luZHJlc29yaHVzL3NsdWdpZnlcIlxuaW1wb3J0IHJlbWFya0N1c3RvbUhlYWRpbmdJZCBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1jdXN0b20taGVhZGluZy1pZC50c1wiXG5pbXBvcnQgeyByZW1hcmtDYWxsb3V0IH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstY2FsbG91dC50c1wiXG5pbXBvcnQgeyByZW1hcmtDYXJkIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstY2FyZC50c1wiXG5pbXBvcnQgeyByZW1hcmtDb2x1bW5zIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstY29sdW1ucy50c1wiXG5pbXBvcnQgeyByZW1hcmtUYWIgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay10YWIudHNcIlxuaW1wb3J0IHsgcmVtYXJrQmFkZ2UgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1iYWRnZS50c1wiXG5pbXBvcnQgeyByZW1hcmtCdXR0b24gfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1idXR0b24udHNcIlxuaW1wb3J0IHsgcmVtYXJrQWJiciB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWFiYnIudHNcIlxuaW1wb3J0IHsgcmVtYXJrRGVmbGlzdCB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWRlZmxpc3QudHNcIlxuaW1wb3J0IHsgcmVtYXJrRGV0YWlscyB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWRldGFpbHMudHNcIlxuaW1wb3J0IHsgcmVtYXJrRmlsZXRyZWUgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1maWxldHJlZS50c1wiXG5pbXBvcnQgeyByZW1hcmtJY29uIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstaWNvbi50c1wiXG5pbXBvcnQgeyByZW1hcmtDb2RlVGFicyB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWNvZGUtdGFicy50c1wiXG5pbXBvcnQgeyByZW1hcmtHaXRodWJDYWxsb3V0IH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstZ2l0aHViLWNhbGxvdXQudHNcIlxuaW1wb3J0IHsgcmVtYXJrSW1hZ2UgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1pbWFnZS50c1wiXG5pbXBvcnQgeyByZW1hcmtNZWRpYSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLW1lZGlhLnRzXCJcbmltcG9ydCB7IHJlbWFya0Fuc2kgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1hbnNpLnRzXCJcbmltcG9ydCB7IHJlbWFya01lcm1haWQgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1tZXJtYWlkLnRzXCJcbmltcG9ydCB7IHJlbWFya1RvYyB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLXRvYy50c1wiXG5pbXBvcnQgeyByZW1hcmtOcG0gfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1ucG0udHNcIlxuaW1wb3J0IHsgcmVtYXJrU3RlcHMgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1zdGVwcy50c1wiXG5pbXBvcnQgeyByZW1hcmtQYXNzdGhyb3VnaERpcmVjdGl2ZSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLXBhc3N0aHJvdWdoLWRpcmVjdGl2ZS50c1wiXG5pbXBvcnQge1xuICB0cmFuc2Zvcm1lckxpbmVIaWdobGlnaHQsXG4gIHRyYW5zZm9ybWVyTm90YXRpb25zLFxufSBmcm9tIFwiLi9wbHVnaW5zL3NoaWtpLWxpbmUtaGlnaGxpZ2h0LnRzXCJcbmltcG9ydCB7IHJlaHlwZUlubGluZUNvZGUgfSBmcm9tIFwiLi9wbHVnaW5zL3JlaHlwZS1pbmxpbmUtY29kZS50c1wiXG5pbXBvcnQgeyByZWh5cGVUYXNrTGlzdEExMXkgfSBmcm9tIFwiLi9wbHVnaW5zL3JlaHlwZS10YXNrLWxpc3QtYTExeS50c1wiXG5pbXBvcnQgeyB0cmFuc2Zvcm1lckljb24gfSBmcm9tIFwiLi9wbHVnaW5zL3NoaWtpLWljb24udHNcIlxuaW1wb3J0IHsgcmVzb2x2ZUFzc2V0UGF0aCB9IGZyb20gXCIuL2hlbHBlcnMvcmVzb2x2ZS1hc3NldC1wYXRoLnRzXCJcbmltcG9ydCB7IHJlc29sdmVJbmNsdWRlcyB9IGZyb20gXCIuL2hlbHBlcnMvcmVzb2x2ZS1pbmNsdWRlcy50c1wiXG5pbXBvcnQgeyBleHRyYWN0U2VhcmNoVGV4dCB9IGZyb20gXCIuL2hlbHBlcnMvc2VhcmNoLXRleHQudHNcIlxuaW1wb3J0IHsgZXh0cmFjdFRvYyB9IGZyb20gXCIuL2hlbHBlcnMvdG9jLnRzXCJcblxuY29uc3QgY29uZmlnID0gYXdhaXQgbG9hZENvbmZpZygpXG5cbmNvbnN0IGNoYW5nZWxvZ1NlY3Rpb25zID1cbiAgY29uZmlnLnNlY3Rpb25zPy5maWx0ZXIocyA9PiBzLnR5cGUgPT09IFwiY2hhbmdlbG9nXCIpID8/IFtdXG5mb3IgKGNvbnN0IHNlY3Rpb24gb2YgY2hhbmdlbG9nU2VjdGlvbnMpIHtcbiAgYXdhaXQgYnVpbGRDaGFuZ2Vsb2coc2VjdGlvbiwgY29uZmlnKVxufVxuXG5jb25zdCBjb25maWdJbmNsdWRlID0gQXJyYXkuaXNBcnJheShjb25maWcuaW5jbHVkZSlcbiAgPyBjb25maWcuaW5jbHVkZVxuICA6IFtjb25maWcuaW5jbHVkZV1cbmNvbnN0IGluY2x1ZGUgPSBjaGFuZ2Vsb2dTZWN0aW9ucy5sZW5ndGhcbiAgPyBbLi4uY29uZmlnSW5jbHVkZSwgY2FjaGVJbmNsdWRlR2xvYigpXVxuICA6IGNvbmZpZ0luY2x1ZGVcblxuY29uc3QgdXNlckV4Y2x1ZGUgPSBjb25maWcuZXhjbHVkZVxuICA/IEFycmF5LmlzQXJyYXkoY29uZmlnLmV4Y2x1ZGUpXG4gICAgPyBjb25maWcuZXhjbHVkZVxuICAgIDogW2NvbmZpZy5leGNsdWRlXVxuICA6IFtdXG4vLyBXaGVuIHRoZSBjb25zdW1lciBkb2Vzbid0IGhhdmUgYSAuZ2l0aWdub3JlLCBmYWxsIGJhY2sgdG8gYSBzZW5zaWJsZVxuLy8gZmxvb3Igc28gYCoqLyoubWRgIGRvZXNuJ3Qgc3dlZXAgdXAgZXZlcnkgUkVBRE1FLm1kIHVuZGVyIG5vZGVfbW9kdWxlcyxcbi8vIGJ1aWxkIG91dHB1dHMsIGV0Yy4gV2l0aCBhIC5naXRpZ25vcmUgcHJlc2VudCB3ZSB0cnVzdCB0aGUgdXNlci5cbmNvbnN0IGhhc0dpdGlnbm9yZSA9IGV4aXN0c1N5bmMocmVzb2x2ZShjb25maWcucm9vdCwgXCIuZ2l0aWdub3JlXCIpKVxuY29uc3QgZGVmYXVsdEV4Y2x1ZGUgPSBoYXNHaXRpZ25vcmUgPyBbXSA6IFsuLi5ERUZBVUxUX0VYQ0xVREVTXVxuY29uc3QgZXhjbHVkZSA9IFsuLi5kZWZhdWx0RXhjbHVkZSwgLi4udXNlckV4Y2x1ZGVdXG5cbi8vIGNvbnRlbnQtY29sbGVjdGlvbnMgY29tcGlsZXMgdGhpcyBmaWxlIHRvIC5jb250ZW50LWNvbGxlY3Rpb25zL2NhY2hlLztcbi8vIGdvaW5nIHVwIDIgbGV2ZWxzIHJlY29uc3RydWN0cyB0aGUgYmFzZURpcmVjdG9yeSBpdCB1c2VzIGZvciBwYXRoIHJlc29sdXRpb25cbmNvbnN0IGJhc2VEaXIgPSByZXNvbHZlKGltcG9ydC5tZXRhLmRpcm5hbWUsIFwiLi4vLi5cIilcbmNvbnN0IGRpcmVjdG9yeSA9IHJlbGF0aXZlKGJhc2VEaXIsIGNvbmZpZy5yb290KSB8fCBcIi5cIlxuXG5mdW5jdGlvbiB0b1BhdGgoZmlsZVBhdGg6IHN0cmluZykge1xuICBjb25zdCBuYW1lID0gYmFzZW5hbWUoZmlsZVBhdGgpLnJlcGxhY2UoL1xcLlxcdyskLywgXCJcIilcbiAgcmV0dXJuIHNsdWdpZnkobmFtZSlcbn1cblxuZnVuY3Rpb24gZ2V0TGFzdFVwZGF0ZWQoZmlsZVBhdGg6IHN0cmluZykge1xuICB0cnkge1xuICAgIGNvbnN0IHRpbWVzdGFtcCA9IGV4ZWNTeW5jKGBnaXQgbG9nIC0xIC0tZm9ybWF0PSVjSSAtLSBcIiR7ZmlsZVBhdGh9XCJgLCB7XG4gICAgICBjd2Q6IGNvbmZpZy5yb290LFxuICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICB9KS50cmltKClcbiAgICByZXR1cm4gdGltZXN0YW1wIHx8IHVuZGVmaW5lZFxuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cbn1cblxuZnVuY3Rpb24gc3RyaXBMZWFkaW5nSDEoY29udGVudDogc3RyaW5nKSB7XG4gIHJldHVybiBjb250ZW50LnJlcGxhY2UoL15bIFxcdF0qI1xccytbXlxcbl0qXFxuKy8sIFwiXCIpXG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RUaXRsZShjb250ZW50OiBzdHJpbmcsIHBhdGg6IHN0cmluZykge1xuICBjb25zdCBtYXRjaCA9IC9eI1xccysoLispJC9tLmV4ZWMoY29udGVudClcbiAgaWYgKG1hdGNoKSByZXR1cm4gbWF0Y2hbMV0hXG4gIHJldHVybiAoXG4gICAgcGF0aFxuICAgICAgLnNwbGl0KFwiL1wiKVxuICAgICAgLnBvcCgpXG4gICAgICA/LnJlcGxhY2UoL1xcLlxcdyskLywgXCJcIikgPz8gcGF0aFxuICApXG59XG5cbmNvbnN0IGFydGljbGVzID0gZGVmaW5lQ29sbGVjdGlvbih7XG4gIG5hbWU6IFwiYXJ0aWNsZXNcIixcbiAgZGlyZWN0b3J5LFxuICBpbmNsdWRlLFxuICBleGNsdWRlLFxuICBzY2hlbWE6IEFydGljbGUsXG4gIHRyYW5zZm9ybTogYXN5bmMgKGRvY3VtZW50LCBjb250ZXh0KSA9PiB7XG4gICAgY29uc3QgcGF0Y2ggPSBjb25maWcucGF0Y2hlcz8uZmluZChwID0+IHAuZmlsZSA9PT0gZG9jdW1lbnQuX21ldGEuZmlsZVBhdGgpXG4gICAgY29uc3QgZG9jID0gcGF0Y2ggPyB7IC4uLmRvY3VtZW50LCAuLi5wYXRjaC5hcnRpY2xlIH0gOiBkb2N1bWVudFxuICAgIGNvbnN0IGZpbGVQYXRoID0gcmVzb2x2ZShjb25maWcucm9vdCwgZG9jLl9tZXRhLmZpbGVQYXRoKVxuICAgIGNvbnN0IGNvbnRlbnQgPSByZXNvbHZlSW5jbHVkZXMoZG9jLmNvbnRlbnQsIGZpbGVQYXRoKVxuICAgIGNvbnN0IHRpdGxlID0gZG9jLnRpdGxlID8/IGV4dHJhY3RUaXRsZShjb250ZW50LCBkb2MuX21ldGEucGF0aClcbiAgICBjb25zdCBpY29uID0gZG9jLmljb24gPz8gcGlja0RlZmF1bHRJY29uKGRvYy5fbWV0YS5wYXRoKVxuICAgIGNvbnN0IHBhdGggPSBkb2MucGF0aCA/PyB0b1BhdGgoZG9jLl9tZXRhLmZpbGVQYXRoKVxuICAgIC8vIFRoZSBhcnRpY2xlJ3MgaDEgaXMgcmVuZGVyZWQgZnJvbSBgdGl0bGVgIGJ5IHRoZSBsYXlvdXQsIHNvIHN0cmlwIGFueVxuICAgIC8vIGxlYWRpbmcgaDEgaW4gdGhlIGJvZHkgdG8gYXZvaWQgdHdvIGgxcyBzaWRlLWJ5LXNpZGUgKGVzcGVjaWFsbHkgd2hlblxuICAgIC8vIGEgY29udGVudCBwYXRjaCBvdmVycmlkZXMgdGhlIHRpdGxlIHRvIHNvbWV0aGluZyBkaWZmZXJlbnQgZnJvbSB0aGVcbiAgICAvLyBib2R5J3Mgb3duIGhlYWRpbmcpLlxuICAgIGNvbnN0IGJvZHlDb250ZW50ID0gc3RyaXBMZWFkaW5nSDEoY29udGVudClcbiAgICBjb25zdCBtZHggPSBhd2FpdCBjb21waWxlTURYKFxuICAgICAgY29udGV4dCxcbiAgICAgIHsgLi4uZG9jLCBjb250ZW50OiBib2R5Q29udGVudCB9LFxuICAgICAge1xuICAgICAgICByZW1hcmtQbHVnaW5zOiBbXG4gICAgICAgICAgcmVtYXJrR2ZtLFxuICAgICAgICAgIHJlbWFya0dlbW9qaSxcbiAgICAgICAgICByZW1hcmtEZWZpbml0aW9uTGlzdCxcbiAgICAgICAgICByZW1hcmtEZWZsaXN0LFxuICAgICAgICAgIHJlbWFya01hdGgsXG4gICAgICAgICAgcmVtYXJrRGlyZWN0aXZlLFxuICAgICAgICAgIHJlbWFya0NhbGxvdXQsXG4gICAgICAgICAgcmVtYXJrQ2FyZCxcbiAgICAgICAgICByZW1hcmtDb2x1bW5zLFxuICAgICAgICAgIHJlbWFya1RhYixcbiAgICAgICAgICByZW1hcmtEZXRhaWxzLFxuICAgICAgICAgIHJlbWFya0ZpbGV0cmVlLFxuICAgICAgICAgIHJlbWFya0ljb24sXG4gICAgICAgICAgcmVtYXJrQmFkZ2UsXG4gICAgICAgICAgcmVtYXJrQnV0dG9uLFxuICAgICAgICAgIHJlbWFya0FiYnIsXG4gICAgICAgICAgcmVtYXJrR2l0aHViQ2FsbG91dCxcbiAgICAgICAgICBbXG4gICAgICAgICAgICByZW1hcmtJbWFnZSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZmlsZVBhdGg6IHJlc29sdmUoY29uZmlnLnJvb3QsIGRvYy5fbWV0YS5maWxlUGF0aCksXG4gICAgICAgICAgICAgIHJvb3Q6IGNvbmZpZy5yb290LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIHJlbWFya0Fuc2ksXG4gICAgICAgICAgcmVtYXJrTWVybWFpZCxcbiAgICAgICAgICByZW1hcmtNZWRpYSxcbiAgICAgICAgICByZW1hcmtUb2MsXG4gICAgICAgICAgcmVtYXJrTnBtLFxuICAgICAgICAgIHJlbWFya0NvZGVUYWJzLFxuICAgICAgICAgIHJlbWFya1N0ZXBzLFxuICAgICAgICAgIHJlbWFya0N1c3RvbUhlYWRpbmdJZCxcbiAgICAgICAgICAvLyBSdW4gbGFzdDogYW55dGhpbmcgc3RpbGwgdHlwZWQgYXMgYSBkaXJlY3RpdmUgYWZ0ZXIgZXZlcnkgaGFuZGxlclxuICAgICAgICAgIC8vIGFib3ZlIGlzIHVuaW50ZW5kZWQgKGUuZy4gYDMuMjoxYCwgYHBvcnQ6ODA4MGApIOKAlCBwYXNzdGhyb3VnaCBhc1xuICAgICAgICAgIC8vIHBsYWluIHRleHQgc28gaXQgZG9lc24ndCByZW5kZXIgYXMgYW4gZW1wdHkgc3Bhbi9kaXYuXG4gICAgICAgICAgcmVtYXJrUGFzc3Rocm91Z2hEaXJlY3RpdmUsXG4gICAgICAgIF0sXG4gICAgICAgIHJlaHlwZVBsdWdpbnM6IFtcbiAgICAgICAgICBbXG4gICAgICAgICAgICByZWh5cGVTaGlraSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGhlbWVzOiB7XG4gICAgICAgICAgICAgICAgbGlnaHQ6IGNvbmZpZy5jb2RlVGhlbWVMaWdodCxcbiAgICAgICAgICAgICAgICBkYXJrOiBjb25maWcuY29kZVRoZW1lRGFyayxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgLy8gRGFya2VuIGNhdHBwdWNjaW4tbGF0dGUncyBncmVlbiAodGhlIGNvbG91ciB1c2VkIGZvciBzdHJpbmdzIGFuZFxuICAgICAgICAgICAgICAvLyBzb21lIGNvbW1lbnRzKSDigJQgdGhlIHRoZW1lIGRlZmF1bHQgIzQwQTAyQiBsYW5kcyBhdCAzLjI6MSBvbiB0aGVcbiAgICAgICAgICAgICAgLy8gY29kZS1ibG9jayBiYWNrZ3JvdW5kLCBiZWxvdyB0aGUgV0NBRyBBQSA0LjU6MSB0aHJlc2hvbGQuXG4gICAgICAgICAgICAgIGNvbG9yUmVwbGFjZW1lbnRzOiB7XG4gICAgICAgICAgICAgICAgXCJjYXRwcHVjY2luLWxhdHRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiIzQwYTAyYlwiOiBcIiMyYTdlMTZcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB0cmFuc2Zvcm1lcnM6IFtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm1lclR3b3NsYXNoKHsgZXhwbGljaXRUcmlnZ2VyOiB0cnVlIH0pLFxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybWVySWNvbigpLFxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybWVyTm90YXRpb25zKCksXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtZXJMaW5lSGlnaGxpZ2h0KCksXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIHBhcnNlTWV0YVN0cmluZzogKG1ldGE6IHN0cmluZykgPT4gKHsgXCJkYXRhLW1ldGFcIjogbWV0YSB9KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICByZWh5cGVJbmxpbmVDb2RlLFxuICAgICAgICAgIHJlaHlwZVNsdWcsXG4gICAgICAgICAgcmVoeXBlS2F0ZXgsXG4gICAgICAgICAgcmVoeXBlVGFza0xpc3RBMTF5LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICApXG4gICAgY29uc3QgdG9jSXRlbXMgPSBleHRyYWN0VG9jKGNvbnRlbnQpXG4gICAgY29uc3Qgc2VhcmNoVGV4dCA9IGV4dHJhY3RTZWFyY2hUZXh0KGNvbnRlbnQpXG4gICAgY29uc3QgbGFzdFVwZGF0ZWQgPSBnZXRMYXN0VXBkYXRlZChkb2MuX21ldGEuZmlsZVBhdGgpXG4gICAgY29uc3QgaW1hZ2UgPSBkb2MuaW1hZ2VcbiAgICAgID8gcmVzb2x2ZUFzc2V0UGF0aChkb2MuaW1hZ2UsIGZpbGVQYXRoLCBjb25maWcucm9vdClcbiAgICAgIDogdW5kZWZpbmVkXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmRvYyxcbiAgICAgIGZpbGU6IGRvYy5fbWV0YS5maWxlUGF0aCxcbiAgICAgIGxhc3RVcGRhdGVkLFxuICAgICAgaW1hZ2UsXG4gICAgICB0aXRsZSxcbiAgICAgIGljb24sXG4gICAgICBwYXRoLFxuICAgICAgdG9jSXRlbXMsXG4gICAgICBzZWFyY2hUZXh0LFxuICAgICAgbWR4LFxuICAgIH1cbiAgfSxcbn0pXG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZUNvbmZpZyh7XG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgdHNnbyBwaWNrcyB3cm9uZyBvdmVybG9hZCB3aGVuIHJlaHlwZS1zbHVnIGF1Z21lbnRzIHVuaWZpZWQgdHlwZXNcbiAgY29udGVudDogW2FydGljbGVzXSxcbn0pXG4iXX0=
|
package/target/models/config.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { Link } from "./link.js";
|
|
3
|
-
import { Patch } from "./patch.js";
|
|
4
|
-
import { Section } from "./section.js";
|
|
5
|
-
import { CodeThemeDark, CodeThemeLight } from "./theme.js";
|
|
6
|
-
export const UserConfig = z.object({
|
|
7
|
-
site: z.string().optional(),
|
|
8
|
-
favicon: z.string().optional(),
|
|
9
|
-
logo: z.string().optional(),
|
|
10
|
-
title: z.string().default("Livemark"),
|
|
11
|
-
description: z.string().default("Markdown site generator"),
|
|
12
|
-
include: z.union([z.string(), z.array(z.string())]).default("**/*.md"),
|
|
13
|
-
exclude: z.union([z.string(), z.array(z.string())]).optional(),
|
|
14
|
-
codeThemeLight: CodeThemeLight.default("catppuccin-latte"),
|
|
15
|
-
codeThemeDark: CodeThemeDark.default("catppuccin-mocha"),
|
|
16
|
-
links: z.array(Link).optional(),
|
|
17
|
-
sections: z.array(Section).optional(),
|
|
18
|
-
patches: z.array(Patch).optional(),
|
|
19
|
-
});
|
|
20
|
-
export const WebsiteConfig = UserConfig.pick({
|
|
21
|
-
title: true,
|
|
22
|
-
description: true,
|
|
23
|
-
site: true,
|
|
24
|
-
favicon: true,
|
|
25
|
-
logo: true,
|
|
26
|
-
links: true,
|
|
27
|
-
sections: true,
|
|
28
|
-
});
|
|
29
|
-
export const SystemConfig = z.object({
|
|
30
|
-
root: z.string(),
|
|
31
|
-
configPath: z.string(),
|
|
32
|
-
});
|
|
33
|
-
export const Config = UserConfig.merge(SystemConfig);
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL21vZGVscy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQTtBQUN2QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ2hDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDbEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQU0xRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNqQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMzQixPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM5QixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMzQixLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7SUFDckMsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUM7SUFDMUQsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUN0RSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDOUQsY0FBYyxFQUFFLGNBQWMsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUM7SUFDMUQsYUFBYSxFQUFFLGFBQWEsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUM7SUFDeEQsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQy9CLFFBQVEsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNyQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUU7Q0FDbkMsQ0FBQyxDQUFBO0FBSUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7SUFDM0MsS0FBSyxFQUFFLElBQUk7SUFDWCxXQUFXLEVBQUUsSUFBSTtJQUNqQixJQUFJLEVBQUUsSUFBSTtJQUNWLE9BQU8sRUFBRSxJQUFJO0lBQ2IsSUFBSSxFQUFFLElBQUk7SUFDVixLQUFLLEVBQUUsSUFBSTtJQUNYLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQyxDQUFBO0FBTUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDbkMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDaEIsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDdkIsQ0FBQyxDQUFBO0FBTUYsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiXG5pbXBvcnQgeyBMaW5rIH0gZnJvbSBcIi4vbGluay50c1wiXG5pbXBvcnQgeyBQYXRjaCB9IGZyb20gXCIuL3BhdGNoLnRzXCJcbmltcG9ydCB7IFNlY3Rpb24gfSBmcm9tIFwiLi9zZWN0aW9uLnRzXCJcbmltcG9ydCB7IENvZGVUaGVtZURhcmssIENvZGVUaGVtZUxpZ2h0IH0gZnJvbSBcIi4vdGhlbWUudHNcIlxuXG4vKipcbiAqIFVzZXItcHJvdmlkZWQgY29uZmlndXJhdGlvbiBmb3IgTGl2ZW1hcmsuXG4gKi9cbmV4cG9ydCB0eXBlIFVzZXJDb25maWcgPSB6LmluZmVyPHR5cGVvZiBVc2VyQ29uZmlnPlxuZXhwb3J0IGNvbnN0IFVzZXJDb25maWcgPSB6Lm9iamVjdCh7XG4gIHNpdGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgZmF2aWNvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBsb2dvOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHRpdGxlOiB6LnN0cmluZygpLmRlZmF1bHQoXCJMaXZlbWFya1wiKSxcbiAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkuZGVmYXVsdChcIk1hcmtkb3duIHNpdGUgZ2VuZXJhdG9yXCIpLFxuICBpbmNsdWRlOiB6LnVuaW9uKFt6LnN0cmluZygpLCB6LmFycmF5KHouc3RyaW5nKCkpXSkuZGVmYXVsdChcIioqLyoubWRcIiksXG4gIGV4Y2x1ZGU6IHoudW5pb24oW3ouc3RyaW5nKCksIHouYXJyYXkoei5zdHJpbmcoKSldKS5vcHRpb25hbCgpLFxuICBjb2RlVGhlbWVMaWdodDogQ29kZVRoZW1lTGlnaHQuZGVmYXVsdChcImNhdHBwdWNjaW4tbGF0dGVcIiksXG4gIGNvZGVUaGVtZURhcms6IENvZGVUaGVtZURhcmsuZGVmYXVsdChcImNhdHBwdWNjaW4tbW9jaGFcIiksXG4gIGxpbmtzOiB6LmFycmF5KExpbmspLm9wdGlvbmFsKCksXG4gIHNlY3Rpb25zOiB6LmFycmF5KFNlY3Rpb24pLm9wdGlvbmFsKCksXG4gIHBhdGNoZXM6IHouYXJyYXkoUGF0Y2gpLm9wdGlvbmFsKCksXG59KVxuXG4vKiogV2Vic2l0ZSBjb25maWd1cmF0aW9uIGluamVjdGVkIGF0IGJ1aWxkIHRpbWUgdmlhIFZpdGUgZGVmaW5lICovXG5leHBvcnQgdHlwZSBXZWJzaXRlQ29uZmlnID0gei5pbmZlcjx0eXBlb2YgV2Vic2l0ZUNvbmZpZz5cbmV4cG9ydCBjb25zdCBXZWJzaXRlQ29uZmlnID0gVXNlckNvbmZpZy5waWNrKHtcbiAgdGl0bGU6IHRydWUsXG4gIGRlc2NyaXB0aW9uOiB0cnVlLFxuICBzaXRlOiB0cnVlLFxuICBmYXZpY29uOiB0cnVlLFxuICBsb2dvOiB0cnVlLFxuICBsaW5rczogdHJ1ZSxcbiAgc2VjdGlvbnM6IHRydWUsXG59KVxuXG4vKipcbiAqIFN5c3RlbS1jb21wdXRlZCBjb25maWd1cmF0aW9uIGRlcml2ZWQgZnJvbSB0aGUgY29uZmlnIGZpbGUgbG9jYXRpb24uXG4gKi9cbmV4cG9ydCB0eXBlIFN5c3RlbUNvbmZpZyA9IHouaW5mZXI8dHlwZW9mIFN5c3RlbUNvbmZpZz5cbmV4cG9ydCBjb25zdCBTeXN0ZW1Db25maWcgPSB6Lm9iamVjdCh7XG4gIHJvb3Q6IHouc3RyaW5nKCksXG4gIGNvbmZpZ1BhdGg6IHouc3RyaW5nKCksXG59KVxuXG4vKipcbiAqIEZ1bGx5IHJlc29sdmVkIExpdmVtYXJrIGNvbmZpZ3VyYXRpb24uXG4gKi9cbmV4cG9ydCB0eXBlIENvbmZpZyA9IHouaW5mZXI8dHlwZW9mIENvbmZpZz5cbmV4cG9ydCBjb25zdCBDb25maWcgPSBVc2VyQ29uZmlnLm1lcmdlKFN5c3RlbUNvbmZpZylcbiJdfQ==
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { Plugin } from "vite";
|
|
2
|
-
export interface LivemarkOptions {
|
|
3
|
-
defaultsRoot: string;
|
|
4
|
-
overridesRoot: string;
|
|
5
|
-
subdirs: string[];
|
|
6
|
-
configPath: string;
|
|
7
|
-
}
|
|
8
|
-
/** Livemark dev/build integration:
|
|
9
|
-
* - Anchors every bare-specifier resolution at livemark's own location so
|
|
10
|
-
* the entire build pipeline runs inside livemark's package boundary,
|
|
11
|
-
* regardless of which file (consumer override, transitive package,
|
|
12
|
-
* livemark source) issues the import. Removes pnpm-isolation hazards
|
|
13
|
-
* without forcing peerDependencies on the consumer.
|
|
14
|
-
* - Redirects imports that land in `<defaultsRoot>/<subdir>/` to the matching
|
|
15
|
-
* user file under `<overridesRoot>/<subdir>/` when it exists.
|
|
16
|
-
* - Watches `livemark.config.ts` and `.livemark/**` so edits, additions and
|
|
17
|
-
* deletions trigger the right reload without manual restart. */
|
|
18
|
-
export declare function livemark(opts: LivemarkOptions): Plugin;
|