@stacksjs/bunpress 0.0.5 → 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 (53) hide show
  1. package/CHANGELOG.md +296 -0
  2. package/README.md +113 -26
  3. package/dist/bin/cli.js +2 -85
  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/highlighter.d.ts +37 -0
  10. package/dist/index.d.ts +2 -0
  11. package/dist/robots.d.ts +5 -0
  12. package/dist/rss.d.ts +16 -0
  13. package/dist/serve.d.ts +28 -0
  14. package/dist/sitemap.d.ts +5 -0
  15. package/dist/src/index.js +1 -242
  16. package/dist/template-loader.d.ts +16 -0
  17. package/dist/templates/blocks/alerts/caution.stx +9 -0
  18. package/dist/templates/blocks/alerts/important.stx +9 -0
  19. package/dist/templates/blocks/alerts/note.stx +9 -0
  20. package/dist/templates/blocks/alerts/tip.stx +9 -0
  21. package/dist/templates/blocks/alerts/warning.stx +9 -0
  22. package/dist/templates/blocks/containers/danger.stx +6 -0
  23. package/dist/templates/blocks/containers/details.stx +6 -0
  24. package/dist/templates/blocks/containers/info.stx +6 -0
  25. package/dist/templates/blocks/containers/raw.stx +3 -0
  26. package/dist/templates/blocks/containers/tip.stx +6 -0
  27. package/dist/templates/blocks/containers/warning.stx +6 -0
  28. package/dist/templates/blocks/inline/code.stx +1 -0
  29. package/dist/templates/blocks/inline/del.stx +1 -0
  30. package/dist/templates/blocks/inline/em.stx +1 -0
  31. package/dist/templates/blocks/inline/mark.stx +1 -0
  32. package/dist/templates/blocks/inline/strong.stx +1 -0
  33. package/dist/templates/blocks/inline/sub.stx +1 -0
  34. package/dist/templates/blocks/inline/sup.stx +1 -0
  35. package/dist/templates/features.stx +20 -0
  36. package/dist/templates/hero.stx +10 -0
  37. package/dist/templates/layout-doc.stx +157 -0
  38. package/dist/templates/layout-home.stx +23 -0
  39. package/dist/templates/page-toc.stx +267 -0
  40. package/dist/templates/sidebar-section.stx +42 -0
  41. package/dist/templates/sidebar.stx +54 -0
  42. package/dist/themes/bun/index.d.ts +34 -0
  43. package/dist/themes/index.d.ts +24 -0
  44. package/dist/themes/vitepress/base.css +549 -0
  45. package/dist/themes/vitepress/code-group.css +121 -0
  46. package/dist/themes/vitepress/custom-block.css +330 -0
  47. package/dist/themes/vitepress/index.d.ts +29 -0
  48. package/dist/themes/vitepress/index.ts +1963 -0
  49. package/dist/themes/vitepress/vars.css +436 -0
  50. package/dist/types.d.ts +154 -3
  51. package/package.json +32 -14
  52. package/dist/chunk-z2xpw4s7.js +0 -322
  53. 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,11 +1,53 @@
1
- import type { marked } from 'marked';
2
1
  export declare interface BunPressConfig {
3
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'
4
13
  markdown: MarkdownPluginConfig
5
14
  nav?: NavItem[]
6
15
  plugins?: ConfigPlugin[]
7
16
  sitemap?: SitemapConfig
8
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'
9
51
  }
10
52
  /**
11
53
  * Configuration options for the markdown plugin
@@ -16,15 +58,28 @@ export declare interface MarkdownPluginConfig {
16
58
  scripts?: string[]
17
59
  title?: string
18
60
  meta?: Record<string, string>
19
- markedOptions?: Parameters<typeof marked.parse>[1]
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
+ }
20
73
  preserveDirectoryStructure?: boolean
21
74
  toc?: TocConfig
22
75
  sidebar?: Record<string, SidebarItem[]>
23
76
  nav?: NavItem[]
24
77
  search?: SearchConfig
25
78
  themeConfig?: ThemeConfig
79
+ syntaxHighlightTheme?: 'github-light' | 'github-dark'
26
80
  sitemap?: SitemapConfig
27
81
  robots?: RobotsConfig
82
+ features?: MarkdownFeaturesConfig
28
83
  }
29
84
  /**
30
85
  * Sidebar navigation item
@@ -94,6 +149,73 @@ export declare interface TocConfig {
94
149
  collapsible?: boolean
95
150
  exclude?: string[]
96
151
  }
152
+ /**
153
+ * Markdown features configuration
154
+ * Controls which VitePress-compatible features are enabled
155
+ */
156
+ export declare interface MarkdownFeaturesConfig {
157
+ inlineFormatting?: boolean
158
+ containers?: boolean | ContainersConfig
159
+ githubAlerts?: boolean | GitHubAlertsConfig
160
+ codeBlocks?: boolean | CodeBlocksConfig
161
+ codeGroups?: boolean
162
+ codeImports?: boolean
163
+ inlineToc?: boolean
164
+ customAnchors?: boolean
165
+ emoji?: boolean
166
+ badges?: boolean
167
+ includes?: boolean
168
+ externalLinks?: boolean | ExternalLinksConfig
169
+ imageLazyLoading?: boolean
170
+ tables?: boolean | TablesConfig
171
+ }
172
+ /**
173
+ * Custom containers configuration
174
+ */
175
+ export declare interface ContainersConfig {
176
+ info?: boolean
177
+ tip?: boolean
178
+ warning?: boolean
179
+ danger?: boolean
180
+ details?: boolean
181
+ raw?: boolean
182
+ }
183
+ /**
184
+ * GitHub alerts configuration
185
+ */
186
+ export declare interface GitHubAlertsConfig {
187
+ note?: boolean
188
+ tip?: boolean
189
+ important?: boolean
190
+ warning?: boolean
191
+ caution?: boolean
192
+ }
193
+ /**
194
+ * Code blocks configuration
195
+ */
196
+ export declare interface CodeBlocksConfig {
197
+ lineHighlighting?: boolean
198
+ lineNumbers?: boolean
199
+ focus?: boolean
200
+ diffs?: boolean
201
+ errorWarningMarkers?: boolean
202
+ }
203
+ /**
204
+ * External links configuration
205
+ */
206
+ export declare interface ExternalLinksConfig {
207
+ autoTarget?: boolean
208
+ autoRel?: boolean
209
+ showIcon?: boolean
210
+ }
211
+ /**
212
+ * Tables configuration
213
+ */
214
+ export declare interface TablesConfig {
215
+ alignment?: boolean
216
+ enhancedStyling?: boolean
217
+ responsive?: boolean
218
+ }
97
219
  /**
98
220
  * Search configuration
99
221
  */
@@ -226,6 +348,31 @@ export declare interface RobotsRule {
226
348
  disallow?: string[]
227
349
  crawlDelay?: number
228
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
+ }
229
376
  export type BunPressOptions = Partial<BunPressConfig>
230
377
  /**
231
378
  * Plugin options for the Markdown plugin
@@ -238,4 +385,8 @@ export type TocPosition = 'sidebar' | 'inline' | 'floating'
238
385
  /**
239
386
  * Sitemap change frequency values
240
387
  */
241
- 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.0.5",
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,32 +53,50 @@
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
- "release": "bun run changelog:generate && bunx --bun bumpx prompt --recursive",
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.1.84",
68
- "@stacksjs/eslint-config": "^4.14.0-beta.3",
83
+ "@stacksjs/bumpx": "^0.2.4",
69
84
  "@stacksjs/gitlint": "^0.1.5",
70
- "@stacksjs/headwind": "^0.1.1",
71
- "@stacksjs/logsmith": "^0.1.18",
85
+ "@stacksjs/headwind": "^0.1.3",
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
- "bunfig": "^0.15.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",
76
94
  "typescript": "^5.9.3"
77
95
  },
78
96
  "git-hooks": {
79
97
  "pre-commit": {
80
98
  "staged-lint": {
81
- "*.{js,ts,json,yaml,yml,md}": "bunx --bun eslint --fix"
99
+ "*.{js,ts,json,yaml,yml,md}": "bunx --bun pickier --fix"
82
100
  }
83
101
  },
84
102
  "commit-msg": "bunx gitlint --edit .git/COMMIT_EDITMSG"