@nisli/core 0.47.4 → 0.48.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.
- package/README.md +13 -9
- package/package.json +1 -5
- package/dist/static/index.d.ts +0 -4
- package/dist/static/index.js +0 -5
- package/dist/static/index.js.map +0 -1
- package/dist/static/render.d.ts +0 -17
- package/dist/static/render.js +0 -66
- package/dist/static/render.js.map +0 -1
package/README.md
CHANGED
|
@@ -34,7 +34,6 @@ const Counter = component('x-counter', () => {
|
|
|
34
34
|
- **Lifecycle** — `onMount`, `onCleanup`, `useHostEvent`
|
|
35
35
|
- **Refs** — Direct element access via `ref()`
|
|
36
36
|
- **Control Flow** — `when()` for toggles, `each()` for keyed list rendering
|
|
37
|
-
- **Static Rendering** — DOM-free HTML string rendering via `@nisli/core/static`
|
|
38
37
|
|
|
39
38
|
## API
|
|
40
39
|
|
|
@@ -82,20 +81,25 @@ inject(Nav).emit('select', { id })
|
|
|
82
81
|
inject(Nav).on('select', ({ id }) => { ... })
|
|
83
82
|
```
|
|
84
83
|
|
|
85
|
-
## Static
|
|
84
|
+
## Static Site Generation
|
|
86
85
|
|
|
87
|
-
Use the
|
|
88
|
-
|
|
86
|
+
Use the companion `@nisli/ssg` package when you want build-time pages,
|
|
87
|
+
publication output, feeds, or other DOM-free static output.
|
|
89
88
|
|
|
90
89
|
```typescript
|
|
91
|
-
import {
|
|
90
|
+
import { buildStaticSite } from '@nisli/ssg';
|
|
92
91
|
|
|
93
|
-
|
|
94
|
-
|
|
92
|
+
await buildStaticSite({
|
|
93
|
+
outDir: 'dist',
|
|
94
|
+
routes: [
|
|
95
|
+
{ path: '/', render: () => '<article>...</article>' },
|
|
96
|
+
],
|
|
97
|
+
});
|
|
95
98
|
```
|
|
96
99
|
|
|
97
|
-
`
|
|
98
|
-
|
|
100
|
+
`@nisli/core` stays focused on component authoring and the browser runtime.
|
|
101
|
+
`@nisli/ssg` owns static site generation; static rendering internals stay behind
|
|
102
|
+
the build tool.
|
|
99
103
|
|
|
100
104
|
## Size
|
|
101
105
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nisli/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.48.1",
|
|
4
4
|
"description": "A reactive web component framework. Signals, templates, dependency injection — no build step, no virtual DOM, no dependencies.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -21,10 +21,6 @@
|
|
|
21
21
|
".": {
|
|
22
22
|
"types": "./dist/index.d.ts",
|
|
23
23
|
"default": "./dist/index.js"
|
|
24
|
-
},
|
|
25
|
-
"./static": {
|
|
26
|
-
"types": "./dist/static/index.d.ts",
|
|
27
|
-
"default": "./dist/static/index.js"
|
|
28
24
|
}
|
|
29
25
|
},
|
|
30
26
|
"files": [
|
package/dist/static/index.d.ts
DELETED
package/dist/static/index.js
DELETED
package/dist/static/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/static/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,UAAU,EACV,GAAG,EACH,cAAc,GAGf,MAAM,aAAa,CAAC"}
|
package/dist/static/render.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Static HTML renderer for Nisli-style templates.
|
|
3
|
-
*
|
|
4
|
-
* This module is intentionally DOM-free. It renders tagged templates to HTML
|
|
5
|
-
* strings for build-time/static use cases, not live browser bindings.
|
|
6
|
-
*/
|
|
7
|
-
export interface StaticResult {
|
|
8
|
-
toString(): string;
|
|
9
|
-
__staticResult: true;
|
|
10
|
-
}
|
|
11
|
-
export interface RawHtml {
|
|
12
|
-
value: string;
|
|
13
|
-
__raw: true;
|
|
14
|
-
}
|
|
15
|
-
export declare function staticHtml(strings: TemplateStringsArray, ...values: unknown[]): StaticResult;
|
|
16
|
-
export declare function raw(value: string): RawHtml;
|
|
17
|
-
export declare function renderToString(value: unknown): string;
|
package/dist/static/render.js
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Static HTML renderer for Nisli-style templates.
|
|
3
|
-
*
|
|
4
|
-
* This module is intentionally DOM-free. It renders tagged templates to HTML
|
|
5
|
-
* strings for build-time/static use cases, not live browser bindings.
|
|
6
|
-
*/
|
|
7
|
-
const ESCAPE_MAP = {
|
|
8
|
-
'&': '&',
|
|
9
|
-
'<': '<',
|
|
10
|
-
'>': '>',
|
|
11
|
-
'"': '"',
|
|
12
|
-
"'": ''',
|
|
13
|
-
};
|
|
14
|
-
function escapeHtml(value) {
|
|
15
|
-
return value.replace(/[&<>"']/g, ch => ESCAPE_MAP[ch] ?? ch);
|
|
16
|
-
}
|
|
17
|
-
function isStaticResult(value) {
|
|
18
|
-
return (typeof value === 'object' &&
|
|
19
|
-
value !== null &&
|
|
20
|
-
'__staticResult' in value &&
|
|
21
|
-
value.__staticResult === true &&
|
|
22
|
-
typeof value.toString === 'function');
|
|
23
|
-
}
|
|
24
|
-
function isRawHtml(value) {
|
|
25
|
-
return (typeof value === 'object' &&
|
|
26
|
-
value !== null &&
|
|
27
|
-
'__raw' in value &&
|
|
28
|
-
value.__raw === true &&
|
|
29
|
-
typeof value.value === 'string');
|
|
30
|
-
}
|
|
31
|
-
export function staticHtml(strings, ...values) {
|
|
32
|
-
const result = [];
|
|
33
|
-
for (let i = 0; i < strings.length; i++) {
|
|
34
|
-
result.push(strings[i] ?? '');
|
|
35
|
-
if (i < values.length) {
|
|
36
|
-
result.push(renderToString(values[i]));
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
const output = result.join('');
|
|
40
|
-
return {
|
|
41
|
-
__staticResult: true,
|
|
42
|
-
toString: () => output,
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
export function raw(value) {
|
|
46
|
-
return {
|
|
47
|
-
__raw: true,
|
|
48
|
-
value,
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
export function renderToString(value) {
|
|
52
|
-
if (value == null || value === false || value === true) {
|
|
53
|
-
return '';
|
|
54
|
-
}
|
|
55
|
-
if (isStaticResult(value)) {
|
|
56
|
-
return value.toString();
|
|
57
|
-
}
|
|
58
|
-
if (isRawHtml(value)) {
|
|
59
|
-
return value.value;
|
|
60
|
-
}
|
|
61
|
-
if (Array.isArray(value)) {
|
|
62
|
-
return value.map(renderToString).join('');
|
|
63
|
-
}
|
|
64
|
-
return escapeHtml(String(value));
|
|
65
|
-
}
|
|
66
|
-
//# sourceMappingURL=render.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/static/render.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,MAAM,UAAU,GAA2B;IACzC,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,OAAO;CACb,CAAC;AAEF,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,gBAAgB,IAAI,KAAK;QACxB,KAAsB,CAAC,cAAc,KAAK,IAAI;QAC/C,OAAQ,KAAsB,CAAC,QAAQ,KAAK,UAAU,CACvD,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAO,IAAI,KAAK;QACf,KAAiB,CAAC,KAAK,KAAK,IAAI;QACjC,OAAQ,KAAiB,CAAC,KAAK,KAAK,QAAQ,CAC7C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAA6B,EAAE,GAAG,MAAiB;IAC5E,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAE9B,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE/B,OAAO;QACL,cAAc,EAAE,IAAa;QAC7B,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM;KACvB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,KAAa;IAC/B,OAAO;QACL,KAAK,EAAE,IAAa;QACpB,KAAK;KACN,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACvD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC1B,CAAC;IAED,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACnC,CAAC"}
|