livemark 0.0.0-dev → 0.7.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.
Files changed (94) hide show
  1. package/README.md +5 -1
  2. package/build/actions/changelog/build.d.ts +14 -0
  3. package/build/actions/changelog/build.js +158 -0
  4. package/build/actions/changelog/build.unit.d.ts +1 -0
  5. package/build/actions/changelog/build.unit.js +66 -0
  6. package/build/actions/config/define.unit.js +11 -16
  7. package/build/actions/config/load.js +6 -3
  8. package/build/actions/config/load.unit.js +3 -3
  9. package/build/commands/build.js +4 -3
  10. package/build/commands/escape.d.ts +9 -0
  11. package/build/commands/escape.js +56 -0
  12. package/build/docs/markdown/includes/example.d.ts +53 -4
  13. package/build/docs/markdown/includes/example.js +2 -2
  14. package/build/livemark.config.d.ts +53 -4
  15. package/build/livemark.config.js +22 -2
  16. package/build/models/config.d.ts +315 -8
  17. package/build/models/config.js +25 -5
  18. package/build/models/link.d.ts +13 -0
  19. package/build/models/link.js +9 -0
  20. package/build/models/patch.d.ts +21 -0
  21. package/build/models/patch.js +7 -0
  22. package/build/models/section.d.ts +75 -0
  23. package/build/models/section.js +26 -0
  24. package/build/models/theme.d.ts +72 -0
  25. package/build/models/theme.js +73 -0
  26. package/build/program.js +4 -2
  27. package/build/vite.config.d.ts +1 -1
  28. package/build/website/assets/logo.svg +117 -0
  29. package/build/website/components/Article.tsx +172 -0
  30. package/build/website/components/BackToTop.tsx +32 -0
  31. package/build/website/components/Banner.tsx +2 -2
  32. package/build/website/components/BlogIndex.tsx +121 -0
  33. package/build/website/components/BlogSidebar.tsx +162 -0
  34. package/build/website/components/Breadcrumbs.tsx +5 -2
  35. package/build/website/components/Card.tsx +48 -0
  36. package/build/website/components/Cards.tsx +0 -58
  37. package/build/website/components/ChangelogIndex.tsx +111 -0
  38. package/build/website/components/ChangelogSidebar.tsx +120 -0
  39. package/build/website/components/CodeBlock.tsx +57 -40
  40. package/build/website/components/Column.tsx +4 -0
  41. package/build/website/components/Columns.tsx +0 -5
  42. package/build/website/components/Footer.tsx +12 -5
  43. package/build/website/components/InlineIcon.tsx +2 -13
  44. package/build/website/components/Layout.tsx +155 -185
  45. package/build/website/components/Mermaid.tsx +14 -33
  46. package/build/website/components/MermaidRenderer.tsx +37 -0
  47. package/build/website/components/MiniSidebar.tsx +49 -0
  48. package/build/website/components/PageToolbar.tsx +21 -11
  49. package/build/website/components/PrevNext.tsx +20 -12
  50. package/build/website/components/Search.tsx +28 -0
  51. package/build/website/components/SearchDialog.tsx +10 -10
  52. package/build/website/components/Sidebar.tsx +160 -0
  53. package/build/website/components/SidebarLinks.tsx +70 -0
  54. package/build/website/components/SidebarSections.tsx +71 -0
  55. package/build/website/components/SiteTitle.tsx +13 -8
  56. package/build/website/components/TagIndex.tsx +120 -0
  57. package/build/website/components/Theme.tsx +0 -1
  58. package/build/website/components/Toc.tsx +128 -1
  59. package/build/website/components/ZoomImage.tsx +15 -20
  60. package/build/website/content/article.ts +78 -0
  61. package/build/website/content/tag.ts +29 -0
  62. package/build/website/content-collections.ts +53 -26
  63. package/build/website/elements/sidebar.tsx +4 -4
  64. package/build/website/env.d.ts +4 -0
  65. package/build/website/helpers/article-icon.ts +2 -0
  66. package/build/website/helpers/article.ts +90 -0
  67. package/build/website/helpers/changelog-source.ts +16 -0
  68. package/build/website/helpers/changelog-source.unit.ts +38 -0
  69. package/build/website/helpers/dynamic-icon-resolver.tsx +19 -0
  70. package/build/website/helpers/dynamic-icon.tsx +12 -0
  71. package/build/website/helpers/favicon.ts +7 -0
  72. package/build/website/helpers/model.ts +4 -0
  73. package/build/website/helpers/resolve-asset-path.ts +9 -0
  74. package/build/website/helpers/section.ts +50 -0
  75. package/build/website/helpers/section.unit.ts +71 -0
  76. package/build/website/helpers/toc-context.ts +1 -1
  77. package/build/website/helpers/toc.ts +1 -6
  78. package/build/website/models/article.ts +48 -33
  79. package/build/website/models/toc.ts +5 -0
  80. package/build/website/plugins/rehype-task-list-a11y.ts +33 -0
  81. package/build/website/plugins/remark-ansi.ts +1 -0
  82. package/build/website/plugins/remark-image.ts +22 -13
  83. package/build/website/plugins/vite-livemark.ts +91 -0
  84. package/build/website/routeTree.gen.ts +9 -9
  85. package/build/website/routes/$.tsx +74 -131
  86. package/build/website/routes/__root.tsx +36 -23
  87. package/build/website/styles/general.css +26 -210
  88. package/build/website/styles/markdown.css +214 -0
  89. package/build/website/vite.config.ts +38 -3
  90. package/package.json +25 -16
  91. package/build/website/globals.d.ts +0 -8
  92. package/build/website/helpers/articles.ts +0 -24
  93. package/build/website/public/logo.svg +0 -72
  94. package/build/website/routes/index.tsx +0 -13
@@ -1,9 +1,58 @@
1
1
  declare const _default: {
2
+ site?: string | undefined;
3
+ favicon?: string | undefined;
4
+ logo?: string | undefined;
2
5
  title: string;
3
6
  description: string;
4
- articles: {
5
- include: string | string[];
6
- exclude?: string | string[] | undefined;
7
- };
7
+ include: string | string[];
8
+ exclude?: string | string[] | undefined;
9
+ codeThemeLight: "ayu-light" | "catppuccin-latte" | "everforest-light" | "github-light" | "github-light-default" | "github-light-high-contrast" | "gruvbox-light-hard" | "gruvbox-light-medium" | "gruvbox-light-soft" | "horizon-bright" | "kanagawa-lotus" | "light-plus" | "material-theme-lighter" | "min-light" | "night-owl-light" | "one-light" | "rose-pine-dawn" | "slack-ochin" | "snazzy-light" | "solarized-light" | "vitesse-light";
10
+ codeThemeDark: "andromeeda" | "aurora-x" | "ayu-dark" | "ayu-mirage" | "catppuccin-frappe" | "catppuccin-macchiato" | "catppuccin-mocha" | "dark-plus" | "dracula" | "dracula-soft" | "everforest-dark" | "github-dark" | "github-dark-default" | "github-dark-dimmed" | "github-dark-high-contrast" | "gruvbox-dark-hard" | "gruvbox-dark-medium" | "gruvbox-dark-soft" | "horizon" | "houston" | "kanagawa-dragon" | "kanagawa-wave" | "laserwave" | "material-theme" | "material-theme-darker" | "material-theme-ocean" | "material-theme-palenight" | "min-dark" | "monokai" | "night-owl" | "nord" | "one-dark-pro" | "plastic" | "poimandres" | "red" | "rose-pine" | "rose-pine-moon" | "slack-dark" | "solarized-dark" | "synthwave-84" | "tokyo-night" | "vesper" | "vitesse-black" | "vitesse-dark";
11
+ links?: {
12
+ url: string;
13
+ title: string;
14
+ icon?: string | undefined;
15
+ prefix?: string | undefined;
16
+ position: "header" | "sidebar";
17
+ }[] | undefined;
18
+ sections?: ({
19
+ icon?: string | undefined;
20
+ title: string;
21
+ prefix: string;
22
+ position: "header" | "sidebar";
23
+ type: "article";
24
+ } | {
25
+ icon?: string | undefined;
26
+ title: string;
27
+ prefix: string;
28
+ position: "header" | "sidebar";
29
+ type: "blog";
30
+ } | {
31
+ icon?: string | undefined;
32
+ title: string;
33
+ prefix: string;
34
+ position: "header" | "sidebar";
35
+ type: "changelog";
36
+ source: string;
37
+ version?: boolean | undefined;
38
+ })[] | undefined;
39
+ patches?: {
40
+ file: string;
41
+ article: {
42
+ title?: string | undefined;
43
+ label?: string | undefined;
44
+ description?: string | undefined;
45
+ icon?: string | undefined;
46
+ order?: number | undefined;
47
+ path?: string | undefined;
48
+ group?: string | undefined;
49
+ sidebar?: boolean | undefined;
50
+ toc?: boolean | undefined;
51
+ image?: string | undefined;
52
+ author?: string | string[] | undefined;
53
+ date?: string | undefined;
54
+ tags?: string[] | undefined;
55
+ };
56
+ }[] | undefined;
8
57
  };
9
58
  export default _default;
@@ -1,5 +1,25 @@
1
1
  import { defineConfig } from "./index.js";
2
2
  export default defineConfig({
3
- articles: { include: "docs/**/*.md", exclude: "docs/**/includes/**" },
3
+ site: "https://livemark.dev",
4
+ include: ["docs/**/*.md", "blog/**/*.md"],
5
+ exclude: "docs/**/includes/**",
6
+ sections: [
7
+ { title: "Docs", prefix: "/" },
8
+ { title: "Blog", prefix: "/blog/", type: "blog" },
9
+ {
10
+ title: "Changelog",
11
+ prefix: "/changelog/",
12
+ type: "changelog",
13
+ source: "CHANGELOG.md",
14
+ version: true,
15
+ },
16
+ ],
17
+ links: [
18
+ {
19
+ url: "https://github.com/datisthq/livemark",
20
+ title: "GitHub",
21
+ icon: "github",
22
+ },
23
+ ],
4
24
  });
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl2ZW1hcmsuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vbGl2ZW1hcmsuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFekMsZUFBZSxZQUFZLENBQUM7SUFDMUIsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUU7Q0FDdEUsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcIi4vaW5kZXgudHNcIlxuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmVDb25maWcoe1xuICBhcnRpY2xlczogeyBpbmNsdWRlOiBcImRvY3MvKiovKi5tZFwiLCBleGNsdWRlOiBcImRvY3MvKiovaW5jbHVkZXMvKipcIiB9LFxufSlcbiJdfQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl2ZW1hcmsuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vbGl2ZW1hcmsuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFekMsZUFBZSxZQUFZLENBQUM7SUFDMUIsSUFBSSxFQUFFLHNCQUFzQjtJQUM1QixPQUFPLEVBQUUsQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDO0lBQ3pDLE9BQU8sRUFBRSxxQkFBcUI7SUFDOUIsUUFBUSxFQUFFO1FBQ1IsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUU7UUFDOUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtRQUNqRDtZQUNFLEtBQUssRUFBRSxXQUFXO1lBQ2xCLE1BQU0sRUFBRSxhQUFhO1lBQ3JCLElBQUksRUFBRSxXQUFXO1lBQ2pCLE1BQU0sRUFBRSxjQUFjO1lBQ3RCLE9BQU8sRUFBRSxJQUFJO1NBQ2Q7S0FDRjtJQUNELEtBQUssRUFBRTtRQUNMO1lBQ0UsR0FBRyxFQUFFLHNDQUFzQztZQUMzQyxLQUFLLEVBQUUsUUFBUTtZQUNmLElBQUksRUFBRSxRQUFRO1NBQ2Y7S0FDRjtDQUNGLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gXCIuL2luZGV4LnRzXCJcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKHtcbiAgc2l0ZTogXCJodHRwczovL2xpdmVtYXJrLmRldlwiLFxuICBpbmNsdWRlOiBbXCJkb2NzLyoqLyoubWRcIiwgXCJibG9nLyoqLyoubWRcIl0sXG4gIGV4Y2x1ZGU6IFwiZG9jcy8qKi9pbmNsdWRlcy8qKlwiLFxuICBzZWN0aW9uczogW1xuICAgIHsgdGl0bGU6IFwiRG9jc1wiLCBwcmVmaXg6IFwiL1wiIH0sXG4gICAgeyB0aXRsZTogXCJCbG9nXCIsIHByZWZpeDogXCIvYmxvZy9cIiwgdHlwZTogXCJibG9nXCIgfSxcbiAgICB7XG4gICAgICB0aXRsZTogXCJDaGFuZ2Vsb2dcIixcbiAgICAgIHByZWZpeDogXCIvY2hhbmdlbG9nL1wiLFxuICAgICAgdHlwZTogXCJjaGFuZ2Vsb2dcIixcbiAgICAgIHNvdXJjZTogXCJDSEFOR0VMT0cubWRcIixcbiAgICAgIHZlcnNpb246IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgbGlua3M6IFtcbiAgICB7XG4gICAgICB1cmw6IFwiaHR0cHM6Ly9naXRodWIuY29tL2RhdGlzdGhxL2xpdmVtYXJrXCIsXG4gICAgICB0aXRsZTogXCJHaXRIdWJcIixcbiAgICAgIGljb246IFwiZ2l0aHViXCIsXG4gICAgfSxcbiAgXSxcbn0pXG4iXX0=
@@ -4,12 +4,189 @@ import { z } from "zod";
4
4
  */
5
5
  export type UserConfig = z.infer<typeof UserConfig>;
6
6
  export declare const UserConfig: z.ZodObject<{
7
+ site: z.ZodOptional<z.ZodString>;
8
+ favicon: z.ZodOptional<z.ZodString>;
9
+ logo: z.ZodOptional<z.ZodString>;
7
10
  title: z.ZodDefault<z.ZodString>;
8
11
  description: z.ZodDefault<z.ZodString>;
9
- articles: z.ZodObject<{
10
- include: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
11
- exclude: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
12
- }, z.core.$strip>;
12
+ include: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
13
+ exclude: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
14
+ codeThemeLight: z.ZodDefault<z.ZodEnum<{
15
+ "ayu-light": "ayu-light";
16
+ "catppuccin-latte": "catppuccin-latte";
17
+ "everforest-light": "everforest-light";
18
+ "github-light": "github-light";
19
+ "github-light-default": "github-light-default";
20
+ "github-light-high-contrast": "github-light-high-contrast";
21
+ "gruvbox-light-hard": "gruvbox-light-hard";
22
+ "gruvbox-light-medium": "gruvbox-light-medium";
23
+ "gruvbox-light-soft": "gruvbox-light-soft";
24
+ "horizon-bright": "horizon-bright";
25
+ "kanagawa-lotus": "kanagawa-lotus";
26
+ "light-plus": "light-plus";
27
+ "material-theme-lighter": "material-theme-lighter";
28
+ "min-light": "min-light";
29
+ "night-owl-light": "night-owl-light";
30
+ "one-light": "one-light";
31
+ "rose-pine-dawn": "rose-pine-dawn";
32
+ "slack-ochin": "slack-ochin";
33
+ "snazzy-light": "snazzy-light";
34
+ "solarized-light": "solarized-light";
35
+ "vitesse-light": "vitesse-light";
36
+ }>>;
37
+ codeThemeDark: z.ZodDefault<z.ZodEnum<{
38
+ andromeeda: "andromeeda";
39
+ "aurora-x": "aurora-x";
40
+ "ayu-dark": "ayu-dark";
41
+ "ayu-mirage": "ayu-mirage";
42
+ "catppuccin-frappe": "catppuccin-frappe";
43
+ "catppuccin-macchiato": "catppuccin-macchiato";
44
+ "catppuccin-mocha": "catppuccin-mocha";
45
+ "dark-plus": "dark-plus";
46
+ dracula: "dracula";
47
+ "dracula-soft": "dracula-soft";
48
+ "everforest-dark": "everforest-dark";
49
+ "github-dark": "github-dark";
50
+ "github-dark-default": "github-dark-default";
51
+ "github-dark-dimmed": "github-dark-dimmed";
52
+ "github-dark-high-contrast": "github-dark-high-contrast";
53
+ "gruvbox-dark-hard": "gruvbox-dark-hard";
54
+ "gruvbox-dark-medium": "gruvbox-dark-medium";
55
+ "gruvbox-dark-soft": "gruvbox-dark-soft";
56
+ horizon: "horizon";
57
+ houston: "houston";
58
+ "kanagawa-dragon": "kanagawa-dragon";
59
+ "kanagawa-wave": "kanagawa-wave";
60
+ laserwave: "laserwave";
61
+ "material-theme": "material-theme";
62
+ "material-theme-darker": "material-theme-darker";
63
+ "material-theme-ocean": "material-theme-ocean";
64
+ "material-theme-palenight": "material-theme-palenight";
65
+ "min-dark": "min-dark";
66
+ monokai: "monokai";
67
+ "night-owl": "night-owl";
68
+ nord: "nord";
69
+ "one-dark-pro": "one-dark-pro";
70
+ plastic: "plastic";
71
+ poimandres: "poimandres";
72
+ red: "red";
73
+ "rose-pine": "rose-pine";
74
+ "rose-pine-moon": "rose-pine-moon";
75
+ "slack-dark": "slack-dark";
76
+ "solarized-dark": "solarized-dark";
77
+ "synthwave-84": "synthwave-84";
78
+ "tokyo-night": "tokyo-night";
79
+ vesper: "vesper";
80
+ "vitesse-black": "vitesse-black";
81
+ "vitesse-dark": "vitesse-dark";
82
+ }>>;
83
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
84
+ url: z.ZodString;
85
+ title: z.ZodString;
86
+ icon: z.ZodOptional<z.ZodString>;
87
+ prefix: z.ZodOptional<z.ZodString>;
88
+ position: z.ZodDefault<z.ZodEnum<{
89
+ header: "header";
90
+ sidebar: "sidebar";
91
+ }>>;
92
+ }, z.core.$strip>>>;
93
+ sections: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDiscriminatedUnion<[z.ZodObject<{
94
+ icon: z.ZodOptional<z.ZodString>;
95
+ title: z.ZodString;
96
+ prefix: z.ZodString;
97
+ position: z.ZodDefault<z.ZodEnum<{
98
+ header: "header";
99
+ sidebar: "sidebar";
100
+ }>>;
101
+ type: z.ZodLiteral<"article">;
102
+ }, z.core.$strip>, z.ZodObject<{
103
+ icon: z.ZodOptional<z.ZodString>;
104
+ title: z.ZodString;
105
+ prefix: z.ZodString;
106
+ position: z.ZodDefault<z.ZodEnum<{
107
+ header: "header";
108
+ sidebar: "sidebar";
109
+ }>>;
110
+ type: z.ZodLiteral<"blog">;
111
+ }, z.core.$strip>, z.ZodObject<{
112
+ icon: z.ZodOptional<z.ZodString>;
113
+ title: z.ZodString;
114
+ prefix: z.ZodString;
115
+ position: z.ZodDefault<z.ZodEnum<{
116
+ header: "header";
117
+ sidebar: "sidebar";
118
+ }>>;
119
+ type: z.ZodLiteral<"changelog">;
120
+ source: z.ZodString;
121
+ version: z.ZodOptional<z.ZodBoolean>;
122
+ }, z.core.$strip>], "type">>>>;
123
+ patches: z.ZodOptional<z.ZodArray<z.ZodObject<{
124
+ file: z.ZodString;
125
+ article: z.ZodObject<{
126
+ title: z.ZodOptional<z.ZodOptional<z.ZodString>>;
127
+ label: z.ZodOptional<z.ZodOptional<z.ZodString>>;
128
+ description: z.ZodOptional<z.ZodOptional<z.ZodString>>;
129
+ icon: z.ZodOptional<z.ZodOptional<z.ZodString>>;
130
+ order: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
131
+ path: z.ZodOptional<z.ZodOptional<z.ZodString>>;
132
+ group: z.ZodOptional<z.ZodOptional<z.ZodString>>;
133
+ sidebar: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
134
+ toc: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
135
+ image: z.ZodOptional<z.ZodOptional<z.ZodString>>;
136
+ author: z.ZodOptional<z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>;
137
+ date: z.ZodOptional<z.ZodOptional<z.ZodString>>;
138
+ tags: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
139
+ }, z.core.$strict>;
140
+ }, z.core.$strip>>>;
141
+ }, z.core.$strip>;
142
+ /** Website configuration injected at build time via Vite define */
143
+ export type WebsiteConfig = z.infer<typeof WebsiteConfig>;
144
+ export declare const WebsiteConfig: z.ZodObject<{
145
+ site: z.ZodOptional<z.ZodString>;
146
+ favicon: z.ZodOptional<z.ZodString>;
147
+ logo: z.ZodOptional<z.ZodString>;
148
+ title: z.ZodDefault<z.ZodString>;
149
+ description: z.ZodDefault<z.ZodString>;
150
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
151
+ url: z.ZodString;
152
+ title: z.ZodString;
153
+ icon: z.ZodOptional<z.ZodString>;
154
+ prefix: z.ZodOptional<z.ZodString>;
155
+ position: z.ZodDefault<z.ZodEnum<{
156
+ header: "header";
157
+ sidebar: "sidebar";
158
+ }>>;
159
+ }, z.core.$strip>>>;
160
+ sections: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDiscriminatedUnion<[z.ZodObject<{
161
+ icon: z.ZodOptional<z.ZodString>;
162
+ title: z.ZodString;
163
+ prefix: z.ZodString;
164
+ position: z.ZodDefault<z.ZodEnum<{
165
+ header: "header";
166
+ sidebar: "sidebar";
167
+ }>>;
168
+ type: z.ZodLiteral<"article">;
169
+ }, z.core.$strip>, z.ZodObject<{
170
+ icon: z.ZodOptional<z.ZodString>;
171
+ title: z.ZodString;
172
+ prefix: z.ZodString;
173
+ position: z.ZodDefault<z.ZodEnum<{
174
+ header: "header";
175
+ sidebar: "sidebar";
176
+ }>>;
177
+ type: z.ZodLiteral<"blog">;
178
+ }, z.core.$strip>, z.ZodObject<{
179
+ icon: z.ZodOptional<z.ZodString>;
180
+ title: z.ZodString;
181
+ prefix: z.ZodString;
182
+ position: z.ZodDefault<z.ZodEnum<{
183
+ header: "header";
184
+ sidebar: "sidebar";
185
+ }>>;
186
+ type: z.ZodLiteral<"changelog">;
187
+ source: z.ZodString;
188
+ version: z.ZodOptional<z.ZodBoolean>;
189
+ }, z.core.$strip>], "type">>>>;
13
190
  }, z.core.$strip>;
14
191
  /**
15
192
  * System-computed configuration derived from the config file location.
@@ -17,17 +194,147 @@ export declare const UserConfig: z.ZodObject<{
17
194
  export type SystemConfig = z.infer<typeof SystemConfig>;
18
195
  export declare const SystemConfig: z.ZodObject<{
19
196
  root: z.ZodString;
197
+ configPath: z.ZodString;
20
198
  }, z.core.$strip>;
21
199
  /**
22
200
  * Fully resolved Livemark configuration.
23
201
  */
24
202
  export type Config = z.infer<typeof Config>;
25
203
  export declare const Config: z.ZodObject<{
204
+ site: z.ZodOptional<z.ZodString>;
205
+ favicon: z.ZodOptional<z.ZodString>;
206
+ logo: z.ZodOptional<z.ZodString>;
26
207
  title: z.ZodDefault<z.ZodString>;
27
208
  description: z.ZodDefault<z.ZodString>;
28
- articles: z.ZodObject<{
29
- include: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
30
- exclude: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
31
- }, z.core.$strip>;
209
+ include: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
210
+ exclude: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
211
+ codeThemeLight: z.ZodDefault<z.ZodEnum<{
212
+ "ayu-light": "ayu-light";
213
+ "catppuccin-latte": "catppuccin-latte";
214
+ "everforest-light": "everforest-light";
215
+ "github-light": "github-light";
216
+ "github-light-default": "github-light-default";
217
+ "github-light-high-contrast": "github-light-high-contrast";
218
+ "gruvbox-light-hard": "gruvbox-light-hard";
219
+ "gruvbox-light-medium": "gruvbox-light-medium";
220
+ "gruvbox-light-soft": "gruvbox-light-soft";
221
+ "horizon-bright": "horizon-bright";
222
+ "kanagawa-lotus": "kanagawa-lotus";
223
+ "light-plus": "light-plus";
224
+ "material-theme-lighter": "material-theme-lighter";
225
+ "min-light": "min-light";
226
+ "night-owl-light": "night-owl-light";
227
+ "one-light": "one-light";
228
+ "rose-pine-dawn": "rose-pine-dawn";
229
+ "slack-ochin": "slack-ochin";
230
+ "snazzy-light": "snazzy-light";
231
+ "solarized-light": "solarized-light";
232
+ "vitesse-light": "vitesse-light";
233
+ }>>;
234
+ codeThemeDark: z.ZodDefault<z.ZodEnum<{
235
+ andromeeda: "andromeeda";
236
+ "aurora-x": "aurora-x";
237
+ "ayu-dark": "ayu-dark";
238
+ "ayu-mirage": "ayu-mirage";
239
+ "catppuccin-frappe": "catppuccin-frappe";
240
+ "catppuccin-macchiato": "catppuccin-macchiato";
241
+ "catppuccin-mocha": "catppuccin-mocha";
242
+ "dark-plus": "dark-plus";
243
+ dracula: "dracula";
244
+ "dracula-soft": "dracula-soft";
245
+ "everforest-dark": "everforest-dark";
246
+ "github-dark": "github-dark";
247
+ "github-dark-default": "github-dark-default";
248
+ "github-dark-dimmed": "github-dark-dimmed";
249
+ "github-dark-high-contrast": "github-dark-high-contrast";
250
+ "gruvbox-dark-hard": "gruvbox-dark-hard";
251
+ "gruvbox-dark-medium": "gruvbox-dark-medium";
252
+ "gruvbox-dark-soft": "gruvbox-dark-soft";
253
+ horizon: "horizon";
254
+ houston: "houston";
255
+ "kanagawa-dragon": "kanagawa-dragon";
256
+ "kanagawa-wave": "kanagawa-wave";
257
+ laserwave: "laserwave";
258
+ "material-theme": "material-theme";
259
+ "material-theme-darker": "material-theme-darker";
260
+ "material-theme-ocean": "material-theme-ocean";
261
+ "material-theme-palenight": "material-theme-palenight";
262
+ "min-dark": "min-dark";
263
+ monokai: "monokai";
264
+ "night-owl": "night-owl";
265
+ nord: "nord";
266
+ "one-dark-pro": "one-dark-pro";
267
+ plastic: "plastic";
268
+ poimandres: "poimandres";
269
+ red: "red";
270
+ "rose-pine": "rose-pine";
271
+ "rose-pine-moon": "rose-pine-moon";
272
+ "slack-dark": "slack-dark";
273
+ "solarized-dark": "solarized-dark";
274
+ "synthwave-84": "synthwave-84";
275
+ "tokyo-night": "tokyo-night";
276
+ vesper: "vesper";
277
+ "vitesse-black": "vitesse-black";
278
+ "vitesse-dark": "vitesse-dark";
279
+ }>>;
280
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
281
+ url: z.ZodString;
282
+ title: z.ZodString;
283
+ icon: z.ZodOptional<z.ZodString>;
284
+ prefix: z.ZodOptional<z.ZodString>;
285
+ position: z.ZodDefault<z.ZodEnum<{
286
+ header: "header";
287
+ sidebar: "sidebar";
288
+ }>>;
289
+ }, z.core.$strip>>>;
290
+ sections: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDiscriminatedUnion<[z.ZodObject<{
291
+ icon: z.ZodOptional<z.ZodString>;
292
+ title: z.ZodString;
293
+ prefix: z.ZodString;
294
+ position: z.ZodDefault<z.ZodEnum<{
295
+ header: "header";
296
+ sidebar: "sidebar";
297
+ }>>;
298
+ type: z.ZodLiteral<"article">;
299
+ }, z.core.$strip>, z.ZodObject<{
300
+ icon: z.ZodOptional<z.ZodString>;
301
+ title: z.ZodString;
302
+ prefix: z.ZodString;
303
+ position: z.ZodDefault<z.ZodEnum<{
304
+ header: "header";
305
+ sidebar: "sidebar";
306
+ }>>;
307
+ type: z.ZodLiteral<"blog">;
308
+ }, z.core.$strip>, z.ZodObject<{
309
+ icon: z.ZodOptional<z.ZodString>;
310
+ title: z.ZodString;
311
+ prefix: z.ZodString;
312
+ position: z.ZodDefault<z.ZodEnum<{
313
+ header: "header";
314
+ sidebar: "sidebar";
315
+ }>>;
316
+ type: z.ZodLiteral<"changelog">;
317
+ source: z.ZodString;
318
+ version: z.ZodOptional<z.ZodBoolean>;
319
+ }, z.core.$strip>], "type">>>>;
320
+ patches: z.ZodOptional<z.ZodArray<z.ZodObject<{
321
+ file: z.ZodString;
322
+ article: z.ZodObject<{
323
+ title: z.ZodOptional<z.ZodOptional<z.ZodString>>;
324
+ label: z.ZodOptional<z.ZodOptional<z.ZodString>>;
325
+ description: z.ZodOptional<z.ZodOptional<z.ZodString>>;
326
+ icon: z.ZodOptional<z.ZodOptional<z.ZodString>>;
327
+ order: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
328
+ path: z.ZodOptional<z.ZodOptional<z.ZodString>>;
329
+ group: z.ZodOptional<z.ZodOptional<z.ZodString>>;
330
+ sidebar: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
331
+ toc: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
332
+ image: z.ZodOptional<z.ZodOptional<z.ZodString>>;
333
+ author: z.ZodOptional<z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>;
334
+ date: z.ZodOptional<z.ZodOptional<z.ZodString>>;
335
+ tags: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
336
+ }, z.core.$strict>;
337
+ }, z.core.$strip>>>;
32
338
  root: z.ZodString;
339
+ configPath: z.ZodString;
33
340
  }, z.core.$strip>;
@@ -1,14 +1,34 @@
1
1
  import { z } from "zod";
2
+ import { Link } from "./link.js";
3
+ import { Patch } from "./patch.js";
4
+ import { Section } from "./section.js";
5
+ import { CodeThemeDark, CodeThemeLight } from "./theme.js";
2
6
  export const UserConfig = z.object({
7
+ site: z.string().optional(),
8
+ favicon: z.string().optional(),
9
+ logo: z.string().optional(),
3
10
  title: z.string().default("Livemark"),
4
11
  description: z.string().default("Markdown site generator"),
5
- articles: z.object({
6
- include: z.union([z.string(), z.array(z.string())]),
7
- exclude: z.union([z.string(), z.array(z.string())]).optional(),
8
- }),
12
+ include: z.union([z.string(), z.array(z.string())]),
13
+ exclude: z.union([z.string(), z.array(z.string())]).optional(),
14
+ codeThemeLight: CodeThemeLight.default("catppuccin-latte"),
15
+ codeThemeDark: CodeThemeDark.default("catppuccin-mocha"),
16
+ links: z.array(Link).optional(),
17
+ sections: z.array(Section).optional(),
18
+ patches: z.array(Patch).optional(),
19
+ });
20
+ export const WebsiteConfig = UserConfig.pick({
21
+ title: true,
22
+ description: true,
23
+ site: true,
24
+ favicon: true,
25
+ logo: true,
26
+ links: true,
27
+ sections: true,
9
28
  });
10
29
  export const SystemConfig = z.object({
11
30
  root: z.string(),
31
+ configPath: z.string(),
12
32
  });
13
33
  export const Config = UserConfig.merge(SystemConfig);
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbW9kZWxzL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFBO0FBTXZCLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2pDLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztJQUNyQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQztJQUMxRCxRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNqQixPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkQsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0tBQy9ELENBQUM7Q0FDSCxDQUFDLENBQUE7QUFNRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNuQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtDQUNqQixDQUFDLENBQUE7QUFNRixNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHogfSBmcm9tIFwiem9kXCJcblxuLyoqXG4gKiBVc2VyLXByb3ZpZGVkIGNvbmZpZ3VyYXRpb24gZm9yIExpdmVtYXJrLlxuICovXG5leHBvcnQgdHlwZSBVc2VyQ29uZmlnID0gei5pbmZlcjx0eXBlb2YgVXNlckNvbmZpZz5cbmV4cG9ydCBjb25zdCBVc2VyQ29uZmlnID0gei5vYmplY3Qoe1xuICB0aXRsZTogei5zdHJpbmcoKS5kZWZhdWx0KFwiTGl2ZW1hcmtcIiksXG4gIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLmRlZmF1bHQoXCJNYXJrZG93biBzaXRlIGdlbmVyYXRvclwiKSxcbiAgYXJ0aWNsZXM6IHoub2JqZWN0KHtcbiAgICBpbmNsdWRlOiB6LnVuaW9uKFt6LnN0cmluZygpLCB6LmFycmF5KHouc3RyaW5nKCkpXSksXG4gICAgZXhjbHVkZTogei51bmlvbihbei5zdHJpbmcoKSwgei5hcnJheSh6LnN0cmluZygpKV0pLm9wdGlvbmFsKCksXG4gIH0pLFxufSlcblxuLyoqXG4gKiBTeXN0ZW0tY29tcHV0ZWQgY29uZmlndXJhdGlvbiBkZXJpdmVkIGZyb20gdGhlIGNvbmZpZyBmaWxlIGxvY2F0aW9uLlxuICovXG5leHBvcnQgdHlwZSBTeXN0ZW1Db25maWcgPSB6LmluZmVyPHR5cGVvZiBTeXN0ZW1Db25maWc+XG5leHBvcnQgY29uc3QgU3lzdGVtQ29uZmlnID0gei5vYmplY3Qoe1xuICByb290OiB6LnN0cmluZygpLFxufSlcblxuLyoqXG4gKiBGdWxseSByZXNvbHZlZCBMaXZlbWFyayBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgdHlwZSBDb25maWcgPSB6LmluZmVyPHR5cGVvZiBDb25maWc+XG5leHBvcnQgY29uc3QgQ29uZmlnID0gVXNlckNvbmZpZy5tZXJnZShTeXN0ZW1Db25maWcpXG4iXX0=
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbW9kZWxzL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFBO0FBQ3ZCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDaEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNsQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3RDLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBTTFELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2pDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzNCLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzlCLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzNCLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztJQUNyQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQztJQUMxRCxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkQsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQzlELGNBQWMsRUFBRSxjQUFjLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDO0lBQzFELGFBQWEsRUFBRSxhQUFhLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDO0lBQ3hELEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUMvQixRQUFRLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDckMsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFO0NBQ25DLENBQUMsQ0FBQTtBQUlGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO0lBQzNDLEtBQUssRUFBRSxJQUFJO0lBQ1gsV0FBVyxFQUFFLElBQUk7SUFDakIsSUFBSSxFQUFFLElBQUk7SUFDVixPQUFPLEVBQUUsSUFBSTtJQUNiLElBQUksRUFBRSxJQUFJO0lBQ1YsS0FBSyxFQUFFLElBQUk7SUFDWCxRQUFRLEVBQUUsSUFBSTtDQUNmLENBQUMsQ0FBQTtBQU1GLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ25DLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2hCLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0NBQ3ZCLENBQUMsQ0FBQTtBQU1GLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIlxuaW1wb3J0IHsgTGluayB9IGZyb20gXCIuL2xpbmsudHNcIlxuaW1wb3J0IHsgUGF0Y2ggfSBmcm9tIFwiLi9wYXRjaC50c1wiXG5pbXBvcnQgeyBTZWN0aW9uIH0gZnJvbSBcIi4vc2VjdGlvbi50c1wiXG5pbXBvcnQgeyBDb2RlVGhlbWVEYXJrLCBDb2RlVGhlbWVMaWdodCB9IGZyb20gXCIuL3RoZW1lLnRzXCJcblxuLyoqXG4gKiBVc2VyLXByb3ZpZGVkIGNvbmZpZ3VyYXRpb24gZm9yIExpdmVtYXJrLlxuICovXG5leHBvcnQgdHlwZSBVc2VyQ29uZmlnID0gei5pbmZlcjx0eXBlb2YgVXNlckNvbmZpZz5cbmV4cG9ydCBjb25zdCBVc2VyQ29uZmlnID0gei5vYmplY3Qoe1xuICBzaXRlOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGZhdmljb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgbG9nbzogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICB0aXRsZTogei5zdHJpbmcoKS5kZWZhdWx0KFwiTGl2ZW1hcmtcIiksXG4gIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLmRlZmF1bHQoXCJNYXJrZG93biBzaXRlIGdlbmVyYXRvclwiKSxcbiAgaW5jbHVkZTogei51bmlvbihbei5zdHJpbmcoKSwgei5hcnJheSh6LnN0cmluZygpKV0pLFxuICBleGNsdWRlOiB6LnVuaW9uKFt6LnN0cmluZygpLCB6LmFycmF5KHouc3RyaW5nKCkpXSkub3B0aW9uYWwoKSxcbiAgY29kZVRoZW1lTGlnaHQ6IENvZGVUaGVtZUxpZ2h0LmRlZmF1bHQoXCJjYXRwcHVjY2luLWxhdHRlXCIpLFxuICBjb2RlVGhlbWVEYXJrOiBDb2RlVGhlbWVEYXJrLmRlZmF1bHQoXCJjYXRwcHVjY2luLW1vY2hhXCIpLFxuICBsaW5rczogei5hcnJheShMaW5rKS5vcHRpb25hbCgpLFxuICBzZWN0aW9uczogei5hcnJheShTZWN0aW9uKS5vcHRpb25hbCgpLFxuICBwYXRjaGVzOiB6LmFycmF5KFBhdGNoKS5vcHRpb25hbCgpLFxufSlcblxuLyoqIFdlYnNpdGUgY29uZmlndXJhdGlvbiBpbmplY3RlZCBhdCBidWlsZCB0aW1lIHZpYSBWaXRlIGRlZmluZSAqL1xuZXhwb3J0IHR5cGUgV2Vic2l0ZUNvbmZpZyA9IHouaW5mZXI8dHlwZW9mIFdlYnNpdGVDb25maWc+XG5leHBvcnQgY29uc3QgV2Vic2l0ZUNvbmZpZyA9IFVzZXJDb25maWcucGljayh7XG4gIHRpdGxlOiB0cnVlLFxuICBkZXNjcmlwdGlvbjogdHJ1ZSxcbiAgc2l0ZTogdHJ1ZSxcbiAgZmF2aWNvbjogdHJ1ZSxcbiAgbG9nbzogdHJ1ZSxcbiAgbGlua3M6IHRydWUsXG4gIHNlY3Rpb25zOiB0cnVlLFxufSlcblxuLyoqXG4gKiBTeXN0ZW0tY29tcHV0ZWQgY29uZmlndXJhdGlvbiBkZXJpdmVkIGZyb20gdGhlIGNvbmZpZyBmaWxlIGxvY2F0aW9uLlxuICovXG5leHBvcnQgdHlwZSBTeXN0ZW1Db25maWcgPSB6LmluZmVyPHR5cGVvZiBTeXN0ZW1Db25maWc+XG5leHBvcnQgY29uc3QgU3lzdGVtQ29uZmlnID0gei5vYmplY3Qoe1xuICByb290OiB6LnN0cmluZygpLFxuICBjb25maWdQYXRoOiB6LnN0cmluZygpLFxufSlcblxuLyoqXG4gKiBGdWxseSByZXNvbHZlZCBMaXZlbWFyayBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgdHlwZSBDb25maWcgPSB6LmluZmVyPHR5cGVvZiBDb25maWc+XG5leHBvcnQgY29uc3QgQ29uZmlnID0gVXNlckNvbmZpZy5tZXJnZShTeXN0ZW1Db25maWcpXG4iXX0=
@@ -0,0 +1,13 @@
1
+ import { z } from "zod";
2
+ /** Header or sidebar link to an external URL. */
3
+ export type Link = z.infer<typeof Link>;
4
+ export declare const Link: z.ZodObject<{
5
+ url: z.ZodString;
6
+ title: z.ZodString;
7
+ icon: z.ZodOptional<z.ZodString>;
8
+ prefix: z.ZodOptional<z.ZodString>;
9
+ position: z.ZodDefault<z.ZodEnum<{
10
+ header: "header";
11
+ sidebar: "sidebar";
12
+ }>>;
13
+ }, z.core.$strip>;
@@ -0,0 +1,9 @@
1
+ import { z } from "zod";
2
+ export const Link = z.object({
3
+ url: z.string(),
4
+ title: z.string(),
5
+ icon: z.string().optional(),
6
+ prefix: z.string().optional(),
7
+ position: z.enum(["header", "sidebar"]).default("header"),
8
+ });
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL21vZGVscy9saW5rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUE7QUFJdkIsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDM0IsR0FBRyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDZixLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNqQixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMzQixNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QixRQUFRLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7Q0FDMUQsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIlxuXG4vKiogSGVhZGVyIG9yIHNpZGViYXIgbGluayB0byBhbiBleHRlcm5hbCBVUkwuICovXG5leHBvcnQgdHlwZSBMaW5rID0gei5pbmZlcjx0eXBlb2YgTGluaz5cbmV4cG9ydCBjb25zdCBMaW5rID0gei5vYmplY3Qoe1xuICB1cmw6IHouc3RyaW5nKCksXG4gIHRpdGxlOiB6LnN0cmluZygpLFxuICBpY29uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHByZWZpeDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBwb3NpdGlvbjogei5lbnVtKFtcImhlYWRlclwiLCBcInNpZGViYXJcIl0pLmRlZmF1bHQoXCJoZWFkZXJcIiksXG59KVxuIl19
@@ -0,0 +1,21 @@
1
+ import { z } from "zod";
2
+ /** Per-file override for article frontmatter provided via `livemark.config.ts`. */
3
+ export type Patch = z.infer<typeof Patch>;
4
+ export declare const Patch: z.ZodObject<{
5
+ file: z.ZodString;
6
+ article: z.ZodObject<{
7
+ title: z.ZodOptional<z.ZodOptional<z.ZodString>>;
8
+ label: z.ZodOptional<z.ZodOptional<z.ZodString>>;
9
+ description: z.ZodOptional<z.ZodOptional<z.ZodString>>;
10
+ icon: z.ZodOptional<z.ZodOptional<z.ZodString>>;
11
+ order: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
12
+ path: z.ZodOptional<z.ZodOptional<z.ZodString>>;
13
+ group: z.ZodOptional<z.ZodOptional<z.ZodString>>;
14
+ sidebar: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
15
+ toc: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
16
+ image: z.ZodOptional<z.ZodOptional<z.ZodString>>;
17
+ author: z.ZodOptional<z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>;
18
+ date: z.ZodOptional<z.ZodOptional<z.ZodString>>;
19
+ tags: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
20
+ }, z.core.$strict>;
21
+ }, z.core.$strip>;
@@ -0,0 +1,7 @@
1
+ import { z } from "zod";
2
+ import { Article } from "../website/models/article.js";
3
+ export const Patch = z.object({
4
+ file: z.string(),
5
+ article: Article.omit({ content: true }).partial().strict(),
6
+ });
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9tb2RlbHMvcGF0Y2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQTtBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFJdEQsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDNUIsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDaEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUU7Q0FDNUQsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIlxuaW1wb3J0IHsgQXJ0aWNsZSB9IGZyb20gXCIuLi93ZWJzaXRlL21vZGVscy9hcnRpY2xlLnRzXCJcblxuLyoqIFBlci1maWxlIG92ZXJyaWRlIGZvciBhcnRpY2xlIGZyb250bWF0dGVyIHByb3ZpZGVkIHZpYSBgbGl2ZW1hcmsuY29uZmlnLnRzYC4gKi9cbmV4cG9ydCB0eXBlIFBhdGNoID0gei5pbmZlcjx0eXBlb2YgUGF0Y2g+XG5leHBvcnQgY29uc3QgUGF0Y2ggPSB6Lm9iamVjdCh7XG4gIGZpbGU6IHouc3RyaW5nKCksXG4gIGFydGljbGU6IEFydGljbGUub21pdCh7IGNvbnRlbnQ6IHRydWUgfSkucGFydGlhbCgpLnN0cmljdCgpLFxufSlcbiJdfQ==
@@ -0,0 +1,75 @@
1
+ import { z } from "zod";
2
+ /** Default section: renders articles. */
3
+ export type ArticleSection = z.infer<typeof ArticleSection>;
4
+ export declare const ArticleSection: z.ZodObject<{
5
+ icon: z.ZodOptional<z.ZodString>;
6
+ title: z.ZodString;
7
+ prefix: z.ZodString;
8
+ position: z.ZodDefault<z.ZodEnum<{
9
+ header: "header";
10
+ sidebar: "sidebar";
11
+ }>>;
12
+ type: z.ZodLiteral<"article">;
13
+ }, z.core.$strip>;
14
+ /** Blog section: date-sorted posts with tags and index. */
15
+ export type BlogSection = z.infer<typeof BlogSection>;
16
+ export declare const BlogSection: z.ZodObject<{
17
+ icon: z.ZodOptional<z.ZodString>;
18
+ title: z.ZodString;
19
+ prefix: z.ZodString;
20
+ position: z.ZodDefault<z.ZodEnum<{
21
+ header: "header";
22
+ sidebar: "sidebar";
23
+ }>>;
24
+ type: z.ZodLiteral<"blog">;
25
+ }, z.core.$strip>;
26
+ /** Changelog section: single file or GitHub releases, split per version. */
27
+ export type ChangelogSection = z.infer<typeof ChangelogSection>;
28
+ export declare const ChangelogSection: z.ZodObject<{
29
+ icon: z.ZodOptional<z.ZodString>;
30
+ title: z.ZodString;
31
+ prefix: z.ZodString;
32
+ position: z.ZodDefault<z.ZodEnum<{
33
+ header: "header";
34
+ sidebar: "sidebar";
35
+ }>>;
36
+ type: z.ZodLiteral<"changelog">;
37
+ source: z.ZodString;
38
+ version: z.ZodOptional<z.ZodBoolean>;
39
+ }, z.core.$strip>;
40
+ /**
41
+ * A site section. Discriminated on `type`.
42
+ * When `type` is omitted, it defaults to "article" so plain
43
+ * `{ title, prefix }` entries keep working.
44
+ */
45
+ export type Section = z.infer<typeof Section>;
46
+ export declare const Section: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDiscriminatedUnion<[z.ZodObject<{
47
+ icon: z.ZodOptional<z.ZodString>;
48
+ title: z.ZodString;
49
+ prefix: z.ZodString;
50
+ position: z.ZodDefault<z.ZodEnum<{
51
+ header: "header";
52
+ sidebar: "sidebar";
53
+ }>>;
54
+ type: z.ZodLiteral<"article">;
55
+ }, z.core.$strip>, z.ZodObject<{
56
+ icon: z.ZodOptional<z.ZodString>;
57
+ title: z.ZodString;
58
+ prefix: z.ZodString;
59
+ position: z.ZodDefault<z.ZodEnum<{
60
+ header: "header";
61
+ sidebar: "sidebar";
62
+ }>>;
63
+ type: z.ZodLiteral<"blog">;
64
+ }, z.core.$strip>, z.ZodObject<{
65
+ icon: z.ZodOptional<z.ZodString>;
66
+ title: z.ZodString;
67
+ prefix: z.ZodString;
68
+ position: z.ZodDefault<z.ZodEnum<{
69
+ header: "header";
70
+ sidebar: "sidebar";
71
+ }>>;
72
+ type: z.ZodLiteral<"changelog">;
73
+ source: z.ZodString;
74
+ version: z.ZodOptional<z.ZodBoolean>;
75
+ }, z.core.$strip>], "type">>;