mdsvr 2.4.1 → 2.6.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 (77) 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 +8 -1
  7. package/dist/generators/feed.js.map +1 -1
  8. package/dist/generators/llms.d.ts +14 -0
  9. package/dist/generators/llms.d.ts.map +1 -0
  10. package/dist/generators/llms.js +139 -0
  11. package/dist/generators/llms.js.map +1 -0
  12. package/dist/generators/search-index.d.ts.map +1 -1
  13. package/dist/generators/search-index.js +5 -4
  14. package/dist/generators/search-index.js.map +1 -1
  15. package/dist/generators/sitemap.js +5 -1
  16. package/dist/generators/sitemap.js.map +1 -1
  17. package/dist/generators/static-export.d.ts.map +1 -1
  18. package/dist/generators/static-export.js +29 -5
  19. package/dist/generators/static-export.js.map +1 -1
  20. package/dist/link-transform.d.ts +37 -5
  21. package/dist/link-transform.d.ts.map +1 -1
  22. package/dist/link-transform.js +120 -13
  23. package/dist/link-transform.js.map +1 -1
  24. package/dist/og/generator.d.ts +20 -0
  25. package/dist/og/generator.d.ts.map +1 -1
  26. package/dist/og/generator.js +30 -22
  27. package/dist/og/generator.js.map +1 -1
  28. package/dist/render-page.d.ts +0 -1
  29. package/dist/render-page.d.ts.map +1 -1
  30. package/dist/render-page.js +61 -34
  31. package/dist/render-page.js.map +1 -1
  32. package/dist/renderer/markdown.d.ts.map +1 -1
  33. package/dist/renderer/markdown.js +37 -52
  34. package/dist/renderer/markdown.js.map +1 -1
  35. package/dist/router.d.ts.map +1 -1
  36. package/dist/router.js +10 -0
  37. package/dist/router.js.map +1 -1
  38. package/dist/seo/extract.d.ts +4 -2
  39. package/dist/seo/extract.d.ts.map +1 -1
  40. package/dist/seo/extract.js +42 -15
  41. package/dist/seo/extract.js.map +1 -1
  42. package/dist/seo/jsonld.d.ts.map +1 -1
  43. package/dist/seo/jsonld.js +11 -0
  44. package/dist/seo/jsonld.js.map +1 -1
  45. package/dist/seo/metadata.d.ts +13 -0
  46. package/dist/seo/metadata.d.ts.map +1 -1
  47. package/dist/seo/metadata.js +15 -3
  48. package/dist/seo/metadata.js.map +1 -1
  49. package/dist/settings/index.d.ts.map +1 -1
  50. package/dist/settings/index.js +14 -0
  51. package/dist/settings/index.js.map +1 -1
  52. package/dist/settings/schema.d.ts +249 -0
  53. package/dist/settings/schema.d.ts.map +1 -1
  54. package/dist/settings/schema.js +39 -0
  55. package/dist/settings/schema.js.map +1 -1
  56. package/dist/template/analytics.d.ts +18 -0
  57. package/dist/template/analytics.d.ts.map +1 -0
  58. package/dist/template/analytics.js +83 -0
  59. package/dist/template/analytics.js.map +1 -0
  60. package/dist/template/index.d.ts +5 -0
  61. package/dist/template/index.d.ts.map +1 -1
  62. package/dist/template/index.js +46 -19
  63. package/dist/template/index.js.map +1 -1
  64. package/dist/template/search.d.ts.map +1 -1
  65. package/dist/template/search.js +9 -2
  66. package/dist/template/search.js.map +1 -1
  67. package/dist/template/seo.d.ts.map +1 -1
  68. package/dist/template/seo.js +83 -0
  69. package/dist/template/seo.js.map +1 -1
  70. package/dist/template/sidebar.d.ts.map +1 -1
  71. package/dist/template/sidebar.js +10 -7
  72. package/dist/template/sidebar.js.map +1 -1
  73. package/dist/validator/index.d.ts +1 -1
  74. package/dist/validator/index.d.ts.map +1 -1
  75. package/dist/validator/index.js +21 -0
  76. package/dist/validator/index.js.map +1 -1
  77. package/package.json +1 -1
@@ -12,12 +12,26 @@ export async function loadSettings(rootDir) {
12
12
  console.warn("[mdsvr] _mdsvr/settings.json validation errors:", result.error.flatten());
13
13
  return SettingsSchema.parse({}); // fallback to defaults
14
14
  }
15
+ warnOnInvalidAnalyticsIds(result.data);
15
16
  return result.data;
16
17
  }
17
18
  catch {
18
19
  return SettingsSchema.parse({}); // no _mdsvr/settings.json → all defaults
19
20
  }
20
21
  }
22
+ const ANALYTICS_ID_PATTERNS = [
23
+ ["googleAnalytics", /^G-[A-Z0-9]+$/],
24
+ ["googleTagManager", /^GTM-[A-Z0-9]+$/],
25
+ ];
26
+ /** Warn (never fail) when configured analytics IDs look malformed. */
27
+ function warnOnInvalidAnalyticsIds(settings) {
28
+ for (const [key, pattern] of ANALYTICS_ID_PATTERNS) {
29
+ const value = settings.analytics[key];
30
+ if (typeof value === "string" && value && !pattern.test(value)) {
31
+ console.warn(`[mdsvr] analytics.${key}: "${value}" does not match expected format ${pattern}`);
32
+ }
33
+ }
34
+ }
21
35
  export function watchSettings(rootDir, onChange) {
22
36
  // Re-load on file change without restarting server
23
37
  return watch(path.join(rootDir, "_mdsvr/settings.json"), async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":"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"}
@@ -288,16 +288,56 @@ export declare const OgSchema: z.ZodObject<{
288
288
  text?: string | undefined;
289
289
  } | undefined;
290
290
  }>;
291
+ export declare const VerificationSchema: z.ZodObject<{
292
+ google: z.ZodOptional<z.ZodString>;
293
+ bing: z.ZodOptional<z.ZodString>;
294
+ yandex: z.ZodOptional<z.ZodString>;
295
+ pinterest: z.ZodOptional<z.ZodString>;
296
+ naver: z.ZodOptional<z.ZodString>;
297
+ }, "strip", z.ZodTypeAny, {
298
+ google?: string | undefined;
299
+ bing?: string | undefined;
300
+ yandex?: string | undefined;
301
+ pinterest?: string | undefined;
302
+ naver?: string | undefined;
303
+ }, {
304
+ google?: string | undefined;
305
+ bing?: string | undefined;
306
+ yandex?: string | undefined;
307
+ pinterest?: string | undefined;
308
+ naver?: string | undefined;
309
+ }>;
291
310
  export declare const SeoSchema: z.ZodObject<{
292
311
  titleTemplate: z.ZodOptional<z.ZodString>;
293
312
  defaultImage: z.ZodOptional<z.ZodString>;
294
313
  twitterCard: z.ZodDefault<z.ZodEnum<["summary", "summary_large_image"]>>;
295
314
  twitterSite: z.ZodOptional<z.ZodString>;
296
315
  noIndex: z.ZodDefault<z.ZodBoolean>;
316
+ noIndexDirectoryPages: z.ZodDefault<z.ZodBoolean>;
297
317
  generateSitemap: z.ZodDefault<z.ZodBoolean>;
298
318
  generateRobotsTxt: z.ZodDefault<z.ZodBoolean>;
299
319
  generateRssFeed: z.ZodDefault<z.ZodBoolean>;
320
+ generateLlmsTxt: z.ZodDefault<z.ZodBoolean>;
300
321
  structuredData: z.ZodDefault<z.ZodBoolean>;
322
+ verification: z.ZodDefault<z.ZodObject<{
323
+ google: z.ZodOptional<z.ZodString>;
324
+ bing: z.ZodOptional<z.ZodString>;
325
+ yandex: z.ZodOptional<z.ZodString>;
326
+ pinterest: z.ZodOptional<z.ZodString>;
327
+ naver: z.ZodOptional<z.ZodString>;
328
+ }, "strip", z.ZodTypeAny, {
329
+ google?: string | undefined;
330
+ bing?: string | undefined;
331
+ yandex?: string | undefined;
332
+ pinterest?: string | undefined;
333
+ naver?: string | undefined;
334
+ }, {
335
+ google?: string | undefined;
336
+ bing?: string | undefined;
337
+ yandex?: string | undefined;
338
+ pinterest?: string | undefined;
339
+ naver?: string | undefined;
340
+ }>>;
301
341
  rss: z.ZodOptional<z.ZodObject<{
302
342
  title: z.ZodString;
303
343
  feedUrl: z.ZodDefault<z.ZodString>;
@@ -356,10 +396,19 @@ export declare const SeoSchema: z.ZodObject<{
356
396
  }, "strip", z.ZodTypeAny, {
357
397
  twitterCard: "summary" | "summary_large_image";
358
398
  noIndex: boolean;
399
+ noIndexDirectoryPages: boolean;
359
400
  generateSitemap: boolean;
360
401
  generateRobotsTxt: boolean;
361
402
  generateRssFeed: boolean;
403
+ generateLlmsTxt: boolean;
362
404
  structuredData: boolean;
405
+ verification: {
406
+ google?: string | undefined;
407
+ bing?: string | undefined;
408
+ yandex?: string | undefined;
409
+ pinterest?: string | undefined;
410
+ naver?: string | undefined;
411
+ };
363
412
  og: {
364
413
  fontFamily: string;
365
414
  template: string;
@@ -386,10 +435,19 @@ export declare const SeoSchema: z.ZodObject<{
386
435
  twitterCard?: "summary" | "summary_large_image" | undefined;
387
436
  twitterSite?: string | undefined;
388
437
  noIndex?: boolean | undefined;
438
+ noIndexDirectoryPages?: boolean | undefined;
389
439
  generateSitemap?: boolean | undefined;
390
440
  generateRobotsTxt?: boolean | undefined;
391
441
  generateRssFeed?: boolean | undefined;
442
+ generateLlmsTxt?: boolean | undefined;
392
443
  structuredData?: boolean | undefined;
444
+ verification?: {
445
+ google?: string | undefined;
446
+ bing?: string | undefined;
447
+ yandex?: string | undefined;
448
+ pinterest?: string | undefined;
449
+ naver?: string | undefined;
450
+ } | undefined;
393
451
  rss?: {
394
452
  title: string;
395
453
  siteUrl: string;
@@ -498,6 +556,58 @@ export declare const GenerateSchema: z.ZodObject<{
498
556
  outputDir?: string | undefined;
499
557
  cleanUrls?: boolean | undefined;
500
558
  }>;
559
+ export declare const AnalyticsSchema: z.ZodObject<{
560
+ googleAnalytics: z.ZodOptional<z.ZodString>;
561
+ googleTagManager: z.ZodOptional<z.ZodString>;
562
+ clarity: z.ZodOptional<z.ZodString>;
563
+ plausible: z.ZodOptional<z.ZodObject<{
564
+ domain: z.ZodString;
565
+ scriptSrc: z.ZodDefault<z.ZodString>;
566
+ }, "strip", z.ZodTypeAny, {
567
+ domain: string;
568
+ scriptSrc: string;
569
+ }, {
570
+ domain: string;
571
+ scriptSrc?: string | undefined;
572
+ }>>;
573
+ umami: z.ZodOptional<z.ZodObject<{
574
+ websiteId: z.ZodString;
575
+ scriptSrc: z.ZodDefault<z.ZodString>;
576
+ }, "strip", z.ZodTypeAny, {
577
+ scriptSrc: string;
578
+ websiteId: string;
579
+ }, {
580
+ websiteId: string;
581
+ scriptSrc?: string | undefined;
582
+ }>>;
583
+ customHead: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
584
+ }, "strip", z.ZodTypeAny, {
585
+ customHead: string[];
586
+ googleAnalytics?: string | undefined;
587
+ googleTagManager?: string | undefined;
588
+ clarity?: string | undefined;
589
+ plausible?: {
590
+ domain: string;
591
+ scriptSrc: string;
592
+ } | undefined;
593
+ umami?: {
594
+ scriptSrc: string;
595
+ websiteId: string;
596
+ } | undefined;
597
+ }, {
598
+ googleAnalytics?: string | undefined;
599
+ googleTagManager?: string | undefined;
600
+ clarity?: string | undefined;
601
+ plausible?: {
602
+ domain: string;
603
+ scriptSrc?: string | undefined;
604
+ } | undefined;
605
+ umami?: {
606
+ websiteId: string;
607
+ scriptSrc?: string | undefined;
608
+ } | undefined;
609
+ customHead?: string[] | undefined;
610
+ }>;
501
611
  export declare const SettingsSchema: z.ZodObject<{
502
612
  $schema: z.ZodOptional<z.ZodString>;
503
613
  site: z.ZodDefault<z.ZodObject<{
@@ -620,10 +730,31 @@ export declare const SettingsSchema: z.ZodObject<{
620
730
  twitterCard: z.ZodDefault<z.ZodEnum<["summary", "summary_large_image"]>>;
621
731
  twitterSite: z.ZodOptional<z.ZodString>;
622
732
  noIndex: z.ZodDefault<z.ZodBoolean>;
733
+ noIndexDirectoryPages: z.ZodDefault<z.ZodBoolean>;
623
734
  generateSitemap: z.ZodDefault<z.ZodBoolean>;
624
735
  generateRobotsTxt: z.ZodDefault<z.ZodBoolean>;
625
736
  generateRssFeed: z.ZodDefault<z.ZodBoolean>;
737
+ generateLlmsTxt: z.ZodDefault<z.ZodBoolean>;
626
738
  structuredData: z.ZodDefault<z.ZodBoolean>;
739
+ verification: z.ZodDefault<z.ZodObject<{
740
+ google: z.ZodOptional<z.ZodString>;
741
+ bing: z.ZodOptional<z.ZodString>;
742
+ yandex: z.ZodOptional<z.ZodString>;
743
+ pinterest: z.ZodOptional<z.ZodString>;
744
+ naver: z.ZodOptional<z.ZodString>;
745
+ }, "strip", z.ZodTypeAny, {
746
+ google?: string | undefined;
747
+ bing?: string | undefined;
748
+ yandex?: string | undefined;
749
+ pinterest?: string | undefined;
750
+ naver?: string | undefined;
751
+ }, {
752
+ google?: string | undefined;
753
+ bing?: string | undefined;
754
+ yandex?: string | undefined;
755
+ pinterest?: string | undefined;
756
+ naver?: string | undefined;
757
+ }>>;
627
758
  rss: z.ZodOptional<z.ZodObject<{
628
759
  title: z.ZodString;
629
760
  feedUrl: z.ZodDefault<z.ZodString>;
@@ -682,10 +813,19 @@ export declare const SettingsSchema: z.ZodObject<{
682
813
  }, "strip", z.ZodTypeAny, {
683
814
  twitterCard: "summary" | "summary_large_image";
684
815
  noIndex: boolean;
816
+ noIndexDirectoryPages: boolean;
685
817
  generateSitemap: boolean;
686
818
  generateRobotsTxt: boolean;
687
819
  generateRssFeed: boolean;
820
+ generateLlmsTxt: boolean;
688
821
  structuredData: boolean;
822
+ verification: {
823
+ google?: string | undefined;
824
+ bing?: string | undefined;
825
+ yandex?: string | undefined;
826
+ pinterest?: string | undefined;
827
+ naver?: string | undefined;
828
+ };
689
829
  og: {
690
830
  fontFamily: string;
691
831
  template: string;
@@ -712,10 +852,19 @@ export declare const SettingsSchema: z.ZodObject<{
712
852
  twitterCard?: "summary" | "summary_large_image" | undefined;
713
853
  twitterSite?: string | undefined;
714
854
  noIndex?: boolean | undefined;
855
+ noIndexDirectoryPages?: boolean | undefined;
715
856
  generateSitemap?: boolean | undefined;
716
857
  generateRobotsTxt?: boolean | undefined;
717
858
  generateRssFeed?: boolean | undefined;
859
+ generateLlmsTxt?: boolean | undefined;
718
860
  structuredData?: boolean | undefined;
861
+ verification?: {
862
+ google?: string | undefined;
863
+ bing?: string | undefined;
864
+ yandex?: string | undefined;
865
+ pinterest?: string | undefined;
866
+ naver?: string | undefined;
867
+ } | undefined;
719
868
  rss?: {
720
869
  title: string;
721
870
  siteUrl: string;
@@ -934,6 +1083,58 @@ export declare const SettingsSchema: z.ZodObject<{
934
1083
  outputDir?: string | undefined;
935
1084
  cleanUrls?: boolean | undefined;
936
1085
  }>>;
1086
+ analytics: z.ZodDefault<z.ZodObject<{
1087
+ googleAnalytics: z.ZodOptional<z.ZodString>;
1088
+ googleTagManager: z.ZodOptional<z.ZodString>;
1089
+ clarity: z.ZodOptional<z.ZodString>;
1090
+ plausible: z.ZodOptional<z.ZodObject<{
1091
+ domain: z.ZodString;
1092
+ scriptSrc: z.ZodDefault<z.ZodString>;
1093
+ }, "strip", z.ZodTypeAny, {
1094
+ domain: string;
1095
+ scriptSrc: string;
1096
+ }, {
1097
+ domain: string;
1098
+ scriptSrc?: string | undefined;
1099
+ }>>;
1100
+ umami: z.ZodOptional<z.ZodObject<{
1101
+ websiteId: z.ZodString;
1102
+ scriptSrc: z.ZodDefault<z.ZodString>;
1103
+ }, "strip", z.ZodTypeAny, {
1104
+ scriptSrc: string;
1105
+ websiteId: string;
1106
+ }, {
1107
+ websiteId: string;
1108
+ scriptSrc?: string | undefined;
1109
+ }>>;
1110
+ customHead: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1111
+ }, "strip", z.ZodTypeAny, {
1112
+ customHead: string[];
1113
+ googleAnalytics?: string | undefined;
1114
+ googleTagManager?: string | undefined;
1115
+ clarity?: string | undefined;
1116
+ plausible?: {
1117
+ domain: string;
1118
+ scriptSrc: string;
1119
+ } | undefined;
1120
+ umami?: {
1121
+ scriptSrc: string;
1122
+ websiteId: string;
1123
+ } | undefined;
1124
+ }, {
1125
+ googleAnalytics?: string | undefined;
1126
+ googleTagManager?: string | undefined;
1127
+ clarity?: string | undefined;
1128
+ plausible?: {
1129
+ domain: string;
1130
+ scriptSrc?: string | undefined;
1131
+ } | undefined;
1132
+ umami?: {
1133
+ websiteId: string;
1134
+ scriptSrc?: string | undefined;
1135
+ } | undefined;
1136
+ customHead?: string[] | undefined;
1137
+ }>>;
937
1138
  }, "strip", z.ZodTypeAny, {
938
1139
  search: {
939
1140
  enabled: boolean;
@@ -1003,10 +1204,19 @@ export declare const SettingsSchema: z.ZodObject<{
1003
1204
  seo: {
1004
1205
  twitterCard: "summary" | "summary_large_image";
1005
1206
  noIndex: boolean;
1207
+ noIndexDirectoryPages: boolean;
1006
1208
  generateSitemap: boolean;
1007
1209
  generateRobotsTxt: boolean;
1008
1210
  generateRssFeed: boolean;
1211
+ generateLlmsTxt: boolean;
1009
1212
  structuredData: boolean;
1213
+ verification: {
1214
+ google?: string | undefined;
1215
+ bing?: string | undefined;
1216
+ yandex?: string | undefined;
1217
+ pinterest?: string | undefined;
1218
+ naver?: string | undefined;
1219
+ };
1010
1220
  og: {
1011
1221
  fontFamily: string;
1012
1222
  template: string;
@@ -1049,6 +1259,20 @@ export declare const SettingsSchema: z.ZodObject<{
1049
1259
  outputDir: string;
1050
1260
  cleanUrls: boolean;
1051
1261
  };
1262
+ analytics: {
1263
+ customHead: string[];
1264
+ googleAnalytics?: string | undefined;
1265
+ googleTagManager?: string | undefined;
1266
+ clarity?: string | undefined;
1267
+ plausible?: {
1268
+ domain: string;
1269
+ scriptSrc: string;
1270
+ } | undefined;
1271
+ umami?: {
1272
+ scriptSrc: string;
1273
+ websiteId: string;
1274
+ } | undefined;
1275
+ };
1052
1276
  $schema?: string | undefined;
1053
1277
  }, {
1054
1278
  search?: {
@@ -1123,10 +1347,19 @@ export declare const SettingsSchema: z.ZodObject<{
1123
1347
  twitterCard?: "summary" | "summary_large_image" | undefined;
1124
1348
  twitterSite?: string | undefined;
1125
1349
  noIndex?: boolean | undefined;
1350
+ noIndexDirectoryPages?: boolean | undefined;
1126
1351
  generateSitemap?: boolean | undefined;
1127
1352
  generateRobotsTxt?: boolean | undefined;
1128
1353
  generateRssFeed?: boolean | undefined;
1354
+ generateLlmsTxt?: boolean | undefined;
1129
1355
  structuredData?: boolean | undefined;
1356
+ verification?: {
1357
+ google?: string | undefined;
1358
+ bing?: string | undefined;
1359
+ yandex?: string | undefined;
1360
+ pinterest?: string | undefined;
1361
+ naver?: string | undefined;
1362
+ } | undefined;
1130
1363
  rss?: {
1131
1364
  title: string;
1132
1365
  siteUrl: string;
@@ -1166,6 +1399,20 @@ export declare const SettingsSchema: z.ZodObject<{
1166
1399
  outputDir?: string | undefined;
1167
1400
  cleanUrls?: boolean | undefined;
1168
1401
  } | undefined;
1402
+ analytics?: {
1403
+ googleAnalytics?: string | undefined;
1404
+ googleTagManager?: string | undefined;
1405
+ clarity?: string | undefined;
1406
+ plausible?: {
1407
+ domain: string;
1408
+ scriptSrc?: string | undefined;
1409
+ } | undefined;
1410
+ umami?: {
1411
+ websiteId: string;
1412
+ scriptSrc?: string | undefined;
1413
+ } | undefined;
1414
+ customHead?: string[] | undefined;
1415
+ } | undefined;
1169
1416
  }>;
1170
1417
  export type Settings = z.infer<typeof SettingsSchema>;
1171
1418
  export type Logo = z.infer<typeof LogoSchema>;
@@ -1180,4 +1427,6 @@ export type Files = z.infer<typeof FilesSchema>;
1180
1427
  export type Mdx = z.infer<typeof MdxSchema>;
1181
1428
  export type Footer = z.infer<typeof FooterSchema>;
1182
1429
  export type Generate = z.infer<typeof GenerateSchema>;
1430
+ export type Analytics = z.infer<typeof AnalyticsSchema>;
1431
+ export type Verification = z.infer<typeof VerificationSchema>;
1183
1432
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/settings/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/settings/schema.ts"],"names":[],"mappings":"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"}
@@ -84,6 +84,13 @@ export const OgSchema = z.object({
84
84
  })
85
85
  .default({}),
86
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
+ });
87
94
  export const SeoSchema = z.object({
88
95
  // Optional. When unset, titles render as "<page title> | <site title>".
89
96
  titleTemplate: z.string().optional(),
@@ -93,10 +100,17 @@ export const SeoSchema = z.object({
93
100
  .default("summary_large_image"),
94
101
  twitterSite: z.string().optional(),
95
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),
96
106
  generateSitemap: z.boolean().default(true),
97
107
  generateRobotsTxt: z.boolean().default(true),
98
108
  generateRssFeed: z.boolean().default(false),
109
+ // Emits /llms.txt (page index) and /llms-full.txt (full markdown corpus)
110
+ // for LLM consumers; custom files in the docs root override.
111
+ generateLlmsTxt: z.boolean().default(true),
99
112
  structuredData: z.boolean().default(true),
113
+ verification: VerificationSchema.default({}),
100
114
  rss: z
101
115
  .object({
102
116
  title: z.string(),
@@ -140,6 +154,30 @@ export const GenerateSchema = z.object({
140
154
  // (matching static export) and redirects .md/.mdx URLs to clean URLs.
141
155
  cleanUrls: z.boolean().default(false),
142
156
  });
157
+ export const AnalyticsSchema = z.object({
158
+ // GA4 measurement ID, e.g. "G-XXXXXXXXXX" — emits gtag.js.
159
+ googleAnalytics: z.string().optional(),
160
+ // GTM container ID, e.g. "GTM-XXXXXXX" — head script + body noscript.
161
+ googleTagManager: z.string().optional(),
162
+ // Microsoft Clarity project ID — emits the clarity inline snippet.
163
+ clarity: z.string().optional(),
164
+ plausible: z
165
+ .object({
166
+ domain: z.string(),
167
+ // Self-hosted instances can override the script URL.
168
+ scriptSrc: z.string().default("https://plausible.io/js/script.js"),
169
+ })
170
+ .optional(),
171
+ umami: z
172
+ .object({
173
+ websiteId: z.string(),
174
+ scriptSrc: z.string().default("https://cloud.umami.is/script.js"),
175
+ })
176
+ .optional(),
177
+ // Raw snippets appended verbatim to the end of <head>. Trusted content:
178
+ // only ever read from the site owner's settings.json (ADR-0008).
179
+ customHead: z.array(z.string()).default([]),
180
+ });
143
181
  export const SettingsSchema = z.object({
144
182
  $schema: z.string().optional(),
145
183
  site: SiteSchema.default({}),
@@ -151,5 +189,6 @@ export const SettingsSchema = z.object({
151
189
  mdx: MdxSchema.default({}),
152
190
  footer: FooterSchema.default({}),
153
191
  generate: GenerateSchema.default({}),
192
+ analytics: AnalyticsSchema.default({}),
154
193
  });
155
194
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/settings/schema.ts"],"names":[],"mappings":"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"}
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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"}
@@ -16,6 +16,11 @@ export interface TemplateParams {
16
16
  sidebar?: NavItem[];
17
17
  urlPath?: string;
18
18
  isStaticExport?: boolean;
19
+ /** Source-file dates — fallback for `article:*` times and JSON-LD dates. */
20
+ fileDates?: {
21
+ published?: Date;
22
+ modified?: Date;
23
+ };
19
24
  }
20
25
  export declare function renderPage(params: TemplateParams): string;
21
26
  //# sourceMappingURL=index.d.ts.map