@stacksjs/bunpress 0.1.0 → 0.1.1

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 (50) hide show
  1. package/CHANGELOG.md +296 -0
  2. package/README.md +113 -26
  3. package/dist/bin/cli.js +2 -104
  4. package/dist/chunk-16hpnayn.js +505 -0
  5. package/dist/chunk-njjmvdjd.js +8 -0
  6. package/dist/chunk-nt1zw6bf.js +9632 -0
  7. package/dist/chunk-zabbw4a8.js +2 -0
  8. package/dist/config.d.ts +3 -5
  9. package/dist/robots.d.ts +5 -0
  10. package/dist/rss.d.ts +16 -0
  11. package/dist/serve.d.ts +8 -0
  12. package/dist/sitemap.d.ts +5 -0
  13. package/dist/src/index.js +1 -1
  14. package/dist/templates/blocks/alerts/caution.stx +9 -0
  15. package/dist/templates/blocks/alerts/important.stx +9 -0
  16. package/dist/templates/blocks/alerts/note.stx +9 -0
  17. package/dist/templates/blocks/alerts/tip.stx +9 -0
  18. package/dist/templates/blocks/alerts/warning.stx +9 -0
  19. package/dist/templates/blocks/containers/danger.stx +6 -0
  20. package/dist/templates/blocks/containers/details.stx +6 -0
  21. package/dist/templates/blocks/containers/info.stx +6 -0
  22. package/dist/templates/blocks/containers/raw.stx +3 -0
  23. package/dist/templates/blocks/containers/tip.stx +6 -0
  24. package/dist/templates/blocks/containers/warning.stx +6 -0
  25. package/dist/templates/blocks/inline/code.stx +1 -0
  26. package/dist/templates/blocks/inline/del.stx +1 -0
  27. package/dist/templates/blocks/inline/em.stx +1 -0
  28. package/dist/templates/blocks/inline/mark.stx +1 -0
  29. package/dist/templates/blocks/inline/strong.stx +1 -0
  30. package/dist/templates/blocks/inline/sub.stx +1 -0
  31. package/dist/templates/blocks/inline/sup.stx +1 -0
  32. package/dist/templates/features.stx +20 -0
  33. package/dist/templates/hero.stx +10 -0
  34. package/dist/templates/layout-doc.stx +157 -0
  35. package/dist/templates/layout-home.stx +23 -0
  36. package/dist/templates/page-toc.stx +267 -0
  37. package/dist/templates/sidebar-section.stx +42 -0
  38. package/dist/templates/sidebar.stx +54 -0
  39. package/dist/themes/bun/index.d.ts +34 -0
  40. package/dist/themes/index.d.ts +24 -0
  41. package/dist/themes/vitepress/base.css +549 -0
  42. package/dist/themes/vitepress/code-group.css +121 -0
  43. package/dist/themes/vitepress/custom-block.css +330 -0
  44. package/dist/themes/vitepress/index.d.ts +29 -0
  45. package/dist/themes/vitepress/index.ts +1963 -0
  46. package/dist/themes/vitepress/vars.css +436 -0
  47. package/dist/types.d.ts +85 -2
  48. package/package.json +30 -18
  49. package/dist/chunk-he6c5f4e.js +0 -1354
  50. package/dist/plugin.d.ts +0 -0
@@ -0,0 +1,436 @@
1
+ /**
2
+ * VitePress Theme for BunPress
3
+ * Colors: Solid
4
+ * -------------------------------------------------------------------------- */
5
+
6
+ :root {
7
+ --vp-c-white: #ffffff;
8
+ --vp-c-black: #000000;
9
+
10
+ --vp-c-neutral: var(--vp-c-black);
11
+ --vp-c-neutral-inverse: var(--vp-c-white);
12
+ }
13
+
14
+ .dark {
15
+ --vp-c-neutral: var(--vp-c-white);
16
+ --vp-c-neutral-inverse: var(--vp-c-black);
17
+ }
18
+
19
+ /**
20
+ * Colors: Palette
21
+ * -------------------------------------------------------------------------- */
22
+
23
+ :root {
24
+ --vp-c-gray-1: #dddde3;
25
+ --vp-c-gray-2: #e4e4e9;
26
+ --vp-c-gray-3: #ebebef;
27
+ --vp-c-gray-soft: rgba(142, 150, 170, 0.14);
28
+
29
+ --vp-c-indigo-1: #3451b2;
30
+ --vp-c-indigo-2: #3a5ccc;
31
+ --vp-c-indigo-3: #5672cd;
32
+ --vp-c-indigo-soft: rgba(100, 108, 255, 0.14);
33
+
34
+ --vp-c-purple-1: #6f42c1;
35
+ --vp-c-purple-2: #7e4cc9;
36
+ --vp-c-purple-3: #8e5cd9;
37
+ --vp-c-purple-soft: rgba(159, 122, 234, 0.14);
38
+
39
+ --vp-c-green-1: #18794e;
40
+ --vp-c-green-2: #299764;
41
+ --vp-c-green-3: #30a46c;
42
+ --vp-c-green-soft: rgba(16, 185, 129, 0.14);
43
+
44
+ --vp-c-yellow-1: #915930;
45
+ --vp-c-yellow-2: #946300;
46
+ --vp-c-yellow-3: #9f6a00;
47
+ --vp-c-yellow-soft: rgba(234, 179, 8, 0.14);
48
+
49
+ --vp-c-red-1: #b8272c;
50
+ --vp-c-red-2: #d5393e;
51
+ --vp-c-red-3: #e0575b;
52
+ --vp-c-red-soft: rgba(244, 63, 94, 0.14);
53
+
54
+ --vp-c-sponsor: #db2777;
55
+ }
56
+
57
+ .dark {
58
+ --vp-c-gray-1: #515c67;
59
+ --vp-c-gray-2: #414853;
60
+ --vp-c-gray-3: #32363f;
61
+ --vp-c-gray-soft: rgba(101, 117, 133, 0.16);
62
+
63
+ --vp-c-indigo-1: #a8b1ff;
64
+ --vp-c-indigo-2: #5c73e7;
65
+ --vp-c-indigo-3: #3e63dd;
66
+ --vp-c-indigo-soft: rgba(100, 108, 255, 0.16);
67
+
68
+ --vp-c-purple-1: #c8abfa;
69
+ --vp-c-purple-2: #a879e6;
70
+ --vp-c-purple-3: #8e5cd9;
71
+ --vp-c-purple-soft: rgba(159, 122, 234, 0.16);
72
+
73
+ --vp-c-green-1: #3dd68c;
74
+ --vp-c-green-2: #30a46c;
75
+ --vp-c-green-3: #298459;
76
+ --vp-c-green-soft: rgba(16, 185, 129, 0.16);
77
+
78
+ --vp-c-yellow-1: #f9b44e;
79
+ --vp-c-yellow-2: #da8b17;
80
+ --vp-c-yellow-3: #a46a0a;
81
+ --vp-c-yellow-soft: rgba(234, 179, 8, 0.16);
82
+
83
+ --vp-c-red-1: #f66f81;
84
+ --vp-c-red-2: #f14158;
85
+ --vp-c-red-3: #b62a3c;
86
+ --vp-c-red-soft: rgba(244, 63, 94, 0.16);
87
+ }
88
+
89
+ /**
90
+ * Colors: Background
91
+ * -------------------------------------------------------------------------- */
92
+
93
+ :root {
94
+ --vp-c-bg: #ffffff;
95
+ --vp-c-bg-alt: #f6f6f7;
96
+ --vp-c-bg-elv: #ffffff;
97
+ --vp-c-bg-soft: #f6f6f7;
98
+ }
99
+
100
+ .dark {
101
+ --vp-c-bg: #1b1b1f;
102
+ --vp-c-bg-alt: #161618;
103
+ --vp-c-bg-elv: #202127;
104
+ --vp-c-bg-soft: #202127;
105
+ }
106
+
107
+ /**
108
+ * Colors: Borders
109
+ * -------------------------------------------------------------------------- */
110
+
111
+ :root {
112
+ --vp-c-border: #c2c2c4;
113
+ --vp-c-divider: #e2e2e3;
114
+ --vp-c-gutter: #e2e2e3;
115
+ }
116
+
117
+ .dark {
118
+ --vp-c-border: #3c3f44;
119
+ --vp-c-divider: #2e2e32;
120
+ --vp-c-gutter: #000000;
121
+ }
122
+
123
+ /**
124
+ * Colors: Text
125
+ * -------------------------------------------------------------------------- */
126
+
127
+ :root {
128
+ --vp-c-text-1: rgba(60, 60, 67);
129
+ --vp-c-text-2: rgba(60, 60, 67, 0.78);
130
+ --vp-c-text-3: rgba(60, 60, 67, 0.56);
131
+ }
132
+
133
+ .dark {
134
+ --vp-c-text-1: rgba(255, 255, 245, 0.86);
135
+ --vp-c-text-2: rgba(235, 235, 245, 0.6);
136
+ --vp-c-text-3: rgba(235, 235, 245, 0.38);
137
+ }
138
+
139
+ /**
140
+ * Colors: Function
141
+ * -------------------------------------------------------------------------- */
142
+
143
+ :root {
144
+ --vp-c-default-1: var(--vp-c-gray-1);
145
+ --vp-c-default-2: var(--vp-c-gray-2);
146
+ --vp-c-default-3: var(--vp-c-gray-3);
147
+ --vp-c-default-soft: var(--vp-c-gray-soft);
148
+
149
+ --vp-c-brand-1: var(--vp-c-indigo-1);
150
+ --vp-c-brand-2: var(--vp-c-indigo-2);
151
+ --vp-c-brand-3: var(--vp-c-indigo-3);
152
+ --vp-c-brand-soft: var(--vp-c-indigo-soft);
153
+
154
+ --vp-c-brand: var(--vp-c-brand-1);
155
+
156
+ --vp-c-tip-1: var(--vp-c-brand-1);
157
+ --vp-c-tip-2: var(--vp-c-brand-2);
158
+ --vp-c-tip-3: var(--vp-c-brand-3);
159
+ --vp-c-tip-soft: var(--vp-c-brand-soft);
160
+
161
+ --vp-c-note-1: var(--vp-c-brand-1);
162
+ --vp-c-note-2: var(--vp-c-brand-2);
163
+ --vp-c-note-3: var(--vp-c-brand-3);
164
+ --vp-c-note-soft: var(--vp-c-brand-soft);
165
+
166
+ --vp-c-success-1: var(--vp-c-green-1);
167
+ --vp-c-success-2: var(--vp-c-green-2);
168
+ --vp-c-success-3: var(--vp-c-green-3);
169
+ --vp-c-success-soft: var(--vp-c-green-soft);
170
+
171
+ --vp-c-important-1: var(--vp-c-purple-1);
172
+ --vp-c-important-2: var(--vp-c-purple-2);
173
+ --vp-c-important-3: var(--vp-c-purple-3);
174
+ --vp-c-important-soft: var(--vp-c-purple-soft);
175
+
176
+ --vp-c-warning-1: var(--vp-c-yellow-1);
177
+ --vp-c-warning-2: var(--vp-c-yellow-2);
178
+ --vp-c-warning-3: var(--vp-c-yellow-3);
179
+ --vp-c-warning-soft: var(--vp-c-yellow-soft);
180
+
181
+ --vp-c-danger-1: var(--vp-c-red-1);
182
+ --vp-c-danger-2: var(--vp-c-red-2);
183
+ --vp-c-danger-3: var(--vp-c-red-3);
184
+ --vp-c-danger-soft: var(--vp-c-red-soft);
185
+
186
+ --vp-c-caution-1: var(--vp-c-red-1);
187
+ --vp-c-caution-2: var(--vp-c-red-2);
188
+ --vp-c-caution-3: var(--vp-c-red-3);
189
+ --vp-c-caution-soft: var(--vp-c-red-soft);
190
+ }
191
+
192
+ /**
193
+ * Typography
194
+ * -------------------------------------------------------------------------- */
195
+
196
+ :root {
197
+ --vp-font-family-base: 'Inter', ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
198
+ --vp-font-family-mono: ui-monospace, 'Menlo', 'Monaco', 'Consolas', 'Liberation Mono', 'Courier New', monospace;
199
+ }
200
+
201
+ /**
202
+ * Shadows
203
+ * -------------------------------------------------------------------------- */
204
+
205
+ :root {
206
+ --vp-shadow-1: 0 1px 2px rgba(0, 0, 0, 0.04), 0 1px 2px rgba(0, 0, 0, 0.06);
207
+ --vp-shadow-2: 0 3px 12px rgba(0, 0, 0, 0.07), 0 1px 4px rgba(0, 0, 0, 0.07);
208
+ --vp-shadow-3: 0 12px 32px rgba(0, 0, 0, 0.1), 0 2px 6px rgba(0, 0, 0, 0.08);
209
+ --vp-shadow-4: 0 14px 44px rgba(0, 0, 0, 0.12), 0 3px 9px rgba(0, 0, 0, 0.12);
210
+ --vp-shadow-5: 0 18px 56px rgba(0, 0, 0, 0.16), 0 4px 12px rgba(0, 0, 0, 0.16);
211
+ }
212
+
213
+ /**
214
+ * Z-indexes
215
+ * -------------------------------------------------------------------------- */
216
+
217
+ :root {
218
+ --vp-z-index-footer: 10;
219
+ --vp-z-index-local-nav: 20;
220
+ --vp-z-index-nav: 30;
221
+ --vp-z-index-layout-top: 40;
222
+ --vp-z-index-backdrop: 50;
223
+ --vp-z-index-sidebar: 60;
224
+ }
225
+
226
+ @media (min-width: 960px) {
227
+ :root {
228
+ --vp-z-index-sidebar: 25;
229
+ }
230
+ }
231
+
232
+ /**
233
+ * Layouts
234
+ * -------------------------------------------------------------------------- */
235
+
236
+ :root {
237
+ --vp-layout-max-width: 1440px;
238
+ }
239
+
240
+ /**
241
+ * Component: Header Anchor
242
+ * -------------------------------------------------------------------------- */
243
+
244
+ :root {
245
+ --vp-header-anchor-symbol: '#';
246
+ }
247
+
248
+ /**
249
+ * Component: Code
250
+ * -------------------------------------------------------------------------- */
251
+
252
+ :root {
253
+ --vp-code-line-height: 1.7;
254
+ --vp-code-font-size: 0.875em;
255
+ --vp-code-color: var(--vp-c-brand-1);
256
+ --vp-code-link-color: var(--vp-c-brand-1);
257
+ --vp-code-link-hover-color: var(--vp-c-brand-2);
258
+ --vp-code-bg: var(--vp-c-default-soft);
259
+
260
+ --vp-code-block-color: var(--vp-c-text-2);
261
+ --vp-code-block-bg: var(--vp-c-bg-alt);
262
+ --vp-code-block-divider-color: var(--vp-c-gutter);
263
+
264
+ --vp-code-lang-color: var(--vp-c-text-3);
265
+
266
+ --vp-code-line-highlight-color: var(--vp-c-default-soft);
267
+ --vp-code-line-number-color: var(--vp-c-text-3);
268
+
269
+ --vp-code-line-diff-add-color: var(--vp-c-success-soft);
270
+ --vp-code-line-diff-add-symbol-color: var(--vp-c-success-1);
271
+
272
+ --vp-code-line-diff-remove-color: var(--vp-c-danger-soft);
273
+ --vp-code-line-diff-remove-symbol-color: var(--vp-c-danger-1);
274
+
275
+ --vp-code-line-warning-color: var(--vp-c-warning-soft);
276
+ --vp-code-line-error-color: var(--vp-c-danger-soft);
277
+
278
+ --vp-code-copy-code-border-color: var(--vp-c-divider);
279
+ --vp-code-copy-code-bg: var(--vp-c-bg-soft);
280
+ --vp-code-copy-code-hover-border-color: var(--vp-c-divider);
281
+ --vp-code-copy-code-hover-bg: var(--vp-c-bg);
282
+ --vp-code-copy-code-active-text: var(--vp-c-text-2);
283
+
284
+ --vp-code-tab-divider: var(--vp-code-block-divider-color);
285
+ --vp-code-tab-text-color: var(--vp-c-text-2);
286
+ --vp-code-tab-bg: var(--vp-code-block-bg);
287
+ --vp-code-tab-hover-text-color: var(--vp-c-text-1);
288
+ --vp-code-tab-active-text-color: var(--vp-c-text-1);
289
+ --vp-code-tab-active-bar-color: var(--vp-c-brand-1);
290
+ }
291
+
292
+ /**
293
+ * Component: Button
294
+ * -------------------------------------------------------------------------- */
295
+
296
+ :root {
297
+ --vp-button-brand-border: transparent;
298
+ --vp-button-brand-text: var(--vp-c-white);
299
+ --vp-button-brand-bg: var(--vp-c-brand-3);
300
+ --vp-button-brand-hover-border: transparent;
301
+ --vp-button-brand-hover-text: var(--vp-c-white);
302
+ --vp-button-brand-hover-bg: var(--vp-c-brand-2);
303
+ --vp-button-brand-active-border: transparent;
304
+ --vp-button-brand-active-text: var(--vp-c-white);
305
+ --vp-button-brand-active-bg: var(--vp-c-brand-1);
306
+
307
+ --vp-button-alt-border: transparent;
308
+ --vp-button-alt-text: var(--vp-c-text-1);
309
+ --vp-button-alt-bg: var(--vp-c-default-3);
310
+ --vp-button-alt-hover-border: transparent;
311
+ --vp-button-alt-hover-text: var(--vp-c-text-1);
312
+ --vp-button-alt-hover-bg: var(--vp-c-default-2);
313
+ --vp-button-alt-active-border: transparent;
314
+ --vp-button-alt-active-text: var(--vp-c-text-1);
315
+ --vp-button-alt-active-bg: var(--vp-c-default-1);
316
+
317
+ --vp-button-sponsor-border: var(--vp-c-text-2);
318
+ --vp-button-sponsor-text: var(--vp-c-text-2);
319
+ --vp-button-sponsor-bg: transparent;
320
+ --vp-button-sponsor-hover-border: var(--vp-c-sponsor);
321
+ --vp-button-sponsor-hover-text: var(--vp-c-sponsor);
322
+ --vp-button-sponsor-hover-bg: transparent;
323
+ --vp-button-sponsor-active-border: var(--vp-c-sponsor);
324
+ --vp-button-sponsor-active-text: var(--vp-c-sponsor);
325
+ --vp-button-sponsor-active-bg: transparent;
326
+ }
327
+
328
+ /**
329
+ * Component: Custom Block
330
+ * -------------------------------------------------------------------------- */
331
+
332
+ :root {
333
+ --vp-custom-block-font-size: 14px;
334
+ --vp-custom-block-code-font-size: 13px;
335
+
336
+ --vp-custom-block-info-border: transparent;
337
+ --vp-custom-block-info-text: var(--vp-c-text-1);
338
+ --vp-custom-block-info-bg: var(--vp-c-default-soft);
339
+ --vp-custom-block-info-code-bg: var(--vp-c-default-soft);
340
+
341
+ --vp-custom-block-note-border: transparent;
342
+ --vp-custom-block-note-text: var(--vp-c-text-1);
343
+ --vp-custom-block-note-bg: var(--vp-c-default-soft);
344
+ --vp-custom-block-note-code-bg: var(--vp-c-default-soft);
345
+
346
+ --vp-custom-block-tip-border: transparent;
347
+ --vp-custom-block-tip-text: var(--vp-c-text-1);
348
+ --vp-custom-block-tip-bg: var(--vp-c-tip-soft);
349
+ --vp-custom-block-tip-code-bg: var(--vp-c-tip-soft);
350
+
351
+ --vp-custom-block-important-border: transparent;
352
+ --vp-custom-block-important-text: var(--vp-c-text-1);
353
+ --vp-custom-block-important-bg: var(--vp-c-important-soft);
354
+ --vp-custom-block-important-code-bg: var(--vp-c-important-soft);
355
+
356
+ --vp-custom-block-warning-border: transparent;
357
+ --vp-custom-block-warning-text: var(--vp-c-text-1);
358
+ --vp-custom-block-warning-bg: var(--vp-c-warning-soft);
359
+ --vp-custom-block-warning-code-bg: var(--vp-c-warning-soft);
360
+
361
+ --vp-custom-block-danger-border: transparent;
362
+ --vp-custom-block-danger-text: var(--vp-c-text-1);
363
+ --vp-custom-block-danger-bg: var(--vp-c-danger-soft);
364
+ --vp-custom-block-danger-code-bg: var(--vp-c-danger-soft);
365
+
366
+ --vp-custom-block-caution-border: transparent;
367
+ --vp-custom-block-caution-text: var(--vp-c-text-1);
368
+ --vp-custom-block-caution-bg: var(--vp-c-caution-soft);
369
+ --vp-custom-block-caution-code-bg: var(--vp-c-caution-soft);
370
+
371
+ --vp-custom-block-details-border: var(--vp-custom-block-info-border);
372
+ --vp-custom-block-details-text: var(--vp-custom-block-info-text);
373
+ --vp-custom-block-details-bg: var(--vp-custom-block-info-bg);
374
+ --vp-custom-block-details-code-bg: var(--vp-custom-block-info-code-bg);
375
+ }
376
+
377
+ /**
378
+ * Component: Nav
379
+ * -------------------------------------------------------------------------- */
380
+
381
+ :root {
382
+ --vp-nav-height: 64px;
383
+ --vp-nav-bg-color: var(--vp-c-bg);
384
+ --vp-nav-screen-bg-color: var(--vp-c-bg);
385
+ --vp-nav-logo-height: 24px;
386
+ }
387
+
388
+ /**
389
+ * Component: Sidebar
390
+ * -------------------------------------------------------------------------- */
391
+
392
+ :root {
393
+ --vp-sidebar-width: 272px;
394
+ --vp-sidebar-bg-color: var(--vp-c-bg-alt);
395
+ }
396
+
397
+ /**
398
+ * Colors Backdrop
399
+ * -------------------------------------------------------------------------- */
400
+
401
+ :root {
402
+ --vp-backdrop-bg-color: rgba(0, 0, 0, 0.6);
403
+ }
404
+
405
+ /**
406
+ * Component: Home
407
+ * -------------------------------------------------------------------------- */
408
+
409
+ :root {
410
+ --vp-home-hero-name-color: var(--vp-c-brand-1);
411
+ --vp-home-hero-name-background: transparent;
412
+ --vp-home-hero-image-background-image: none;
413
+ --vp-home-hero-image-filter: none;
414
+ }
415
+
416
+ /**
417
+ * Component: Badge
418
+ * -------------------------------------------------------------------------- */
419
+
420
+ :root {
421
+ --vp-badge-info-border: transparent;
422
+ --vp-badge-info-text: var(--vp-c-text-2);
423
+ --vp-badge-info-bg: var(--vp-c-default-soft);
424
+
425
+ --vp-badge-tip-border: transparent;
426
+ --vp-badge-tip-text: var(--vp-c-tip-1);
427
+ --vp-badge-tip-bg: var(--vp-c-tip-soft);
428
+
429
+ --vp-badge-warning-border: transparent;
430
+ --vp-badge-warning-text: var(--vp-c-warning-1);
431
+ --vp-badge-warning-bg: var(--vp-c-warning-soft);
432
+
433
+ --vp-badge-danger-border: transparent;
434
+ --vp-badge-danger-text: var(--vp-c-danger-1);
435
+ --vp-badge-danger-bg: var(--vp-c-danger-soft);
436
+ }
package/dist/types.d.ts CHANGED
@@ -1,10 +1,53 @@
1
1
  export declare interface BunPressConfig {
2
2
  verbose: boolean
3
+ title?: string
4
+ description?: string
5
+ themeConfig?: ThemeConfig & {
6
+ sidebar?: SidebarItem[] | Record<string, SidebarItem[]>
7
+ nav?: NavItem[]
8
+ siteTitle?: string
9
+ }
10
+ docsDir?: string
11
+ outDir?: string
12
+ theme?: 'vitepress' | 'bun'
3
13
  markdown: MarkdownPluginConfig
4
14
  nav?: NavItem[]
5
15
  plugins?: ConfigPlugin[]
6
16
  sitemap?: SitemapConfig
7
17
  robots?: RobotsConfig
18
+ fathom?: FathomConfig
19
+ analytics?: AnalyticsConfig
20
+ selfHostedAnalytics?: SelfHostedAnalyticsConfig
21
+ cloud?: CloudConfig
22
+ }
23
+ /**
24
+ * Cloud deployment configuration
25
+ */
26
+ export declare interface CloudConfig {
27
+ driver?: 'aws'
28
+ region?: string
29
+ domain?: string
30
+ subdomain?: string
31
+ baseDomain?: string
32
+ bucket?: string
33
+ distributionId?: string
34
+ hostedZoneId?: string
35
+ certificateArn?: string
36
+ cacheControl?: string
37
+ invalidateCache?: boolean
38
+ waitForInvalidation?: boolean
39
+ stackName?: string
40
+ environment?: string
41
+ dnsProvider?: DnsProviderOptions
42
+ }
43
+ /**
44
+ * DNS provider configuration options
45
+ */
46
+ export declare interface DnsProviderOptions {
47
+ provider: 'porkbun' | 'godaddy' | 'route53'
48
+ apiKey?: string
49
+ secretKey?: string
50
+ environment?: 'production' | 'ote'
8
51
  }
9
52
  /**
10
53
  * Configuration options for the markdown plugin
@@ -15,7 +58,18 @@ export declare interface MarkdownPluginConfig {
15
58
  scripts?: string[]
16
59
  title?: string
17
60
  meta?: Record<string, string>
18
- markedOptions?: any
61
+ parserOptions?: {
62
+ /** Enable GitHub Flavored Markdown */
63
+ gfm?: boolean
64
+ /** Convert line breaks to <br> */
65
+ breaks?: boolean
66
+ /** Enable header IDs */
67
+ headerIds?: boolean
68
+ /** Prefix for header IDs */
69
+ headerPrefix?: string
70
+ /** Enable syntax highlighting */
71
+ highlight?: (code: string, lang: string) => string
72
+ }
19
73
  preserveDirectoryStructure?: boolean
20
74
  toc?: TocConfig
21
75
  sidebar?: Record<string, SidebarItem[]>
@@ -294,6 +348,31 @@ export declare interface RobotsRule {
294
348
  disallow?: string[]
295
349
  crawlDelay?: number
296
350
  }
351
+ /**
352
+ * Fathom Analytics configuration
353
+ */
354
+ export declare interface FathomConfig {
355
+ enabled?: boolean
356
+ siteId?: string
357
+ scriptUrl?: string
358
+ defer?: boolean
359
+ honorDNT?: boolean
360
+ canonical?: string
361
+ auto?: boolean
362
+ spa?: boolean
363
+ }
364
+ /**
365
+ * Analytics configuration (using ts-analytics / dynamodb-tooling)
366
+ * A privacy-focused, cookie-free analytics solution you can run on your own infrastructure.
367
+ */
368
+ export declare interface AnalyticsConfig {
369
+ enabled?: boolean
370
+ siteId?: string
371
+ apiEndpoint?: string
372
+ honorDNT?: boolean
373
+ trackHashChanges?: boolean
374
+ trackOutboundLinks?: boolean
375
+ }
297
376
  export type BunPressOptions = Partial<BunPressConfig>
298
377
  /**
299
378
  * Plugin options for the Markdown plugin
@@ -306,4 +385,8 @@ export type TocPosition = 'sidebar' | 'inline' | 'floating'
306
385
  /**
307
386
  * Sitemap change frequency values
308
387
  */
309
- export type SitemapChangefreq = 'always' | 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly' | 'never'
388
+ export type SitemapChangefreq = 'always' | 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly' | 'never'
389
+ /**
390
+ * @deprecated Use AnalyticsConfig instead
391
+ */
392
+ export type SelfHostedAnalyticsConfig = AnalyticsConfig
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stacksjs/bunpress",
3
3
  "type": "module",
4
- "version": "0.1.0",
4
+ "version": "0.1.1",
5
5
  "description": "Modern documentation engine. Powered by Bun.",
6
6
  "author": "Chris Breuer <chris@stacksjs.org>",
7
7
  "license": "MIT",
@@ -53,40 +53,52 @@
53
53
  "test": "bun test --reporter=verbose",
54
54
  "test:quick": "bun test --timeout=10000",
55
55
  "test:full": "bun test --timeout=60000 --no-bail",
56
- "lint": "bunx --bun eslint .",
57
- "lint:fix": "bunx --bun eslint . --fix",
56
+ "lint": "bunx --bun pickier lint . --config pickier.config.ts --max-warnings 9999",
57
+ "lint:fix": "bunx --bun pickier lint . --fix --config pickier.config.ts --max-warnings 9999",
58
+ "format": "bunx --bun pickier format . --config pickier.config.ts",
59
+ "format:fix": "bunx --bun pickier format . --write --config pickier.config.ts",
58
60
  "changelog": "bunx logsmith --verbose",
59
61
  "changelog:generate": "bunx logsmith --output CHANGELOG.md",
60
62
  "release": "bunx --bun bumpx prompt --recursive",
61
63
  "dev:docs": "bun bin/cli.ts dev",
62
- "build:docs": "bun build.ts",
63
- "preview:docs": "bun serve --port 3000 dist",
64
- "typecheck": "bun --bun tsc --noEmit"
64
+ "build:docs": "bun bin/cli.ts build --outdir ./dist",
65
+ "preview:docs": "bun bin/cli.ts preview --outdir ./dist",
66
+ "typecheck": "bun --bun tsc --noEmit",
67
+ "bench": "bun run bench:build && bun run bench:server && bun run bench:features",
68
+ "bench:build": "bun benchmarks/build-performance.bench.ts",
69
+ "bench:server": "bun benchmarks/dev-server.bench.ts",
70
+ "bench:features": "bun benchmarks/features-comparison.bench.ts",
71
+ "bench:all": "bun run bench"
72
+ },
73
+ "dependencies": {
74
+ "@stacksjs/ts-md": "^0.1.1"
75
+ },
76
+ "optionalDependencies": {
77
+ "@stacksjs/ts-cloud": "^0.1.7",
78
+ "@stacksjs/ts-cloud-aws-types": "^0.1.7",
79
+ "@stacksjs/ts-cloud-core": "^0.1.7",
80
+ "@stacksjs/ts-cloud-types": "^0.1.7"
65
81
  },
66
82
  "devDependencies": {
67
- "@stacksjs/bumpx": "^0.2.2",
68
- "@stacksjs/eslint-config": "^4.14.0-beta.3",
83
+ "@stacksjs/bumpx": "^0.2.4",
69
84
  "@stacksjs/gitlint": "^0.1.5",
70
85
  "@stacksjs/headwind": "^0.1.3",
71
- "@stacksjs/logsmith": "^0.2.0",
86
+ "@stacksjs/logsmith": "^0.2.1",
72
87
  "@stacksjs/ts-i18n": "^0.0.0",
73
88
  "bun-git-hooks": "^0.3.1",
74
- "bun-plugin-dtsx": "0.9.5",
75
- "bun-plugin-stx": "0.1.16",
76
- "bun-types": "^1.3.1",
77
- "bunfig": "^0.15.0",
78
- "ts-syntax-highlighter": "^0.2.0",
89
+ "bun-plugin-dtsx": "0.9.9",
90
+ "bun-types": "^1.3.9",
91
+ "bunfig": "^0.15.6",
92
+ "mitata": "^1.0.34",
93
+ "ts-syntax-highlighter": "^0.2.1",
79
94
  "typescript": "^5.9.3"
80
95
  },
81
96
  "git-hooks": {
82
97
  "pre-commit": {
83
98
  "staged-lint": {
84
- "*.{js,ts,json,yaml,yml,md}": "bunx --bun eslint --fix"
99
+ "*.{js,ts,json,yaml,yml,md}": "bunx --bun pickier --fix"
85
100
  }
86
101
  },
87
102
  "commit-msg": "bunx gitlint --edit .git/COMMIT_EDITMSG"
88
- },
89
- "overrides": {
90
- "bun-plugin-stx": "0.1.16"
91
103
  }
92
104
  }