livemark 0.7.1 → 0.8.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/package.json +14 -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 +12 -2
- 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 +2 -2
- 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 +4 -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/{build/website → source}/plugins/vite-livemark.ts +0 -7
- package/source/program.ts +18 -0
- package/source/settings.ts +6 -0
- package/{build/website → source}/vite.config.ts +4 -3
- 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 +105 -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 +192 -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 +57 -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.d.ts +2 -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 +64 -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/program.js +0 -16
- 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 → 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}/routeTree.gen.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
|
@@ -2,7 +2,7 @@ import * as React from "react"
|
|
|
2
2
|
import { Command as CommandPrimitive } from "cmdk"
|
|
3
3
|
import { CheckIcon, SearchIcon, XIcon } from "lucide-react"
|
|
4
4
|
|
|
5
|
-
import { cn } from "../
|
|
5
|
+
import { cn } from "../utils/style.ts"
|
|
6
6
|
import {
|
|
7
7
|
Dialog,
|
|
8
8
|
DialogContent,
|
|
@@ -2,7 +2,7 @@ import * as React from "react"
|
|
|
2
2
|
import { ContextMenu as ContextMenuPrimitive } from "@base-ui/react/context-menu"
|
|
3
3
|
import { CheckIcon, ChevronRightIcon } from "lucide-react"
|
|
4
4
|
|
|
5
|
-
import { cn } from "../
|
|
5
|
+
import { cn } from "../utils/style.ts"
|
|
6
6
|
|
|
7
7
|
function ContextMenu({ ...props }: ContextMenuPrimitive.Root.Props) {
|
|
8
8
|
return <ContextMenuPrimitive.Root data-slot="context-menu" {...props} />
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Dialog as DialogPrimitive } from "@base-ui/react/dialog"
|
|
2
2
|
import { XIcon } from "lucide-react"
|
|
3
|
-
import { cn } from "../
|
|
3
|
+
import { cn } from "../utils/style.ts"
|
|
4
4
|
import { Button } from "./button.tsx"
|
|
5
5
|
|
|
6
6
|
function Dialog({ ...props }: DialogPrimitive.Root.Props) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Menu as MenuPrimitive } from "@base-ui/react/menu"
|
|
2
2
|
import { CheckIcon, ChevronRightIcon } from "lucide-react"
|
|
3
|
-
import { cn } from "../
|
|
3
|
+
import { cn } from "../utils/style.ts"
|
|
4
4
|
|
|
5
5
|
function DropdownMenu({ ...props }: MenuPrimitive.Root.Props) {
|
|
6
6
|
return <MenuPrimitive.Root data-slot="dropdown-menu" {...props} />
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
2
2
|
import { useMemo } from "react"
|
|
3
|
-
import { cn } from "../
|
|
3
|
+
import { cn } from "../utils/style.ts"
|
|
4
4
|
import { Label } from "./label.tsx"
|
|
5
5
|
import { Separator } from "./separator.tsx"
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PreviewCard as PreviewCardPrimitive } from "@base-ui/react/preview-card"
|
|
2
2
|
|
|
3
|
-
import { cn } from "../
|
|
3
|
+
import { cn } from "../utils/style.ts"
|
|
4
4
|
|
|
5
5
|
function HoverCard({ ...props }: PreviewCardPrimitive.Root.Props) {
|
|
6
6
|
return <PreviewCardPrimitive.Root data-slot="hover-card" {...props} />
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
2
|
-
import { cn } from "../
|
|
2
|
+
import { cn } from "../utils/style.ts"
|
|
3
3
|
import { Button } from "./button.tsx"
|
|
4
4
|
import { Input } from "./input.tsx"
|
|
5
5
|
import { Textarea } from "./textarea.tsx"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { mergeProps } from "@base-ui/react/merge-props"
|
|
2
2
|
import { useRender } from "@base-ui/react/use-render"
|
|
3
3
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
4
|
-
import { cn } from "../
|
|
4
|
+
import { cn } from "../utils/style.ts"
|
|
5
5
|
import { Separator } from "./separator.tsx"
|
|
6
6
|
|
|
7
7
|
function ItemGroup({ className, ...props }: React.ComponentProps<"div">) {
|
|
@@ -3,7 +3,7 @@ import { Menu as MenuPrimitive } from "@base-ui/react/menu"
|
|
|
3
3
|
import { Menubar as MenubarPrimitive } from "@base-ui/react/menubar"
|
|
4
4
|
import { CheckIcon } from "lucide-react"
|
|
5
5
|
|
|
6
|
-
import { cn } from "../
|
|
6
|
+
import { cn } from "../utils/style.ts"
|
|
7
7
|
import {
|
|
8
8
|
DropdownMenu,
|
|
9
9
|
DropdownMenuContent,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from "react"
|
|
2
2
|
import { ChevronDownIcon } from "lucide-react"
|
|
3
3
|
|
|
4
|
-
import { cn } from "../
|
|
4
|
+
import { cn } from "../utils/style.ts"
|
|
5
5
|
|
|
6
6
|
type NativeSelectProps = Omit<React.ComponentProps<"select">, "size"> & {
|
|
7
7
|
size?: "sm" | "default"
|
|
@@ -2,7 +2,7 @@ import { NavigationMenu as NavigationMenuPrimitive } from "@base-ui/react/naviga
|
|
|
2
2
|
import { cva } from "class-variance-authority"
|
|
3
3
|
import { ChevronDownIcon } from "lucide-react"
|
|
4
4
|
|
|
5
|
-
import { cn } from "../
|
|
5
|
+
import { cn } from "../utils/style.ts"
|
|
6
6
|
|
|
7
7
|
function NavigationMenu({
|
|
8
8
|
align = "start",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from "react"
|
|
2
2
|
import { Popover as PopoverPrimitive } from "@base-ui/react/popover"
|
|
3
3
|
|
|
4
|
-
import { cn } from "../
|
|
4
|
+
import { cn } from "../utils/style.ts"
|
|
5
5
|
|
|
6
6
|
function Popover({ ...props }: PopoverPrimitive.Root.Props) {
|
|
7
7
|
return <PopoverPrimitive.Root data-slot="popover" {...props} />
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Radio as RadioPrimitive } from "@base-ui/react/radio"
|
|
2
2
|
import { RadioGroup as RadioGroupPrimitive } from "@base-ui/react/radio-group"
|
|
3
3
|
|
|
4
|
-
import { cn } from "../
|
|
4
|
+
import { cn } from "../utils/style.ts"
|
|
5
5
|
|
|
6
6
|
function RadioGroup({ className, ...props }: RadioGroupPrimitive.Props) {
|
|
7
7
|
return (
|
|
@@ -2,7 +2,7 @@ import * as React from "react"
|
|
|
2
2
|
import { Select as SelectPrimitive } from "@base-ui/react/select"
|
|
3
3
|
import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react"
|
|
4
4
|
|
|
5
|
-
import { cn } from "../
|
|
5
|
+
import { cn } from "../utils/style.ts"
|
|
6
6
|
|
|
7
7
|
const Select = SelectPrimitive.Root
|
|
8
8
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Dialog as SheetPrimitive } from "@base-ui/react/dialog"
|
|
2
2
|
import { XIcon } from "lucide-react"
|
|
3
|
-
import { cn } from "../
|
|
3
|
+
import { cn } from "../utils/style.ts"
|
|
4
4
|
import { Button } from "./button.tsx"
|
|
5
5
|
|
|
6
6
|
function Sheet({ ...props }: SheetPrimitive.Root.Props) {
|
|
@@ -4,8 +4,8 @@ import { useRender } from "@base-ui/react/use-render"
|
|
|
4
4
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
5
5
|
import { Menu } from "lucide-react"
|
|
6
6
|
import * as React from "react"
|
|
7
|
-
import { cn } from "../
|
|
8
|
-
import { useIsMobile } from "../hooks/media.ts"
|
|
7
|
+
import { cn } from "../utils/style.ts"
|
|
8
|
+
import { isMobileNow, useIsMobile } from "../hooks/media.ts"
|
|
9
9
|
import { Button } from "./button.tsx"
|
|
10
10
|
import { Input } from "./input.tsx"
|
|
11
11
|
import { Separator } from "./separator.tsx"
|
|
@@ -83,9 +83,12 @@ function SidebarProvider({
|
|
|
83
83
|
)
|
|
84
84
|
|
|
85
85
|
// Helper to toggle the sidebar.
|
|
86
|
+
// Reads matchMedia synchronously instead of relying on `isMobile` React
|
|
87
|
+
// state, which can be momentarily stale on the first click after a
|
|
88
|
+
// SidebarProvider key remount (e.g. landing → article navigation).
|
|
86
89
|
const toggleSidebar = React.useCallback(() => {
|
|
87
|
-
return
|
|
88
|
-
}, [
|
|
90
|
+
return isMobileNow() ? setOpenMobile(open => !open) : setOpen(open => !open)
|
|
91
|
+
}, [setOpen, setOpenMobile])
|
|
89
92
|
|
|
90
93
|
// Adds a keyboard shortcut to toggle the sidebar.
|
|
91
94
|
React.useEffect(() => {
|
|
@@ -3,7 +3,7 @@ import { Toggle as TogglePrimitive } from "@base-ui/react/toggle"
|
|
|
3
3
|
import { ToggleGroup as ToggleGroupPrimitive } from "@base-ui/react/toggle-group"
|
|
4
4
|
import { type VariantProps } from "class-variance-authority"
|
|
5
5
|
|
|
6
|
-
import { cn } from "../
|
|
6
|
+
import { cn } from "../utils/style.ts"
|
|
7
7
|
import { toggleVariants } from "./toggle.tsx"
|
|
8
8
|
|
|
9
9
|
const ToggleGroupContext = React.createContext<
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Toggle as TogglePrimitive } from "@base-ui/react/toggle"
|
|
2
2
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
3
3
|
|
|
4
|
-
import { cn } from "../
|
|
4
|
+
import { cn } from "../utils/style.ts"
|
|
5
5
|
|
|
6
6
|
const toggleVariants = cva(
|
|
7
7
|
"group/toggle inline-flex items-center justify-center gap-1 rounded-md text-sm font-medium whitespace-nowrap transition-[color,box-shadow] outline-none hover:bg-muted hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 aria-pressed:bg-muted dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
process.removeAllListeners("warning")
|
|
4
|
+
process.on("warning", warning => {
|
|
5
|
+
if (warning.name === "ExperimentalWarning") {
|
|
6
|
+
return
|
|
7
|
+
}
|
|
8
|
+
console.warn(warning)
|
|
9
|
+
})
|
|
10
|
+
|
|
11
|
+
const { program } = await import("../program.ts")
|
|
12
|
+
program.parse()
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { useSyncExternalStore } from "react"
|
|
2
|
+
|
|
3
|
+
export const MOBILE_BREAKPOINT = 768
|
|
4
|
+
|
|
5
|
+
export function useIsMobile() {
|
|
6
|
+
return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/** Synchronous, render-cycle-independent check.
|
|
10
|
+
* Use at event-handler call sites where React state may be momentarily stale
|
|
11
|
+
* (e.g. right after a SidebarProvider key remount). */
|
|
12
|
+
export function isMobileNow() {
|
|
13
|
+
if (typeof window === "undefined") return false
|
|
14
|
+
return window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`).matches
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function subscribe(callback: () => void) {
|
|
18
|
+
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`)
|
|
19
|
+
mql.addEventListener("change", callback)
|
|
20
|
+
return () => mql.removeEventListener("change", callback)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function getSnapshot() {
|
|
24
|
+
return window.innerWidth < MOBILE_BREAKPOINT
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function getServerSnapshot() {
|
|
28
|
+
return false
|
|
29
|
+
}
|
package/source/index.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { defineConfig } from "./actions/config/define.ts"
|
|
@@ -19,6 +19,8 @@ export const Article = z.object({
|
|
|
19
19
|
author: z.union([nonEmptyString, z.array(nonEmptyString)]).optional(),
|
|
20
20
|
date: nonEmptyString.optional(),
|
|
21
21
|
tags: z.array(nonEmptyString).optional(),
|
|
22
|
+
sourceUrl: nonEmptyString.optional(),
|
|
23
|
+
sourceAction: z.enum(["edit", "view"]).default("edit"),
|
|
22
24
|
})
|
|
23
25
|
|
|
24
26
|
/** Processed article ready for page rendering (result of content-collections transform). */
|
|
@@ -35,6 +37,8 @@ export interface ArticleView {
|
|
|
35
37
|
author?: string | string[]
|
|
36
38
|
date?: string
|
|
37
39
|
tags?: string[]
|
|
40
|
+
sourceUrl?: string
|
|
41
|
+
sourceAction?: "edit" | "view"
|
|
38
42
|
}
|
|
39
43
|
|
|
40
44
|
export interface ArticleNode {
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { z } from "zod"
|
|
2
|
+
import { Link } from "./link.ts"
|
|
3
|
+
import { Patch } from "./patch.ts"
|
|
4
|
+
import { Section } from "./section.ts"
|
|
5
|
+
import { CodeThemeDark, CodeThemeLight } from "./theme.ts"
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* User-provided configuration for Livemark.
|
|
9
|
+
*/
|
|
10
|
+
export type UserConfig = z.infer<typeof UserConfig>
|
|
11
|
+
export const UserConfig = z.object({
|
|
12
|
+
site: z.string().optional(),
|
|
13
|
+
favicon: z.string().optional(),
|
|
14
|
+
logo: z.string().optional(),
|
|
15
|
+
title: z.string().default("Livemark"),
|
|
16
|
+
description: z.string().default("Markdown site generator"),
|
|
17
|
+
include: z.union([z.string(), z.array(z.string())]),
|
|
18
|
+
exclude: z.union([z.string(), z.array(z.string())]).optional(),
|
|
19
|
+
codeThemeLight: CodeThemeLight.default("catppuccin-latte"),
|
|
20
|
+
codeThemeDark: CodeThemeDark.default("catppuccin-mocha"),
|
|
21
|
+
links: z.array(Link).optional(),
|
|
22
|
+
sections: z.array(Section).optional(),
|
|
23
|
+
patches: z.array(Patch).optional(),
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
/** Website configuration injected at build time via Vite define */
|
|
27
|
+
export type WebsiteConfig = z.infer<typeof WebsiteConfig>
|
|
28
|
+
export const WebsiteConfig = UserConfig.pick({
|
|
29
|
+
title: true,
|
|
30
|
+
description: true,
|
|
31
|
+
site: true,
|
|
32
|
+
favicon: true,
|
|
33
|
+
logo: true,
|
|
34
|
+
links: true,
|
|
35
|
+
sections: true,
|
|
36
|
+
})
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* System-computed configuration derived from the config file location.
|
|
40
|
+
*/
|
|
41
|
+
export type SystemConfig = z.infer<typeof SystemConfig>
|
|
42
|
+
export const SystemConfig = z.object({
|
|
43
|
+
root: z.string(),
|
|
44
|
+
configPath: z.string(),
|
|
45
|
+
})
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Fully resolved Livemark configuration.
|
|
49
|
+
*/
|
|
50
|
+
export type Config = z.infer<typeof Config>
|
|
51
|
+
export const Config = UserConfig.merge(SystemConfig)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { z } from "zod"
|
|
2
|
+
|
|
3
|
+
/** Header or sidebar link to an external URL. */
|
|
4
|
+
export type Link = z.infer<typeof Link>
|
|
5
|
+
export const Link = z.object({
|
|
6
|
+
url: z.string(),
|
|
7
|
+
title: z.string(),
|
|
8
|
+
icon: z.string().optional(),
|
|
9
|
+
prefix: z.string().optional(),
|
|
10
|
+
position: z.enum(["header", "sidebar"]).default("header"),
|
|
11
|
+
})
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { z } from "zod"
|
|
2
|
+
import { Article } from "./article.ts"
|
|
3
|
+
|
|
4
|
+
/** Per-file override for article frontmatter provided via `livemark.config.ts`. */
|
|
5
|
+
export type Patch = z.infer<typeof Patch>
|
|
6
|
+
export const Patch = z.object({
|
|
7
|
+
file: z.string(),
|
|
8
|
+
article: Article.omit({ content: true }).partial().strict(),
|
|
9
|
+
})
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { z } from "zod"
|
|
2
|
+
|
|
3
|
+
const BaseSection = z.object({
|
|
4
|
+
icon: z.string().optional(),
|
|
5
|
+
title: z.string(),
|
|
6
|
+
prefix: z.string(),
|
|
7
|
+
position: z.enum(["header", "sidebar"]).default("header"),
|
|
8
|
+
})
|
|
9
|
+
|
|
10
|
+
/** Default section: renders articles. */
|
|
11
|
+
export type ArticleSection = z.infer<typeof ArticleSection>
|
|
12
|
+
export const ArticleSection = BaseSection.extend({
|
|
13
|
+
type: z.literal("article"),
|
|
14
|
+
})
|
|
15
|
+
|
|
16
|
+
/** Blog section: date-sorted posts with tags and index. */
|
|
17
|
+
export type BlogSection = z.infer<typeof BlogSection>
|
|
18
|
+
export const BlogSection = BaseSection.extend({
|
|
19
|
+
type: z.literal("blog"),
|
|
20
|
+
})
|
|
21
|
+
|
|
22
|
+
/** Changelog section: single file or GitHub releases, split per version. */
|
|
23
|
+
export type ChangelogSection = z.infer<typeof ChangelogSection>
|
|
24
|
+
export const ChangelogSection = BaseSection.extend({
|
|
25
|
+
type: z.literal("changelog"),
|
|
26
|
+
source: z.string(),
|
|
27
|
+
version: z.boolean().optional(),
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* A site section. Discriminated on `type`.
|
|
32
|
+
* When `type` is omitted, it defaults to "article" so plain
|
|
33
|
+
* `{ title, prefix }` entries keep working.
|
|
34
|
+
*/
|
|
35
|
+
export type Section = z.infer<typeof Section>
|
|
36
|
+
export const Section = z.preprocess(
|
|
37
|
+
input => {
|
|
38
|
+
if (input === null || typeof input !== "object" || Array.isArray(input)) {
|
|
39
|
+
return input
|
|
40
|
+
}
|
|
41
|
+
const record = input as Record<string, unknown>
|
|
42
|
+
return "type" in record ? record : { ...record, type: "article" }
|
|
43
|
+
},
|
|
44
|
+
z.discriminatedUnion("type", [ArticleSection, BlogSection, ChangelogSection]),
|
|
45
|
+
)
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { z } from "zod"
|
|
2
|
+
|
|
3
|
+
/** Light syntax highlighting theme (Shiki) */
|
|
4
|
+
export const CodeThemeLight = z.enum([
|
|
5
|
+
"ayu-light",
|
|
6
|
+
"catppuccin-latte",
|
|
7
|
+
"everforest-light",
|
|
8
|
+
"github-light",
|
|
9
|
+
"github-light-default",
|
|
10
|
+
"github-light-high-contrast",
|
|
11
|
+
"gruvbox-light-hard",
|
|
12
|
+
"gruvbox-light-medium",
|
|
13
|
+
"gruvbox-light-soft",
|
|
14
|
+
"horizon-bright",
|
|
15
|
+
"kanagawa-lotus",
|
|
16
|
+
"light-plus",
|
|
17
|
+
"material-theme-lighter",
|
|
18
|
+
"min-light",
|
|
19
|
+
"night-owl-light",
|
|
20
|
+
"one-light",
|
|
21
|
+
"rose-pine-dawn",
|
|
22
|
+
"slack-ochin",
|
|
23
|
+
"snazzy-light",
|
|
24
|
+
"solarized-light",
|
|
25
|
+
"vitesse-light",
|
|
26
|
+
])
|
|
27
|
+
|
|
28
|
+
/** Dark syntax highlighting theme (Shiki) */
|
|
29
|
+
export const CodeThemeDark = z.enum([
|
|
30
|
+
"andromeeda",
|
|
31
|
+
"aurora-x",
|
|
32
|
+
"ayu-dark",
|
|
33
|
+
"ayu-mirage",
|
|
34
|
+
"catppuccin-frappe",
|
|
35
|
+
"catppuccin-macchiato",
|
|
36
|
+
"catppuccin-mocha",
|
|
37
|
+
"dark-plus",
|
|
38
|
+
"dracula",
|
|
39
|
+
"dracula-soft",
|
|
40
|
+
"everforest-dark",
|
|
41
|
+
"github-dark",
|
|
42
|
+
"github-dark-default",
|
|
43
|
+
"github-dark-dimmed",
|
|
44
|
+
"github-dark-high-contrast",
|
|
45
|
+
"gruvbox-dark-hard",
|
|
46
|
+
"gruvbox-dark-medium",
|
|
47
|
+
"gruvbox-dark-soft",
|
|
48
|
+
"horizon",
|
|
49
|
+
"houston",
|
|
50
|
+
"kanagawa-dragon",
|
|
51
|
+
"kanagawa-wave",
|
|
52
|
+
"laserwave",
|
|
53
|
+
"material-theme",
|
|
54
|
+
"material-theme-darker",
|
|
55
|
+
"material-theme-ocean",
|
|
56
|
+
"material-theme-palenight",
|
|
57
|
+
"min-dark",
|
|
58
|
+
"monokai",
|
|
59
|
+
"night-owl",
|
|
60
|
+
"nord",
|
|
61
|
+
"one-dark-pro",
|
|
62
|
+
"plastic",
|
|
63
|
+
"poimandres",
|
|
64
|
+
"red",
|
|
65
|
+
"rose-pine",
|
|
66
|
+
"rose-pine-moon",
|
|
67
|
+
"slack-dark",
|
|
68
|
+
"solarized-dark",
|
|
69
|
+
"synthwave-84",
|
|
70
|
+
"tokyo-night",
|
|
71
|
+
"vesper",
|
|
72
|
+
"vitesse-black",
|
|
73
|
+
"vitesse-dark",
|
|
74
|
+
])
|