mdsvr 2.4.0 → 2.5.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 (93) hide show
  1. package/dist/directory.d.ts +11 -0
  2. package/dist/directory.d.ts.map +1 -1
  3. package/dist/directory.js +31 -115
  4. package/dist/directory.js.map +1 -1
  5. package/dist/generators/feed.d.ts.map +1 -1
  6. package/dist/generators/feed.js +9 -2
  7. package/dist/generators/feed.js.map +1 -1
  8. package/dist/generators/robots.d.ts +11 -0
  9. package/dist/generators/robots.d.ts.map +1 -0
  10. package/dist/generators/robots.js +32 -0
  11. package/dist/generators/robots.js.map +1 -0
  12. package/dist/generators/search-index.d.ts.map +1 -1
  13. package/dist/generators/search-index.js +6 -5
  14. package/dist/generators/search-index.js.map +1 -1
  15. package/dist/generators/sitemap.d.ts +17 -1
  16. package/dist/generators/sitemap.d.ts.map +1 -1
  17. package/dist/generators/sitemap.js +119 -59
  18. package/dist/generators/sitemap.js.map +1 -1
  19. package/dist/generators/static-export.d.ts.map +1 -1
  20. package/dist/generators/static-export.js +66 -11
  21. package/dist/generators/static-export.js.map +1 -1
  22. package/dist/index.d.ts +1 -1
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js.map +1 -1
  25. package/dist/link-transform.d.ts +37 -5
  26. package/dist/link-transform.d.ts.map +1 -1
  27. package/dist/link-transform.js +120 -13
  28. package/dist/link-transform.js.map +1 -1
  29. package/dist/render-page.d.ts +1 -2
  30. package/dist/render-page.d.ts.map +1 -1
  31. package/dist/render-page.js +56 -40
  32. package/dist/render-page.js.map +1 -1
  33. package/dist/renderer/markdown.d.ts +0 -16
  34. package/dist/renderer/markdown.d.ts.map +1 -1
  35. package/dist/renderer/markdown.js +6 -63
  36. package/dist/renderer/markdown.js.map +1 -1
  37. package/dist/router.d.ts.map +1 -1
  38. package/dist/router.js +19 -1
  39. package/dist/router.js.map +1 -1
  40. package/dist/seo/extract.d.ts +26 -0
  41. package/dist/seo/extract.d.ts.map +1 -0
  42. package/dist/seo/extract.js +159 -0
  43. package/dist/seo/extract.js.map +1 -0
  44. package/dist/seo/index.d.ts +5 -0
  45. package/dist/seo/index.d.ts.map +1 -0
  46. package/dist/seo/index.js +5 -0
  47. package/dist/seo/index.js.map +1 -0
  48. package/dist/seo/jsonld.d.ts +15 -0
  49. package/dist/seo/jsonld.d.ts.map +1 -0
  50. package/dist/seo/jsonld.js +93 -0
  51. package/dist/seo/jsonld.js.map +1 -0
  52. package/dist/seo/metadata.d.ts +60 -0
  53. package/dist/seo/metadata.d.ts.map +1 -0
  54. package/dist/seo/metadata.js +144 -0
  55. package/dist/seo/metadata.js.map +1 -0
  56. package/dist/seo/url.d.ts +27 -0
  57. package/dist/seo/url.d.ts.map +1 -0
  58. package/dist/seo/url.js +76 -0
  59. package/dist/seo/url.js.map +1 -0
  60. package/dist/settings/defaults.d.ts.map +1 -1
  61. package/dist/settings/defaults.js +0 -2
  62. package/dist/settings/defaults.js.map +1 -1
  63. package/dist/settings/index.d.ts +1 -1
  64. package/dist/settings/index.d.ts.map +1 -1
  65. package/dist/settings/index.js +15 -0
  66. package/dist/settings/index.js.map +1 -1
  67. package/dist/settings/schema.d.ts +317 -5
  68. package/dist/settings/schema.d.ts.map +1 -1
  69. package/dist/settings/schema.js +45 -1
  70. package/dist/settings/schema.js.map +1 -1
  71. package/dist/template/analytics.d.ts +18 -0
  72. package/dist/template/analytics.d.ts.map +1 -0
  73. package/dist/template/analytics.js +83 -0
  74. package/dist/template/analytics.js.map +1 -0
  75. package/dist/template/index.d.ts +5 -0
  76. package/dist/template/index.d.ts.map +1 -1
  77. package/dist/template/index.js +59 -59
  78. package/dist/template/index.js.map +1 -1
  79. package/dist/template/search.d.ts.map +1 -1
  80. package/dist/template/search.js +9 -2
  81. package/dist/template/search.js.map +1 -1
  82. package/dist/template/seo.d.ts +7 -10
  83. package/dist/template/seo.d.ts.map +1 -1
  84. package/dist/template/seo.js +57 -33
  85. package/dist/template/seo.js.map +1 -1
  86. package/dist/template/sidebar.d.ts.map +1 -1
  87. package/dist/template/sidebar.js +11 -8
  88. package/dist/template/sidebar.js.map +1 -1
  89. package/dist/validator/index.d.ts +1 -1
  90. package/dist/validator/index.d.ts.map +1 -1
  91. package/dist/validator/index.js +21 -0
  92. package/dist/validator/index.js.map +1 -1
  93. package/package.json +1 -1
@@ -5,6 +5,10 @@ export const LogoSchema = z.object({
5
5
  alt: z.string().default("Logo"),
6
6
  href: z.string().default("/"),
7
7
  });
8
+ export const SiteAuthorSchema = z.object({
9
+ name: z.string(),
10
+ url: z.string().optional(),
11
+ });
8
12
  export const SiteSchema = z.object({
9
13
  title: z.string().default("mdsvr Docs"),
10
14
  description: z.string().default(""),
@@ -12,6 +16,7 @@ export const SiteSchema = z.object({
12
16
  language: z.string().default("en"),
13
17
  logo: LogoSchema.optional(),
14
18
  favicon: z.string().optional(),
19
+ author: SiteAuthorSchema.optional(),
15
20
  });
16
21
  export const AppearanceSchema = z.object({
17
22
  defaultTheme: z.enum(["light", "dark", "system"]).default("system"),
@@ -79,16 +84,30 @@ export const OgSchema = z.object({
79
84
  })
80
85
  .default({}),
81
86
  });
87
+ export const VerificationSchema = z.object({
88
+ google: z.string().optional(),
89
+ bing: z.string().optional(),
90
+ yandex: z.string().optional(),
91
+ pinterest: z.string().optional(),
92
+ naver: z.string().optional(),
93
+ });
82
94
  export const SeoSchema = z.object({
83
- titleTemplate: z.string().default("%s"),
95
+ // Optional. When unset, titles render as "<page title> | <site title>".
96
+ titleTemplate: z.string().optional(),
84
97
  defaultImage: z.string().optional(),
85
98
  twitterCard: z
86
99
  .enum(["summary", "summary_large_image"])
87
100
  .default("summary_large_image"),
88
101
  twitterSite: z.string().optional(),
89
102
  noIndex: z.boolean().default(false),
103
+ // When true, auto-generated directory listing pages emit
104
+ // `noindex, nofollow` and are excluded from the sitemap.
105
+ noIndexDirectoryPages: z.boolean().default(false),
90
106
  generateSitemap: z.boolean().default(true),
107
+ generateRobotsTxt: z.boolean().default(true),
91
108
  generateRssFeed: z.boolean().default(false),
109
+ structuredData: z.boolean().default(true),
110
+ verification: VerificationSchema.default({}),
92
111
  rss: z
93
112
  .object({
94
113
  title: z.string(),
@@ -132,6 +151,30 @@ export const GenerateSchema = z.object({
132
151
  // (matching static export) and redirects .md/.mdx URLs to clean URLs.
133
152
  cleanUrls: z.boolean().default(false),
134
153
  });
154
+ export const AnalyticsSchema = z.object({
155
+ // GA4 measurement ID, e.g. "G-XXXXXXXXXX" — emits gtag.js.
156
+ googleAnalytics: z.string().optional(),
157
+ // GTM container ID, e.g. "GTM-XXXXXXX" — head script + body noscript.
158
+ googleTagManager: z.string().optional(),
159
+ // Microsoft Clarity project ID — emits the clarity inline snippet.
160
+ clarity: z.string().optional(),
161
+ plausible: z
162
+ .object({
163
+ domain: z.string(),
164
+ // Self-hosted instances can override the script URL.
165
+ scriptSrc: z.string().default("https://plausible.io/js/script.js"),
166
+ })
167
+ .optional(),
168
+ umami: z
169
+ .object({
170
+ websiteId: z.string(),
171
+ scriptSrc: z.string().default("https://cloud.umami.is/script.js"),
172
+ })
173
+ .optional(),
174
+ // Raw snippets appended verbatim to the end of <head>. Trusted content:
175
+ // only ever read from the site owner's settings.json (ADR-0008).
176
+ customHead: z.array(z.string()).default([]),
177
+ });
135
178
  export const SettingsSchema = z.object({
136
179
  $schema: z.string().optional(),
137
180
  site: SiteSchema.default({}),
@@ -143,5 +186,6 @@ export const SettingsSchema = z.object({
143
186
  mdx: MdxSchema.default({}),
144
187
  footer: FooterSchema.default({}),
145
188
  generate: GenerateSchema.default({}),
189
+ analytics: AnalyticsSchema.default({}),
146
190
  });
147
191
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/settings/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AAEvB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;CAC9B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC;IACvC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACpC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAClC,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACnE,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;IAC1C,SAAS,EAAE,CAAC;SACT,MAAM,CAAC;QACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;QACnC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC;KACxC,CAAC;SACD,OAAO,CAAC,EAAE,CAAC;IACd,UAAU,EAAE,CAAC;SACV,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;KAC1C,CAAC;SACD,OAAO,CAAC,EAAE,CAAC;CACf,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,OAAO,EAAE,CAAC;SACP,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QAClC,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QACvC,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QACzC,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QACtC,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QACtC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5B,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QACpC,OAAO,EAAE,CAAC;aACP,IAAI,CAAC,CAAC,cAAc,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;aAC7C,OAAO,CAAC,cAAc,CAAC;QAC1B,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;KAC5C,CAAC;SACD,OAAO,CAAC,EAAE,CAAC;IACd,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACtC,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACxC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACrC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAClC,YAAY,EAAE,CAAC;SACZ,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QACnC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;QAClC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;KACrC,CAAC;SACD,OAAO,CAAC,EAAE,CAAC;CACf,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC;IACjD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CACnC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;IACvC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAClD,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC3C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IACvC,MAAM,EAAE,CAAC;SACN,MAAM,CAAC;QACN,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;QACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;QACnC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;KACtC,CAAC;SACD,OAAO,CAAC,EAAE,CAAC;CACf,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACvC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,WAAW,EAAE,CAAC;SACX,IAAI,CAAC,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;SACxC,OAAO,CAAC,qBAAqB,CAAC;IACjC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACnC,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC1C,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC3C,GAAG,EAAE,CAAC;SACH,MAAM,CAAC;QACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;QACxC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;KAC1B,CAAC;SACD,QAAQ,EAAE;IACb,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;CACzB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,UAAU,EAAE,CAAC;SACV,MAAM,CAAC;QACN,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC;QAC5D,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC;QAC5D,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC;KAC1D,CAAC;SACD,OAAO,CAAC,EAAE,CAAC;IACd,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC;IAC5D,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC/C,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC;CACnE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAClC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7C,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9C,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC/C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC;IAC5C,KAAK,EAAE,CAAC;SACL,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;KACjB,CAAC,CACH;SACA,OAAO,CAAC,EAAE,CAAC;CACf,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IACrC,iEAAiE;IACjE,sEAAsE;IACtE,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACtC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5B,UAAU,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1B,UAAU,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;IAChC,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9B,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1B,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;IAChC,QAAQ,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;CACrC,CAAC,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/settings/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { Settings } from "../settings/index.js";
2
+ /**
3
+ * Render the `<head>` tags for `seo.verification` — one
4
+ * `<meta name="…" content="…">` per configured provider.
5
+ */
6
+ export declare function buildVerificationTags(settings: Settings): string;
7
+ /**
8
+ * Render the analytics `<head>` snippets for `analytics.*`.
9
+ * `customHead` entries are appended verbatim (trusted content — only ever
10
+ * read from the site owner's `_mdsvr/settings.json`).
11
+ */
12
+ export declare function buildAnalyticsHeadTags(settings: Settings): string;
13
+ /**
14
+ * Tags that must appear immediately after `<body>` — currently only the
15
+ * GTM `<noscript>` iframe.
16
+ */
17
+ export declare function buildBodyStartTags(settings: Settings): string;
18
+ //# sourceMappingURL=analytics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/template/analytics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAqBrD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAYhE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CA+CjE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAI7D"}
@@ -0,0 +1,83 @@
1
+ function escapeHtml(text) {
2
+ const htmlEscapes = {
3
+ "&": "&amp;",
4
+ "<": "&lt;",
5
+ ">": "&gt;",
6
+ '"': "&quot;",
7
+ "'": "&#x27;",
8
+ };
9
+ return text.replace(/[&<>"']/g, (char) => htmlEscapes[char] || char);
10
+ }
11
+ const VERIFICATION_META_NAMES = {
12
+ google: "google-site-verification",
13
+ bing: "msvalidate.01",
14
+ yandex: "yandex-verification",
15
+ pinterest: "p:domain_verify",
16
+ naver: "naver-site-verification",
17
+ };
18
+ /**
19
+ * Render the `<head>` tags for `seo.verification` — one
20
+ * `<meta name="…" content="…">` per configured provider.
21
+ */
22
+ export function buildVerificationTags(settings) {
23
+ const verification = settings.seo.verification;
24
+ const tags = [];
25
+ for (const [provider, metaName] of Object.entries(VERIFICATION_META_NAMES)) {
26
+ const value = verification[provider];
27
+ if (value) {
28
+ tags.push(`<meta name="${metaName}" content="${escapeHtml(value)}">`);
29
+ }
30
+ }
31
+ return tags.join("\n ");
32
+ }
33
+ /**
34
+ * Render the analytics `<head>` snippets for `analytics.*`.
35
+ * `customHead` entries are appended verbatim (trusted content — only ever
36
+ * read from the site owner's `_mdsvr/settings.json`).
37
+ */
38
+ export function buildAnalyticsHeadTags(settings) {
39
+ const a = settings.analytics;
40
+ const tags = [];
41
+ if (a.googleAnalytics) {
42
+ const id = escapeHtml(a.googleAnalytics);
43
+ tags.push(`<script async src="https://www.googletagmanager.com/gtag/js?id=${id}"></script>`, `<script>
44
+ window.dataLayer = window.dataLayer || [];
45
+ function gtag(){dataLayer.push(arguments);}
46
+ gtag('js', new Date());
47
+ gtag('config', '${id}');
48
+ </script>`);
49
+ }
50
+ if (a.googleTagManager) {
51
+ const id = escapeHtml(a.googleTagManager);
52
+ tags.push(`<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
53
+ new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
54
+ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
55
+ 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
56
+ })(window,document,'script','dataLayer','${id}');</script>`);
57
+ }
58
+ if (a.clarity) {
59
+ const id = escapeHtml(a.clarity);
60
+ tags.push(`<script>(function(c,l,a,r,i,t,y){c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
61
+ t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
62
+ y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);})(window,document,"clarity","script","${id}");</script>`);
63
+ }
64
+ if (a.plausible) {
65
+ tags.push(`<script defer data-domain="${escapeHtml(a.plausible.domain)}" src="${escapeHtml(a.plausible.scriptSrc)}"></script>`);
66
+ }
67
+ if (a.umami) {
68
+ tags.push(`<script defer data-website-id="${escapeHtml(a.umami.websiteId)}" src="${escapeHtml(a.umami.scriptSrc)}"></script>`);
69
+ }
70
+ tags.push(...a.customHead);
71
+ return tags.filter(Boolean).join("\n ");
72
+ }
73
+ /**
74
+ * Tags that must appear immediately after `<body>` — currently only the
75
+ * GTM `<noscript>` iframe.
76
+ */
77
+ export function buildBodyStartTags(settings) {
78
+ const gtm = settings.analytics.googleTagManager;
79
+ if (!gtm)
80
+ return "";
81
+ return `<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=${escapeHtml(gtm)}" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>`;
82
+ }
83
+ //# sourceMappingURL=analytics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/template/analytics.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { Settings } from "../settings/index.js";
2
2
  import type { TocItem } from "../renderer/markdown.js";
3
+ import { type PageKind } from "../seo/index.js";
3
4
  import { type NavItem } from "./sidebar.js";
4
5
  export interface TemplateParams {
5
6
  title: string;
@@ -7,6 +8,10 @@ export interface TemplateParams {
7
8
  filePath: string;
8
9
  settings: Settings;
9
10
  frontmatter?: Record<string, unknown>;
11
+ /** Raw markdown/MDX source — enables meta description auto-extraction. */
12
+ content?: string;
13
+ /** Page kind for SEO/JSON-LD ("document" default). */
14
+ kind?: PageKind;
10
15
  toc?: TocItem[];
11
16
  sidebar?: NavItem[];
12
17
  urlPath?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/template/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,yBAAyB,CAAC;AAIvE,OAAO,EAIL,KAAK,OAAO,EACb,MAAM,cAAc,CAAC;AAgDtB,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAmvBzD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/template/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAA+B,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE7E,OAAO,EAIL,KAAK,OAAO,EACb,MAAM,cAAc,CAAC;AAqDtB,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAwtBzD"}
@@ -1,8 +1,8 @@
1
- import { extractSeoData } from "../renderer/markdown.js";
2
- import { getOgImageUrl } from "../og/index.js";
1
+ import { buildJsonLd, resolveSeoData } from "../seo/index.js";
3
2
  import { buildSeoTags } from "./seo.js";
4
3
  import { renderSidebar, renderToc, getPrevNext, } from "./sidebar.js";
5
4
  import { renderSearchModal, renderSearchTrigger, getSearchInlineScript, } from "./search.js";
5
+ import { buildVerificationTags, buildAnalyticsHeadTags, buildBodyStartTags, } from "./analytics.js";
6
6
  import { readFileSync } from "fs";
7
7
  import { fileURLToPath } from "url";
8
8
  import { dirname, join } from "path";
@@ -49,45 +49,22 @@ export function renderPage(params) {
49
49
  document.documentElement.setAttribute('data-content-view', contentView);
50
50
  })();
51
51
  </script>`;
52
- // Read the raw markdown content for SEO extraction if needed
53
- let rawContent = "";
54
- try {
55
- if (params.isStaticExport && body) {
56
- // In static export, we need to access the original markdown content
57
- // This is passed through the render process, but we'll try to extract from frontmatter fallback
58
- }
59
- }
60
- catch {
61
- // Ignore errors
62
- }
63
- // Build SEO data from frontmatter with fallbacks
64
- // Priority: frontmatter > auto-extracted > site defaults
65
- const extractedSeo = rawContent
66
- ? extractSeoData(rawContent)
67
- : { title: null, description: null };
68
- const seoData = {
69
- title: frontmatter.title || title,
70
- description: frontmatter.description ||
71
- extractedSeo.description ||
72
- settings.site.description,
73
- image: frontmatter.image || undefined,
74
- url: urlPath,
75
- type: frontmatter.date ? "article" : "website",
76
- date: frontmatter.date || undefined,
77
- author: frontmatter.author || undefined,
78
- noIndex: frontmatter.noIndex || false,
79
- };
80
- // Add OG image URL if enabled in static export
81
- if (params.isStaticExport && settings.seo.og?.enabled && !seoData.image) {
82
- const ogUrl = getOgImageUrl(urlPath, settings.generate.basePath || "", settings.seo.og.imageFormat);
83
- seoData.image = ogUrl;
84
- }
85
- // Fall back to defaultImage if no image was set
86
- if (!seoData.image) {
87
- seoData.image = settings.seo.defaultImage;
88
- }
52
+ // Resolve SEO data: frontmatter → auto-extracted → site defaults
53
+ const seoData = resolveSeoData({
54
+ frontmatter,
55
+ content: params.content,
56
+ title,
57
+ urlPath,
58
+ kind: params.kind,
59
+ settings,
60
+ sidebar,
61
+ isStaticExport,
62
+ });
89
63
  const seoTags = buildSeoTags(seoData, settings);
90
- const pageTitle = settings.seo.titleTemplate.replace("%s", seoData.title);
64
+ const jsonLd = buildJsonLd(seoData, settings);
65
+ const verificationTags = buildVerificationTags(settings);
66
+ const analyticsHeadTags = buildAnalyticsHeadTags(settings);
67
+ const bodyStartTags = buildBodyStartTags(settings);
91
68
  // Render sidebar if enabled
92
69
  const hasSidebar = settings.navigation.sidebar.enabled && sidebar.length > 0;
93
70
  const sidebarHtml = hasSidebar
@@ -156,14 +133,18 @@ export function renderPage(params) {
156
133
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
157
134
  ${themeScript}
158
135
  ${seoTags}
159
- ${settings.site.favicon ? `<link rel="icon" href="${settings.site.favicon}">` : ""}
136
+ ${jsonLd}
137
+ ${verificationTags}
138
+ ${settings.site.favicon ? `<link rel="icon" href="${escapeHtml(withBasePath(normalizeAssetPath(settings.site.favicon), settings, isStaticExport))}">` : ""}
160
139
  ${body.includes('class="katex') ? '<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.22/dist/katex.min.css" crossorigin="anonymous">' : ""}
161
140
  <style>
162
141
  ${getBaseStyles(settings)}
163
142
  ${getHighlightJsStyles(settings)}
164
143
  </style>
144
+ ${analyticsHeadTags}
165
145
  </head>
166
146
  <body>
147
+ ${bodyStartTags}
167
148
  <header class="site-header">
168
149
  <div class="header-left">
169
150
  ${sidebarToggle}
@@ -566,8 +547,7 @@ function initCodeBlockToolbars() {
566
547
  var fullscreenBtn = container.querySelector('.code-block-btn-fullscreen');
567
548
 
568
549
  function getRawCode() {
569
- var rawEl = container.querySelector('.code-block-raw code');
570
- return rawEl ? rawEl.textContent : '';
550
+ return container.getAttribute('data-code') || '';
571
551
  }
572
552
 
573
553
  function fallbackCopy(text) {
@@ -675,6 +655,7 @@ function initTableToolbars() {
675
655
  }
676
656
 
677
657
  document.querySelectorAll('.markdown-body table').forEach(function(table) {
658
+ if (table.closest('.dir-listing')) return;
678
659
  var wrapper = table.parentElement;
679
660
  if (!wrapper || !wrapper.classList.contains('table-wrapper')) {
680
661
  wrapper = document.createElement('div');
@@ -766,6 +747,16 @@ function withBasePath(href, settings, isStaticExport) {
766
747
  : basePath;
767
748
  return normalizedBase + href;
768
749
  }
750
+ /**
751
+ * Normalize a configured asset path (favicon, logo) so that a bare file
752
+ * name like `favicon.svg` becomes root-relative `/favicon.svg`. Absolute
753
+ * and protocol-relative URLs pass through unchanged.
754
+ */
755
+ function normalizeAssetPath(pathOrUrl) {
756
+ if (/^(https?:)?\/\//i.test(pathOrUrl))
757
+ return pathOrUrl;
758
+ return pathOrUrl.startsWith("/") ? pathOrUrl : `/${pathOrUrl}`;
759
+ }
769
760
  function renderBreadcrumbs(urlPath, settings, isStaticExport) {
770
761
  if (urlPath === "/")
771
762
  return "";
@@ -778,7 +769,7 @@ function renderBreadcrumbs(urlPath, settings, isStaticExport) {
778
769
  if (isLast) {
779
770
  return `<span class="breadcrumb-current">${escapeHtml(label)}</span>`;
780
771
  }
781
- return `<a href="${withBasePath(accum, settings, isStaticExport)}">${escapeHtml(label)}</a>`;
772
+ return `<a href="${withBasePath(`${accum}/`, settings, isStaticExport)}">${escapeHtml(label)}</a>`;
782
773
  });
783
774
  return `<nav class="breadcrumbs">
784
775
  <a href="${withBasePath("/", settings, isStaticExport)}">Home</a>
@@ -1221,10 +1212,8 @@ body {
1221
1212
  }
1222
1213
 
1223
1214
  /* Code block wrapper */
1224
- pre.code-block-wrapper {
1225
- all: unset;
1215
+ .code-block-wrapper {
1226
1216
  display: block;
1227
- padding: 0;
1228
1217
  margin-bottom: 16px;
1229
1218
  }
1230
1219
  .code-block-container {
@@ -1245,11 +1234,6 @@ pre.code-block-wrapper {
1245
1234
  padding: 0;
1246
1235
  border-radius: 0;
1247
1236
  }
1248
- .code-block-raw {
1249
- display: none;
1250
- margin: 0;
1251
- padding: 0;
1252
- }
1253
1237
  .code-block-toolbar {
1254
1238
  position: absolute;
1255
1239
  top: 8px;
@@ -1407,6 +1391,27 @@ pre.code-block-wrapper {
1407
1391
  }
1408
1392
  .markdown-body th { background: var(--bg-secondary); font-weight: 600; white-space: nowrap; }
1409
1393
  .markdown-body tr:nth-child(2n) { background: var(--bg-secondary); }
1394
+
1395
+ /* Directory listing (auto-index pages) */
1396
+ .dir-listing table {
1397
+ width: 100%;
1398
+ border-collapse: collapse;
1399
+ margin-bottom: 16px;
1400
+ }
1401
+ .dir-listing th, .dir-listing td {
1402
+ padding: 8px 12px;
1403
+ text-align: left;
1404
+ border: none;
1405
+ border-bottom: 1px solid var(--border);
1406
+ font-size: 14px;
1407
+ white-space: normal;
1408
+ }
1409
+ .dir-listing th { font-weight: 600; color: var(--text-muted); }
1410
+ .dir-listing tr { background: transparent; }
1411
+ .dir-listing td a { color: var(--accent); text-decoration: none; }
1412
+ .dir-listing td a:hover { text-decoration: underline; }
1413
+ .dir-listing .size { color: var(--text-muted); text-align: right; width: 100px; }
1414
+ .dir-listing .empty { color: var(--text-muted); font-style: italic; }
1410
1415
  .markdown-body img { max-width: 100%; height: auto; }
1411
1416
  .markdown-body hr {
1412
1417
  height: 0.25em;
@@ -1816,17 +1821,12 @@ pre.code-block-wrapper {
1816
1821
  padding: 16px;
1817
1822
  }
1818
1823
 
1819
- /* Mermaid wrapper - reset pre defaults */
1824
+ /* Mermaid wrapper */
1820
1825
  .mermaid-wrapper {
1821
- all: unset;
1822
1826
  display: block;
1827
+ margin-bottom: 16px;
1823
1828
  }
1824
1829
 
1825
- pre.mermaid-wrapper{
1826
- padding: 0;
1827
- }
1828
-
1829
-
1830
1830
  /* Mermaid container */
1831
1831
  .mermaid-container {
1832
1832
  position: relative;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/template/index.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA2WjI,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,IAAI,iEAAiE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyxBxH,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/template/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/template/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CA2B5D;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAc9D;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,GAAE,MAAW,GAAG,MAAM,CAyMnE"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/template/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CA2B5D;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAc9D;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,GAAE,MAAW,GAAG,MAAM,CAgNnE"}
@@ -90,8 +90,15 @@ export function getSearchInlineScript(basePath = "") {
90
90
  searchInput.addEventListener('input', debounce(performSearch, 150));
91
91
  }
92
92
 
93
- // Load search index
94
- loadSearchIndex();
93
+ // Load search index, then honor ?q=<query> (SearchAction entry point)
94
+ loadSearchIndex().then(function() {
95
+ const initialQuery = new URLSearchParams(window.location.search).get('q');
96
+ if (initialQuery && searchInput) {
97
+ searchInput.value = initialQuery;
98
+ openSearch();
99
+ performSearch();
100
+ }
101
+ });
95
102
  }
96
103
 
97
104
  async function loadSearchIndex() {
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/template/search.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,iBAAiB,CAAC,QAAkB;IAClD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO;;;;;;;;;uBASc,QAAQ,CAAC,MAAM,CAAC,WAAW;;;;;;;;;;;;CAYjD,CAAC;AACF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAkB;IACpD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO;;;;;;;;CAQR,CAAC;AACF,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,WAAmB,EAAE;IACzD,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC3C,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvB,CAAC,CAAC,QAAQ,CAAC;IACb,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAqDwB,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+I9C,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/template/search.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,iBAAiB,CAAC,QAAkB;IAClD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO;;;;;;;;;uBASc,QAAQ,CAAC,MAAM,CAAC,WAAW;;;;;;;;;;;;CAYjD,CAAC;AACF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAkB;IACpD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO;;;;;;;;CAQR,CAAC;AACF,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,WAAmB,EAAE;IACzD,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC3C,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvB,CAAC,CAAC,QAAQ,CAAC;IACb,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCA4DwB,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+I9C,CAAC;AACF,CAAC"}
@@ -1,13 +1,10 @@
1
1
  import type { Settings } from "../settings/index.js";
2
- export interface SeoData {
3
- title: string;
4
- description?: string;
5
- image?: string;
6
- url?: string;
7
- type?: "website" | "article";
8
- date?: string;
9
- author?: string;
10
- noIndex?: boolean;
11
- }
2
+ import { type SeoData } from "../seo/metadata.js";
3
+ export type { SeoData } from "../seo/metadata.js";
4
+ /**
5
+ * Render the `<head>` SEO tags for a resolved page. All attribute values
6
+ * (including URLs) are HTML-escaped. Canonical and `og:url` are only
7
+ * emitted as absolute URLs — never relative.
8
+ */
12
9
  export declare function buildSeoTags(data: SeoData, settings: Settings): string;
13
10
  //# sourceMappingURL=seo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"seo.d.ts","sourceRoot":"","sources":["../../src/template/seo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAyBD,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAgFtE"}
1
+ {"version":3,"file":"seo.d.ts","sourceRoot":"","sources":["../../src/template/seo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAmB,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAGnE,YAAY,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAqBlD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAqHtE"}