@cogenta/render 0.1.4 → 0.2.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/dist/docs/markdown.d.ts +71 -0
- package/dist/docs/markdown.d.ts.map +1 -0
- package/dist/docs/markdown.js +325 -0
- package/dist/docs/markdown.js.map +1 -0
- package/dist/images/srcset.d.ts.map +1 -1
- package/dist/images/srcset.js +8 -0
- package/dist/images/srcset.js.map +1 -1
- package/dist/images/types.d.ts +10 -0
- package/dist/images/types.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/skin/index.d.ts +2 -0
- package/dist/skin/index.d.ts.map +1 -1
- package/dist/skin/index.js +1 -0
- package/dist/skin/index.js.map +1 -1
- package/dist/skin/merge.d.ts +26 -0
- package/dist/skin/merge.d.ts.map +1 -0
- package/dist/skin/merge.js +25 -0
- package/dist/skin/merge.js.map +1 -0
- package/dist/theme/manifest.d.ts +15 -0
- package/dist/theme/manifest.d.ts.map +1 -1
- package/dist/theme/manifest.js +14 -4
- package/dist/theme/manifest.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Markdown → HTML for Cogenta's own documentation (L22 task 7).
|
|
3
|
+
*
|
|
4
|
+
* `packages/admin/src/rich-text/markdown.ts` already converts Markdown to a
|
|
5
|
+
* Slate document, but that grammar is shaped by the rich-text *editor* (marks
|
|
6
|
+
* round-trip through a specific `CustomElement` union, an internal link has
|
|
7
|
+
* no `href` at all, media is a void with a private `cogenta-media:` scheme).
|
|
8
|
+
* Documentation pages are plain files under `docs-site/content/`, never
|
|
9
|
+
* touched by that editor, and need things the editor grammar doesn't have —
|
|
10
|
+
* tables, ordered/unordered list nesting driven by indentation, fenced code
|
|
11
|
+
* blocks with a language tag, heading anchors for a table of contents. A
|
|
12
|
+
* second small hand-written scanner, in the same spirit as the first
|
|
13
|
+
* (R9 — no Markdown dependency for either), is a better fit than bending one
|
|
14
|
+
* grammar to two unrelated jobs.
|
|
15
|
+
*
|
|
16
|
+
* This module is pure and has no Node built-in or DOM dependency, which is
|
|
17
|
+
* what lets it run in two different places from one source: a Node build
|
|
18
|
+
* script (`docs-site/build/generate.mjs`, for the statically published site)
|
|
19
|
+
* and `@cogenta/admin`'s browser bundle (`/admin/documentation`, already a
|
|
20
|
+
* devDependency of that package). Same function, same output, both times —
|
|
21
|
+
* the property the task explicitly asks for ("jamais deux copies qui
|
|
22
|
+
* divergent").
|
|
23
|
+
*/
|
|
24
|
+
export interface MarkdownHeading {
|
|
25
|
+
readonly level: number;
|
|
26
|
+
readonly text: string;
|
|
27
|
+
readonly id: string;
|
|
28
|
+
}
|
|
29
|
+
export interface MarkdownDocument {
|
|
30
|
+
readonly meta: Readonly<Record<string, string>>;
|
|
31
|
+
readonly html: string;
|
|
32
|
+
readonly headings: readonly MarkdownHeading[];
|
|
33
|
+
}
|
|
34
|
+
/** A minimal `key: value` block between two `---` lines. No nesting, no lists, no quoting — the only shapes `docs-site/content/**` actually uses (title, tree, order). A real YAML parser would be a bigger dependency than every page's frontmatter combined (R9). */
|
|
35
|
+
export declare function parseFrontmatter(source: string): {
|
|
36
|
+
readonly meta: Readonly<Record<string, string>>;
|
|
37
|
+
readonly body: string;
|
|
38
|
+
};
|
|
39
|
+
export declare function renderMarkdownToHtml(markdown: string): {
|
|
40
|
+
readonly html: string;
|
|
41
|
+
readonly headings: readonly MarkdownHeading[];
|
|
42
|
+
};
|
|
43
|
+
/** Frontmatter + rendering, in one call — what every real caller wants. */
|
|
44
|
+
export declare function renderMarkdownDocument(source: string): MarkdownDocument;
|
|
45
|
+
export type DocTree = 'functional' | 'technical';
|
|
46
|
+
/**
|
|
47
|
+
* The one place the two publications of this documentation *legitimately*
|
|
48
|
+
* differ: the statically generated site is a set of `.html` files on disk,
|
|
49
|
+
* `/admin/documentation` is one single-page app screen. The Markdown source
|
|
50
|
+
* and `renderMarkdownToHtml`'s output are identical either way — this
|
|
51
|
+
* function only retargets the `href`s a static site needs and a SPA can't
|
|
52
|
+
* use as written, run as a second pass over that same, unmodified HTML.
|
|
53
|
+
*
|
|
54
|
+
* Three shapes appear in `docs-site/content/**`, and only these three:
|
|
55
|
+
* - `../downloads/<file>.zip` → a starter template
|
|
56
|
+
* - `(../)?(functional|technical)/<slug>.html(#hash)?` → a cross-tree page
|
|
57
|
+
* - `<slug>.html(#hash)?` → a same-tree page
|
|
58
|
+
*
|
|
59
|
+
* A link this function doesn't recognise (an external `https://…` URL, an
|
|
60
|
+
* in-page `#hash`) is left untouched — this is a narrow, closed rewrite over
|
|
61
|
+
* a grammar this same project authors, not a general HTML link resolver.
|
|
62
|
+
*
|
|
63
|
+
* `basePath` defaults to `/admin` — where `cogenta serve` actually mounts
|
|
64
|
+
* the admin SPA — but is a parameter rather than a literal because the
|
|
65
|
+
* admin's own local dev server (`pnpm dev` inside `packages/admin`, no
|
|
66
|
+
* `cogenta serve` in front of it) serves the same screen at the root instead
|
|
67
|
+
* (`vite.config.ts`'s own `base: command === 'build' ? '/admin/' : '/'`). The
|
|
68
|
+
* caller passes `import.meta.env.BASE_URL` so a rewritten link works in both.
|
|
69
|
+
*/
|
|
70
|
+
export declare function adaptDocHtmlForAdmin(html: string, currentTree: DocTree, basePath?: string): string;
|
|
71
|
+
//# sourceMappingURL=markdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/docs/markdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAA;CAC9C;AAUD,uQAAuQ;AACvQ,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG;IAChD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB,CAiBA;AA0JD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAA;CAC9C,CAkHA;AAED,2EAA2E;AAC3E,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAIvE;AAMD,MAAM,MAAM,OAAO,GAAG,YAAY,GAAG,WAAW,CAAA;AAUhD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,OAAO,EACpB,QAAQ,SAAW,GAClB,MAAM,CAmBR"}
|
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Markdown → HTML for Cogenta's own documentation (L22 task 7).
|
|
3
|
+
*
|
|
4
|
+
* `packages/admin/src/rich-text/markdown.ts` already converts Markdown to a
|
|
5
|
+
* Slate document, but that grammar is shaped by the rich-text *editor* (marks
|
|
6
|
+
* round-trip through a specific `CustomElement` union, an internal link has
|
|
7
|
+
* no `href` at all, media is a void with a private `cogenta-media:` scheme).
|
|
8
|
+
* Documentation pages are plain files under `docs-site/content/`, never
|
|
9
|
+
* touched by that editor, and need things the editor grammar doesn't have —
|
|
10
|
+
* tables, ordered/unordered list nesting driven by indentation, fenced code
|
|
11
|
+
* blocks with a language tag, heading anchors for a table of contents. A
|
|
12
|
+
* second small hand-written scanner, in the same spirit as the first
|
|
13
|
+
* (R9 — no Markdown dependency for either), is a better fit than bending one
|
|
14
|
+
* grammar to two unrelated jobs.
|
|
15
|
+
*
|
|
16
|
+
* This module is pure and has no Node built-in or DOM dependency, which is
|
|
17
|
+
* what lets it run in two different places from one source: a Node build
|
|
18
|
+
* script (`docs-site/build/generate.mjs`, for the statically published site)
|
|
19
|
+
* and `@cogenta/admin`'s browser bundle (`/admin/documentation`, already a
|
|
20
|
+
* devDependency of that package). Same function, same output, both times —
|
|
21
|
+
* the property the task explicitly asks for ("jamais deux copies qui
|
|
22
|
+
* divergent").
|
|
23
|
+
*/
|
|
24
|
+
function escapeHtml(text) {
|
|
25
|
+
return text.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
|
|
26
|
+
}
|
|
27
|
+
function escapeAttr(text) {
|
|
28
|
+
return escapeHtml(text).replace(/"/g, '"');
|
|
29
|
+
}
|
|
30
|
+
/** A minimal `key: value` block between two `---` lines. No nesting, no lists, no quoting — the only shapes `docs-site/content/**` actually uses (title, tree, order). A real YAML parser would be a bigger dependency than every page's frontmatter combined (R9). */
|
|
31
|
+
export function parseFrontmatter(source) {
|
|
32
|
+
const normalized = source.replace(/\r\n/g, '\n');
|
|
33
|
+
if (!normalized.startsWith('---\n'))
|
|
34
|
+
return { meta: {}, body: normalized };
|
|
35
|
+
const end = normalized.indexOf('\n---\n', 4);
|
|
36
|
+
if (end === -1)
|
|
37
|
+
return { meta: {}, body: normalized };
|
|
38
|
+
const meta = {};
|
|
39
|
+
for (const line of normalized.slice(4, end).split('\n')) {
|
|
40
|
+
const colon = line.indexOf(':');
|
|
41
|
+
if (colon === -1)
|
|
42
|
+
continue;
|
|
43
|
+
const key = line.slice(0, colon).trim();
|
|
44
|
+
const value = line.slice(colon + 1).trim();
|
|
45
|
+
if (key !== '')
|
|
46
|
+
meta[key] = value;
|
|
47
|
+
}
|
|
48
|
+
return { meta, body: normalized.slice(end + 5) };
|
|
49
|
+
}
|
|
50
|
+
function slugify(text, seen) {
|
|
51
|
+
const base = text
|
|
52
|
+
.normalize('NFD')
|
|
53
|
+
.replace(/\p{Diacritic}/gu, '') // strip combining accents left by NFD
|
|
54
|
+
.toLowerCase()
|
|
55
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
56
|
+
.replace(/^-+|-+$/g, '') || 'section';
|
|
57
|
+
const count = seen.get(base) ?? 0;
|
|
58
|
+
seen.set(base, count + 1);
|
|
59
|
+
return count === 0 ? base : `${base}-${count}`;
|
|
60
|
+
}
|
|
61
|
+
// ---------------------------------------------------------------------------
|
|
62
|
+
// Inline grammar: escapes, `code`, **strong**, _em_/*em*, [text](url), images.
|
|
63
|
+
// ---------------------------------------------------------------------------
|
|
64
|
+
function renderInline(text) {
|
|
65
|
+
let out = '';
|
|
66
|
+
let i = 0;
|
|
67
|
+
while (i < text.length) {
|
|
68
|
+
const ch = text[i];
|
|
69
|
+
if (ch === '\\' && i + 1 < text.length) {
|
|
70
|
+
out += escapeHtml(text[i + 1] ?? '');
|
|
71
|
+
i += 2;
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
if (ch === '`') {
|
|
75
|
+
const end = text.indexOf('`', i + 1);
|
|
76
|
+
if (end !== -1) {
|
|
77
|
+
out += `<code>${escapeHtml(text.slice(i + 1, end))}</code>`;
|
|
78
|
+
i = end + 1;
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
if (text.startsWith('**', i)) {
|
|
83
|
+
const end = text.indexOf('**', i + 2);
|
|
84
|
+
if (end !== -1) {
|
|
85
|
+
out += `<strong>${renderInline(text.slice(i + 2, end))}</strong>`;
|
|
86
|
+
i = end + 2;
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if ((ch === '_' || ch === '*') && text[i + 1] !== ' ') {
|
|
91
|
+
const marker = ch;
|
|
92
|
+
const end = text.indexOf(marker, i + 1);
|
|
93
|
+
if (end !== -1 && end > i + 1) {
|
|
94
|
+
out += `<em>${renderInline(text.slice(i + 1, end))}</em>`;
|
|
95
|
+
i = end + 1;
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
if (ch === '!' && text[i + 1] === '[') {
|
|
100
|
+
const image = matchLinkLike(text, i + 1);
|
|
101
|
+
if (image !== null) {
|
|
102
|
+
out += `<img src="${escapeAttr(image.href)}" alt="${escapeAttr(image.label)}" loading="lazy">`;
|
|
103
|
+
i = image.end;
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
if (ch === '[') {
|
|
108
|
+
const link = matchLinkLike(text, i);
|
|
109
|
+
if (link !== null) {
|
|
110
|
+
const external = /^[a-z][a-z0-9+.-]*:/i.test(link.href) || link.href.startsWith('//');
|
|
111
|
+
const rel = external ? ' rel="noopener noreferrer"' : '';
|
|
112
|
+
out += `<a href="${escapeAttr(link.href)}"${rel}>${renderInline(link.label)}</a>`;
|
|
113
|
+
i = link.end;
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
out += escapeHtml(ch ?? '');
|
|
118
|
+
i += 1;
|
|
119
|
+
}
|
|
120
|
+
return out;
|
|
121
|
+
}
|
|
122
|
+
function matchLinkLike(text, start) {
|
|
123
|
+
if (text[start] !== '[')
|
|
124
|
+
return null;
|
|
125
|
+
const closeBracket = text.indexOf(']', start + 1);
|
|
126
|
+
if (closeBracket === -1 || text[closeBracket + 1] !== '(')
|
|
127
|
+
return null;
|
|
128
|
+
const closeParen = text.indexOf(')', closeBracket + 2);
|
|
129
|
+
if (closeParen === -1)
|
|
130
|
+
return null;
|
|
131
|
+
return {
|
|
132
|
+
label: text.slice(start + 1, closeBracket),
|
|
133
|
+
href: text.slice(closeBracket + 2, closeParen),
|
|
134
|
+
end: closeParen + 1,
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
const HEADING_LINE = /^(#{1,6})\s+(.*)$/;
|
|
138
|
+
const FENCE_LINE = /^```\s*([\w-]*)\s*$/;
|
|
139
|
+
const QUOTE_LINE = /^>\s?(.*)$/;
|
|
140
|
+
const UL_LINE = /^( *)[-*+]\s+(.*)$/;
|
|
141
|
+
const OL_LINE = /^( *)\d+\.\s+(.*)$/;
|
|
142
|
+
const HR_LINE = /^(-{3,}|\*{3,}|_{3,})$/;
|
|
143
|
+
const TABLE_SEP_LINE = /^\|?\s*:?-{2,}:?\s*(\|\s*:?-{2,}:?\s*)*\|?$/;
|
|
144
|
+
function splitTableRow(line) {
|
|
145
|
+
let trimmed = line.trim();
|
|
146
|
+
if (trimmed.startsWith('|'))
|
|
147
|
+
trimmed = trimmed.slice(1);
|
|
148
|
+
if (trimmed.endsWith('|'))
|
|
149
|
+
trimmed = trimmed.slice(0, -1);
|
|
150
|
+
return trimmed.split('|').map((cell) => cell.trim());
|
|
151
|
+
}
|
|
152
|
+
function renderList(lines) {
|
|
153
|
+
const tag = (lines[0]?.ordered ?? false) ? 'ol' : 'ul';
|
|
154
|
+
const items = [];
|
|
155
|
+
let i = 0;
|
|
156
|
+
while (i < lines.length) {
|
|
157
|
+
const item = lines[i];
|
|
158
|
+
if (item === undefined)
|
|
159
|
+
break;
|
|
160
|
+
const level = item.indent;
|
|
161
|
+
let html = renderInline(item.text);
|
|
162
|
+
i += 1;
|
|
163
|
+
const nestedStart = i;
|
|
164
|
+
while (i < lines.length && (lines[i]?.indent ?? 0) > level)
|
|
165
|
+
i += 1;
|
|
166
|
+
if (i > nestedStart)
|
|
167
|
+
html += renderList(lines.slice(nestedStart, i));
|
|
168
|
+
items.push(`<li>${html}</li>`);
|
|
169
|
+
}
|
|
170
|
+
return `<${tag}>${items.join('')}</${tag}>`;
|
|
171
|
+
}
|
|
172
|
+
export function renderMarkdownToHtml(markdown) {
|
|
173
|
+
const lines = markdown.replace(/\r\n/g, '\n').split('\n');
|
|
174
|
+
const blocks = [];
|
|
175
|
+
const headings = [];
|
|
176
|
+
const seenIds = new Map();
|
|
177
|
+
let i = 0;
|
|
178
|
+
while (i < lines.length) {
|
|
179
|
+
const line = lines[i] ?? '';
|
|
180
|
+
if (line.trim() === '') {
|
|
181
|
+
i += 1;
|
|
182
|
+
continue;
|
|
183
|
+
}
|
|
184
|
+
const fence = FENCE_LINE.exec(line);
|
|
185
|
+
if (fence !== null) {
|
|
186
|
+
const lang = fence[1] ?? '';
|
|
187
|
+
const codeLines = [];
|
|
188
|
+
i += 1;
|
|
189
|
+
while (i < lines.length && !FENCE_LINE.test(lines[i] ?? '') && (lines[i] ?? '') !== '```') {
|
|
190
|
+
codeLines.push(lines[i] ?? '');
|
|
191
|
+
i += 1;
|
|
192
|
+
}
|
|
193
|
+
if (i < lines.length)
|
|
194
|
+
i += 1; // closing fence
|
|
195
|
+
const langAttr = lang === '' ? '' : ` class="language-${escapeAttr(lang)}"`;
|
|
196
|
+
blocks.push(`<pre><code${langAttr}>${escapeHtml(codeLines.join('\n'))}</code></pre>`);
|
|
197
|
+
continue;
|
|
198
|
+
}
|
|
199
|
+
const heading = HEADING_LINE.exec(line);
|
|
200
|
+
if (heading !== null) {
|
|
201
|
+
const level = (heading[1] ?? '').length;
|
|
202
|
+
const text = (heading[2] ?? '').trim();
|
|
203
|
+
const id = slugify(text, seenIds);
|
|
204
|
+
blocks.push(`<h${level} id="${id}">${renderInline(text)}</h${level}>`);
|
|
205
|
+
headings.push({ level, text, id });
|
|
206
|
+
i += 1;
|
|
207
|
+
continue;
|
|
208
|
+
}
|
|
209
|
+
if (HR_LINE.test(line.trim())) {
|
|
210
|
+
blocks.push('<hr>');
|
|
211
|
+
i += 1;
|
|
212
|
+
continue;
|
|
213
|
+
}
|
|
214
|
+
// Table: a row followed by a separator row of the same column count.
|
|
215
|
+
if (line.includes('|') && TABLE_SEP_LINE.test(lines[i + 1] ?? '')) {
|
|
216
|
+
const headCells = splitTableRow(line);
|
|
217
|
+
i += 2;
|
|
218
|
+
const bodyRows = [];
|
|
219
|
+
while (i < lines.length && (lines[i] ?? '').includes('|') && (lines[i] ?? '').trim() !== '') {
|
|
220
|
+
bodyRows.push(splitTableRow(lines[i] ?? ''));
|
|
221
|
+
i += 1;
|
|
222
|
+
}
|
|
223
|
+
const thead = `<thead><tr>${headCells.map((cell) => `<th>${renderInline(cell)}</th>`).join('')}</tr></thead>`;
|
|
224
|
+
const tbody = `<tbody>${bodyRows
|
|
225
|
+
.map((row) => `<tr>${row.map((cell) => `<td>${renderInline(cell)}</td>`).join('')}</tr>`)
|
|
226
|
+
.join('')}</tbody>`;
|
|
227
|
+
blocks.push(`<table>${thead}${tbody}</table>`);
|
|
228
|
+
continue;
|
|
229
|
+
}
|
|
230
|
+
const quoteLines = [];
|
|
231
|
+
if (QUOTE_LINE.test(line)) {
|
|
232
|
+
while (i < lines.length && QUOTE_LINE.test(lines[i] ?? '')) {
|
|
233
|
+
quoteLines.push(QUOTE_LINE.exec(lines[i] ?? '')?.[1] ?? '');
|
|
234
|
+
i += 1;
|
|
235
|
+
}
|
|
236
|
+
blocks.push(`<blockquote><p>${renderInline(quoteLines.join(' '))}</p></blockquote>`);
|
|
237
|
+
continue;
|
|
238
|
+
}
|
|
239
|
+
if (UL_LINE.test(line) || OL_LINE.test(line)) {
|
|
240
|
+
const listLines = [];
|
|
241
|
+
while (i < lines.length) {
|
|
242
|
+
const ulMatch = UL_LINE.exec(lines[i] ?? '');
|
|
243
|
+
const olMatch = OL_LINE.exec(lines[i] ?? '');
|
|
244
|
+
const match = ulMatch ?? olMatch;
|
|
245
|
+
if (match === null)
|
|
246
|
+
break;
|
|
247
|
+
listLines.push({
|
|
248
|
+
indent: Math.floor((match[1] ?? '').length / 2),
|
|
249
|
+
ordered: olMatch !== null,
|
|
250
|
+
text: match[2] ?? '',
|
|
251
|
+
});
|
|
252
|
+
i += 1;
|
|
253
|
+
}
|
|
254
|
+
blocks.push(renderList(listLines));
|
|
255
|
+
continue;
|
|
256
|
+
}
|
|
257
|
+
const paragraphLines = [line];
|
|
258
|
+
i += 1;
|
|
259
|
+
while (i < lines.length) {
|
|
260
|
+
const next = lines[i] ?? '';
|
|
261
|
+
if (next.trim() === '' ||
|
|
262
|
+
HEADING_LINE.test(next) ||
|
|
263
|
+
FENCE_LINE.test(next) ||
|
|
264
|
+
QUOTE_LINE.test(next) ||
|
|
265
|
+
UL_LINE.test(next) ||
|
|
266
|
+
OL_LINE.test(next) ||
|
|
267
|
+
HR_LINE.test(next.trim())) {
|
|
268
|
+
break;
|
|
269
|
+
}
|
|
270
|
+
paragraphLines.push(next);
|
|
271
|
+
i += 1;
|
|
272
|
+
}
|
|
273
|
+
blocks.push(`<p>${renderInline(paragraphLines.join(' ').trim())}</p>`);
|
|
274
|
+
}
|
|
275
|
+
return { html: blocks.join('\n'), headings };
|
|
276
|
+
}
|
|
277
|
+
/** Frontmatter + rendering, in one call — what every real caller wants. */
|
|
278
|
+
export function renderMarkdownDocument(source) {
|
|
279
|
+
const { meta, body } = parseFrontmatter(source);
|
|
280
|
+
const { html, headings } = renderMarkdownToHtml(body);
|
|
281
|
+
return { meta, html, headings };
|
|
282
|
+
}
|
|
283
|
+
/** Where `docs-site/build/generate.mjs` puts a downloadable starter, keyed by the filename every content page links to. */
|
|
284
|
+
const DOWNLOAD_REPO_PATHS = {
|
|
285
|
+
'theme-starter.zip': 'examples/theme-starter',
|
|
286
|
+
'plugin-starter.zip': 'examples/plugin-starter',
|
|
287
|
+
};
|
|
288
|
+
const REPO_TREE_URL = 'https://github.com/cogenta-cms/cogenta/tree/main/';
|
|
289
|
+
/**
|
|
290
|
+
* The one place the two publications of this documentation *legitimately*
|
|
291
|
+
* differ: the statically generated site is a set of `.html` files on disk,
|
|
292
|
+
* `/admin/documentation` is one single-page app screen. The Markdown source
|
|
293
|
+
* and `renderMarkdownToHtml`'s output are identical either way — this
|
|
294
|
+
* function only retargets the `href`s a static site needs and a SPA can't
|
|
295
|
+
* use as written, run as a second pass over that same, unmodified HTML.
|
|
296
|
+
*
|
|
297
|
+
* Three shapes appear in `docs-site/content/**`, and only these three:
|
|
298
|
+
* - `../downloads/<file>.zip` → a starter template
|
|
299
|
+
* - `(../)?(functional|technical)/<slug>.html(#hash)?` → a cross-tree page
|
|
300
|
+
* - `<slug>.html(#hash)?` → a same-tree page
|
|
301
|
+
*
|
|
302
|
+
* A link this function doesn't recognise (an external `https://…` URL, an
|
|
303
|
+
* in-page `#hash`) is left untouched — this is a narrow, closed rewrite over
|
|
304
|
+
* a grammar this same project authors, not a general HTML link resolver.
|
|
305
|
+
*
|
|
306
|
+
* `basePath` defaults to `/admin` — where `cogenta serve` actually mounts
|
|
307
|
+
* the admin SPA — but is a parameter rather than a literal because the
|
|
308
|
+
* admin's own local dev server (`pnpm dev` inside `packages/admin`, no
|
|
309
|
+
* `cogenta serve` in front of it) serves the same screen at the root instead
|
|
310
|
+
* (`vite.config.ts`'s own `base: command === 'build' ? '/admin/' : '/'`). The
|
|
311
|
+
* caller passes `import.meta.env.BASE_URL` so a rewritten link works in both.
|
|
312
|
+
*/
|
|
313
|
+
export function adaptDocHtmlForAdmin(html, currentTree, basePath = '/admin') {
|
|
314
|
+
const base = basePath.replace(/\/$/, '');
|
|
315
|
+
return html
|
|
316
|
+
.replace(/href="\.\.\/downloads\/([\w.-]+)"/g, (full, file) => {
|
|
317
|
+
const repoPath = DOWNLOAD_REPO_PATHS[file];
|
|
318
|
+
return repoPath === undefined
|
|
319
|
+
? full
|
|
320
|
+
: `href="${REPO_TREE_URL}${repoPath}" rel="noopener noreferrer" target="_blank"`;
|
|
321
|
+
})
|
|
322
|
+
.replace(/href="(?:\.\.\/)?(functional|technical)\/([\w-]+)\.html(#[\w-]+)?"/g, (_full, tree, slug, hash = '') => `href="${base}/documentation/docs/${tree}/${slug}${hash}"`)
|
|
323
|
+
.replace(/href="([\w-]+)\.html(#[\w-]+)?"/g, (_full, slug, hash = '') => `href="${base}/documentation/docs/${currentTree}/${slug}${hash}"`);
|
|
324
|
+
}
|
|
325
|
+
//# sourceMappingURL=markdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/docs/markdown.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"srcset.d.ts","sourceRoot":"","sources":["../../src/images/srcset.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEvE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,EAAE,SAAS,MAAM,EAAgC,CAAA;AAE3E,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3C,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;CAChD;AASD,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,YAAY,GACpB,MAAM,
|
|
1
|
+
{"version":3,"file":"srcset.d.ts","sourceRoot":"","sources":["../../src/images/srcset.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEvE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,EAAE,SAAS,MAAM,EAAgC,CAAA;AAE3E,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3C,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;CAChD;AASD,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,YAAY,GACpB,MAAM,CAiBR;AAED,wFAAwF;AACxF,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,MAAM,GAAE,SAAS,MAAM,EAAkB,GACxC,SAAS,MAAM,EAAE,CAInB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,UAAU,EACjB,OAAO,GAAE,YAAiB,EAC1B,MAAM,GAAE,aAAkB,GACzB,WAAW,CA8Bb"}
|
package/dist/images/srcset.js
CHANGED
|
@@ -25,6 +25,14 @@ export function variantUrl(endpoint, media, width, options) {
|
|
|
25
25
|
parameters.set('f', options.format);
|
|
26
26
|
if (options.fit !== undefined)
|
|
27
27
|
parameters.set('fit', options.fit);
|
|
28
|
+
// Cache-busting (fiche 05 task 2): the field has existed on `MediaAsset`
|
|
29
|
+
// since `theme@1.2` but was never actually read here, so a replaced
|
|
30
|
+
// original kept serving under the year-long `immutable` cache the old
|
|
31
|
+
// query string had already earned. `contentHash` changes on every
|
|
32
|
+
// `MediaStore.replace()`, so folding it in changes the URL, not just the
|
|
33
|
+
// bytes behind it.
|
|
34
|
+
if (media.version !== undefined)
|
|
35
|
+
parameters.set('v', media.version);
|
|
28
36
|
// The focal point is deliberately absent: the endpoint reads it from the media
|
|
29
37
|
// entity. Putting it in the URL would let a visitor choose the crop, and would
|
|
30
38
|
// multiply the cache keys of every image by the number of points someone
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"srcset.js","sourceRoot":"","sources":["../../src/images/srcset.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"srcset.js","sourceRoot":"","sources":["../../src/images/srcset.ts"],"names":[],"mappings":"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"}
|
package/dist/images/types.d.ts
CHANGED
|
@@ -72,6 +72,16 @@ export interface MediaAsset {
|
|
|
72
72
|
readonly url?: string | undefined;
|
|
73
73
|
/** Video only: the still shown before playback. */
|
|
74
74
|
readonly poster?: string | undefined;
|
|
75
|
+
/**
|
|
76
|
+
* A short, stable digest of the current bytes (fiche 11 task 4). Folded
|
|
77
|
+
* into every `/_image` URL as `&v=` when present. `/_image?id=…` is
|
|
78
|
+
* otherwise a stable URL under a year-long `Cache-Control: immutable`
|
|
79
|
+
* (L10 task 5) — replacing the original in place (`MediaStore.replace`)
|
|
80
|
+
* changes nothing a visitor's browser already cached until the URL itself
|
|
81
|
+
* changes too. Absent is fully backward compatible: no `&v=` is added,
|
|
82
|
+
* exactly today's behaviour. Added in `theme@1.2`.
|
|
83
|
+
*/
|
|
84
|
+
readonly version?: string | undefined;
|
|
75
85
|
}
|
|
76
86
|
export interface Size {
|
|
77
87
|
readonly width: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/images/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE/C;;;;;;;;;;;;;;;;;;GAkBG;AAEH,2DAA2D;AAC3D,eAAO,MAAM,aAAa,YAAI,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAU,CAAA;AAErE,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAA;AAExD,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAA;AAE1C,8EAA8E;AAC9E,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,0DAA0D;AAC1D,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;IACzC,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;CACpC;AAED,yDAAyD;AACzD,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAA;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,qEAAqE;IACrE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,gFAAgF;IAChF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAA;IACjC,mDAAmD;IACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAA;IAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,CAAA;IAC9C,0EAA0E;IAC1E,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,mDAAmD;IACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/images/types.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export * from './content/client.js';
|
|
|
17
17
|
export * from './content/types.js';
|
|
18
18
|
export * from './context/render-context.js';
|
|
19
19
|
export * from './context/types.js';
|
|
20
|
+
export * from './docs/markdown.js';
|
|
20
21
|
export * from './images/index.js';
|
|
21
22
|
export * from './pwa/index.js';
|
|
22
23
|
export * from './skin/index.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AACzC,cAAc,gCAAgC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AACzC,cAAc,gCAAgC,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -17,6 +17,7 @@ export * from './content/client.js';
|
|
|
17
17
|
export * from './content/types.js';
|
|
18
18
|
export * from './context/render-context.js';
|
|
19
19
|
export * from './context/types.js';
|
|
20
|
+
export * from './docs/markdown.js';
|
|
20
21
|
export * from './images/index.js';
|
|
21
22
|
export * from './pwa/index.js';
|
|
22
23
|
export * from './skin/index.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AACzC,cAAc,gCAAgC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AACzC,cAAc,gCAAgC,CAAA"}
|
package/dist/skin/index.d.ts
CHANGED
|
@@ -7,6 +7,8 @@ export type { Rgb, Rgba, TextSize } from './color.js';
|
|
|
7
7
|
export { AA_LARGE_TEXT, AA_NORMAL_TEXT, aaThreshold, compositeOver, contrastRatio, formatRatio, meetsContrastAa, parseColor, relativeLuminance, } from './color.js';
|
|
8
8
|
export type { RenderSkinCssOptions } from './css.js';
|
|
9
9
|
export { CSS_VARIABLE_PREFIX, cssVariableName, renderSkinCss } from './css.js';
|
|
10
|
+
export type { SkinTokenOverrides } from './merge.js';
|
|
11
|
+
export { mergeSkinTokens } from './merge.js';
|
|
10
12
|
export type { SkinSheet, SkinStore, SkinStoreOptions } from './sheet.js';
|
|
11
13
|
export { createSkinStore, renderSkin } from './sheet.js';
|
|
12
14
|
export type { ColorTokens, ContrastPair, Density, FontTokens, MotionTokens, RadiusTokens, ShadowTokens, SkinTokens, SpaceTokens, TokenKind, TokenSpec, TypeScaleStep, } from './tokens.js';
|
package/dist/skin/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skin/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,EACL,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,aAAa,EACb,WAAW,EACX,eAAe,EACf,UAAU,EACV,iBAAiB,GAClB,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AACpD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC9E,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AACxE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACxD,YAAY,EACV,WAAW,EACX,YAAY,EACZ,OAAO,EACP,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,WAAW,EACX,SAAS,EACT,SAAS,EACT,aAAa,GACd,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,cAAc,EACd,SAAS,EACT,YAAY,EACZ,WAAW,EACX,gBAAgB,GACjB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skin/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,EACL,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,aAAa,EACb,WAAW,EACX,eAAe,EACf,UAAU,EACV,iBAAiB,GAClB,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AACpD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC9E,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AACxE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACxD,YAAY,EACV,WAAW,EACX,YAAY,EACZ,OAAO,EACP,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,WAAW,EACX,SAAS,EACT,SAAS,EACT,aAAa,GACd,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,cAAc,EACd,SAAS,EACT,YAAY,EACZ,WAAW,EACX,gBAAgB,GACjB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA"}
|
package/dist/skin/index.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export { AA_LARGE_TEXT, AA_NORMAL_TEXT, aaThreshold, compositeOver, contrastRatio, formatRatio, meetsContrastAa, parseColor, relativeLuminance, } from './color.js';
|
|
7
7
|
export { CSS_VARIABLE_PREFIX, cssVariableName, renderSkinCss } from './css.js';
|
|
8
|
+
export { mergeSkinTokens } from './merge.js';
|
|
8
9
|
export { createSkinStore, renderSkin } from './sheet.js';
|
|
9
10
|
export { CONTRAST_PAIRS, DENSITIES, TOKEN_GROUPS, TOKEN_SPECS, TYPE_SCALE_STEPS, } from './tokens.js';
|
|
10
11
|
export { computeTypeScale, validateSkin } from './validate.js';
|
package/dist/skin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/skin/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,aAAa,EACb,WAAW,EACX,eAAe,EACf,UAAU,EACV,iBAAiB,GAClB,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAE9E,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAexD,OAAO,EACL,cAAc,EACd,SAAS,EACT,YAAY,EACZ,WAAW,EACX,gBAAgB,GACjB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/skin/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,aAAa,EACb,WAAW,EACX,eAAe,EACf,UAAU,EACV,iBAAiB,GAClB,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAE9E,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE5C,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAexD,OAAO,EACL,cAAc,EACd,SAAS,EACT,YAAY,EACZ,WAAW,EACX,gBAAgB,GACjB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { SkinTokens } from './tokens.js';
|
|
2
|
+
/**
|
|
3
|
+
* A partial skin, as an admin's token override screen sends it (fiche 14
|
|
4
|
+
* task 2): any subset of any group's keys, never a whole new shape. The type
|
|
5
|
+
* is structural rather than `Partial<SkinTokens>` recursed, because the
|
|
6
|
+
* overlay travels as parsed JSON, one HTTP hop away from the object it will
|
|
7
|
+
* be merged onto.
|
|
8
|
+
*/
|
|
9
|
+
export type SkinTokenOverrides = {
|
|
10
|
+
readonly [Group in keyof SkinTokens]?: Partial<SkinTokens[Group]>;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Overlays a partial set of token overrides onto a complete base skin,
|
|
14
|
+
* group by group, key by key — never a shallow `{ ...base, ...overrides }`,
|
|
15
|
+
* which would replace an entire group (say, all seven `color.*` tokens) the
|
|
16
|
+
* moment an override touches a single key in it.
|
|
17
|
+
*
|
|
18
|
+
* The result is a plain object shaped like `SkinTokens`, not yet validated:
|
|
19
|
+
* callers run it back through `validateSkin` before trusting it, the same
|
|
20
|
+
* discipline `applyTokens` in `cogenta skin apply` already applies to a
|
|
21
|
+
* skin read straight off disk. Merging is deliberately naive about
|
|
22
|
+
* *values* — it does not know a colour from a duration — so it cannot mask
|
|
23
|
+
* a bad override; only `validateSkin` decides what a value means.
|
|
24
|
+
*/
|
|
25
|
+
export declare function mergeSkinTokens(base: SkinTokens, overrides: SkinTokenOverrides): SkinTokens;
|
|
26
|
+
//# sourceMappingURL=merge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/skin/merge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAG7C;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,KAAK,IAAI,MAAM,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;CAClE,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,kBAAkB,GAAG,UAAU,CAQ3F"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { TOKEN_GROUPS } from './tokens.js';
|
|
2
|
+
/**
|
|
3
|
+
* Overlays a partial set of token overrides onto a complete base skin,
|
|
4
|
+
* group by group, key by key — never a shallow `{ ...base, ...overrides }`,
|
|
5
|
+
* which would replace an entire group (say, all seven `color.*` tokens) the
|
|
6
|
+
* moment an override touches a single key in it.
|
|
7
|
+
*
|
|
8
|
+
* The result is a plain object shaped like `SkinTokens`, not yet validated:
|
|
9
|
+
* callers run it back through `validateSkin` before trusting it, the same
|
|
10
|
+
* discipline `applyTokens` in `cogenta skin apply` already applies to a
|
|
11
|
+
* skin read straight off disk. Merging is deliberately naive about
|
|
12
|
+
* *values* — it does not know a colour from a duration — so it cannot mask
|
|
13
|
+
* a bad override; only `validateSkin` decides what a value means.
|
|
14
|
+
*/
|
|
15
|
+
export function mergeSkinTokens(base, overrides) {
|
|
16
|
+
const merged = { ...base };
|
|
17
|
+
for (const group of TOKEN_GROUPS) {
|
|
18
|
+
const groupOverrides = overrides[group];
|
|
19
|
+
if (groupOverrides === undefined)
|
|
20
|
+
continue;
|
|
21
|
+
merged[group] = { ...base[group], ...groupOverrides };
|
|
22
|
+
}
|
|
23
|
+
return merged;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=merge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/skin/merge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAa1C;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,eAAe,CAAC,IAAgB,EAAE,SAA6B;IAC7E,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAA6B,CAAA;IACrD,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;QACjC,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;QACvC,IAAI,cAAc,KAAK,SAAS;YAAE,SAAQ;QAC1C,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,GAAI,IAAI,CAAC,KAAK,CAA6B,EAAE,GAAG,cAAc,EAAE,CAAA;IACpF,CAAC;IACD,OAAO,MAA+B,CAAA;AACxC,CAAC"}
|
package/dist/theme/manifest.d.ts
CHANGED
|
@@ -22,6 +22,19 @@ export interface ThemeManifest {
|
|
|
22
22
|
readonly a11y?: {
|
|
23
23
|
readonly verified: string;
|
|
24
24
|
} | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* A short, human-readable summary of the theme — what the appearance
|
|
27
|
+
* gallery shows next to its name (fiche 48). Optional: a manifest written
|
|
28
|
+
* before `theme@1.2` still validates, and the gallery falls back to
|
|
29
|
+
* whatever label the theme registry has for it.
|
|
30
|
+
*/
|
|
31
|
+
readonly description?: string | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* Who publishes the theme, shown alongside `version` in the gallery.
|
|
34
|
+
* Optional for the same reason as `description` — a third-party theme
|
|
35
|
+
* that predates this field, or simply omits one, still installs.
|
|
36
|
+
*/
|
|
37
|
+
readonly author?: string | undefined;
|
|
25
38
|
}
|
|
26
39
|
declare const manifestSchema: z.ZodObject<{
|
|
27
40
|
name: z.ZodString;
|
|
@@ -39,6 +52,8 @@ declare const manifestSchema: z.ZodObject<{
|
|
|
39
52
|
a11y: z.ZodOptional<z.ZodObject<{
|
|
40
53
|
verified: z.ZodString;
|
|
41
54
|
}, z.core.$strip>>;
|
|
55
|
+
description: z.ZodOptional<z.ZodString>;
|
|
56
|
+
author: z.ZodOptional<z.ZodString>;
|
|
42
57
|
}, z.core.$strip>;
|
|
43
58
|
export type ThemeManifestInput = z.input<typeof manifestSchema>;
|
|
44
59
|
/** Declares a theme. The same validation runs on install, on a manifest that was never typed. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/theme/manifest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;;;;GAKG;AAEH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAA;AAEvD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,oEAAoE;IACpE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,2DAA2D;IAC3D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;IACtC,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,GAAG,CAAA;IAC7C,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAA;IAC9B,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/theme/manifest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;;;;GAKG;AAEH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAA;AAEvD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,oEAAoE;IACpE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,2DAA2D;IAC3D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;IACtC,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,GAAG,CAAA;IAC7C,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAA;IAC9B,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;IACzD;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzC;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACrC;AAKD,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;iBAclB,CAAA;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AAE/D,iGAAiG;AACjG,wBAAgB,WAAW,CAAC,KAAK,EAAE,kBAAkB,GAAG,aAAa,CAEpE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,aAAa,CAsBjF"}
|
package/dist/theme/manifest.js
CHANGED
|
@@ -12,6 +12,10 @@ const manifestSchema = z.object({
|
|
|
12
12
|
runtime: z.enum(['static', 'server', 'edge']),
|
|
13
13
|
tokens: z.string().min(1),
|
|
14
14
|
a11y: z.object({ verified: z.string().min(1) }).optional(),
|
|
15
|
+
// theme@1.2 (fiche 48): both optional, so a manifest written before this
|
|
16
|
+
// field existed keeps validating unchanged.
|
|
17
|
+
description: z.string().min(1).optional(),
|
|
18
|
+
author: z.string().min(1).optional(),
|
|
15
19
|
});
|
|
16
20
|
/** Declares a theme. The same validation runs on install, on a manifest that was never typed. */
|
|
17
21
|
export function defineTheme(input) {
|
|
@@ -28,9 +32,15 @@ export function parseThemeManifest(input, source) {
|
|
|
28
32
|
details: source === undefined ? { problems } : { source, problems },
|
|
29
33
|
});
|
|
30
34
|
}
|
|
31
|
-
// `exactOptionalPropertyTypes` makes `a11y: undefined`
|
|
32
|
-
//
|
|
33
|
-
|
|
34
|
-
|
|
35
|
+
// `exactOptionalPropertyTypes` makes `a11y: undefined` (or `description`/
|
|
36
|
+
// `author`: undefined) and the key being genuinely absent two different
|
|
37
|
+
// types, so each is only set on the result when there is something in it.
|
|
38
|
+
const { a11y, description, author, ...rest } = result.data;
|
|
39
|
+
return {
|
|
40
|
+
...rest,
|
|
41
|
+
...(a11y === undefined ? {} : { a11y }),
|
|
42
|
+
...(description === undefined ? {} : { description }),
|
|
43
|
+
...(author === undefined ? {} : { author }),
|
|
44
|
+
};
|
|
35
45
|
}
|
|
36
46
|
//# sourceMappingURL=manifest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/theme/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/theme/manifest.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cogenta/render",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "Astro integration, render context and theme installation checks.",
|
|
5
5
|
"license": "MPL-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"wasm-vips": "^0.0.18",
|
|
31
31
|
"zod": "^4.4.3",
|
|
32
|
-
"@cogenta/core": "0.
|
|
33
|
-
"@cogenta/blocks": "0.
|
|
32
|
+
"@cogenta/core": "0.7.0",
|
|
33
|
+
"@cogenta/blocks": "1.0.2"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
36
|
"astro": "^7.2.1",
|