livemark 0.7.2 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +115 -4
- package/package.json +15 -14
- package/source/actions/changelog/build.ts +245 -0
- package/source/actions/changelog/build.unit.ts +69 -0
- package/source/actions/config/define.ts +11 -0
- package/source/actions/config/define.unit.ts +33 -0
- package/source/actions/config/load.ts +22 -0
- package/source/actions/config/load.unit.ts +30 -0
- package/source/commands/build.ts +21 -0
- package/source/commands/escape.ts +77 -0
- package/source/commands/preview.ts +25 -0
- package/source/commands/start.ts +26 -0
- package/{build/website → source}/components/Article.tsx +44 -44
- package/{build/website → source}/components/Callout.tsx +1 -1
- package/{build/website → source}/components/Layout.tsx +3 -14
- package/{build/website → source}/components/LinkButton.tsx +1 -1
- package/{build/website → source}/components/PageToolbar.tsx +21 -8
- package/{build/website → source}/components/Section.tsx +1 -1
- package/{build/website → source}/components/SectionHeader.tsx +1 -1
- package/{build/website/components/MiniSidebar.tsx → source/components/Sidebar.tsx} +21 -5
- package/{build/website/components/Sidebar.tsx → source/components/SidebarArticles.tsx} +22 -55
- package/source/components/SidebarPosts.tsx +129 -0
- package/source/components/SidebarReleases.tsx +85 -0
- package/{build/website → source}/content-collections.ts +12 -3
- package/{build/website → source}/elements/accordion.tsx +1 -1
- package/{build/website → source}/elements/alert-dialog.tsx +1 -1
- package/{build/website → source}/elements/alert.tsx +1 -1
- package/{build/website → source}/elements/aspect-ratio.tsx +1 -1
- package/{build/website → source}/elements/avatar.tsx +1 -1
- package/{build/website → source}/elements/badge.tsx +1 -1
- package/{build/website → source}/elements/breadcrumb.tsx +1 -1
- package/{build/website → source}/elements/button-group.tsx +1 -1
- package/{build/website → source}/elements/button.tsx +1 -1
- package/{build/website → source}/elements/calendar.tsx +1 -1
- package/{build/website → source}/elements/card.tsx +1 -1
- package/{build/website → source}/elements/carousel.tsx +1 -1
- package/{build/website → source}/elements/chart.tsx +1 -1
- package/{build/website → source}/elements/checkbox.tsx +1 -1
- package/{build/website → source}/elements/command.tsx +1 -1
- package/{build/website → source}/elements/context-menu.tsx +1 -1
- package/{build/website → source}/elements/dialog.tsx +1 -1
- package/{build/website → source}/elements/drawer.tsx +1 -1
- package/{build/website → source}/elements/dropdown-menu.tsx +1 -1
- package/{build/website → source}/elements/empty.tsx +1 -1
- package/{build/website → source}/elements/field.tsx +1 -1
- package/{build/website → source}/elements/hover-card.tsx +1 -1
- package/{build/website → source}/elements/input-group.tsx +1 -1
- package/{build/website → source}/elements/input-otp.tsx +1 -1
- package/{build/website → source}/elements/input.tsx +1 -1
- package/{build/website → source}/elements/item.tsx +1 -1
- package/{build/website → source}/elements/kbd.tsx +1 -1
- package/{build/website → source}/elements/label.tsx +1 -1
- package/{build/website → source}/elements/menubar.tsx +1 -1
- package/{build/website → source}/elements/native-select.tsx +1 -1
- package/{build/website → source}/elements/navigation-menu.tsx +1 -1
- package/{build/website → source}/elements/pagination.tsx +1 -1
- package/{build/website → source}/elements/popover.tsx +1 -1
- package/{build/website → source}/elements/progress.tsx +1 -1
- package/{build/website → source}/elements/radio-group.tsx +1 -1
- package/{build/website → source}/elements/resizable.tsx +1 -1
- package/{build/website → source}/elements/scroll-area.tsx +1 -1
- package/{build/website → source}/elements/select.tsx +1 -1
- package/{build/website → source}/elements/separator.tsx +1 -1
- package/{build/website → source}/elements/sheet.tsx +1 -1
- package/{build/website → source}/elements/sidebar.tsx +7 -4
- package/{build/website → source}/elements/skeleton.tsx +1 -1
- package/{build/website → source}/elements/slider.tsx +1 -1
- package/{build/website → source}/elements/spinner.tsx +1 -1
- package/{build/website → source}/elements/switch.tsx +1 -1
- package/{build/website → source}/elements/table.tsx +1 -1
- package/{build/website → source}/elements/tabs.tsx +1 -1
- package/{build/website → source}/elements/textarea.tsx +1 -1
- package/{build/website → source}/elements/toggle-group.tsx +1 -1
- package/{build/website → source}/elements/toggle.tsx +1 -1
- package/{build/website → source}/elements/tooltip.tsx +1 -1
- package/source/entrypoints/main.ts +12 -0
- package/{build/website → source}/env.d.ts +1 -1
- package/source/helpers/program.ts +6 -0
- package/{build/website → source}/helpers/section.ts +1 -1
- package/source/hooks/media.ts +29 -0
- package/source/index.ts +1 -0
- package/{build/website → source}/models/article.ts +5 -0
- package/source/models/config.ts +51 -0
- package/source/models/link.ts +11 -0
- package/source/models/patch.ts +9 -0
- package/source/models/section.ts +45 -0
- package/source/models/theme.ts +74 -0
- package/source/program.ts +18 -0
- package/source/settings.ts +6 -0
- package/{build/website → source}/vite.config.ts +14 -9
- package/{build → target}/actions/changelog/build.d.ts +1 -0
- package/target/actions/changelog/build.js +187 -0
- package/target/actions/changelog/build.unit.js +66 -0
- package/target/actions/config/define.js +8 -0
- package/target/actions/config/define.unit.js +29 -0
- package/target/actions/config/load.js +25 -0
- package/target/actions/config/load.unit.js +23 -0
- package/target/client.d.ts +1 -0
- package/target/client.js +6 -0
- package/target/commands/build.js +14 -0
- package/target/commands/escape.js +56 -0
- package/target/commands/preview.js +18 -0
- package/target/commands/start.js +19 -0
- package/target/components/Abbr.d.ts +5 -0
- package/target/components/Abbr.js +9 -0
- package/target/components/AnsiCode.d.ts +4 -0
- package/target/components/AnsiCode.js +6 -0
- package/target/components/Article.d.ts +5 -0
- package/target/components/Article.js +104 -0
- package/target/components/BackToTop.d.ts +3 -0
- package/target/components/BackToTop.js +19 -0
- package/target/components/Banner.d.ts +2 -0
- package/target/components/Banner.js +12 -0
- package/target/components/BlogIndex.d.ts +4 -0
- package/target/components/BlogIndex.js +62 -0
- package/target/components/Breadcrumbs.d.ts +1 -0
- package/target/components/Breadcrumbs.js +13 -0
- package/target/components/Callout.d.ts +8 -0
- package/target/components/Callout.js +43 -0
- package/target/components/Card.d.ts +7 -0
- package/target/components/Card.js +17 -0
- package/target/components/Cards.d.ts +4 -0
- package/target/components/Cards.js +6 -0
- package/target/components/ChangelogIndex.d.ts +4 -0
- package/target/components/ChangelogIndex.js +57 -0
- package/target/components/CodeBlock.d.ts +1 -0
- package/target/components/CodeBlock.js +47 -0
- package/target/components/CodeTabs.d.ts +6 -0
- package/target/components/CodeTabs.js +49 -0
- package/target/components/Column.d.ts +4 -0
- package/target/components/Column.js +6 -0
- package/target/components/Columns.d.ts +5 -0
- package/target/components/Columns.js +10 -0
- package/target/components/Content.d.ts +3 -0
- package/target/components/Content.js +5 -0
- package/target/components/ContentTab.d.ts +5 -0
- package/target/components/ContentTab.js +6 -0
- package/target/components/ContentTabs.d.ts +5 -0
- package/target/components/ContentTabs.js +47 -0
- package/target/components/DefaultCatchBoundary.d.ts +2 -0
- package/target/components/DefaultCatchBoundary.js +20 -0
- package/target/components/DefinitionList.d.ts +7 -0
- package/target/components/DefinitionList.js +14 -0
- package/target/components/Details.d.ts +5 -0
- package/target/components/Details.js +13 -0
- package/target/components/FileTree.d.ts +4 -0
- package/target/components/FileTree.js +17 -0
- package/target/components/Footer.d.ts +2 -0
- package/target/components/Footer.js +9 -0
- package/target/components/FootnoteRef.d.ts +3 -0
- package/target/components/FootnoteRef.js +31 -0
- package/target/components/Heading.d.ts +8 -0
- package/target/components/Heading.js +18 -0
- package/target/components/InlineBadge.d.ts +5 -0
- package/target/components/InlineBadge.js +7 -0
- package/target/components/InlineIcon.d.ts +5 -0
- package/target/components/InlineIcon.js +10 -0
- package/target/components/InlineToc.d.ts +4 -0
- package/target/components/InlineToc.js +14 -0
- package/target/components/Layout.d.ts +4 -0
- package/target/components/Layout.js +65 -0
- package/target/components/LinkButton.d.ts +7 -0
- package/target/components/LinkButton.js +11 -0
- package/target/components/Mermaid.d.ts +4 -0
- package/target/components/Mermaid.js +8 -0
- package/target/components/MermaidRenderer.d.ts +4 -0
- package/target/components/MermaidRenderer.js +32 -0
- package/target/components/NotFound.d.ts +3 -0
- package/target/components/NotFound.js +10 -0
- package/target/components/PackageTabs.d.ts +9 -0
- package/target/components/PackageTabs.js +28 -0
- package/target/components/PageToolbar.d.ts +7 -0
- package/target/components/PageToolbar.js +34 -0
- package/target/components/PrevNext.d.ts +4 -0
- package/target/components/PrevNext.js +34 -0
- package/target/components/Search.d.ts +2 -0
- package/target/components/Search.js +16 -0
- package/target/components/SearchDialog.d.ts +5 -0
- package/target/components/SearchDialog.js +139 -0
- package/target/components/Section.d.ts +5 -0
- package/target/components/Section.js +8 -0
- package/target/components/SectionHeader.d.ts +7 -0
- package/target/components/SectionHeader.js +7 -0
- package/target/components/Sidebar.d.ts +4 -0
- package/target/components/Sidebar.js +33 -0
- package/target/components/SidebarArticles.d.ts +2 -0
- package/target/components/SidebarArticles.js +45 -0
- package/target/components/SidebarLinks.d.ts +4 -0
- package/target/components/SidebarLinks.js +26 -0
- package/target/components/SidebarPosts.d.ts +2 -0
- package/target/components/SidebarPosts.js +53 -0
- package/target/components/SidebarReleases.d.ts +2 -0
- package/target/components/SidebarReleases.js +35 -0
- package/target/components/SidebarSections.d.ts +4 -0
- package/target/components/SidebarSections.js +36 -0
- package/target/components/SiteTitle.d.ts +2 -0
- package/target/components/SiteTitle.js +12 -0
- package/target/components/SortableTable.d.ts +5 -0
- package/target/components/SortableTable.js +63 -0
- package/target/components/SoundCloud.d.ts +4 -0
- package/target/components/SoundCloud.js +7 -0
- package/target/components/TagIndex.d.ts +5 -0
- package/target/components/TagIndex.js +64 -0
- package/target/components/Theme.d.ts +1 -0
- package/target/components/Theme.js +21 -0
- package/target/components/Toc.d.ts +12 -0
- package/target/components/Toc.js +128 -0
- package/target/components/YouTube.d.ts +4 -0
- package/target/components/YouTube.js +6 -0
- package/target/components/ZoomImage.d.ts +4 -0
- package/target/components/ZoomImage.js +26 -0
- package/target/content/article.d.ts +43 -0
- package/target/content/article.js +54 -0
- package/target/content/tag.d.ts +2 -0
- package/target/content/tag.js +30 -0
- package/target/content-collections.d.ts +2 -0
- package/target/content-collections.js +200 -0
- package/target/elements/accordion.d.ts +6 -0
- package/target/elements/accordion.js +19 -0
- package/target/elements/alert-dialog.d.ts +18 -0
- package/target/elements/alert-dialog.js +44 -0
- package/target/elements/alert.d.ts +9 -0
- package/target/elements/alert.js +28 -0
- package/target/elements/aspect-ratio.d.ts +4 -0
- package/target/elements/aspect-ratio.js +9 -0
- package/target/elements/avatar.d.ts +11 -0
- package/target/elements/avatar.js +23 -0
- package/target/elements/badge.d.ts +7 -0
- package/target/elements/badge.js +34 -0
- package/target/elements/breadcrumb.d.ts +9 -0
- package/target/elements/breadcrumb.js +39 -0
- package/target/elements/button-group.d.ts +10 -0
- package/target/elements/button-group.js +37 -0
- package/target/elements/button.d.ts +8 -0
- package/target/elements/button.js +35 -0
- package/target/elements/calendar.d.ts +10 -0
- package/target/elements/calendar.js +76 -0
- package/target/elements/card.d.ts +11 -0
- package/target/elements/card.js +25 -0
- package/target/elements/carousel.d.ts +28 -0
- package/target/elements/carousel.js +95 -0
- package/target/elements/chart.d.ts +44 -0
- package/target/elements/chart.js +140 -0
- package/target/elements/checkbox.d.ts +3 -0
- package/target/elements/checkbox.js +9 -0
- package/target/elements/collapsible.d.ts +5 -0
- package/target/elements/collapsible.js +13 -0
- package/target/elements/command.d.ts +23 -0
- package/target/elements/command.js +42 -0
- package/target/elements/context-menu.d.ts +29 -0
- package/target/elements/context-menu.js +54 -0
- package/target/elements/dialog.d.ts +16 -0
- package/target/elements/dialog.js +41 -0
- package/target/elements/direction.d.ts +1 -0
- package/target/elements/direction.js +2 -0
- package/target/elements/drawer.d.ts +12 -0
- package/target/elements/drawer.js +38 -0
- package/target/elements/dropdown-menu.d.ts +24 -0
- package/target/elements/dropdown-menu.js +54 -0
- package/target/elements/empty.d.ts +11 -0
- package/target/elements/empty.js +34 -0
- package/target/elements/field.d.ts +24 -0
- package/target/elements/field.js +69 -0
- package/target/elements/hover-card.d.ts +5 -0
- package/target/elements/hover-card.js +14 -0
- package/target/elements/input-group.d.ts +18 -0
- package/target/elements/input-group.js +60 -0
- package/target/elements/input-otp.d.ts +11 -0
- package/target/elements/input-otp.js +21 -0
- package/target/elements/input.d.ts +2 -0
- package/target/elements/input.js +8 -0
- package/target/elements/item.d.ts +21 -0
- package/target/elements/item.js +79 -0
- package/target/elements/kbd.d.ts +3 -0
- package/target/elements/kbd.js +10 -0
- package/target/elements/label.d.ts +2 -0
- package/target/elements/label.js +8 -0
- package/target/elements/menubar.d.ts +29 -0
- package/target/elements/menubar.js +58 -0
- package/target/elements/native-select.d.ts +8 -0
- package/target/elements/native-select.js +16 -0
- package/target/elements/navigation-menu.d.ts +11 -0
- package/target/elements/navigation-menu.js +34 -0
- package/target/elements/pagination.d.ts +17 -0
- package/target/elements/pagination.js +33 -0
- package/target/elements/popover.d.ts +9 -0
- package/target/elements/popover.js +23 -0
- package/target/elements/progress.d.ts +7 -0
- package/target/elements/progress.js +21 -0
- package/target/elements/radio-group.d.ts +5 -0
- package/target/elements/radio-group.js +12 -0
- package/target/elements/resizable.d.ts +7 -0
- package/target/elements/resizable.js +14 -0
- package/target/elements/scroll-area.d.ts +4 -0
- package/target/elements/scroll-area.js +13 -0
- package/target/elements/select.d.ts +15 -0
- package/target/elements/select.js +39 -0
- package/target/elements/separator.d.ts +3 -0
- package/target/elements/separator.js +8 -0
- package/target/elements/sheet.d.ts +13 -0
- package/target/elements/sheet.js +41 -0
- package/target/elements/sidebar.d.ts +63 -0
- package/target/elements/sidebar.js +272 -0
- package/target/elements/skeleton.d.ts +2 -0
- package/target/elements/skeleton.js +7 -0
- package/target/elements/slider.d.ts +3 -0
- package/target/elements/slider.js +15 -0
- package/target/elements/sonner.d.ts +3 -0
- package/target/elements/sonner.js +23 -0
- package/target/elements/spinner.d.ts +2 -0
- package/target/elements/spinner.js +8 -0
- package/target/elements/switch.d.ts +5 -0
- package/target/elements/switch.js +8 -0
- package/target/elements/table.d.ts +9 -0
- package/target/elements/table.js +28 -0
- package/target/elements/tabs.d.ts +10 -0
- package/target/elements/tabs.js +29 -0
- package/target/elements/textarea.d.ts +2 -0
- package/target/elements/textarea.js +7 -0
- package/target/elements/toggle-group.d.ts +10 -0
- package/target/elements/toggle-group.js +24 -0
- package/target/elements/toggle.d.ts +8 -0
- package/target/elements/toggle.js +26 -0
- package/target/elements/tooltip.d.ts +6 -0
- package/target/elements/tooltip.js +18 -0
- package/target/entrypoints/main.js +12 -0
- package/target/helpers/article-icon.d.ts +3 -0
- package/target/helpers/article-icon.js +34 -0
- package/target/helpers/article.d.ts +24 -0
- package/target/helpers/article.js +73 -0
- package/target/helpers/changelog-source.d.ts +7 -0
- package/target/helpers/changelog-source.js +16 -0
- package/target/helpers/changelog-source.unit.d.ts +1 -0
- package/target/helpers/changelog-source.unit.js +33 -0
- package/target/helpers/dynamic-icon-resolver.d.ts +5 -0
- package/target/helpers/dynamic-icon-resolver.js +17 -0
- package/target/helpers/dynamic-icon.d.ts +5 -0
- package/target/helpers/dynamic-icon.js +8 -0
- package/target/helpers/favicon.d.ts +2 -0
- package/target/helpers/favicon.js +11 -0
- package/target/helpers/model.d.ts +3 -0
- package/target/helpers/model.js +4 -0
- package/target/helpers/program.js +5 -0
- package/target/helpers/resolve-asset-path.d.ts +2 -0
- package/target/helpers/resolve-asset-path.js +9 -0
- package/target/helpers/resolve-includes.d.ts +2 -0
- package/target/helpers/resolve-includes.js +113 -0
- package/target/helpers/resolve-includes.unit.d.ts +1 -0
- package/target/helpers/resolve-includes.unit.js +76 -0
- package/target/helpers/search-text.d.ts +2 -0
- package/target/helpers/search-text.js +16 -0
- package/target/helpers/section.d.ts +13 -0
- package/target/helpers/section.js +39 -0
- package/target/helpers/section.unit.d.ts +1 -0
- package/target/helpers/section.unit.js +62 -0
- package/target/helpers/theme.d.ts +5 -0
- package/target/helpers/theme.js +23 -0
- package/target/helpers/toc-context.d.ts +5 -0
- package/target/helpers/toc-context.js +8 -0
- package/target/helpers/toc.d.ts +3 -0
- package/target/helpers/toc.js +41 -0
- package/target/helpers/toc.unit.d.ts +1 -0
- package/target/helpers/toc.unit.js +65 -0
- package/target/hooks/in-view.d.ts +4 -0
- package/target/hooks/in-view.js +23 -0
- package/target/hooks/media.d.ts +6 -0
- package/target/hooks/media.js +25 -0
- package/target/index.js +2 -0
- package/target/models/article.d.ts +58 -0
- package/target/models/article.js +21 -0
- package/{build → target}/models/config.d.ts +10 -0
- package/target/models/config.js +34 -0
- package/target/models/link.js +9 -0
- package/{build → target}/models/patch.d.ts +5 -0
- package/target/models/patch.js +7 -0
- package/target/models/section.js +26 -0
- package/target/models/theme.js +73 -0
- package/target/models/toc.d.ts +5 -0
- package/target/models/toc.js +2 -0
- package/target/plugins/rehype-inline-code.d.ts +19 -0
- package/target/plugins/rehype-inline-code.js +55 -0
- package/target/plugins/rehype-task-list-a11y.d.ts +10 -0
- package/target/plugins/rehype-task-list-a11y.js +29 -0
- package/target/plugins/remark-abbr.d.ts +6 -0
- package/target/plugins/remark-abbr.js +39 -0
- package/target/plugins/remark-abbr.unit.d.ts +1 -0
- package/target/plugins/remark-abbr.unit.js +79 -0
- package/target/plugins/remark-ansi.d.ts +8 -0
- package/target/plugins/remark-ansi.js +239 -0
- package/target/plugins/remark-ansi.unit.d.ts +1 -0
- package/target/plugins/remark-ansi.unit.js +134 -0
- package/target/plugins/remark-badge.d.ts +6 -0
- package/target/plugins/remark-badge.js +43 -0
- package/target/plugins/remark-badge.unit.d.ts +1 -0
- package/target/plugins/remark-badge.unit.js +76 -0
- package/target/plugins/remark-button.d.ts +6 -0
- package/target/plugins/remark-button.js +52 -0
- package/target/plugins/remark-button.unit.d.ts +1 -0
- package/target/plugins/remark-button.unit.js +105 -0
- package/target/plugins/remark-callout.d.ts +4 -0
- package/target/plugins/remark-callout.js +39 -0
- package/target/plugins/remark-card.d.ts +4 -0
- package/target/plugins/remark-card.js +66 -0
- package/target/plugins/remark-code-tabs.d.ts +4 -0
- package/target/plugins/remark-code-tabs.js +72 -0
- package/target/plugins/remark-columns.d.ts +4 -0
- package/target/plugins/remark-columns.js +54 -0
- package/target/plugins/remark-custom-heading-id.d.ts +14 -0
- package/target/plugins/remark-custom-heading-id.js +54 -0
- package/target/plugins/remark-custom-heading-id.unit.d.ts +1 -0
- package/target/plugins/remark-custom-heading-id.unit.js +91 -0
- package/target/plugins/remark-deflist.d.ts +4 -0
- package/target/plugins/remark-deflist.js +31 -0
- package/target/plugins/remark-details.d.ts +4 -0
- package/target/plugins/remark-details.js +33 -0
- package/target/plugins/remark-filetree.d.ts +12 -0
- package/target/plugins/remark-filetree.js +61 -0
- package/target/plugins/remark-filetree.unit.d.ts +1 -0
- package/target/plugins/remark-filetree.unit.js +87 -0
- package/target/plugins/remark-github-callout.d.ts +4 -0
- package/target/plugins/remark-github-callout.js +62 -0
- package/target/plugins/remark-icon.d.ts +4 -0
- package/target/plugins/remark-icon.js +36 -0
- package/target/plugins/remark-image.d.ts +9 -0
- package/target/plugins/remark-image.js +26 -0
- package/target/plugins/remark-media.d.ts +6 -0
- package/target/plugins/remark-media.js +52 -0
- package/target/plugins/remark-media.unit.d.ts +1 -0
- package/target/plugins/remark-media.unit.js +54 -0
- package/target/plugins/remark-mermaid.d.ts +4 -0
- package/target/plugins/remark-mermaid.js +20 -0
- package/target/plugins/remark-npm.d.ts +4 -0
- package/target/plugins/remark-npm.js +32 -0
- package/target/plugins/remark-steps.d.ts +6 -0
- package/target/plugins/remark-steps.js +30 -0
- package/target/plugins/remark-steps.unit.d.ts +1 -0
- package/target/plugins/remark-steps.unit.js +65 -0
- package/target/plugins/remark-tab.d.ts +6 -0
- package/target/plugins/remark-tab.js +76 -0
- package/target/plugins/remark-tab.unit.d.ts +1 -0
- package/target/plugins/remark-tab.unit.js +156 -0
- package/target/plugins/remark-toc.d.ts +6 -0
- package/target/plugins/remark-toc.js +33 -0
- package/target/plugins/remark-toc.unit.d.ts +1 -0
- package/target/plugins/remark-toc.unit.js +57 -0
- package/target/plugins/shiki-icon.d.ts +16 -0
- package/target/plugins/shiki-icon.js +66 -0
- package/target/plugins/shiki-line-highlight.d.ts +27 -0
- package/target/plugins/shiki-line-highlight.js +140 -0
- package/target/plugins/vite-livemark.d.ts +13 -0
- package/target/plugins/vite-livemark.js +76 -0
- package/target/program.js +18 -0
- package/target/routeTree.gen.d.ts +57 -0
- package/target/routeTree.gen.js +27 -0
- package/target/router.d.ts +6 -0
- package/target/router.js +26 -0
- package/target/routes/$.d.ts +1 -0
- package/target/routes/$.js +85 -0
- package/target/routes/__root.d.ts +1 -0
- package/target/routes/__root.js +69 -0
- package/target/server.d.ts +2 -0
- package/target/server.js +7 -0
- package/target/settings.js +7 -0
- package/target/utils/style.d.ts +2 -0
- package/target/utils/style.js +6 -0
- package/target/vite.config.d.ts +2 -0
- package/target/vite.config.js +67 -0
- package/build/actions/changelog/build.js +0 -158
- package/build/actions/changelog/build.unit.js +0 -66
- package/build/actions/config/define.js +0 -8
- package/build/actions/config/define.unit.js +0 -29
- package/build/actions/config/load.js +0 -25
- package/build/actions/config/load.unit.js +0 -23
- package/build/commands/build.js +0 -14
- package/build/commands/escape.js +0 -56
- package/build/commands/preview.js +0 -18
- package/build/commands/start.js +0 -19
- package/build/docs/markdown/includes/example.d.ts +0 -58
- package/build/docs/markdown/includes/example.js +0 -5
- package/build/entrypoints/main.js +0 -12
- package/build/helpers/program.js +0 -5
- package/build/index.js +0 -2
- package/build/livemark.config.d.ts +0 -58
- package/build/livemark.config.js +0 -25
- package/build/models/config.js +0 -34
- package/build/models/link.js +0 -9
- package/build/models/patch.js +0 -7
- package/build/models/section.js +0 -26
- package/build/models/theme.js +0 -73
- package/build/package.json +0 -138
- package/build/program.js +0 -18
- package/build/settings.js +0 -7
- package/build/vite.config.d.ts +0 -2
- package/build/vite.config.js +0 -48
- package/build/website/components/BlogSidebar.tsx +0 -162
- package/build/website/components/ChangelogSidebar.tsx +0 -120
- package/build/website/hooks/media.ts +0 -19
- package/build/website/routeTree.gen.ts +0 -86
- /package/{build/website → source}/assets/logo.svg +0 -0
- /package/{build/website → source}/client.tsx +0 -0
- /package/{build/website → source}/components/Abbr.tsx +0 -0
- /package/{build/website → source}/components/AnsiCode.tsx +0 -0
- /package/{build/website → source}/components/BackToTop.tsx +0 -0
- /package/{build/website → source}/components/Banner.tsx +0 -0
- /package/{build/website → source}/components/BlogIndex.tsx +0 -0
- /package/{build/website → source}/components/Breadcrumbs.tsx +0 -0
- /package/{build/website → source}/components/Card.tsx +0 -0
- /package/{build/website → source}/components/Cards.tsx +0 -0
- /package/{build/website → source}/components/ChangelogIndex.tsx +0 -0
- /package/{build/website → source}/components/CodeBlock.tsx +0 -0
- /package/{build/website → source}/components/CodeTabs.tsx +0 -0
- /package/{build/website → source}/components/Column.tsx +0 -0
- /package/{build/website → source}/components/Columns.tsx +0 -0
- /package/{build/website → source}/components/Content.tsx +0 -0
- /package/{build/website → source}/components/ContentTab.tsx +0 -0
- /package/{build/website → source}/components/ContentTabs.tsx +0 -0
- /package/{build/website → source}/components/DefaultCatchBoundary.tsx +0 -0
- /package/{build/website → source}/components/DefinitionList.tsx +0 -0
- /package/{build/website → source}/components/Details.tsx +0 -0
- /package/{build/website → source}/components/FileTree.tsx +0 -0
- /package/{build/website → source}/components/Footer.tsx +0 -0
- /package/{build/website → source}/components/FootnoteRef.tsx +0 -0
- /package/{build/website → source}/components/Heading.tsx +0 -0
- /package/{build/website → source}/components/InlineBadge.tsx +0 -0
- /package/{build/website → source}/components/InlineIcon.tsx +0 -0
- /package/{build/website → source}/components/InlineToc.tsx +0 -0
- /package/{build/website → source}/components/Mermaid.tsx +0 -0
- /package/{build/website → source}/components/MermaidRenderer.tsx +0 -0
- /package/{build/website → source}/components/NotFound.tsx +0 -0
- /package/{build/website → source}/components/PackageTabs.tsx +0 -0
- /package/{build/website → source}/components/PrevNext.tsx +0 -0
- /package/{build/website → source}/components/Search.tsx +0 -0
- /package/{build/website → source}/components/SearchDialog.tsx +0 -0
- /package/{build/website → source}/components/SidebarLinks.tsx +0 -0
- /package/{build/website → source}/components/SidebarSections.tsx +0 -0
- /package/{build/website → source}/components/SiteTitle.tsx +0 -0
- /package/{build/website → source}/components/SortableTable.tsx +0 -0
- /package/{build/website → source}/components/SoundCloud.tsx +0 -0
- /package/{build/website → source}/components/TagIndex.tsx +0 -0
- /package/{build/website → source}/components/Theme.tsx +0 -0
- /package/{build/website → source}/components/Toc.tsx +0 -0
- /package/{build/website → source}/components/YouTube.tsx +0 -0
- /package/{build/website → source}/components/ZoomImage.tsx +0 -0
- /package/{build/website → source}/content/article.ts +0 -0
- /package/{build/website → source}/content/tag.ts +0 -0
- /package/{build/website → source}/elements/collapsible.tsx +0 -0
- /package/{build/website → source}/elements/direction.tsx +0 -0
- /package/{build/website → source}/elements/sonner.tsx +0 -0
- /package/{build/website → source}/helpers/article-icon.ts +0 -0
- /package/{build/website → source}/helpers/article.ts +0 -0
- /package/{build/website → source}/helpers/changelog-source.ts +0 -0
- /package/{build/website → source}/helpers/changelog-source.unit.ts +0 -0
- /package/{build/website → source}/helpers/dynamic-icon-resolver.tsx +0 -0
- /package/{build/website → source}/helpers/dynamic-icon.tsx +0 -0
- /package/{build/website → source}/helpers/favicon.ts +0 -0
- /package/{build/website → source}/helpers/model.ts +0 -0
- /package/{build/website → source}/helpers/resolve-asset-path.ts +0 -0
- /package/{build/website → source}/helpers/resolve-includes.ts +0 -0
- /package/{build/website → source}/helpers/resolve-includes.unit.ts +0 -0
- /package/{build/website → source}/helpers/search-text.ts +0 -0
- /package/{build/website → source}/helpers/section.unit.ts +0 -0
- /package/{build/website → source}/helpers/theme.ts +0 -0
- /package/{build/website → source}/helpers/toc-context.ts +0 -0
- /package/{build/website → source}/helpers/toc.ts +0 -0
- /package/{build/website → source}/helpers/toc.unit.ts +0 -0
- /package/{build/website → source}/hooks/in-view.ts +0 -0
- /package/{build/website → source}/models/toc.ts +0 -0
- /package/{build/website → source}/plugins/rehype-inline-code.ts +0 -0
- /package/{build/website → source}/plugins/rehype-task-list-a11y.ts +0 -0
- /package/{build/website → source}/plugins/remark-abbr.ts +0 -0
- /package/{build/website → source}/plugins/remark-abbr.unit.ts +0 -0
- /package/{build/website → source}/plugins/remark-ansi.ts +0 -0
- /package/{build/website → source}/plugins/remark-ansi.unit.ts +0 -0
- /package/{build/website → source}/plugins/remark-badge.ts +0 -0
- /package/{build/website → source}/plugins/remark-badge.unit.ts +0 -0
- /package/{build/website → source}/plugins/remark-button.ts +0 -0
- /package/{build/website → source}/plugins/remark-button.unit.ts +0 -0
- /package/{build/website → source}/plugins/remark-callout.ts +0 -0
- /package/{build/website → source}/plugins/remark-card.ts +0 -0
- /package/{build/website → source}/plugins/remark-code-tabs.ts +0 -0
- /package/{build/website → source}/plugins/remark-columns.ts +0 -0
- /package/{build/website → source}/plugins/remark-custom-heading-id.ts +0 -0
- /package/{build/website → source}/plugins/remark-custom-heading-id.unit.ts +0 -0
- /package/{build/website → source}/plugins/remark-deflist.ts +0 -0
- /package/{build/website → source}/plugins/remark-details.ts +0 -0
- /package/{build/website → source}/plugins/remark-filetree.ts +0 -0
- /package/{build/website → source}/plugins/remark-filetree.unit.ts +0 -0
- /package/{build/website → source}/plugins/remark-github-callout.ts +0 -0
- /package/{build/website → source}/plugins/remark-icon.ts +0 -0
- /package/{build/website → source}/plugins/remark-image.ts +0 -0
- /package/{build/website → source}/plugins/remark-media.ts +0 -0
- /package/{build/website → source}/plugins/remark-media.unit.ts +0 -0
- /package/{build/website → source}/plugins/remark-mermaid.ts +0 -0
- /package/{build/website → source}/plugins/remark-npm.ts +0 -0
- /package/{build/website → source}/plugins/remark-steps.ts +0 -0
- /package/{build/website → source}/plugins/remark-steps.unit.ts +0 -0
- /package/{build/website → source}/plugins/remark-tab.ts +0 -0
- /package/{build/website → source}/plugins/remark-tab.unit.ts +0 -0
- /package/{build/website → source}/plugins/remark-toc.ts +0 -0
- /package/{build/website → source}/plugins/remark-toc.unit.ts +0 -0
- /package/{build/website → source}/plugins/shiki-icon.ts +0 -0
- /package/{build/website → source}/plugins/shiki-line-highlight.ts +0 -0
- /package/{build/website → source}/plugins/vite-livemark.ts +0 -0
- /package/{build/website → source}/router.tsx +0 -0
- /package/{build/website → source}/routes/$.tsx +0 -0
- /package/{build/website → source}/routes/__root.tsx +0 -0
- /package/{build/website → source}/server.ts +0 -0
- /package/{build/website → source}/styles/general.css +0 -0
- /package/{build/website → source}/styles/markdown.css +0 -0
- /package/{build/website/helpers → source/utils}/style.ts +0 -0
- /package/{build → target}/actions/changelog/build.unit.d.ts +0 -0
- /package/{build → target}/actions/config/define.d.ts +0 -0
- /package/{build → target}/actions/config/define.unit.d.ts +0 -0
- /package/{build → target}/actions/config/load.d.ts +0 -0
- /package/{build → target}/actions/config/load.unit.d.ts +0 -0
- /package/{build → target}/commands/build.d.ts +0 -0
- /package/{build → target}/commands/escape.d.ts +0 -0
- /package/{build → target}/commands/preview.d.ts +0 -0
- /package/{build → target}/commands/start.d.ts +0 -0
- /package/{build → target}/entrypoints/main.d.ts +0 -0
- /package/{build → target}/helpers/program.d.ts +0 -0
- /package/{build → target}/index.d.ts +0 -0
- /package/{build → target}/models/link.d.ts +0 -0
- /package/{build → target}/models/section.d.ts +0 -0
- /package/{build → target}/models/theme.d.ts +0 -0
- /package/{build → target}/program.d.ts +0 -0
- /package/{build → target}/settings.d.ts +0 -0
|
@@ -0,0 +1,13 @@
|
|
|
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
|
+
* - Redirects imports that land in `<defaultsRoot>/<subdir>/` to the matching
|
|
10
|
+
* user file under `<overridesRoot>/<subdir>/` when it exists.
|
|
11
|
+
* - Watches `livemark.config.ts` and `.livemark/**` so edits, additions and
|
|
12
|
+
* deletions trigger the right reload without manual restart. */
|
|
13
|
+
export declare function livemark(opts: LivemarkOptions): Plugin;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
/** Livemark dev/build integration:
|
|
4
|
+
* - Redirects imports that land in `<defaultsRoot>/<subdir>/` to the matching
|
|
5
|
+
* user file under `<overridesRoot>/<subdir>/` when it exists.
|
|
6
|
+
* - Watches `livemark.config.ts` and `.livemark/**` so edits, additions and
|
|
7
|
+
* deletions trigger the right reload without manual restart. */
|
|
8
|
+
export function livemark(opts) {
|
|
9
|
+
const EXT_RE = /\.(tsx|ts|jsx|js|css)(\?|$)/;
|
|
10
|
+
return {
|
|
11
|
+
name: "livemark",
|
|
12
|
+
enforce: "pre",
|
|
13
|
+
async resolveId(id, importer, options) {
|
|
14
|
+
if (!importer || !EXT_RE.test(id))
|
|
15
|
+
return null;
|
|
16
|
+
const resolved = await this.resolve(id, importer, {
|
|
17
|
+
...options,
|
|
18
|
+
skipSelf: true,
|
|
19
|
+
});
|
|
20
|
+
if (!resolved)
|
|
21
|
+
return null;
|
|
22
|
+
const queryIdx = resolved.id.indexOf("?");
|
|
23
|
+
const path = queryIdx === -1 ? resolved.id : resolved.id.slice(0, queryIdx);
|
|
24
|
+
const query = queryIdx === -1 ? "" : resolved.id.slice(queryIdx);
|
|
25
|
+
for (const subdir of opts.subdirs) {
|
|
26
|
+
const defaultsSubdir = `${join(opts.defaultsRoot, subdir)}/`;
|
|
27
|
+
if (!path.startsWith(defaultsSubdir))
|
|
28
|
+
continue;
|
|
29
|
+
const rel = path.slice(defaultsSubdir.length);
|
|
30
|
+
const userPath = join(opts.overridesRoot, subdir, rel);
|
|
31
|
+
if (existsSync(userPath))
|
|
32
|
+
return userPath + query;
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
return null;
|
|
36
|
+
},
|
|
37
|
+
configureServer(server) {
|
|
38
|
+
server.watcher.add(opts.configPath);
|
|
39
|
+
server.watcher.add(join(opts.overridesRoot, "**/*"));
|
|
40
|
+
const overrideRoots = opts.subdirs.map(subdir => `${join(opts.overridesRoot, subdir)}/`);
|
|
41
|
+
const routesRoot = `${join(opts.overridesRoot, "routes")}/`;
|
|
42
|
+
const onChange = (file) => {
|
|
43
|
+
if (file === opts.configPath) {
|
|
44
|
+
server.restart();
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
if (file.startsWith(routesRoot)) {
|
|
48
|
+
server.restart();
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
for (let i = 0; i < opts.subdirs.length; i++) {
|
|
52
|
+
const root = overrideRoots[i];
|
|
53
|
+
if (!root || !file.startsWith(root))
|
|
54
|
+
continue;
|
|
55
|
+
const rel = file.slice(root.length);
|
|
56
|
+
const subdir = opts.subdirs[i];
|
|
57
|
+
if (!subdir)
|
|
58
|
+
continue;
|
|
59
|
+
const defaultPath = join(opts.defaultsRoot, subdir, rel);
|
|
60
|
+
const mod = server.moduleGraph.getModuleById(defaultPath);
|
|
61
|
+
if (mod)
|
|
62
|
+
server.moduleGraph.invalidateModule(mod);
|
|
63
|
+
server.ws.send({ type: "full-reload" });
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
server.watcher.on("add", onChange);
|
|
68
|
+
server.watcher.on("unlink", onChange);
|
|
69
|
+
server.watcher.on("change", file => {
|
|
70
|
+
if (file === opts.configPath)
|
|
71
|
+
server.restart();
|
|
72
|
+
});
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS1saXZlbWFyay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9wbHVnaW5zL3ZpdGUtbGl2ZW1hcmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUNwQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBVWhDOzs7O2tFQUlrRTtBQUNsRSxNQUFNLFVBQVUsUUFBUSxDQUFDLElBQXFCO0lBQzVDLE1BQU0sTUFBTSxHQUFHLDZCQUE2QixDQUFBO0lBQzVDLE9BQU87UUFDTCxJQUFJLEVBQUUsVUFBVTtRQUNoQixPQUFPLEVBQUUsS0FBSztRQUNkLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPO1lBQ25DLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFBRSxPQUFPLElBQUksQ0FBQTtZQUM5QyxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRTtnQkFDaEQsR0FBRyxPQUFPO2dCQUNWLFFBQVEsRUFBRSxJQUFJO2FBQ2YsQ0FBQyxDQUFBO1lBQ0YsSUFBSSxDQUFDLFFBQVE7Z0JBQUUsT0FBTyxJQUFJLENBQUE7WUFDMUIsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDekMsTUFBTSxJQUFJLEdBQ1IsUUFBUSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUE7WUFDaEUsTUFBTSxLQUFLLEdBQUcsUUFBUSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxF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QTtvQkFDdkMsT0FBTTtnQkFDUixDQUFDO1lBQ0gsQ0FBQyxDQUFBO1lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFBO1lBQ2xDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQTtZQUNyQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUU7Z0JBQ2pDLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxVQUFVO29CQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtZQUNoRCxDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUM7S0FDRixDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tIFwibm9kZTpmc1wiXG5pbXBvcnQgeyBqb2luIH0gZnJvbSBcIm5vZGU6cGF0aFwiXG5pbXBvcnQgdHlwZSB7IFBsdWdpbiB9IGZyb20gXCJ2aXRlXCJcblxuZXhwb3J0IGludGVyZmFjZSBMaXZlbWFya09wdGlvbnMge1xuICBkZWZhdWx0c1Jvb3Q6IHN0cmluZ1xuICBvdmVycmlkZXNSb290OiBzdHJpbmdcbiAgc3ViZGlyczogc3RyaW5nW11cbiAgY29uZmlnUGF0aDogc3RyaW5nXG59XG5cbi8qKiBMaXZlbWFyayBkZXYvYnVpbGQgaW50ZWdyYXRpb246XG4gKiAtIFJlZGlyZWN0cyBpbXBvcnRzIHRoYXQgbGFuZCBpbiBgPGRlZmF1bHRzUm9vdD4vPHN1YmRpcj4vYCB0byB0aGUgbWF0Y2hpbmdcbiAqICAgdXNlciBmaWxlIHVuZGVyIGA8b3ZlcnJpZGVzUm9vdD4vPHN1YmRpcj4vYCB3aGVuIGl0IGV4aXN0cy5cbiAqIC0gV2F0Y2hlcyBgbGl2ZW1hcmsuY29uZmlnLnRzYCBhbmQgYC5saXZlbWFyay8qKmAgc28gZWRpdHMsIGFkZGl0aW9ucyBhbmRcbiAqICAgZGVsZXRpb25zIHRyaWdnZXIgdGhlIHJpZ2h0IHJlbG9hZCB3aXRob3V0IG1hbnVhbCByZXN0YXJ0LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxpdmVtYXJrKG9wdHM6IExpdmVtYXJrT3B0aW9ucyk6IFBsdWdpbiB7XG4gIGNvbnN0IEVYVF9SRSA9IC9cXC4odHN4fHRzfGpzeHxqc3xjc3MpKFxcP3wkKS9cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBcImxpdmVtYXJrXCIsXG4gICAgZW5mb3JjZTogXCJwcmVcIixcbiAgICBhc3luYyByZXNvbHZlSWQoaWQsIGltcG9ydGVyLCBvcHRpb25zKSB7XG4gICAgICBpZiAoIWltcG9ydGVyIHx8ICFFWFRfUkUudGVzdChpZCkpIHJldHVybiBudWxsXG4gICAgICBjb25zdCByZXNvbHZlZCA9IGF3YWl0IHRoaXMucmVzb2x2ZShpZCwgaW1wb3J0ZXIsIHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgc2tpcFNlbGY6IHRydWUsXG4gICAgICB9KVxuICAgICAgaWYgKCFyZXNvbHZlZCkgcmV0dXJuIG51bGxcbiAgICAgIGNvbnN0IHF1ZXJ5SWR4ID0gcmVzb2x2ZWQuaWQuaW5kZXhPZihcIj9cIilcbiAgICAgIGNvbnN0IHBhdGggPVxuICAgICAgICBxdWVyeUlkeCA9PT0gLTEgPyByZXNvbHZlZC5pZCA6IHJlc29sdmVkLmlkLnNsaWNlKDAsIHF1ZXJ5SWR4KVxuICAgICAgY29uc3QgcXVlcnkgPSBxdWVyeUlkeCA9PT0gLTEgPyBcIlwiIDogcmVzb2x2ZWQuaWQuc2xpY2UocXVlcnlJZHgpXG4gICAgICBmb3IgKGNvbnN0IHN1YmRpciBvZiBvcHRzLnN1YmRpcnMpIHtcbiAgICAgICAgY29uc3QgZGVmYXVsdHNTdWJkaXIgPSBgJHtqb2luKG9wdHMuZGVmYXVsdHNSb290LCBzdWJkaXIpfS9gXG4gICAgICAgIGlmICghcGF0aC5zdGFydHNXaXRoKGRlZmF1bHRzU3ViZGlyKSkgY29udGludWVcbiAgICAgICAgY29uc3QgcmVsID0gcGF0aC5zbGljZShkZWZhdWx0c1N1YmRpci5sZW5ndGgpXG4gICAgICAgIGNvbnN0IHVzZXJQYXRoID0gam9pbihvcHRzLm92ZXJyaWRlc1Jvb3QsIHN1YmRpciwgcmVsKVxuICAgICAgICBpZiAoZXhpc3RzU3luYyh1c2VyUGF0aCkpIHJldHVybiB1c2VyUGF0aCArIHF1ZXJ5XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH0sXG4gICAgY29uZmlndXJlU2VydmVyKHNlcnZlcikge1xuICAgICAgc2VydmVyLndhdGNoZXIuYWRkKG9wdHMuY29uZmlnUGF0aClcbiAgICAgIHNlcnZlci53YXRjaGVyLmFkZChqb2luKG9wdHMub3ZlcnJpZGVzUm9vdCwgXCIqKi8qXCIpKVxuXG4gICAgICBjb25zdCBvdmVycmlkZVJvb3RzID0gb3B0cy5zdWJkaXJzLm1hcChcbiAgICAgICAgc3ViZGlyID0+IGAke2pvaW4ob3B0cy5vdmVycmlkZXNSb290LCBzdWJkaXIpfS9gLFxuICAgICAgKVxuICAgICAgY29uc3Qgcm91dGVzUm9vdCA9IGAke2pvaW4ob3B0cy5vdmVycmlkZXNSb290LCBcInJvdXRlc1wiKX0vYFxuXG4gICAgICBjb25zdCBvbkNoYW5nZSA9IChmaWxlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKGZpbGUgPT09IG9wdHMuY29uZmlnUGF0aCkge1xuICAgICAgICAgIHNlcnZlci5yZXN0YXJ0KClcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWxlLnN0YXJ0c1dpdGgocm91dGVzUm9vdCkpIHtcbiAgICAgICAgICBzZXJ2ZXIucmVzdGFydCgpXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9wdHMuc3ViZGlycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGNvbnN0IHJvb3QgPSBvdmVycmlkZVJvb3RzW2ldXG4gICAgICAgICAgaWYgKCFyb290IHx8ICFmaWxlLnN0YXJ0c1dpdGgocm9vdCkpIGNvbnRpbnVlXG4gICAgICAgICAgY29uc3QgcmVsID0gZmlsZS5zbGljZShyb290Lmxlbmd0aClcbiAgICAgICAgICBjb25zdCBzdWJkaXIgPSBvcHRzLnN1YmRpcnNbaV1cbiAgICAgICAgICBpZiAoIXN1YmRpcikgY29udGludWVcbiAgICAgICAgICBjb25zdCBkZWZhdWx0UGF0aCA9IGpvaW4ob3B0cy5kZWZhdWx0c1Jvb3QsIHN1YmRpciwgcmVsKVxuICAgICAgICAgIGNvbnN0IG1vZCA9IHNlcnZlci5tb2R1bGVHcmFwaC5nZXRNb2R1bGVCeUlkKGRlZmF1bHRQYXRoKVxuICAgICAgICAgIGlmIChtb2QpIHNlcnZlci5tb2R1bGVHcmFwaC5pbnZhbGlkYXRlTW9kdWxlKG1vZClcbiAgICAgICAgICBzZXJ2ZXIud3Muc2VuZCh7IHR5cGU6IFwiZnVsbC1yZWxvYWRcIiB9KVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHNlcnZlci53YXRjaGVyLm9uKFwiYWRkXCIsIG9uQ2hhbmdlKVxuICAgICAgc2VydmVyLndhdGNoZXIub24oXCJ1bmxpbmtcIiwgb25DaGFuZ2UpXG4gICAgICBzZXJ2ZXIud2F0Y2hlci5vbihcImNoYW5nZVwiLCBmaWxlID0+IHtcbiAgICAgICAgaWYgKGZpbGUgPT09IG9wdHMuY29uZmlnUGF0aCkgc2VydmVyLnJlc3RhcnQoKVxuICAgICAgfSlcbiAgICB9LFxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { build } from "./commands/build.js";
|
|
3
|
+
import { escape } from "./commands/escape.js";
|
|
4
|
+
import { preview } from "./commands/preview.js";
|
|
5
|
+
import { start } from "./commands/start.js";
|
|
6
|
+
import { helpConfiguration } from "./helpers/program.js";
|
|
7
|
+
import packageJson from "../package.json" with { type: "json" };
|
|
8
|
+
export const program = new Command()
|
|
9
|
+
.name("livemark")
|
|
10
|
+
.description("Livemark static site generator")
|
|
11
|
+
.version(packageJson.version, "-v, --version", "display the livemark version")
|
|
12
|
+
.option("-c, --config <path>", "path to config file")
|
|
13
|
+
.configureHelp(helpConfiguration)
|
|
14
|
+
.addCommand(start)
|
|
15
|
+
.addCommand(build)
|
|
16
|
+
.addCommand(preview)
|
|
17
|
+
.addCommand(escape);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3JhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9wcm9ncmFtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDbkMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDL0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3hELE9BQU8sV0FBVyxNQUFNLGlCQUFpQixDQUFDLE9BQU8sSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFBO0FBRS9ELE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sRUFBRTtLQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDO0tBQ2hCLFdBQVcsQ0FBQyxnQ0FBZ0MsQ0FBQztLQUM3QyxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsOEJBQThCLENBQUM7S0FDN0UsTUFBTSxDQUFDLHFCQUFxQixFQUFFLHFCQUFxQixDQUFDO0tBQ3BELGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQztLQUNoQyxVQUFVLENBQUMsS0FBSyxDQUFDO0tBQ2pCLFVBQVUsQ0FBQyxLQUFLLENBQUM7S0FDakIsVUFBVSxDQUFDLE9BQU8sQ0FBQztLQUNuQixVQUFVLENBQUMsTUFBTSxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tYW5kIH0gZnJvbSBcImNvbW1hbmRlclwiXG5pbXBvcnQgeyBidWlsZCB9IGZyb20gXCIuL2NvbW1hbmRzL2J1aWxkLnRzXCJcbmltcG9ydCB7IGVzY2FwZSB9IGZyb20gXCIuL2NvbW1hbmRzL2VzY2FwZS50c1wiXG5pbXBvcnQgeyBwcmV2aWV3IH0gZnJvbSBcIi4vY29tbWFuZHMvcHJldmlldy50c1wiXG5pbXBvcnQgeyBzdGFydCB9IGZyb20gXCIuL2NvbW1hbmRzL3N0YXJ0LnRzXCJcbmltcG9ydCB7IGhlbHBDb25maWd1cmF0aW9uIH0gZnJvbSBcIi4vaGVscGVycy9wcm9ncmFtLnRzXCJcbmltcG9ydCBwYWNrYWdlSnNvbiBmcm9tIFwiLi4vcGFja2FnZS5qc29uXCIgd2l0aCB7IHR5cGU6IFwianNvblwiIH1cblxuZXhwb3J0IGNvbnN0IHByb2dyYW0gPSBuZXcgQ29tbWFuZCgpXG4gIC5uYW1lKFwibGl2ZW1hcmtcIilcbiAgLmRlc2NyaXB0aW9uKFwiTGl2ZW1hcmsgc3RhdGljIHNpdGUgZ2VuZXJhdG9yXCIpXG4gIC52ZXJzaW9uKHBhY2thZ2VKc29uLnZlcnNpb24sIFwiLXYsIC0tdmVyc2lvblwiLCBcImRpc3BsYXkgdGhlIGxpdmVtYXJrIHZlcnNpb25cIilcbiAgLm9wdGlvbihcIi1jLCAtLWNvbmZpZyA8cGF0aD5cIiwgXCJwYXRoIHRvIGNvbmZpZyBmaWxlXCIpXG4gIC5jb25maWd1cmVIZWxwKGhlbHBDb25maWd1cmF0aW9uKVxuICAuYWRkQ29tbWFuZChzdGFydClcbiAgLmFkZENvbW1hbmQoYnVpbGQpXG4gIC5hZGRDb21tYW5kKHByZXZpZXcpXG4gIC5hZGRDb21tYW5kKGVzY2FwZSlcbiJdfQ==
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Route as rootRouteImport } from './routes/__root';
|
|
2
|
+
import { Route as splatRouteImport } from './routes/$';
|
|
3
|
+
import { Route as IndexRouteImport } from './../.livemark/routes/index';
|
|
4
|
+
declare const splatRoute: any;
|
|
5
|
+
declare const IndexRoute: any;
|
|
6
|
+
export interface FileRoutesByFullPath {
|
|
7
|
+
'/': typeof IndexRoute;
|
|
8
|
+
'/$': typeof splatRoute;
|
|
9
|
+
}
|
|
10
|
+
export interface FileRoutesByTo {
|
|
11
|
+
'/': typeof IndexRoute;
|
|
12
|
+
'/$': typeof splatRoute;
|
|
13
|
+
}
|
|
14
|
+
export interface FileRoutesById {
|
|
15
|
+
__root__: typeof rootRouteImport;
|
|
16
|
+
'/': typeof IndexRoute;
|
|
17
|
+
'/$': typeof splatRoute;
|
|
18
|
+
}
|
|
19
|
+
export interface FileRouteTypes {
|
|
20
|
+
fileRoutesByFullPath: FileRoutesByFullPath;
|
|
21
|
+
fullPaths: '/' | '/$';
|
|
22
|
+
fileRoutesByTo: FileRoutesByTo;
|
|
23
|
+
to: '/' | '/$';
|
|
24
|
+
id: '__root__' | '/' | '/$';
|
|
25
|
+
fileRoutesById: FileRoutesById;
|
|
26
|
+
}
|
|
27
|
+
export interface RootRouteChildren {
|
|
28
|
+
IndexRoute: typeof IndexRoute;
|
|
29
|
+
splatRoute: typeof splatRoute;
|
|
30
|
+
}
|
|
31
|
+
declare module '@tanstack/react-router' {
|
|
32
|
+
interface FileRoutesByPath {
|
|
33
|
+
'/$': {
|
|
34
|
+
id: '/$';
|
|
35
|
+
path: '/$';
|
|
36
|
+
fullPath: '/$';
|
|
37
|
+
preLoaderRoute: typeof splatRouteImport;
|
|
38
|
+
parentRoute: typeof rootRouteImport;
|
|
39
|
+
};
|
|
40
|
+
'/': {
|
|
41
|
+
id: '/';
|
|
42
|
+
path: '/';
|
|
43
|
+
fullPath: '/';
|
|
44
|
+
preLoaderRoute: typeof IndexRouteImport;
|
|
45
|
+
parentRoute: typeof rootRouteImport;
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
export declare const routeTree: any;
|
|
50
|
+
import type { getRouter } from './router.tsx';
|
|
51
|
+
declare module '@tanstack/react-start' {
|
|
52
|
+
interface Register {
|
|
53
|
+
ssr: true;
|
|
54
|
+
router: Awaited<ReturnType<typeof getRouter>>;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
// @ts-nocheck
|
|
3
|
+
// noinspection JSUnusedGlobalSymbols
|
|
4
|
+
// This file was automatically generated by TanStack Router.
|
|
5
|
+
// You should NOT make any changes in this file as it will be overwritten.
|
|
6
|
+
// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.
|
|
7
|
+
import { Route as rootRouteImport } from './routes/__root';
|
|
8
|
+
import { Route as splatRouteImport } from './routes/$';
|
|
9
|
+
import { Route as IndexRouteImport } from './../.livemark/routes/index';
|
|
10
|
+
const splatRoute = splatRouteImport.update({
|
|
11
|
+
id: '/$',
|
|
12
|
+
path: '/$',
|
|
13
|
+
getParentRoute: () => rootRouteImport,
|
|
14
|
+
});
|
|
15
|
+
const IndexRoute = IndexRouteImport.update({
|
|
16
|
+
id: '/',
|
|
17
|
+
path: '/',
|
|
18
|
+
getParentRoute: () => rootRouteImport,
|
|
19
|
+
});
|
|
20
|
+
const rootRouteChildren = {
|
|
21
|
+
IndexRoute: IndexRoute,
|
|
22
|
+
splatRoute: splatRoute,
|
|
23
|
+
};
|
|
24
|
+
export const routeTree = rootRouteImport
|
|
25
|
+
._addFileChildren(rootRouteChildren)
|
|
26
|
+
._addFileTypes();
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVUcmVlLmdlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9yb3V0ZVRyZWUuZ2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9CQUFvQjtBQUVwQixjQUFjO0FBRWQscUNBQXFDO0FBRXJDLDREQUE0RDtBQUM1RCwwRUFBMEU7QUFDMUUsa0lBQWtJO0FBRWxJLE9BQU8sRUFBRSxLQUFLLElBQUksZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDMUQsT0FBTyxFQUFFLEtBQUssSUFBSSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUN0RCxPQUFPLEVBQUUsS0FBSyxJQUFJLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFFdkUsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO0lBQ3pDLEVBQUUsRUFBRSxJQUFJO0lBQ1IsSUFBSSxFQUFFLElBQUk7SUFDVixjQUFjLEVBQUUsR0FBRyxFQUFFLENBQUMsZUFBZTtDQUMvQixDQUFDLENBQUE7QUFDVCxNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7SUFDekMsRUFBRSxFQUFFLEdBQUc7SUFDUCxJQUFJLEVBQUUsR0FBRztJQUNULGNBQWMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxlQUFlO0NBQy9CLENBQUMsQ0FBQTtBQStDVCxNQUFNLGlCQUFpQixHQUFzQjtJQUMzQyxVQUFVLEVBQUUsVUFBVTtJQUN0QixVQUFVLEVBQUUsVUFBVTtDQUN2QixDQUFBO0FBQ0QsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLGVBQWU7S0FDckMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUM7S0FDbkMsYUFBYSxFQUFrQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgKi9cblxuLy8gQHRzLW5vY2hlY2tcblxuLy8gbm9pbnNwZWN0aW9uIEpTVW51c2VkR2xvYmFsU3ltYm9sc1xuXG4vLyBUaGlzIGZpbGUgd2FzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IFRhblN0YWNrIFJvdXRlci5cbi8vIFlvdSBzaG91bGQgTk9UIG1ha2UgYW55IGNoYW5nZXMgaW4gdGhpcyBmaWxlIGFzIGl0IHdpbGwgYmUgb3ZlcndyaXR0ZW4uXG4vLyBBZGRpdGlvbmFsbHksIHlvdSBzaG91bGQgYWxzbyBleGNsdWRlIHRoaXMgZmlsZSBmcm9tIHlvdXIgbGludGVyIGFuZC9vciBmb3JtYXR0ZXIgdG8gcHJldmVudCBpdCBmcm9tIGJlaW5nIGNoZWNrZWQgb3IgbW9kaWZpZWQuXG5cbmltcG9ydCB7IFJvdXRlIGFzIHJvb3RSb3V0ZUltcG9ydCB9IGZyb20gJy4vcm91dGVzL19fcm9vdCdcbmltcG9ydCB7IFJvdXRlIGFzIHNwbGF0Um91dGVJbXBvcnQgfSBmcm9tICcuL3JvdXRlcy8kJ1xuaW1wb3J0IHsgUm91dGUgYXMgSW5kZXhSb3V0ZUltcG9ydCB9IGZyb20gJy4vLi4vLmxpdmVtYXJrL3JvdXRlcy9pbmRleCdcblxuY29uc3Qgc3BsYXRSb3V0ZSA9IHNwbGF0Um91dGVJbXBvcnQudXBkYXRlKHtcbiAgaWQ6ICcvJCcsXG4gIHBhdGg6ICcvJCcsXG4gIGdldFBhcmVudFJvdXRlOiAoKSA9PiByb290Um91dGVJbXBvcnQsXG59IGFzIGFueSlcbmNvbnN0IEluZGV4Um91dGUgPSBJbmRleFJvdXRlSW1wb3J0LnVwZGF0ZSh7XG4gIGlkOiAnLycsXG4gIHBhdGg6ICcvJyxcbiAgZ2V0UGFyZW50Um91dGU6ICgpID0+IHJvb3RSb3V0ZUltcG9ydCxcbn0gYXMgYW55KVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVSb3V0ZXNCeUZ1bGxQYXRoIHtcbiAgJy8nOiB0eXBlb2YgSW5kZXhSb3V0ZVxuICAnLyQnOiB0eXBlb2Ygc3BsYXRSb3V0ZVxufVxuZXhwb3J0IGludGVyZmFjZSBGaWxlUm91dGVzQnlUbyB7XG4gICcvJzogdHlwZW9mIEluZGV4Um91dGVcbiAgJy8kJzogdHlwZW9mIHNwbGF0Um91dGVcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVJvdXRlc0J5SWQge1xuICBfX3Jvb3RfXzogdHlwZW9mIHJvb3RSb3V0ZUltcG9ydFxuICAnLyc6IHR5cGVvZiBJbmRleFJvdXRlXG4gICcvJCc6IHR5cGVvZiBzcGxhdFJvdXRlXG59XG5leHBvcnQgaW50ZXJmYWNlIEZpbGVSb3V0ZVR5cGVzIHtcbiAgZmlsZVJvdXRlc0J5RnVsbFBhdGg6IEZpbGVSb3V0ZXNCeUZ1bGxQYXRoXG4gIGZ1bGxQYXRoczogJy8nIHwgJy8kJ1xuICBmaWxlUm91dGVzQnlUbzogRmlsZVJvdXRlc0J5VG9cbiAgdG86ICcvJyB8ICcvJCdcbiAgaWQ6ICdfX3Jvb3RfXycgfCAnLycgfCAnLyQnXG4gIGZpbGVSb3V0ZXNCeUlkOiBGaWxlUm91dGVzQnlJZFxufVxuZXhwb3J0IGludGVyZmFjZSBSb290Um91dGVDaGlsZHJlbiB7XG4gIEluZGV4Um91dGU6IHR5cGVvZiBJbmRleFJvdXRlXG4gIHNwbGF0Um91dGU6IHR5cGVvZiBzcGxhdFJvdXRlXG59XG5cbmRlY2xhcmUgbW9kdWxlICdAdGFuc3RhY2svcmVhY3Qtcm91dGVyJyB7XG4gIGludGVyZmFjZSBGaWxlUm91dGVzQnlQYXRoIHtcbiAgICAnLyQnOiB7XG4gICAgICBpZDogJy8kJ1xuICAgICAgcGF0aDogJy8kJ1xuICAgICAgZnVsbFBhdGg6ICcvJCdcbiAgICAgIHByZUxvYWRlclJvdXRlOiB0eXBlb2Ygc3BsYXRSb3V0ZUltcG9ydFxuICAgICAgcGFyZW50Um91dGU6IHR5cGVvZiByb290Um91dGVJbXBvcnRcbiAgICB9XG4gICAgJy8nOiB7XG4gICAgICBpZDogJy8nXG4gICAgICBwYXRoOiAnLydcbiAgICAgIGZ1bGxQYXRoOiAnLydcbiAgICAgIHByZUxvYWRlclJvdXRlOiB0eXBlb2YgSW5kZXhSb3V0ZUltcG9ydFxuICAgICAgcGFyZW50Um91dGU6IHR5cGVvZiByb290Um91dGVJbXBvcnRcbiAgICB9XG4gIH1cbn1cblxuY29uc3Qgcm9vdFJvdXRlQ2hpbGRyZW46IFJvb3RSb3V0ZUNoaWxkcmVuID0ge1xuICBJbmRleFJvdXRlOiBJbmRleFJvdXRlLFxuICBzcGxhdFJvdXRlOiBzcGxhdFJvdXRlLFxufVxuZXhwb3J0IGNvbnN0IHJvdXRlVHJlZSA9IHJvb3RSb3V0ZUltcG9ydFxuICAuX2FkZEZpbGVDaGlsZHJlbihyb290Um91dGVDaGlsZHJlbilcbiAgLl9hZGRGaWxlVHlwZXM8RmlsZVJvdXRlVHlwZXM+KClcblxuaW1wb3J0IHR5cGUgeyBnZXRSb3V0ZXIgfSBmcm9tICcuL3JvdXRlci50c3gnXG5pbXBvcnQgdHlwZSB7IGNyZWF0ZVN0YXJ0IH0gZnJvbSAnQHRhbnN0YWNrL3JlYWN0LXN0YXJ0J1xuZGVjbGFyZSBtb2R1bGUgJ0B0YW5zdGFjay9yZWFjdC1zdGFydCcge1xuICBpbnRlcmZhY2UgUmVnaXN0ZXIge1xuICAgIHNzcjogdHJ1ZVxuICAgIHJvdXRlcjogQXdhaXRlZDxSZXR1cm5UeXBlPHR5cGVvZiBnZXRSb3V0ZXI+PlxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function getRouter(): import("@tanstack/router-core").RouterCore<any, "always", false, import("@tanstack/history").RouterHistory, Record<string, any>>;
|
|
2
|
+
declare module "@tanstack/react-router" {
|
|
3
|
+
interface Register {
|
|
4
|
+
router: ReturnType<typeof getRouter>;
|
|
5
|
+
}
|
|
6
|
+
}
|
package/target/router.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { QueryClient } from "@tanstack/react-query";
|
|
3
|
+
import { createRouter } from "@tanstack/react-router";
|
|
4
|
+
import { setupRouterSsrQueryIntegration } from "@tanstack/react-router-ssr-query";
|
|
5
|
+
import { DefaultCatchBoundary } from "./components/DefaultCatchBoundary.js";
|
|
6
|
+
import { NotFound } from "./components/NotFound.js";
|
|
7
|
+
import { routeTree } from "./routeTree.gen.js";
|
|
8
|
+
export function getRouter() {
|
|
9
|
+
const queryClient = new QueryClient();
|
|
10
|
+
const router = createRouter({
|
|
11
|
+
routeTree,
|
|
12
|
+
context: { queryClient },
|
|
13
|
+
trailingSlash: "always",
|
|
14
|
+
defaultPreload: "intent",
|
|
15
|
+
defaultViewTransition: true,
|
|
16
|
+
defaultErrorComponent: DefaultCatchBoundary,
|
|
17
|
+
defaultNotFoundComponent: () => _jsx(NotFound, {}),
|
|
18
|
+
scrollRestoration: true,
|
|
19
|
+
});
|
|
20
|
+
setupRouterSsrQueryIntegration({
|
|
21
|
+
router,
|
|
22
|
+
queryClient,
|
|
23
|
+
});
|
|
24
|
+
return router;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc291cmNlL3JvdXRlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDckQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDakYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0NBQXVDLENBQUE7QUFDNUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDBCQUEyQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUU5QyxNQUFNLFVBQVUsU0FBUztJQUN2QixNQUFNLFdBQVcsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFBO0lBRXJDLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQztRQUMxQixTQUFTO1FBQ1QsT0FBTyxFQUFFLEVBQUUsV0FBVyxFQUFFO1FBQ3hCLGFBQWEsRUFBRSxRQUFRO1FBQ3ZCLGNBQWMsRUFBRSxRQUFRO1FBQ3hCLHFCQUFxQixFQUFFLElBQUk7UUFDM0IscUJBQXFCLEVBQUUsb0JBQW9CO1FBQzNDLHdCQUF3QixFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUMsUUFBUSxLQUFHO1FBQzVDLGlCQUFpQixFQUFFLElBQUk7S0FDeEIsQ0FBQyxDQUFBO0lBRUYsOEJBQThCLENBQUM7UUFDN0IsTUFBTTtRQUNOLFdBQVc7S0FDWixDQUFDLENBQUE7SUFFRixPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWVyeUNsaWVudCB9IGZyb20gXCJAdGFuc3RhY2svcmVhY3QtcXVlcnlcIlxuaW1wb3J0IHsgY3JlYXRlUm91dGVyIH0gZnJvbSBcIkB0YW5zdGFjay9yZWFjdC1yb3V0ZXJcIlxuaW1wb3J0IHsgc2V0dXBSb3V0ZXJTc3JRdWVyeUludGVncmF0aW9uIH0gZnJvbSBcIkB0YW5zdGFjay9yZWFjdC1yb3V0ZXItc3NyLXF1ZXJ5XCJcbmltcG9ydCB7IERlZmF1bHRDYXRjaEJvdW5kYXJ5IH0gZnJvbSBcIi4vY29tcG9uZW50cy9EZWZhdWx0Q2F0Y2hCb3VuZGFyeS50c3hcIlxuaW1wb3J0IHsgTm90Rm91bmQgfSBmcm9tIFwiLi9jb21wb25lbnRzL05vdEZvdW5kLnRzeFwiXG5pbXBvcnQgeyByb3V0ZVRyZWUgfSBmcm9tIFwiLi9yb3V0ZVRyZWUuZ2VuLnRzXCJcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJvdXRlcigpIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSBuZXcgUXVlcnlDbGllbnQoKVxuXG4gIGNvbnN0IHJvdXRlciA9IGNyZWF0ZVJvdXRlcih7XG4gICAgcm91dGVUcmVlLFxuICAgIGNvbnRleHQ6IHsgcXVlcnlDbGllbnQgfSxcbiAgICB0cmFpbGluZ1NsYXNoOiBcImFsd2F5c1wiLFxuICAgIGRlZmF1bHRQcmVsb2FkOiBcImludGVudFwiLFxuICAgIGRlZmF1bHRWaWV3VHJhbnNpdGlvbjogdHJ1ZSxcbiAgICBkZWZhdWx0RXJyb3JDb21wb25lbnQ6IERlZmF1bHRDYXRjaEJvdW5kYXJ5LFxuICAgIGRlZmF1bHROb3RGb3VuZENvbXBvbmVudDogKCkgPT4gPE5vdEZvdW5kIC8+LFxuICAgIHNjcm9sbFJlc3RvcmF0aW9uOiB0cnVlLFxuICB9KVxuXG4gIHNldHVwUm91dGVyU3NyUXVlcnlJbnRlZ3JhdGlvbih7XG4gICAgcm91dGVyLFxuICAgIHF1ZXJ5Q2xpZW50LFxuICB9KVxuXG4gIHJldHVybiByb3V0ZXJcbn1cblxuZGVjbGFyZSBtb2R1bGUgXCJAdGFuc3RhY2svcmVhY3Qtcm91dGVyXCIge1xuICBpbnRlcmZhY2UgUmVnaXN0ZXIge1xuICAgIHJvdXRlcjogUmV0dXJuVHlwZTx0eXBlb2YgZ2V0Um91dGVyPlxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const Route: import("@tanstack/router-core").Route<import("@tanstack/react-router").Register, any, "/$", "/$", "/$", "/$", undefined, import("@tanstack/react-router").ResolveParams<"/$">, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, ({ params }: import("@tanstack/router-core").LoaderFnContext<import("@tanstack/react-router").Register, any, "/$", import("@tanstack/react-router").ResolveParams<"/$">, {}, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, unknown, undefined>) => any, unknown, unknown, unknown, unknown, undefined>;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createFileRoute, notFound, redirect } from "@tanstack/react-router";
|
|
3
|
+
import { currentSection, firstArticle, homeArticle, sortedArticles, } from "../content/article.js";
|
|
4
|
+
import { sectionTags } from "../content/tag.js";
|
|
5
|
+
import { Article } from "../components/Article.js";
|
|
6
|
+
import { BlogIndex } from "../components/BlogIndex.js";
|
|
7
|
+
import { ChangelogIndex } from "../components/ChangelogIndex.js";
|
|
8
|
+
import { TagIndex } from "../components/TagIndex.js";
|
|
9
|
+
import markdownCss from "../styles/markdown.css?url";
|
|
10
|
+
export const Route = createFileRoute("/$")({
|
|
11
|
+
loader: ({ params }) => {
|
|
12
|
+
if (!params._splat) {
|
|
13
|
+
if (homeArticle)
|
|
14
|
+
return { ...homeArticle, sidebar: homeArticle.sidebar };
|
|
15
|
+
if (!firstArticle)
|
|
16
|
+
throw notFound();
|
|
17
|
+
throw redirect({
|
|
18
|
+
to: "/$",
|
|
19
|
+
params: { _splat: firstArticle.path.replace(/^\/|\/$/g, "") },
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
const splat = `/${params._splat}/`;
|
|
23
|
+
const article = sortedArticles.find(a => a.path === splat);
|
|
24
|
+
if (article)
|
|
25
|
+
return article;
|
|
26
|
+
const section = currentSection(splat);
|
|
27
|
+
if (section?.type === "changelog" && section.prefix === splat) {
|
|
28
|
+
return {
|
|
29
|
+
changelogIndex: true,
|
|
30
|
+
sectionPrefix: section.prefix,
|
|
31
|
+
title: section.title,
|
|
32
|
+
sidebar: true,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
if (section?.type === "blog") {
|
|
36
|
+
if (section.prefix === splat) {
|
|
37
|
+
return {
|
|
38
|
+
blogIndex: true,
|
|
39
|
+
sectionPrefix: section.prefix,
|
|
40
|
+
title: section.title,
|
|
41
|
+
sidebar: true,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
const tagMatch = splat.match(new RegExp(`^${section.prefix}tags/([^/]+)/$`));
|
|
45
|
+
const tag = tagMatch?.[1];
|
|
46
|
+
if (tag) {
|
|
47
|
+
const tagMap = sectionTags.get(section.prefix);
|
|
48
|
+
if (tagMap?.has(tag)) {
|
|
49
|
+
return {
|
|
50
|
+
tagPage: true,
|
|
51
|
+
sectionPrefix: section.prefix,
|
|
52
|
+
tag,
|
|
53
|
+
title: `Posts tagged '${tag}'`,
|
|
54
|
+
sidebar: true,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
throw notFound();
|
|
60
|
+
},
|
|
61
|
+
head: ({ loaderData }) => ({
|
|
62
|
+
meta: [
|
|
63
|
+
...(loaderData ? [{ title: loaderData.title }] : []),
|
|
64
|
+
...("description" in loaderData && loaderData.description
|
|
65
|
+
? [{ name: "description", content: loaderData.description }]
|
|
66
|
+
: []),
|
|
67
|
+
],
|
|
68
|
+
links: [{ rel: "stylesheet", href: markdownCss }],
|
|
69
|
+
}),
|
|
70
|
+
component: Component,
|
|
71
|
+
});
|
|
72
|
+
function Component() {
|
|
73
|
+
const data = Route.useLoaderData();
|
|
74
|
+
if ("blogIndex" in data) {
|
|
75
|
+
return _jsx(BlogIndex, { sectionPrefix: data.sectionPrefix });
|
|
76
|
+
}
|
|
77
|
+
if ("changelogIndex" in data) {
|
|
78
|
+
return _jsx(ChangelogIndex, { sectionPrefix: data.sectionPrefix });
|
|
79
|
+
}
|
|
80
|
+
if ("tagPage" in data) {
|
|
81
|
+
return _jsx(TagIndex, { sectionPrefix: data.sectionPrefix, tag: data.tag });
|
|
82
|
+
}
|
|
83
|
+
return _jsx(Article, { article: data });
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiJC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9yb3V0ZXMvJC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQzVFLE9BQU8sRUFDTCxjQUFjLEVBQ2QsWUFBWSxFQUNaLFdBQVcsRUFDWCxjQUFjLEdBQ2YsTUFBTSx1QkFBdUIsQ0FBQTtBQUM5QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDL0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDBCQUEyQixDQUFBO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNkIsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWtDLENBQUE7QUFDakUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUE0QixDQUFBO0FBQ3JELE9BQU8sV0FBVyxNQUFNLDRCQUE0QixDQUFBO0FBRXBELE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsTUFBTSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFO1FBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkIsSUFBSSxXQUFXO2dCQUFFLE9BQU8sRUFBRSxHQUFHLFdBQVcsRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFBO1lBQ3hFLElBQUksQ0FBQyxZQUFZO2dCQUFFLE1BQU0sUUFBUSxFQUFFLENBQUE7WUFDbkMsTUFBTSxRQUFRLENBQUM7Z0JBQ2IsRUFBRSxFQUFFLElBQUk7Z0JBQ1IsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsRUFBRTthQUM5RCxDQUFD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QUksQ0FBQTtJQUN6RCxDQUFDO0lBQ0QsSUFBSSxnQkFBZ0IsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUM3QixPQUFPLEtBQUMsY0FBYyxJQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxHQUFJLENBQUE7SUFDOUQsQ0FBQztJQUNELElBQUksU0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3RCLE9BQU8sS0FBQyxRQUFRLElBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLEdBQUksQ0FBQTtJQUN2RSxDQUFDO0lBQ0QsT0FBTyxLQUFDLE9BQU8sSUFBQyxPQUFPLEVBQUUsSUFBSSxHQUFJLENBQUE7QUFDbkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUZpbGVSb3V0ZSwgbm90Rm91bmQsIHJlZGlyZWN0IH0gZnJvbSBcIkB0YW5zdGFjay9yZWFjdC1yb3V0ZXJcIlxuaW1wb3J0IHtcbiAgY3VycmVudFNlY3Rpb24sXG4gIGZpcnN0QXJ0aWNsZSxcbiAgaG9tZUFydGljbGUsXG4gIHNvcnRlZEFydGljbGVzLFxufSBmcm9tIFwiLi4vY29udGVudC9hcnRpY2xlLnRzXCJcbmltcG9ydCB7IHNlY3Rpb25UYWdzIH0gZnJvbSBcIi4uL2NvbnRlbnQvdGFnLnRzXCJcbmltcG9ydCB7IEFydGljbGUgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9BcnRpY2xlLnRzeFwiXG5pbXBvcnQgeyBCbG9nSW5kZXggfSBmcm9tIFwiLi4vY29tcG9uZW50cy9CbG9nSW5kZXgudHN4XCJcbmltcG9ydCB7IENoYW5nZWxvZ0luZGV4IH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvQ2hhbmdlbG9nSW5kZXgudHN4XCJcbmltcG9ydCB7IFRhZ0luZGV4IH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvVGFnSW5kZXgudHN4XCJcbmltcG9ydCBtYXJrZG93bkNzcyBmcm9tIFwiLi4vc3R5bGVzL21hcmtkb3duLmNzcz91cmxcIlxuXG5leHBvcnQgY29uc3QgUm91dGUgPSBjcmVhdGVGaWxlUm91dGUoXCIvJFwiKSh7XG4gIGxvYWRlcjogKHsgcGFyYW1zIH0pID0+IHtcbiAgICBpZiAoIXBhcmFtcy5fc3BsYXQpIHtcbiAgICAgIGlmIChob21lQXJ0aWNsZSkgcmV0dXJuIHsgLi4uaG9tZUFydGljbGUsIHNpZGViYXI6IGhvbWVBcnRpY2xlLnNpZGViYXIgfVxuICAgICAgaWYgKCFmaXJzdEFydGljbGUpIHRocm93IG5vdEZvdW5kKClcbiAgICAgIHRocm93IHJlZGlyZWN0KHtcbiAgICAgICAgdG86IFwiLyRcIixcbiAgICAgICAgcGFyYW1zOiB7IF9zcGxhdDogZmlyc3RBcnRpY2xlLnBhdGgucmVwbGFjZSgvXlxcL3xcXC8kL2csIFwiXCIpIH0sXG4gICAgICB9KVxuICAgIH1cbiAgICBjb25zdCBzcGxhdCA9IGAvJHtwYXJhbXMuX3NwbGF0fS9gXG4gICAgY29uc3QgYXJ0aWNsZSA9IHNvcnRlZEFydGljbGVzLmZpbmQoYSA9PiBhLnBhdGggPT09IHNwbGF0KVxuICAgIGlmIChhcnRpY2xlKSByZXR1cm4gYXJ0aWNsZVxuXG4gICAgY29uc3Qgc2VjdGlvbiA9IGN1cnJlbnRTZWN0aW9uKHNwbGF0KVxuICAgIGlmIChzZWN0aW9uPy50eXBlID09PSBcImNoYW5nZWxvZ1wiICYmIHNlY3Rpb24ucHJlZml4ID09PSBzcGxhdCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY2hhbmdlbG9nSW5kZXg6IHRydWUgYXMgY29uc3QsXG4gICAgICAgIHNlY3Rpb25QcmVmaXg6IHNlY3Rpb24ucHJlZml4LFxuICAgICAgICB0aXRsZTogc2VjdGlvbi50aXRsZSxcbiAgICAgICAgc2lkZWJhcjogdHJ1ZSxcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHNlY3Rpb24/LnR5cGUgPT09IFwiYmxvZ1wiKSB7XG4gICAgICBpZiAoc2VjdGlvbi5wcmVmaXggPT09IHNwbGF0KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgYmxvZ0luZGV4OiB0cnVlIGFzIGNvbnN0LFxuICAgICAgICAgIHNlY3Rpb25QcmVmaXg6IHNlY3Rpb24ucHJlZml4LFxuICAgICAgICAgIHRpdGxlOiBzZWN0aW9uLnRpdGxlLFxuICAgICAgICAgIHNpZGViYXI6IHRydWUsXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgdGFnTWF0Y2ggPSBzcGxhdC5tYXRjaChcbiAgICAgICAgbmV3IFJlZ0V4cChgXiR7c2VjdGlvbi5wcmVmaXh9dGFncy8oW14vXSspLyRgKSxcbiAgICAgIClcbiAgICAgIGNvbnN0IHRhZyA9IHRhZ01hdGNoPy5bMV1cbiAgICAgIGlmICh0YWcpIHtcbiAgICAgICAgY29uc3QgdGFnTWFwID0gc2VjdGlvblRhZ3MuZ2V0KHNlY3Rpb24ucHJlZml4KVxuICAgICAgICBpZiAodGFnTWFwPy5oYXModGFnKSkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0YWdQYWdlOiB0cnVlIGFzIGNvbnN0LFxuICAgICAgICAgICAgc2VjdGlvblByZWZpeDogc2VjdGlvbi5wcmVmaXgsXG4gICAgICAgICAgICB0YWcsXG4gICAgICAgICAgICB0aXRsZTogYFBvc3RzIHRhZ2dlZCAnJHt0YWd9J2AsXG4gICAgICAgICAgICBzaWRlYmFyOiB0cnVlLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHRocm93IG5vdEZvdW5kKClcbiAgfSxcbiAgaGVhZDogKHsgbG9hZGVyRGF0YSB9KSA9PiAoe1xuICAgIG1ldGE6IFtcbiAgICAgIC4uLihsb2FkZXJEYXRhID8gW3sgdGl0bGU6IGxvYWRlckRhdGEudGl0bGUgfV0gOiBbXSksXG4gICAgICAuLi4oXCJkZXNjcmlwdGlvblwiIGluIGxvYWRlckRhdGEgJiYgbG9hZGVyRGF0YS5kZXNjcmlwdGlvblxuICAgICAgICA/IFt7IG5hbWU6IFwiZGVzY3JpcHRpb25cIiwgY29udGVudDogbG9hZGVyRGF0YS5kZXNjcmlwdGlvbiB9XVxuICAgICAgICA6IFtdKSxcbiAgICBdLFxuICAgIGxpbmtzOiBbeyByZWw6IFwic3R5bGVzaGVldFwiLCBocmVmOiBtYXJrZG93bkNzcyB9XSxcbiAgfSksXG4gIGNvbXBvbmVudDogQ29tcG9uZW50LFxufSlcblxuZnVuY3Rpb24gQ29tcG9uZW50KCkge1xuICBjb25zdCBkYXRhID0gUm91dGUudXNlTG9hZGVyRGF0YSgpXG4gIGlmIChcImJsb2dJbmRleFwiIGluIGRhdGEpIHtcbiAgICByZXR1cm4gPEJsb2dJbmRleCBzZWN0aW9uUHJlZml4PXtkYXRhLnNlY3Rpb25QcmVmaXh9IC8+XG4gIH1cbiAgaWYgKFwiY2hhbmdlbG9nSW5kZXhcIiBpbiBkYXRhKSB7XG4gICAgcmV0dXJuIDxDaGFuZ2Vsb2dJbmRleCBzZWN0aW9uUHJlZml4PXtkYXRhLnNlY3Rpb25QcmVmaXh9IC8+XG4gIH1cbiAgaWYgKFwidGFnUGFnZVwiIGluIGRhdGEpIHtcbiAgICByZXR1cm4gPFRhZ0luZGV4IHNlY3Rpb25QcmVmaXg9e2RhdGEuc2VjdGlvblByZWZpeH0gdGFnPXtkYXRhLnRhZ30gLz5cbiAgfVxuICByZXR1cm4gPEFydGljbGUgYXJ0aWNsZT17ZGF0YX0gLz5cbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const Route: import("@tanstack/react-router").RootRoute<import("@tanstack/react-router").Register, undefined, {}, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { TanStackDevtools } from "@tanstack/react-devtools";
|
|
3
|
+
import { ReactQueryDevtoolsPanel } from "@tanstack/react-query-devtools";
|
|
4
|
+
import { createRootRoute, HeadContent, Outlet, Scripts, useMatch, } from "@tanstack/react-router";
|
|
5
|
+
import { TanStackRouterDevtoolsPanel } from "@tanstack/react-router-devtools";
|
|
6
|
+
import { Layout } from "../components/Layout.js";
|
|
7
|
+
import { DefaultCatchBoundary } from "../components/DefaultCatchBoundary.js";
|
|
8
|
+
import { NotFound } from "../components/NotFound.js";
|
|
9
|
+
import { Toaster } from "../elements/sonner.js";
|
|
10
|
+
import { faviconType } from "../helpers/favicon.js";
|
|
11
|
+
import defaultFavicon from "../assets/logo.svg";
|
|
12
|
+
import generalCss from "../styles/general.css?url";
|
|
13
|
+
export const Route = createRootRoute({
|
|
14
|
+
head: () => {
|
|
15
|
+
const favicon = import.meta.env.CONFIG.favicon ??
|
|
16
|
+
import.meta.env.CONFIG.logo ??
|
|
17
|
+
defaultFavicon;
|
|
18
|
+
return {
|
|
19
|
+
meta: [
|
|
20
|
+
{ charSet: "utf-8" },
|
|
21
|
+
{ title: import.meta.env.CONFIG.title },
|
|
22
|
+
{ name: "description", content: import.meta.env.CONFIG.description },
|
|
23
|
+
{ property: "og:title", content: import.meta.env.CONFIG.title },
|
|
24
|
+
{
|
|
25
|
+
property: "og:description",
|
|
26
|
+
content: import.meta.env.CONFIG.description,
|
|
27
|
+
},
|
|
28
|
+
{ property: "og:site_name", content: import.meta.env.CONFIG.title },
|
|
29
|
+
{ property: "og:type", content: "website" },
|
|
30
|
+
{
|
|
31
|
+
name: "viewport",
|
|
32
|
+
content: "width=device-width, initial-scale=1",
|
|
33
|
+
},
|
|
34
|
+
],
|
|
35
|
+
links: [
|
|
36
|
+
{ rel: "icon", href: favicon, type: faviconType(favicon) },
|
|
37
|
+
{ rel: "stylesheet", href: generalCss },
|
|
38
|
+
],
|
|
39
|
+
};
|
|
40
|
+
},
|
|
41
|
+
notFoundComponent: () => _jsx(NotFound, {}),
|
|
42
|
+
errorComponent: props => {
|
|
43
|
+
return (_jsx(Document, { children: _jsx(DefaultCatchBoundary, { ...props }) }));
|
|
44
|
+
},
|
|
45
|
+
component: () => {
|
|
46
|
+
return (_jsx(Document, { children: _jsx(Outlet, {}) }));
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
function Document(props) {
|
|
50
|
+
const articleRoute = useMatch({ from: "/$", shouldThrow: false });
|
|
51
|
+
const withSidebar = articleRoute?.loaderData?.sidebar;
|
|
52
|
+
return (_jsxs("html", { lang: "en", children: [
|
|
53
|
+
_jsx("head", { children: _jsx(HeadContent, {}) }), _jsxs("body", { children: [
|
|
54
|
+
_jsx(Layout, { withSidebar: withSidebar, children: props.children }), _jsx(Toaster, { position: "top-center" }), _jsx(TanStackDevtools, { config: { hideUntilHover: true, position: "bottom-left" }, plugins: [
|
|
55
|
+
{
|
|
56
|
+
name: "TanStack Query",
|
|
57
|
+
render: _jsx(ReactQueryDevtoolsPanel, {}),
|
|
58
|
+
defaultOpen: true,
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: "TanStack Router",
|
|
62
|
+
render: _jsx(TanStackRouterDevtoolsPanel, {}),
|
|
63
|
+
defaultOpen: false,
|
|
64
|
+
},
|
|
65
|
+
] }), _jsx(Scripts, {})
|
|
66
|
+
] })
|
|
67
|
+
] }));
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX19yb290LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL3JvdXRlcy9fX3Jvb3QudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUMzRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQTtBQUN4RSxPQUFPLEVBQ0wsZUFBZSxFQUNmLFdBQVcsRUFDWCxNQUFNLEVBQ04sT0FBTyxFQUNQLFFBQVEsR0FDVCxNQUFNLHdCQUF3QixDQUFBO0FBQy9CLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBRTdFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5QkFBMEIsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBd0MsQ0FBQTtBQUM3RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTRCLENBQUE7QUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF3QixDQUFBO0FBQ2hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUNuRCxPQUFPLGNBQWMsTUFBTSxvQkFBb0IsQ0FBQTtBQUMvQyxPQUFPLFVBQVUsTUFBTSwyQkFBMkIsQ0FBQTtBQUVsRCxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsZUFBZSxDQUFDO0lBQ25DLElBQUksRUFBRSxHQUFHLEVBQUU7UUFDVCxNQUFNLE9BQU8sR0FDWCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDOUIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJO1lBQzNCLGNBQWMsQ0FBQTtRQUNoQixPQUFPO1lBQ0wsSUFBSSxFQUFFO2dCQUNKLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRTtnQkFDcEIsRUFBRSxLQUFLLEVBQUUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7Z0JBQ3ZDLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUU7Z0JBQ3BFLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7Z0JBQy9EO29CQUNFLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLE9BQU8sRUFBRSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVc7aUJBQzVDO2dCQUNELEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7Z0JBQ25FLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFO2dCQUMzQztvQkFDRSxJQUFJLEVBQUUsVUFBVTtvQkFDaEIsT0FBTyxFQUFFLHFDQUFxQztpQkFDL0M7YUFDRjtZQUNELEtBQUssRUFBRTtnQkFDTCxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUMxRCxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTthQUN4QztTQUNGLENBQUE7SUFDSCxDQUFDO0lBQ0QsaUJBQWlCLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBQyxRQUFRLEtBQUc7SUFDckMsY0FBYyxFQUFFLEtBQUssQ0FBQyxFQUFFO1FBQ3RCLE9BQU8sQ0FDTCxLQUFDLFFBQVEsY0FDUCxLQUFDLG9CQUFvQixPQUFLLEtBQUssR0FBSSxHQUMxQixDQUNaLENBQUE7SUFDSCxDQUFDO0lBQ0QsU0FBUyxFQUFFLEdBQUcsRUFBRTtRQUNkLE9BQU8sQ0FDTCxLQUFDLFFBQVEsY0FDUCxLQUFDLE1BQU0sS0FBRyxHQUNELENBQ1osQ0FBQTtJQUNILENBQUM7Q0FDRixDQUFDLENBQUE7QUFFRixTQUFTLFFBQVEsQ0FBQyxLQUFvQztJQUNwRCxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO0lBQ2pFLE1BQU0sV0FBVyxHQUFHLFlBQVksRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFBO0lBRXJELE9BQU8sQ0FDTCxnQkFBTSxJQUFJLEVBQUMsSUFBSTtZQUNiLHlCQUNFLEtBQUMsV0FBVyxLQUFHLEdBQ1YsRUFDUDtvQkFDRSxLQUFDLE1BQU0sSUFBQyxXQUFXLEVBQUUsV0FBVyxZQUFHLEtBQUssQ0FBQyxRQUFRLEdBQVUsRUFDM0QsS0FBQyxPQUFPLElBQUMsUUFBUSxFQUFDLFlBQVksR0FBRyxFQUNqQyxLQUFDLGdCQUFnQixJQUNmLE1BQU0sRUFBRSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxFQUN6RCxPQUFPLEVBQUU7NEJBQ1A7Z0NBQ0UsSUFBSSxFQUFFLGdCQUFnQjtnQ0FDdEIsTUFBTSxFQUFFLEtBQUMsdUJBQXVCLEtBQUc7Z0NBQ25DLFdBQVcsRUFBRSxJQUFJOzZCQUNsQjs0QkFDRDtnQ0FDRSxJQUFJLEVBQUUsaUJBQWlCO2dDQUN2QixNQUFNLEVBQUUsS0FBQywyQkFBMkIsS0FBRztnQ0FDdkMsV0FBVyxFQUFFLEtBQUs7NkJBQ25CO3lCQUNGLEdBQ0QsRUFDRixLQUFDLE9BQU8sS0FBRztvQkFDTjtZQUNGLENBQ1IsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYW5TdGFja0RldnRvb2xzIH0gZnJvbSBcIkB0YW5zdGFjay9yZWFjdC1kZXZ0b29sc1wiXG5pbXBvcnQgeyBSZWFjdFF1ZXJ5RGV2dG9vbHNQYW5lbCB9IGZyb20gXCJAdGFuc3RhY2svcmVhY3QtcXVlcnktZGV2dG9vbHNcIlxuaW1wb3J0IHtcbiAgY3JlYXRlUm9vdFJvdXRlLFxuICBIZWFkQ29udGVudCxcbiAgT3V0bGV0LFxuICBTY3JpcHRzLFxuICB1c2VNYXRjaCxcbn0gZnJvbSBcIkB0YW5zdGFjay9yZWFjdC1yb3V0ZXJcIlxuaW1wb3J0IHsgVGFuU3RhY2tSb3V0ZXJEZXZ0b29sc1BhbmVsIH0gZnJvbSBcIkB0YW5zdGFjay9yZWFjdC1yb3V0ZXItZGV2dG9vbHNcIlxuaW1wb3J0IHR5cGUgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgTGF5b3V0IH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvTGF5b3V0LnRzeFwiXG5pbXBvcnQgeyBEZWZhdWx0Q2F0Y2hCb3VuZGFyeSB9IGZyb20gXCIuLi9jb21wb25lbnRzL0RlZmF1bHRDYXRjaEJvdW5kYXJ5LnRzeFwiXG5pbXBvcnQgeyBOb3RGb3VuZCB9IGZyb20gXCIuLi9jb21wb25lbnRzL05vdEZvdW5kLnRzeFwiXG5pbXBvcnQgeyBUb2FzdGVyIH0gZnJvbSBcIi4uL2VsZW1lbnRzL3Nvbm5lci50c3hcIlxuaW1wb3J0IHsgZmF2aWNvblR5cGUgfSBmcm9tIFwiLi4vaGVscGVycy9mYXZpY29uLnRzXCJcbmltcG9ydCBkZWZhdWx0RmF2aWNvbiBmcm9tIFwiLi4vYXNzZXRzL2xvZ28uc3ZnXCJcbmltcG9ydCBnZW5lcmFsQ3NzIGZyb20gXCIuLi9zdHlsZXMvZ2VuZXJhbC5jc3M/dXJsXCJcblxuZXhwb3J0IGNvbnN0IFJvdXRlID0gY3JlYXRlUm9vdFJvdXRlKHtcbiAgaGVhZDogKCkgPT4ge1xuICAgIGNvbnN0IGZhdmljb24gPVxuICAgICAgaW1wb3J0Lm1ldGEuZW52LkNPTkZJRy5mYXZpY29uID8/XG4gICAgICBpbXBvcnQubWV0YS5lbnYuQ09ORklHLmxvZ28gPz9cbiAgICAgIGRlZmF1bHRGYXZpY29uXG4gICAgcmV0dXJuIHtcbiAgICAgIG1ldGE6IFtcbiAgICAgICAgeyBjaGFyU2V0OiBcInV0Zi04XCIgfSxcbiAgICAgICAgeyB0aXRsZTogaW1wb3J0Lm1ldGEuZW52LkNPTkZJRy50aXRsZSB9LFxuICAgICAgICB7IG5hbWU6IFwiZGVzY3JpcHRpb25cIiwgY29udGVudDogaW1wb3J0Lm1ldGEuZW52LkNPTkZJRy5kZXNjcmlwdGlvbiB9LFxuICAgICAgICB7IHByb3BlcnR5OiBcIm9nOnRpdGxlXCIsIGNvbnRlbnQ6IGltcG9ydC5tZXRhLmVudi5DT05GSUcudGl0bGUgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3BlcnR5OiBcIm9nOmRlc2NyaXB0aW9uXCIsXG4gICAgICAgICAgY29udGVudDogaW1wb3J0Lm1ldGEuZW52LkNPTkZJRy5kZXNjcmlwdGlvbixcbiAgICAgICAgfSxcbiAgICAgICAgeyBwcm9wZXJ0eTogXCJvZzpzaXRlX25hbWVcIiwgY29udGVudDogaW1wb3J0Lm1ldGEuZW52LkNPTkZJRy50aXRsZSB9LFxuICAgICAgICB7IHByb3BlcnR5OiBcIm9nOnR5cGVcIiwgY29udGVudDogXCJ3ZWJzaXRlXCIgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwidmlld3BvcnRcIixcbiAgICAgICAgICBjb250ZW50OiBcIndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgbGlua3M6IFtcbiAgICAgICAgeyByZWw6IFwiaWNvblwiLCBocmVmOiBmYXZpY29uLCB0eXBlOiBmYXZpY29uVHlwZShmYXZpY29uKSB9LFxuICAgICAgICB7IHJlbDogXCJzdHlsZXNoZWV0XCIsIGhyZWY6IGdlbmVyYWxDc3MgfSxcbiAgICAgIF0sXG4gICAgfVxuICB9LFxuICBub3RGb3VuZENvbXBvbmVudDogKCkgPT4gPE5vdEZvdW5kIC8+LFxuICBlcnJvckNvbXBvbmVudDogcHJvcHMgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICA8RG9jdW1lbnQ+XG4gICAgICAgIDxEZWZhdWx0Q2F0Y2hCb3VuZGFyeSB7Li4ucHJvcHN9IC8+XG4gICAgICA8L0RvY3VtZW50PlxuICAgIClcbiAgfSxcbiAgY29tcG9uZW50OiAoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxEb2N1bWVudD5cbiAgICAgICAgPE91dGxldCAvPlxuICAgICAgPC9Eb2N1bWVudD5cbiAgICApXG4gIH0sXG59KVxuXG5mdW5jdGlvbiBEb2N1bWVudChwcm9wczogeyBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlIH0pIHtcbiAgY29uc3QgYXJ0aWNsZVJvdXRlID0gdXNlTWF0Y2goeyBmcm9tOiBcIi8kXCIsIHNob3VsZFRocm93OiBmYWxzZSB9KVxuICBjb25zdCB3aXRoU2lkZWJhciA9IGFydGljbGVSb3V0ZT8ubG9hZGVyRGF0YT8uc2lkZWJhclxuXG4gIHJldHVybiAoXG4gICAgPGh0bWwgbGFuZz1cImVuXCI+XG4gICAgICA8aGVhZD5cbiAgICAgICAgPEhlYWRDb250ZW50IC8+XG4gICAgICA8L2hlYWQ+XG4gICAgICA8Ym9keT5cbiAgICAgICAgPExheW91dCB3aXRoU2lkZWJhcj17d2l0aFNpZGViYXJ9Pntwcm9wcy5jaGlsZHJlbn08L0xheW91dD5cbiAgICAgICAgPFRvYXN0ZXIgcG9zaXRpb249XCJ0b3AtY2VudGVyXCIgLz5cbiAgICAgICAgPFRhblN0YWNrRGV2dG9vbHNcbiAgICAgICAgICBjb25maWc9e3sgaGlkZVVudGlsSG92ZXI6IHRydWUsIHBvc2l0aW9uOiBcImJvdHRvbS1sZWZ0XCIgfX1cbiAgICAgICAgICBwbHVnaW5zPXtbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6IFwiVGFuU3RhY2sgUXVlcnlcIixcbiAgICAgICAgICAgICAgcmVuZGVyOiA8UmVhY3RRdWVyeURldnRvb2xzUGFuZWwgLz4sXG4gICAgICAgICAgICAgIGRlZmF1bHRPcGVuOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogXCJUYW5TdGFjayBSb3V0ZXJcIixcbiAgICAgICAgICAgICAgcmVuZGVyOiA8VGFuU3RhY2tSb3V0ZXJEZXZ0b29sc1BhbmVsIC8+LFxuICAgICAgICAgICAgICBkZWZhdWx0T3BlbjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF19XG4gICAgICAgIC8+XG4gICAgICAgIDxTY3JpcHRzIC8+XG4gICAgICA8L2JvZHk+XG4gICAgPC9odG1sPlxuICApXG59XG4iXX0=
|
package/target/server.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import handler, { createServerEntry } from "@tanstack/react-start/server-entry";
|
|
2
|
+
export default createServerEntry({
|
|
3
|
+
fetch(request) {
|
|
4
|
+
return handler.fetch(request);
|
|
5
|
+
},
|
|
6
|
+
});
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc291cmNlL3NlcnZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE9BQU8sRUFBRSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUE7QUFFL0UsZUFBZSxpQkFBaUIsQ0FBQztJQUMvQixLQUFLLENBQUMsT0FBTztRQUNYLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUMvQixDQUFDO0NBQ0YsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGhhbmRsZXIsIHsgY3JlYXRlU2VydmVyRW50cnkgfSBmcm9tIFwiQHRhbnN0YWNrL3JlYWN0LXN0YXJ0L3NlcnZlci1lbnRyeVwiXG5cbmV4cG9ydCBkZWZhdWx0IGNyZWF0ZVNlcnZlckVudHJ5KHtcbiAgZmV0Y2gocmVxdWVzdCkge1xuICAgIHJldHVybiBoYW5kbGVyLmZldGNoKHJlcXVlc3QpXG4gIH0sXG59KVxuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Sub-directories of `website/` that participate in the override mechanism. */
|
|
2
|
+
export const OVERRIDE_SUBDIRS = [
|
|
3
|
+
"components",
|
|
4
|
+
"elements",
|
|
5
|
+
"styles",
|
|
6
|
+
];
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zb3VyY2Uvc2V0dGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0ZBQWdGO0FBQ2hGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFzQjtJQUNqRCxZQUFZO0lBQ1osVUFBVTtJQUNWLFFBQVE7Q0FDVCxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIFN1Yi1kaXJlY3RvcmllcyBvZiBgd2Vic2l0ZS9gIHRoYXQgcGFydGljaXBhdGUgaW4gdGhlIG92ZXJyaWRlIG1lY2hhbmlzbS4gKi9cbmV4cG9ydCBjb25zdCBPVkVSUklERV9TVUJESVJTOiByZWFkb25seSBzdHJpbmdbXSA9IFtcbiAgXCJjb21wb25lbnRzXCIsXG4gIFwiZWxlbWVudHNcIixcbiAgXCJzdHlsZXNcIixcbl1cbiJdfQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { clsx } from "clsx";
|
|
2
|
+
import { twMerge } from "tailwind-merge";
|
|
3
|
+
export function cn(...inputs) {
|
|
4
|
+
return twMerge(clsx(inputs));
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvdXRpbHMvc3R5bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDNUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRXhDLE1BQU0sVUFBVSxFQUFFLENBQUMsR0FBRyxNQUFvQjtJQUN4QyxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtBQUM5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBDbGFzc1ZhbHVlLCBjbHN4IH0gZnJvbSBcImNsc3hcIlxuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gXCJ0YWlsd2luZC1tZXJnZVwiXG5cbmV4cG9ydCBmdW5jdGlvbiBjbiguLi5pbnB1dHM6IENsYXNzVmFsdWVbXSkge1xuICByZXR1cm4gdHdNZXJnZShjbHN4KGlucHV0cykpXG59XG4iXX0=
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { join, relative } from "node:path";
|
|
3
|
+
import contentCollections from "@content-collections/vite";
|
|
4
|
+
import tailwind from "@tailwindcss/vite";
|
|
5
|
+
import { devtools } from "@tanstack/devtools-vite";
|
|
6
|
+
import { tanstackStart } from "@tanstack/react-start/plugin/vite";
|
|
7
|
+
import { physical, rootRoute, route, } from "@tanstack/virtual-file-routes";
|
|
8
|
+
import react from "@vitejs/plugin-react";
|
|
9
|
+
import { defineConfig } from "vite";
|
|
10
|
+
import svgr from "vite-plugin-svgr";
|
|
11
|
+
import { loadConfig } from "./actions/config/load.js";
|
|
12
|
+
import { WebsiteConfig } from "./models/config.js";
|
|
13
|
+
import { OVERRIDE_SUBDIRS } from "./settings.js";
|
|
14
|
+
import { livemark } from "./plugins/vite-livemark.js";
|
|
15
|
+
const config = await loadConfig();
|
|
16
|
+
const sourceDir = import.meta.dirname;
|
|
17
|
+
const sourceRelative = relative(config.root, sourceDir);
|
|
18
|
+
const overridesRoot = join(config.root, ".livemark");
|
|
19
|
+
// Seed `.livemark/.gitignore` on first run so Vite's build/cache artifacts
|
|
20
|
+
// never get committed by accident.
|
|
21
|
+
const gitignorePath = join(overridesRoot, ".gitignore");
|
|
22
|
+
if (!existsSync(gitignorePath)) {
|
|
23
|
+
mkdirSync(overridesRoot, { recursive: true });
|
|
24
|
+
writeFileSync(gitignorePath, "/build\n/cache\n");
|
|
25
|
+
}
|
|
26
|
+
const routeChildren = [route("/$", "$.tsx")];
|
|
27
|
+
if (existsSync(join(overridesRoot, "routes"))) {
|
|
28
|
+
// physical() resolves its argument relative to this file. Hardcoding a
|
|
29
|
+
// relative literal lands at <pkg>/.livemark/ when livemark is installed
|
|
30
|
+
// under node_modules/. Compute it from the consumer's overridesRoot.
|
|
31
|
+
routeChildren.push(physical(relative(sourceDir, join(overridesRoot, "routes"))));
|
|
32
|
+
}
|
|
33
|
+
export default defineConfig({
|
|
34
|
+
root: config.root,
|
|
35
|
+
publicDir: join(config.root, ".livemark", "public"),
|
|
36
|
+
build: { outDir: ".livemark/build" },
|
|
37
|
+
define: {
|
|
38
|
+
"import.meta.env.CONFIG": JSON.stringify(WebsiteConfig.parse(config)),
|
|
39
|
+
},
|
|
40
|
+
plugins: [
|
|
41
|
+
livemark({
|
|
42
|
+
defaultsRoot: sourceDir,
|
|
43
|
+
overridesRoot,
|
|
44
|
+
subdirs: [...OVERRIDE_SUBDIRS],
|
|
45
|
+
configPath: config.configPath,
|
|
46
|
+
}),
|
|
47
|
+
devtools(),
|
|
48
|
+
tailwind(),
|
|
49
|
+
contentCollections({
|
|
50
|
+
configPath: join(sourceRelative, "content-collections.ts"),
|
|
51
|
+
}),
|
|
52
|
+
tanstackStart({
|
|
53
|
+
srcDirectory: sourceRelative,
|
|
54
|
+
pages: [{ path: "/" }],
|
|
55
|
+
prerender: { enabled: true, crawlLinks: true },
|
|
56
|
+
sitemap: config.site
|
|
57
|
+
? { enabled: true, host: config.site }
|
|
58
|
+
: { enabled: false },
|
|
59
|
+
router: {
|
|
60
|
+
virtualRouteConfig: rootRoute("__root.tsx", routeChildren),
|
|
61
|
+
},
|
|
62
|
+
}),
|
|
63
|
+
react(),
|
|
64
|
+
svgr(),
|
|
65
|
+
],
|
|
66
|
+
});
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zb3VyY2Uvdml0ZS5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQzlELE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQzFDLE9BQU8sa0JBQWtCLE1BQU0sMkJBQTJCLENBQUE7QUFDMUQsT0FBTyxRQUFRLE1BQU0sbUJBQW1CLENBQUE7QUFDeEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNqRSxPQUFPLEVBQ0wsUUFBUSxFQUNSLFNBQVMsRUFDVCxLQUFLLEdBRU4sTUFBTSwrQkFBK0IsQ0FBQTtBQUN0QyxPQUFPLEtBQUssTUFBTSxzQkFBc0IsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ25DLE9BQU8sSUFBSSxNQUFNLGtCQUFrQixDQUFBO0FBQ25DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUVyRCxNQUFNLE1BQU0sR0FBRyxNQUFNLFVBQVUsRUFBRSxDQUFBO0FBQ2pDLE1BQU0sU0FBUyxHQUFHLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQTtBQUNyQyxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQTtBQUN2RCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQTtBQUVwRCwyRUFBMkU7QUFDM0UsbUNBQW1DO0FBQ25DLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUE7QUFDdkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO0lBQy9CLFNBQVMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtJQUM3QyxhQUFhLENBQUMsYUFBYSxFQUFFLGtCQUFrQixDQUFDLENBQUE7QUFDbEQsQ0FBQztBQUVELE1BQU0sYUFBYSxHQUF1QixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQTtBQUNoRSxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUM5Qyx1RUFBdUU7SUFDdkUsd0VBQXdFO0lBQ3hFLHFFQUFxRTtJQUNyRSxhQUFhLENBQUMsSUFBSSxDQUNoQixRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FDN0QsQ0FBQTtBQUNILENBQUM7QUFFRCxlQUFlLFlBQVksQ0FBQztJQUMxQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7SUFDakIsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxRQUFRLENBQUM7SUFDbkQsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFO0lBQ3BDLE1BQU0sRUFBRTtRQUNOLHdCQUF3QixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUN0RTtJQUNELE9BQU8sRUFBRTtRQUNQLFFBQVEsQ0FBQztZQUNQLFlBQVksRUFBRSxTQUFTO1lBQ3ZCLGFBQWE7WUFDYixPQUFPLEVBQUUsQ0FBQyxHQUFHLGdCQUFnQixDQUFDO1lBQzlCLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVTtTQUM5QixDQUFDO1FBQ0YsUUFBUSxFQUFFO1FBQ1YsUUFBUSxFQUFFO1FBQ1Ysa0JBQWtCLENBQUM7WUFDakIsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsd0JBQXdCLENBQUM7U0FDM0QsQ0FBQztRQUNGLGFBQWEsQ0FBQztZQUNaLFlBQVksRUFBRSxjQUFjO1lBQzVCLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQ3RCLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRTtZQUM5QyxPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUk7Z0JBQ2xCLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUU7Z0JBQ3RDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUU7WUFDdEIsTUFBTSxFQUFFO2dCQUNOLGtCQUFrQixFQUFFLFNBQVMsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDO2FBQzNEO1NBQ0YsQ0FBQztRQUNGLEtBQUssRUFBRTtRQUNQLElBQUksRUFBRTtLQUNQO0NBQ0YsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhpc3RzU3luYywgbWtkaXJTeW5jLCB3cml0ZUZpbGVTeW5jIH0gZnJvbSBcIm5vZGU6ZnNcIlxuaW1wb3J0IHsgam9pbiwgcmVsYXRpdmUgfSBmcm9tIFwibm9kZTpwYXRoXCJcbmltcG9ydCBjb250ZW50Q29sbGVjdGlvbnMgZnJvbSBcIkBjb250ZW50LWNvbGxlY3Rpb25zL3ZpdGVcIlxuaW1wb3J0IHRhaWx3aW5kIGZyb20gXCJAdGFpbHdpbmRjc3Mvdml0ZVwiXG5pbXBvcnQgeyBkZXZ0b29scyB9IGZyb20gXCJAdGFuc3RhY2svZGV2dG9vbHMtdml0ZVwiXG5pbXBvcnQgeyB0YW5zdGFja1N0YXJ0IH0gZnJvbSBcIkB0YW5zdGFjay9yZWFjdC1zdGFydC9wbHVnaW4vdml0ZVwiXG5pbXBvcnQge1xuICBwaHlzaWNhbCxcbiAgcm9vdFJvdXRlLFxuICByb3V0ZSxcbiAgdHlwZSBWaXJ0dWFsUm91dGVOb2RlLFxufSBmcm9tIFwiQHRhbnN0YWNrL3ZpcnR1YWwtZmlsZS1yb3V0ZXNcIlxuaW1wb3J0IHJlYWN0IGZyb20gXCJAdml0ZWpzL3BsdWdpbi1yZWFjdFwiXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tIFwidml0ZVwiXG5pbXBvcnQgc3ZnciBmcm9tIFwidml0ZS1wbHVnaW4tc3ZnclwiXG5pbXBvcnQgeyBsb2FkQ29uZmlnIH0gZnJvbSBcIi4vYWN0aW9ucy9jb25maWcvbG9hZC50c1wiXG5pbXBvcnQgeyBXZWJzaXRlQ29uZmlnIH0gZnJvbSBcIi4vbW9kZWxzL2NvbmZpZy50c1wiXG5pbXBvcnQgeyBPVkVSUklERV9TVUJESVJTIH0gZnJvbSBcIi4vc2V0dGluZ3MudHNcIlxuaW1wb3J0IHsgbGl2ZW1hcmsgfSBmcm9tIFwiLi9wbHVnaW5zL3ZpdGUtbGl2ZW1hcmsudHNcIlxuXG5jb25zdCBjb25maWcgPSBhd2FpdCBsb2FkQ29uZmlnKClcbmNvbnN0IHNvdXJjZURpciA9IGltcG9ydC5tZXRhLmRpcm5hbWVcbmNvbnN0IHNvdXJjZVJlbGF0aXZlID0gcmVsYXRpdmUoY29uZmlnLnJvb3QsIHNvdXJjZURpcilcbmNvbnN0IG92ZXJyaWRlc1Jvb3QgPSBqb2luKGNvbmZpZy5yb290LCBcIi5saXZlbWFya1wiKVxuXG4vLyBTZWVkIGAubGl2ZW1hcmsvLmdpdGlnbm9yZWAgb24gZmlyc3QgcnVuIHNvIFZpdGUncyBidWlsZC9jYWNoZSBhcnRpZmFjdHNcbi8vIG5ldmVyIGdldCBjb21taXR0ZWQgYnkgYWNjaWRlbnQuXG5jb25zdCBnaXRpZ25vcmVQYXRoID0gam9pbihvdmVycmlkZXNSb290LCBcIi5naXRpZ25vcmVcIilcbmlmICghZXhpc3RzU3luYyhnaXRpZ25vcmVQYXRoKSkge1xuICBta2RpclN5bmMob3ZlcnJpZGVzUm9vdCwgeyByZWN1cnNpdmU6IHRydWUgfSlcbiAgd3JpdGVGaWxlU3luYyhnaXRpZ25vcmVQYXRoLCBcIi9idWlsZFxcbi9jYWNoZVxcblwiKVxufVxuXG5jb25zdCByb3V0ZUNoaWxkcmVuOiBWaXJ0dWFsUm91dGVOb2RlW10gPSBbcm91dGUoXCIvJFwiLCBcIiQudHN4XCIpXVxuaWYgKGV4aXN0c1N5bmMoam9pbihvdmVycmlkZXNSb290LCBcInJvdXRlc1wiKSkpIHtcbiAgLy8gcGh5c2ljYWwoKSByZXNvbHZlcyBpdHMgYXJndW1lbnQgcmVsYXRpdmUgdG8gdGhpcyBmaWxlLiBIYXJkY29kaW5nIGFcbiAgLy8gcmVsYXRpdmUgbGl0ZXJhbCBsYW5kcyBhdCA8cGtnPi8ubGl2ZW1hcmsvIHdoZW4gbGl2ZW1hcmsgaXMgaW5zdGFsbGVkXG4gIC8vIHVuZGVyIG5vZGVfbW9kdWxlcy8uIENvbXB1dGUgaXQgZnJvbSB0aGUgY29uc3VtZXIncyBvdmVycmlkZXNSb290LlxuICByb3V0ZUNoaWxkcmVuLnB1c2goXG4gICAgcGh5c2ljYWwocmVsYXRpdmUoc291cmNlRGlyLCBqb2luKG92ZXJyaWRlc1Jvb3QsIFwicm91dGVzXCIpKSksXG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKHtcbiAgcm9vdDogY29uZmlnLnJvb3QsXG4gIHB1YmxpY0Rpcjogam9pbihjb25maWcucm9vdCwgXCIubGl2ZW1hcmtcIiwgXCJwdWJsaWNcIiksXG4gIGJ1aWxkOiB7IG91dERpcjogXCIubGl2ZW1hcmsvYnVpbGRcIiB9LFxuICBkZWZpbmU6IHtcbiAgICBcImltcG9ydC5tZXRhLmVudi5DT05GSUdcIjogSlNPTi5zdHJpbmdpZnkoV2Vic2l0ZUNvbmZpZy5wYXJzZShjb25maWcpKSxcbiAgfSxcbiAgcGx1Z2luczogW1xuICAgIGxpdmVtYXJrKHtcbiAgICAgIGRlZmF1bHRzUm9vdDogc291cmNlRGlyLFxuICAgICAgb3ZlcnJpZGVzUm9vdCxcbiAgICAgIHN1YmRpcnM6IFsuLi5PVkVSUklERV9TVUJESVJTXSxcbiAgICAgIGNvbmZpZ1BhdGg6IGNvbmZpZy5jb25maWdQYXRoLFxuICAgIH0pLFxuICAgIGRldnRvb2xzKCksXG4gICAgdGFpbHdpbmQoKSxcbiAgICBjb250ZW50Q29sbGVjdGlvbnMoe1xuICAgICAgY29uZmlnUGF0aDogam9pbihzb3VyY2VSZWxhdGl2ZSwgXCJjb250ZW50LWNvbGxlY3Rpb25zLnRzXCIpLFxuICAgIH0pLFxuICAgIHRhbnN0YWNrU3RhcnQoe1xuICAgICAgc3JjRGlyZWN0b3J5OiBzb3VyY2VSZWxhdGl2ZSxcbiAgICAgIHBhZ2VzOiBbeyBwYXRoOiBcIi9cIiB9XSxcbiAgICAgIHByZXJlbmRlcjogeyBlbmFibGVkOiB0cnVlLCBjcmF3bExpbmtzOiB0cnVlIH0sXG4gICAgICBzaXRlbWFwOiBjb25maWcuc2l0ZVxuICAgICAgICA/IHsgZW5hYmxlZDogdHJ1ZSwgaG9zdDogY29uZmlnLnNpdGUgfVxuICAgICAgICA6IHsgZW5hYmxlZDogZmFsc2UgfSxcbiAgICAgIHJvdXRlcjoge1xuICAgICAgICB2aXJ0dWFsUm91dGVDb25maWc6IHJvb3RSb3V0ZShcIl9fcm9vdC50c3hcIiwgcm91dGVDaGlsZHJlbiksXG4gICAgICB9LFxuICAgIH0pLFxuICAgIHJlYWN0KCksXG4gICAgc3ZncigpLFxuICBdLFxufSlcbiJdfQ==
|