@stacksjs/bunpress 0.1.0 → 0.1.3

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 (54) hide show
  1. package/README.md +257 -26
  2. package/dist/bin/cli.js +2 -104
  3. package/dist/chunk-1ymh7yt2.js +9656 -0
  4. package/dist/chunk-8qj79f0y.js +2 -0
  5. package/dist/chunk-szme5v1e.js +8 -0
  6. package/dist/chunk-z0redasq.js +530 -0
  7. package/dist/config.d.ts +3 -5
  8. package/dist/highlighter.d.ts +2 -1
  9. package/dist/index.d.ts +2 -1
  10. package/dist/robots.d.ts +5 -0
  11. package/dist/rss.d.ts +16 -0
  12. package/dist/serve.d.ts +11 -1
  13. package/dist/sitemap.d.ts +5 -0
  14. package/dist/src/index.js +1 -1
  15. package/dist/template-loader.d.ts +5 -3
  16. package/dist/templates/blocks/alerts/caution.stx +9 -0
  17. package/dist/templates/blocks/alerts/important.stx +9 -0
  18. package/dist/templates/blocks/alerts/note.stx +9 -0
  19. package/dist/templates/blocks/alerts/tip.stx +9 -0
  20. package/dist/templates/blocks/alerts/warning.stx +9 -0
  21. package/dist/templates/blocks/containers/danger.stx +6 -0
  22. package/dist/templates/blocks/containers/details.stx +6 -0
  23. package/dist/templates/blocks/containers/info.stx +6 -0
  24. package/dist/templates/blocks/containers/raw.stx +3 -0
  25. package/dist/templates/blocks/containers/tip.stx +6 -0
  26. package/dist/templates/blocks/containers/warning.stx +6 -0
  27. package/dist/templates/blocks/inline/code.stx +1 -0
  28. package/dist/templates/blocks/inline/del.stx +1 -0
  29. package/dist/templates/blocks/inline/em.stx +1 -0
  30. package/dist/templates/blocks/inline/mark.stx +1 -0
  31. package/dist/templates/blocks/inline/strong.stx +1 -0
  32. package/dist/templates/blocks/inline/sub.stx +1 -0
  33. package/dist/templates/blocks/inline/sup.stx +1 -0
  34. package/dist/templates/features.stx +20 -0
  35. package/dist/templates/hero.stx +10 -0
  36. package/dist/templates/layout-doc.stx +157 -0
  37. package/dist/templates/layout-home.stx +23 -0
  38. package/dist/templates/layout-page.stx +40 -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/toc.d.ts +1 -1
  51. package/dist/types.d.ts +86 -5
  52. package/package.json +12 -39
  53. package/dist/chunk-he6c5f4e.js +0 -1354
  54. 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/toc.d.ts CHANGED
@@ -62,4 +62,4 @@ export declare function generateTocScripts(): string;
62
62
  /**
63
63
  * Default TOC configuration
64
64
  */
65
- export declare const defaultTocConfig: Required<TocConfig>;
65
+ export declare const defaultTocConfig: Required<TocConfig>;
package/dist/types.d.ts CHANGED
@@ -1,10 +1,54 @@
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
+ rss?: import('./rss').RssFeedConfig
19
+ fathom?: FathomConfig
20
+ analytics?: AnalyticsConfig
21
+ selfHostedAnalytics?: SelfHostedAnalyticsConfig
22
+ cloud?: CloudConfig
23
+ }
24
+ /**
25
+ * Cloud deployment configuration
26
+ */
27
+ export declare interface CloudConfig {
28
+ driver?: 'aws'
29
+ region?: string
30
+ domain?: string
31
+ subdomain?: string
32
+ baseDomain?: string
33
+ bucket?: string
34
+ distributionId?: string
35
+ hostedZoneId?: string
36
+ certificateArn?: string
37
+ cacheControl?: string
38
+ invalidateCache?: boolean
39
+ waitForInvalidation?: boolean
40
+ stackName?: string
41
+ environment?: string
42
+ dnsProvider?: DnsProviderOptions
43
+ }
44
+ /**
45
+ * DNS provider configuration options
46
+ */
47
+ export declare interface DnsProviderOptions {
48
+ provider: 'porkbun' | 'godaddy' | 'route53'
49
+ apiKey?: string
50
+ secretKey?: string
51
+ environment?: 'production' | 'ote'
8
52
  }
9
53
  /**
10
54
  * Configuration options for the markdown plugin
@@ -15,7 +59,13 @@ export declare interface MarkdownPluginConfig {
15
59
  scripts?: string[]
16
60
  title?: string
17
61
  meta?: Record<string, string>
18
- markedOptions?: any
62
+ parserOptions?: {
63
+ gfm?: boolean
64
+ breaks?: boolean
65
+ headerIds?: boolean
66
+ headerPrefix?: string
67
+ highlight?: (code: string, lang: string) => string
68
+ }
19
69
  preserveDirectoryStructure?: boolean
20
70
  toc?: TocConfig
21
71
  sidebar?: Record<string, SidebarItem[]>
@@ -79,6 +129,7 @@ export declare interface Frontmatter {
79
129
  layout?: 'home' | 'doc' | 'page'
80
130
  hero?: Hero
81
131
  features?: Feature[]
132
+ [key: string]: any
82
133
  }
83
134
  /**
84
135
  * Table of Contents configuration
@@ -273,6 +324,7 @@ export declare interface SitemapEntry {
273
324
  lastmod?: string | Date
274
325
  changefreq?: SitemapChangefreq
275
326
  priority?: number
327
+ [key: string]: any
276
328
  }
277
329
  /**
278
330
  * Robots.txt configuration
@@ -294,16 +346,45 @@ export declare interface RobotsRule {
294
346
  disallow?: string[]
295
347
  crawlDelay?: number
296
348
  }
297
- export type BunPressOptions = Partial<BunPressConfig>
349
+ /**
350
+ * Fathom Analytics configuration
351
+ */
352
+ export declare interface FathomConfig {
353
+ enabled?: boolean
354
+ siteId?: string
355
+ scriptUrl?: string
356
+ defer?: boolean
357
+ honorDNT?: boolean
358
+ canonical?: string
359
+ auto?: boolean
360
+ spa?: boolean
361
+ }
362
+ /**
363
+ * Analytics configuration (using ts-analytics / dynamodb-tooling)
364
+ * A privacy-focused, cookie-free analytics solution you can run on your own infrastructure.
365
+ */
366
+ export declare interface AnalyticsConfig {
367
+ enabled?: boolean
368
+ siteId?: string
369
+ apiEndpoint?: string
370
+ honorDNT?: boolean
371
+ trackHashChanges?: boolean
372
+ trackOutboundLinks?: boolean
373
+ }
374
+ export type BunPressOptions = Partial<BunPressConfig>;
298
375
  /**
299
376
  * Plugin options for the Markdown plugin
300
377
  */
301
- export type MarkdownPluginOptions = Partial<MarkdownPluginConfig>
378
+ export type MarkdownPluginOptions = Partial<MarkdownPluginConfig>;
302
379
  /**
303
380
  * TOC position options
304
381
  */
305
- export type TocPosition = 'sidebar' | 'inline' | 'floating'
382
+ export type TocPosition = 'sidebar' | 'inline' | 'floating';
306
383
  /**
307
384
  * Sitemap change frequency values
308
385
  */
309
- export type SitemapChangefreq = 'always' | 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly' | 'never'
386
+ export type SitemapChangefreq = 'always' | 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly' | 'never';
387
+ /**
388
+ * @deprecated Use AnalyticsConfig instead
389
+ */
390
+ export type SelfHostedAnalyticsConfig = AnalyticsConfig;
package/package.json CHANGED
@@ -1,14 +1,15 @@
1
1
  {
2
2
  "name": "@stacksjs/bunpress",
3
3
  "type": "module",
4
- "version": "0.1.0",
4
+ "version": "0.1.3",
5
5
  "description": "Modern documentation engine. Powered by Bun.",
6
6
  "author": "Chris Breuer <chris@stacksjs.org>",
7
7
  "license": "MIT",
8
8
  "homepage": "https://github.com/stacksjs/bunpress#readme",
9
9
  "repository": {
10
10
  "type": "git",
11
- "url": "git+https://github.com/stacksjs/bunpress.git"
11
+ "url": "git+https://github.com/stacksjs/bunpress.git",
12
+ "directory": "packages/bunpress"
12
13
  },
13
14
  "bugs": {
14
15
  "url": "https://github.com/stacksjs/bunpress/issues"
@@ -39,8 +40,7 @@
39
40
  "dist"
40
41
  ],
41
42
  "scripts": {
42
- "dev": "bun run dev:docs",
43
- "build": "bun --bun build.ts && bun run compile",
43
+ "build": "bun --bun build.ts",
44
44
  "compile": "bun build ./bin/cli.ts --compile --minify --outfile bin/bunpress",
45
45
  "compile:all": "bun run compile:linux-x64 && bun run compile:linux-arm64 && bun run compile:windows-x64 && bun run compile:darwin-x64 && bun run compile:darwin-arm64",
46
46
  "compile:linux-x64": "bun build ./bin/cli.ts --compile --minify --target=bun-linux-x64 --outfile bin/bunpress-linux-x64",
@@ -48,45 +48,18 @@
48
48
  "compile:windows-x64": "bun build ./bin/cli.ts --compile --minify --target=bun-windows-x64 --outfile bin/bunpress-windows-x64.exe",
49
49
  "compile:darwin-x64": "bun build ./bin/cli.ts --compile --minify --target=bun-darwin-x64 --outfile bin/bunpress-darwin-x64",
50
50
  "compile:darwin-arm64": "bun build ./bin/cli.ts --compile --minify --target=bun-darwin-arm64 --outfile bin/bunpress-darwin-arm64",
51
- "fresh": "bunx rimraf node_modules/ bun.lock && bun i",
52
51
  "prepublishOnly": "bun --bun run build && bun run compile:all",
53
- "test": "bun test --reporter=verbose",
54
- "test:quick": "bun test --timeout=10000",
55
- "test:full": "bun test --timeout=60000 --no-bail",
56
- "lint": "bunx --bun eslint .",
57
- "lint:fix": "bunx --bun eslint . --fix",
58
- "changelog": "bunx logsmith --verbose",
59
- "changelog:generate": "bunx logsmith --output CHANGELOG.md",
60
- "release": "bunx --bun bumpx prompt --recursive",
61
- "dev:docs": "bun bin/cli.ts dev",
62
- "build:docs": "bun build.ts",
63
- "preview:docs": "bun serve --port 3000 dist",
64
52
  "typecheck": "bun --bun tsc --noEmit"
65
53
  },
54
+ "dependencies": {
55
+ "@stacksjs/clapp": "^0.2.0",
56
+ "@stacksjs/stx": "^0.2.9",
57
+ "@stacksjs/ts-md": "^0.1.1",
58
+ "@stacksjs/ts-cloud": "^0.2.2",
59
+ "bunfig": "^0.15.6"
60
+ },
66
61
  "devDependencies": {
67
- "@stacksjs/bumpx": "^0.2.2",
68
- "@stacksjs/eslint-config": "^4.14.0-beta.3",
69
- "@stacksjs/gitlint": "^0.1.5",
70
- "@stacksjs/headwind": "^0.1.3",
71
- "@stacksjs/logsmith": "^0.2.0",
72
- "@stacksjs/ts-i18n": "^0.0.0",
73
- "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",
62
+ "ts-syntax-highlighter": "^0.2.1",
79
63
  "typescript": "^5.9.3"
80
- },
81
- "git-hooks": {
82
- "pre-commit": {
83
- "staged-lint": {
84
- "*.{js,ts,json,yaml,yml,md}": "bunx --bun eslint --fix"
85
- }
86
- },
87
- "commit-msg": "bunx gitlint --edit .git/COMMIT_EDITMSG"
88
- },
89
- "overrides": {
90
- "bun-plugin-stx": "0.1.16"
91
64
  }
92
65
  }