@sigx/ssg 0.4.1 β†’ 0.4.2

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.
package/README.md CHANGED
@@ -1,46 +1,28 @@
1
1
  # @sigx/ssg
2
2
 
3
- Static Site Generator for SignalX with file-based routing, MDX support, and pluggable themes.
3
+ Static site generator for [SignalX](https://github.com/signalxjs/core) with file-based routing, MDX, and pluggable themes.
4
4
 
5
5
  ## Features
6
6
 
7
- - πŸ—‚ **File-based routing** - Pages in `src/pages/` become routes automatically
8
- - πŸ“‘ **Layout system** - Wrap pages with reusable layouts
9
- - πŸ“ **MDX support** - Write content with Markdown and SignalX components
10
- - 🎨 **Pluggable themes** - Install theme packages or create your own
11
- - **Vite HMR** - Instant updates during development
12
- - ⚑ **Fast builds** - Parallel rendering with streaming
13
- - πŸš€ **Zero-config mode** - Works out of the box with sensible defaults
14
- - πŸ—ΊοΈ **Sitemap generation** - Automatic sitemap.xml and robots.txt
15
- - πŸ› οΈ **CLI tools** - `ssg dev`, `ssg build`, and `ssg preview` commands
7
+ - πŸ—‚ **File-based routing** β€” `src/pages/` becomes routes automatically
8
+ - πŸ“‘ **Layout system** β€” wrap pages with reusable layouts
9
+ - πŸ“ **MDX** β€” write content with Markdown + SignalX components
10
+ - 🎨 **Pluggable themes** β€” install a theme package (e.g. `@sigx/ssg-theme-daisyui`) or build your own
11
+ - πŸ”₯ **Vite HMR** β€” instant updates during development
12
+ - ⚑ **Fast builds** β€” parallel rendering with streaming
13
+ - πŸš€ **Zero-config mode** β€” works out of the box with sensible defaults
14
+ - πŸ—ΊοΈ **Sitemap generation** β€” automatic `sitemap.xml` and `robots.txt`
16
15
 
17
16
  ## Installation
18
17
 
19
18
  ```bash
20
- npm install @sigx/ssg sigx @sigx/router vite
19
+ npm install @sigx/ssg sigx @sigx/router
20
+ npm install -D vite @sigx/vite
21
21
  ```
22
22
 
23
- ## Quick Start
23
+ ## Usage
24
24
 
25
- ### Zero-config mode
26
-
27
- The simplest way to get started - just create pages and run:
28
-
29
- ```bash
30
- # Create a page
31
- mkdir -p src/pages
32
- echo 'export default () => <h1>Hello World</h1>' > src/pages/index.tsx
33
-
34
- # Start development
35
- npx ssg dev
36
-
37
- # Build for production
38
- npx ssg build
39
- ```
40
-
41
- ### With configuration
42
-
43
- Create `ssg.config.ts`:
25
+ `@sigx/ssg` ships as a [`@sigx/cli`](https://github.com/signalxjs/cli) plugin and a Vite plugin you can use directly. Drop a `ssg.config.ts` in your project root to opt in:
44
26
 
45
27
  ```ts
46
28
  // ssg.config.ts
@@ -51,49 +33,32 @@ export default defineSSGConfig({
51
33
  title: 'My Site',
52
34
  description: 'Built with SignalX SSG',
53
35
  url: 'https://example.com',
54
- fonts: ['Inter:wght@400;500;600;700'],
55
36
  },
56
37
  });
57
38
  ```
58
39
 
59
- ### With custom Vite config (optional)
40
+ ### Via `@sigx/cli`
41
+
42
+ ```bash
43
+ npx sigx ssg dev # start dev server
44
+ npx sigx ssg build # build static site
45
+ npx sigx ssg preview # preview the production build
46
+ ```
47
+
48
+ ### Via the Vite plugin
60
49
 
61
50
  ```ts
62
51
  // vite.config.ts
63
52
  import { defineConfig } from 'vite';
64
- import { sigxPlugin } from '@sigx/vite';
65
- import { ssgPlugin } from '@sigx/ssg/vite';
53
+ import sigx from '@sigx/vite';
54
+ import ssg from '@sigx/ssg/vite';
66
55
 
67
56
  export default defineConfig({
68
- plugins: [
69
- sigxPlugin(),
70
- ssgPlugin(),
71
- ],
72
- });
73
- ```
74
-
75
- ### Create pages
76
-
77
- ```tsx
78
- // src/pages/index.tsx
79
- import { component } from 'sigx';
80
-
81
- export default component(() => {
82
- return () => (
83
- <div>
84
- <h1>Welcome to my site!</h1>
85
- </div>
86
- );
57
+ plugins: [sigx(), ssg()],
87
58
  });
88
59
  ```
89
60
 
90
- ### 4. Build
91
-
92
- ```bash
93
- npx ssg build
94
- ```
95
-
96
- ## File-based Routing
61
+ ## File-based routing
97
62
 
98
63
  Pages in `src/pages/` are automatically converted to routes:
99
64
 
@@ -105,16 +70,13 @@ Pages in `src/pages/` are automatically converted to routes:
105
70
  | `src/pages/blog/[slug].tsx` | `/blog/:slug` |
106
71
  | `src/pages/docs/[...path].tsx` | `/docs/*path` |
107
72
 
108
- ### Dynamic Routes
109
-
110
- For dynamic routes, export a `getStaticPaths` function:
73
+ Dynamic routes export `getStaticPaths`:
111
74
 
112
75
  ```tsx
113
76
  // src/pages/blog/[slug].tsx
114
77
  import { component } from 'sigx';
115
78
 
116
79
  export async function getStaticPaths() {
117
- // Fetch your data from any source
118
80
  const posts = await fetchBlogPosts();
119
81
  return posts.map(post => ({
120
82
  params: { slug: post.slug },
@@ -122,13 +84,11 @@ export async function getStaticPaths() {
122
84
  }));
123
85
  }
124
86
 
125
- export default component(({ props }) => {
126
- return () => (
127
- <article>
128
- <h1>{props.post.data.title}</h1>
129
- </article>
130
- );
131
- });
87
+ export default component(({ props }) => () => (
88
+ <article>
89
+ <h1>{props.post.title}</h1>
90
+ </article>
91
+ ));
132
92
  ```
133
93
 
134
94
  ## Layouts
@@ -139,22 +99,16 @@ Create layouts in `src/layouts/`:
139
99
  // src/layouts/default.tsx
140
100
  import { component } from 'sigx';
141
101
 
142
- export default component(({ slots, props }) => {
143
- return () => (
144
- <div class="layout">
145
- <header>
146
- <nav>My Site</nav>
147
- </header>
148
- <main>
149
- {slots.default()}
150
- </main>
151
- <footer>Β© 2024</footer>
152
- </div>
153
- );
154
- });
102
+ export default component(({ slots }) => () => (
103
+ <div class="layout">
104
+ <header><nav>My Site</nav></header>
105
+ <main>{slots.default()}</main>
106
+ <footer>Β©</footer>
107
+ </div>
108
+ ));
155
109
  ```
156
110
 
157
- Specify layout in frontmatter or export:
111
+ Specify the layout in frontmatter or by exporting it:
158
112
 
159
113
  ```mdx
160
114
  ---
@@ -165,149 +119,57 @@ layout: docs
165
119
  # Content here
166
120
  ```
167
121
 
168
- Or in TSX:
169
-
170
122
  ```tsx
171
123
  export const layout = 'docs';
172
124
  ```
173
125
 
174
126
  ## MDX
175
127
 
176
- Write content with MDX:
177
-
178
128
  ```mdx
179
129
  ---
180
130
  title: Hello World
181
- date: 2024-01-01
131
+ date: 2026-05-10
182
132
  ---
183
133
 
184
134
  # {frontmatter.title}
185
135
 
186
- This is **markdown** with SignalX components!
136
+ This is **markdown** with SignalX components mixed in:
187
137
 
188
138
  <Counter initial={5} />
189
139
  ```
190
140
 
191
141
  ## Themes
192
142
 
193
- Install a theme package:
143
+ Install a theme:
194
144
 
195
145
  ```bash
196
146
  npm install @sigx/ssg-theme-daisyui
197
147
  ```
198
148
 
199
- Configure in ssg.config.ts:
200
-
201
149
  ```ts
150
+ // ssg.config.ts
202
151
  export default defineSSGConfig({
203
152
  theme: '@sigx/ssg-theme-daisyui',
204
153
  });
205
154
  ```
206
155
 
207
- Themes provide:
208
- - Pre-built layouts (default, docs, blog, etc.)
209
- - UI components
210
- - CSS styles
211
-
212
- ## Hydration
213
-
214
- SSG pages are pre-rendered at build time as static HTML. Interactive components are "hydrated" on the client side to become reactive.
215
-
216
- ### Islands Architecture
156
+ A theme bundles layouts, components, and CSS so you don't have to.
217
157
 
218
- SignalX SSG supports selective hydration through **islands architecture**. Each interactive component can specify when it should be hydrated using client directives:
219
-
220
- ```tsx
221
- import { Counter } from './components/Counter';
222
-
223
- export default component(() => {
224
- return () => (
225
- <div>
226
- {/* Static content - no JS needed */}
227
- <h1>Welcome to my site</h1>
228
-
229
- {/* Interactive islands with different hydration strategies */}
230
- <Counter client:load />
231
- <LazyWidget client:idle />
232
- <OffscreenChart client:visible />
233
- <MobileMenu client:media="(max-width: 768px)" />
234
- <BrowserOnlyWidget client:only />
235
- </div>
236
- );
237
- });
238
- ```
158
+ ## Islands hydration
239
159
 
240
- ### Hydration Strategies
241
-
242
- | Directive | When it Hydrates | Use Case |
243
- |-----------|------------------|----------|
244
- | `client:load` | Immediately on page load | Critical interactive elements |
245
- | `client:idle` | When browser is idle (`requestIdleCallback`) | Non-critical interactivity |
246
- | `client:visible` | When scrolled into viewport (`IntersectionObserver`) | Below-the-fold components |
247
- | `client:media="query"` | When media query matches | Mobile-only components |
248
- | `client:only` | Not SSR'd, renders only on client | Browser API dependencies |
249
-
250
- ### Example: Interactive Counter
251
-
252
- ```tsx
253
- // src/components/Counter.tsx
254
- import { component, signal } from 'sigx';
255
-
256
- export const Counter = component(() => {
257
- const count = signal(0);
258
-
259
- return () => (
260
- <div class="counter">
261
- <button onClick={() => count.value--}>-</button>
262
- <span>{count.value}</span>
263
- <button onClick={() => count.value++}>+</button>
264
- </div>
265
- );
266
- }, { name: 'Counter' });
267
- ```
268
-
269
- ```tsx
270
- // src/pages/index.tsx
271
- import { Counter } from '../components/Counter';
272
-
273
- export default component(() => {
274
- return () => (
275
- <main>
276
- <h1>Counter Demo</h1>
277
- <Counter client:load />
278
- </main>
279
- );
280
- });
281
- ```
282
-
283
- ### How It Works
284
-
285
- 1. **Build time**: Pages are rendered to static HTML with component markers
286
- 2. **Page load**: Browser receives pre-rendered HTML (fast First Contentful Paint)
287
- 3. **Hydration**: JavaScript attaches event handlers and reactivity to existing DOM
288
- 4. **Interactivity**: Components become fully interactive without re-rendering
289
-
290
- ### Benefits
291
-
292
- - **Fast initial load** - HTML is ready immediately, no JavaScript blocking
293
- - **SEO friendly** - Search engines see full content
294
- - **Progressive enhancement** - Content is visible before JS loads
295
- - **Reduced JavaScript** - Only hydrate what needs to be interactive
296
- - **Fine-grained control** - Choose when each component becomes interactive
160
+ `@sigx/ssg` works with [`@sigx/ssr-islands`](https://github.com/signalxjs/ssr-islands) for selective hydration via `client:*` directives. See the islands README for details.
297
161
 
298
162
  ## Configuration
299
163
 
300
- Full configuration options:
164
+ Full options:
301
165
 
302
166
  ```ts
303
167
  defineSSGConfig({
304
- // Directories
305
168
  pages: 'src/pages',
306
169
  layouts: 'src/layouts',
307
170
  content: 'src/content',
308
171
  outDir: 'dist',
309
172
 
310
- // Site metadata
311
173
  site: {
312
174
  title: 'My Site',
313
175
  description: 'Site description',
@@ -320,11 +182,9 @@ defineSSGConfig({
320
182
  themeColor: '#000000',
321
183
  },
322
184
 
323
- // Theme
324
185
  theme: '@sigx/ssg-theme-daisyui',
325
186
  defaultLayout: 'default',
326
187
 
327
- // Markdown options
328
188
  markdown: {
329
189
  shiki: {
330
190
  light: 'github-light',
@@ -334,25 +194,6 @@ defineSSGConfig({
334
194
  });
335
195
  ```
336
196
 
337
- ## CLI
338
-
339
- ```bash
340
- # Start development server
341
- npx ssg dev
342
-
343
- # Build static site (generates sitemap.xml and robots.txt)
344
- npx ssg build
345
-
346
- # Preview production build
347
- npx ssg preview
348
-
349
- # With custom config
350
- npx ssg build --config=./my-config.ts
351
-
352
- # With options
353
- npx ssg dev --port=3000 --open
354
- ```
355
-
356
197
  ## License
357
198
 
358
- MIT
199
+ MIT Β© Andreas Ekdahl
package/dist/errors.d.ts CHANGED
@@ -28,17 +28,17 @@ export declare class SSGError extends Error {
28
28
  * Error codes for categorization
29
29
  */
30
30
  export declare const ErrorCodes: {
31
- readonly CONFIG_NOT_FOUND: "SSG001";
32
- readonly CONFIG_INVALID: "SSG002";
33
- readonly CONFIG_THEME_NOT_FOUND: "SSG003";
34
- readonly PAGE_NOT_FOUND: "SSG100";
35
- readonly PAGE_INVALID_EXPORT: "SSG101";
36
- readonly DYNAMIC_ROUTE_NO_PATHS: "SSG102";
37
- readonly LAYOUT_NOT_FOUND: "SSG103";
38
- readonly BUILD_RENDER_FAILED: "SSG300";
39
- readonly BUILD_VITE_FAILED: "SSG301";
40
- readonly MDX_PARSE_ERROR: "SSG400";
41
- readonly MDX_FRONTMATTER_ERROR: "SSG401";
31
+ readonly CONFIG_NOT_FOUND: 'SSG001';
32
+ readonly CONFIG_INVALID: 'SSG002';
33
+ readonly CONFIG_THEME_NOT_FOUND: 'SSG003';
34
+ readonly PAGE_NOT_FOUND: 'SSG100';
35
+ readonly PAGE_INVALID_EXPORT: 'SSG101';
36
+ readonly DYNAMIC_ROUTE_NO_PATHS: 'SSG102';
37
+ readonly LAYOUT_NOT_FOUND: 'SSG103';
38
+ readonly BUILD_RENDER_FAILED: 'SSG300';
39
+ readonly BUILD_VITE_FAILED: 'SSG301';
40
+ readonly MDX_PARSE_ERROR: 'SSG400';
41
+ readonly MDX_FRONTMATTER_ERROR: 'SSG401';
42
42
  };
43
43
  export declare function configNotFoundError(searchedPaths: string[]): SSGError;
44
44
  export declare function themeNotFoundError(themeName: string): SSGError;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE7B,YACI,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,KAAK,CAAC;KACjB,EASJ;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAuB5B;CACJ;AAED;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;CAmBb,CAAC;AAMX,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,QAAQ,CAUrE;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAQ9D;AAMD,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,QAAQ,CAa9G;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,QAAQ,CAYjF;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAY5D;AAMD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,QAAQ,CAYrE;AAMD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,CAcjF;AAMD;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAgBhE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,IAAI,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,CAAC,CAAC,CAIZ"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE7B,YACI,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,KAAK,CAAC;KACjB,EASJ;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAuB5B;CACJ;AAED;;GAEG;AACH,eAAO,MAAM,UAAU;aAEnB,gBAAgB,EAAE,QAAQ;aAC1B,cAAc,EAAE,QAAQ;aACxB,sBAAsB,EAAE,QAAQ;aAGhC,cAAc,EAAE,QAAQ;aACxB,mBAAmB,EAAE,QAAQ;aAC7B,sBAAsB,EAAE,QAAQ;aAChC,gBAAgB,EAAE,QAAQ;aAG1B,mBAAmB,EAAE,QAAQ;aAC7B,iBAAiB,EAAE,QAAQ;aAG3B,eAAe,EAAE,QAAQ;aACzB,qBAAqB,EAAE,QAAQ;CACzB,CAAC;AAMX,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,QAAQ,CAUrE;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAQ9D;AAMD,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,QAAQ,CAa9G;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,QAAQ,CAYjF;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAY5D;AAMD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,QAAQ,CAYrE;AAMD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,CAcjF;AAMD;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAgBhE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,IAAI,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,CAAC,CAAC,CAIZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"rehype-headings.d.ts","sourceRoot":"","sources":["../../src/mdx/rehype-headings.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,qBAA0B,kCA+BxE;AAED,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"rehype-headings.d.ts","sourceRoot":"","sources":["../../src/mdx/rehype-headings.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,qBAA0B,UAGvD,GAAG,QAAQ,GAAG,UA4B/B;eAEc,qBAAqB"}
@@ -1 +1 @@
1
- {"version":3,"file":"shiki.d.ts","sourceRoot":"","sources":["../../src/mdx/shiki.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAqB,KAAK,WAAW,EAA2C,MAAM,OAAO,CAAC;AACrG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAgB5C;;GAEG;AACH,wBAAsB,cAAc,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAW/E;AAED;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;AAErD;;GAEG;AACH,wBAAsB,aAAa,CAC/B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,EACpB,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAA;CAAE,GAC/D,OAAO,CAAC,MAAM,CAAC,CA6GjB;AAsDD;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,WAAW,gCAgF/C;AA8BD;;GAEG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAW9D"}
1
+ {"version":3,"file":"shiki.d.ts","sourceRoot":"","sources":["../../src/mdx/shiki.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAqB,KAAK,WAAW,EAA2C,MAAM,OAAO,CAAC;AACrG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAgB5C;;GAEG;AACH,wBAAsB,cAAc,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAW/E;AAED;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;AAErD;;GAEG;AACH,wBAAsB,aAAa,CAC/B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,EACpB,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAA;CAAE,GAC/D,OAAO,CAAC,MAAM,CAAC,CA6GjB;AAsDD;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,WAAW,UACxB,GAAG,mBA+E1B;AA8BD;;GAEG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAW9D"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAMH,wBA4DG"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/vite/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAiC,MAAM,MAAM,CAAC;AAGlE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAsB1C;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,OAAO,CAAC,SAAS,CAAC;IACxD;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAQD;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,GAAE,gBAAqB,GAAG,MAAM,EAAE,CA8SlE;AAED;;GAEG;AACH,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/vite/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAiC,MAAM,MAAM,CAAC;AAGlE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAsB1C;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,OAAO,CAAC,SAAS,CAAC;IACxD;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAQD;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,GAAE,gBAAqB,GAAG,MAAM,EAAE,CA8SlE;AAED;;GAEG;eACY,SAAS"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sigx/ssg",
3
- "version": "0.4.1",
3
+ "version": "0.4.2",
4
4
  "description": "Static Site Generator for SignalX with file-based routing, MDX support, and pluggable themes",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -57,6 +57,7 @@
57
57
  "url": "https://github.com/signalxjs/ssg/issues"
58
58
  },
59
59
  "dependencies": {
60
+ "@sigx/router": "^0.4.2",
60
61
  "@sigx/server-renderer": "^0.4.1",
61
62
  "esbuild": "^0.27.0",
62
63
  "fast-glob": "^3.3.2",
@@ -73,8 +74,7 @@
73
74
  "remark-rehype": "^11.1.1",
74
75
  "shiki": "^1.24.0",
75
76
  "unified": "^11.0.5",
76
- "unist-util-visit": "^5.0.0",
77
- "@sigx/router": "^0.4.1"
77
+ "unist-util-visit": "^5.0.0"
78
78
  },
79
79
  "peerDependencies": {
80
80
  "@sigx/cli": "*",