@aivorynet/slaide 1.0.4 → 1.2.0
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/CHANGELOG.md +38 -1
- package/dist/compiler/chrome.d.ts +5 -1
- package/dist/compiler/chrome.js +51 -5
- package/dist/compiler/chrome.js.map +1 -1
- package/dist/compiler/compile.d.ts +7 -1
- package/dist/compiler/compile.js +94 -6
- package/dist/compiler/compile.js.map +1 -1
- package/dist/compiler/markdown.js +24 -4
- package/dist/compiler/markdown.js.map +1 -1
- package/dist/compiler/unknown-vars.d.ts +16 -0
- package/dist/compiler/unknown-vars.js +134 -0
- package/dist/compiler/unknown-vars.js.map +1 -0
- package/dist/container.js +9 -0
- package/dist/container.js.map +1 -1
- package/dist/export-pptx/embed-fonts.d.ts +1 -0
- package/dist/export-pptx/embed-fonts.js +42 -7
- package/dist/export-pptx/embed-fonts.js.map +1 -1
- package/dist/export-pptx/pptx.js +139 -13
- package/dist/export-pptx/pptx.js.map +1 -1
- package/dist/index.d.ts +10 -2
- package/dist/index.js +26 -2
- package/dist/index.js.map +1 -1
- package/dist/master-io.js +1 -0
- package/dist/master-io.js.map +1 -1
- package/dist/optimize/export-optimize.d.ts +26 -0
- package/dist/optimize/export-optimize.js +104 -5
- package/dist/optimize/export-optimize.js.map +1 -1
- package/dist/parser/parse.js +23 -3
- package/dist/parser/parse.js.map +1 -1
- package/dist/render/anim.js +5 -5
- package/dist/render/anim.js.map +1 -1
- package/dist/render/charts.js +11 -6
- package/dist/render/charts.js.map +1 -1
- package/dist/render/css.js +1 -1
- package/dist/render/html.js +8 -1
- package/dist/render/html.js.map +1 -1
- package/dist/render/runtime.js +42 -20
- package/dist/render/runtime.js.map +1 -1
- package/dist/render-pdf/pdf.js +22 -3
- package/dist/render-pdf/pdf.js.map +1 -1
- package/dist/render-png/montage.js +7 -2
- package/dist/render-png/montage.js.map +1 -1
- package/dist/render-png/shoot.d.ts +6 -0
- package/dist/render-png/shoot.js +20 -7
- package/dist/render-png/shoot.js.map +1 -1
- package/dist/types.d.ts +22 -2
- package/dist/vocab.d.ts +4 -1
- package/dist/vocab.js +10 -4
- package/dist/vocab.js.map +1 -1
- package/package.json +1 -1
- package/skills/slaide/SKILL.md +1 -1
- package/skills/slaide/grammar.md +2 -1
- package/skills/slaide/reference.md +7 -3
- package/skills/slaide/themes.md +16 -2
- package/themes/blank.slaide.yaml +62 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Warning } from '../types.js';
|
|
2
|
+
export interface UnknownVarResult {
|
|
3
|
+
/** One `unknown-var` warning per distinct undefined name referenced with no inline
|
|
4
|
+
* fallback already present, deduped across the whole deck. */
|
|
5
|
+
warnings: Warning[];
|
|
6
|
+
/** Rewrites bare `var(--X)` refs (no existing fallback) whose name was found
|
|
7
|
+
* undefined into `var(--X, <fallback>)`. A no-op on any string that doesn't
|
|
8
|
+
* reference such a name (including strings never passed to the scan). */
|
|
9
|
+
fix: (css: string) => string;
|
|
10
|
+
}
|
|
11
|
+
/** Detect + prepare an autofix for undefined `var(--X)` references across a deck.
|
|
12
|
+
* `cssSources` is every HTML/CSS string worth scanning (region HTML, per-deck
|
|
13
|
+
* animation CSS, …); `definedVars` is every custom property the deck actually emits
|
|
14
|
+
* (root token CSS + any per-slide variant overrides); `tokens` is the root token map
|
|
15
|
+
* (used to compute fallback literals, e.g. the largest `--size-*`). */
|
|
16
|
+
export declare function lintUnknownVars(cssSources: readonly string[], definedVars: ReadonlySet<string>, tokens: Record<string, string>): UnknownVarResult;
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/** Scan `css` for every `var(--name)` / `var(--name, fallback)` reference, honoring
|
|
2
|
+
* nested parens in the fallback (e.g. `var(--x, var(--y, 2px))`). */
|
|
3
|
+
function scanVarRefs(css) {
|
|
4
|
+
const refs = [];
|
|
5
|
+
const re = /var\(/g;
|
|
6
|
+
let m;
|
|
7
|
+
while ((m = re.exec(css))) {
|
|
8
|
+
const start = m.index;
|
|
9
|
+
let depth = 1;
|
|
10
|
+
let i = re.lastIndex;
|
|
11
|
+
let commaIdx = -1;
|
|
12
|
+
while (i < css.length && depth > 0) {
|
|
13
|
+
const c = css[i];
|
|
14
|
+
if (c === '(')
|
|
15
|
+
depth++;
|
|
16
|
+
else if (c === ')') {
|
|
17
|
+
depth--;
|
|
18
|
+
if (depth === 0)
|
|
19
|
+
break;
|
|
20
|
+
}
|
|
21
|
+
else if (c === ',' && depth === 1 && commaIdx === -1)
|
|
22
|
+
commaIdx = i;
|
|
23
|
+
i++;
|
|
24
|
+
}
|
|
25
|
+
if (depth !== 0)
|
|
26
|
+
break; // unterminated `var(` — nothing more to scan
|
|
27
|
+
const end = i + 1; // include the closing ')'
|
|
28
|
+
const nameSpan = css.slice(re.lastIndex, commaIdx === -1 ? i : commaIdx);
|
|
29
|
+
const nameMatch = nameSpan.match(/^\s*(--[\w-]+)\s*$/);
|
|
30
|
+
re.lastIndex = end;
|
|
31
|
+
if (!nameMatch)
|
|
32
|
+
continue;
|
|
33
|
+
refs.push({ start, end, name: nameMatch[1], hasFallback: commaIdx !== -1 });
|
|
34
|
+
}
|
|
35
|
+
return refs;
|
|
36
|
+
}
|
|
37
|
+
function parseLeadingNumber(v) {
|
|
38
|
+
const m = v.trim().match(/^(-?[\d.]+)/);
|
|
39
|
+
return m ? parseFloat(m[1]) : null;
|
|
40
|
+
}
|
|
41
|
+
/** The literal value of the largest defined `--size-*` token — an invented size name
|
|
42
|
+
* is almost always a display/stat moment, so "render big" is the safer failure mode
|
|
43
|
+
* than "render at the browser default" (usually smaller than body text). */
|
|
44
|
+
function largestDefinedSize(tokens) {
|
|
45
|
+
let best = null;
|
|
46
|
+
for (const [k, v] of Object.entries(tokens)) {
|
|
47
|
+
if (!k.startsWith('--size-'))
|
|
48
|
+
continue;
|
|
49
|
+
const n = parseLeadingNumber(v);
|
|
50
|
+
if (n === null)
|
|
51
|
+
continue;
|
|
52
|
+
if (!best || n > best.n)
|
|
53
|
+
best = { raw: v, n };
|
|
54
|
+
}
|
|
55
|
+
return best ? best.raw : '3em'; // no sizes defined at all — a generous literal default
|
|
56
|
+
}
|
|
57
|
+
/** The first defined master gradient, or 'none' if the master defines none. */
|
|
58
|
+
function firstDefinedGradient(tokens) {
|
|
59
|
+
for (const [k, v] of Object.entries(tokens)) {
|
|
60
|
+
if (k.startsWith('--gradient-'))
|
|
61
|
+
return v;
|
|
62
|
+
}
|
|
63
|
+
return 'none';
|
|
64
|
+
}
|
|
65
|
+
/** Where an author should define this token, used in the warning's hint. */
|
|
66
|
+
function definitionHint(name) {
|
|
67
|
+
if (name.startsWith('--size-'))
|
|
68
|
+
return `typeScale.steps.${name.slice('--size-'.length)}`;
|
|
69
|
+
if (name.startsWith('--color-'))
|
|
70
|
+
return `colors.roles.${name.slice('--color-'.length)}`;
|
|
71
|
+
if (name.startsWith('--palette-'))
|
|
72
|
+
return `colors.palette.${name.slice('--palette-'.length)}`;
|
|
73
|
+
if (name.startsWith('--gradient-'))
|
|
74
|
+
return `gradients.${name.slice('--gradient-'.length)}`;
|
|
75
|
+
if (name.startsWith('--font-'))
|
|
76
|
+
return `fonts.${name.slice('--font-'.length)}`;
|
|
77
|
+
return `tokens.${name}`;
|
|
78
|
+
}
|
|
79
|
+
/** A same-prefix literal fallback so an undefined var still renders sensibly:
|
|
80
|
+
* sizes fall back to the biggest defined size (a stat/display moment, not body text),
|
|
81
|
+
* colours/palette to `currentColor`, gradients to the first defined gradient (or
|
|
82
|
+
* `none`), and anything else to `inherit`. */
|
|
83
|
+
function computeFallback(name, tokens) {
|
|
84
|
+
if (name.startsWith('--size-'))
|
|
85
|
+
return largestDefinedSize(tokens);
|
|
86
|
+
if (name.startsWith('--color-') || name.startsWith('--palette-'))
|
|
87
|
+
return 'currentColor';
|
|
88
|
+
if (name.startsWith('--gradient-'))
|
|
89
|
+
return firstDefinedGradient(tokens);
|
|
90
|
+
return 'inherit';
|
|
91
|
+
}
|
|
92
|
+
/** Detect + prepare an autofix for undefined `var(--X)` references across a deck.
|
|
93
|
+
* `cssSources` is every HTML/CSS string worth scanning (region HTML, per-deck
|
|
94
|
+
* animation CSS, …); `definedVars` is every custom property the deck actually emits
|
|
95
|
+
* (root token CSS + any per-slide variant overrides); `tokens` is the root token map
|
|
96
|
+
* (used to compute fallback literals, e.g. the largest `--size-*`). */
|
|
97
|
+
export function lintUnknownVars(cssSources, definedVars, tokens) {
|
|
98
|
+
const fallbackByName = new Map();
|
|
99
|
+
const warnings = [];
|
|
100
|
+
for (const css of cssSources) {
|
|
101
|
+
if (!css)
|
|
102
|
+
continue;
|
|
103
|
+
for (const ref of scanVarRefs(css)) {
|
|
104
|
+
// An explicit fallback already makes the reference safe — the author (or a
|
|
105
|
+
// prior pass of this same fixer) already handled the "undefined" case.
|
|
106
|
+
if (ref.hasFallback || definedVars.has(ref.name))
|
|
107
|
+
continue;
|
|
108
|
+
if (!fallbackByName.has(ref.name)) {
|
|
109
|
+
fallbackByName.set(ref.name, computeFallback(ref.name, tokens));
|
|
110
|
+
warnings.push({
|
|
111
|
+
code: 'unknown-var',
|
|
112
|
+
message: `undefined CSS variable var(${ref.name}) — define it in the master (e.g. ${definitionHint(ref.name)}) or use an existing token`,
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
const fix = (css) => {
|
|
118
|
+
if (fallbackByName.size === 0 || !css)
|
|
119
|
+
return css;
|
|
120
|
+
const refs = scanVarRefs(css).filter((r) => !r.hasFallback && fallbackByName.has(r.name));
|
|
121
|
+
if (refs.length === 0)
|
|
122
|
+
return css;
|
|
123
|
+
let out = '';
|
|
124
|
+
let last = 0;
|
|
125
|
+
for (const ref of refs) {
|
|
126
|
+
out += css.slice(last, ref.end - 1) + `, ${fallbackByName.get(ref.name)})`;
|
|
127
|
+
last = ref.end;
|
|
128
|
+
}
|
|
129
|
+
out += css.slice(last);
|
|
130
|
+
return out;
|
|
131
|
+
};
|
|
132
|
+
return { warnings, fix };
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=unknown-vars.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unknown-vars.js","sourceRoot":"","sources":["../../src/compiler/unknown-vars.ts"],"names":[],"mappings":"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"}
|
package/dist/container.js
CHANGED
|
@@ -167,6 +167,15 @@ function stageDeckFile(deckPath) {
|
|
|
167
167
|
entries.set('assets/' + rel, readFileSync(join(assetsDir, rel)));
|
|
168
168
|
}
|
|
169
169
|
}
|
|
170
|
+
// Sibling charts/ folder = the derived baked-chart SVG cache (charts/<hash>.svg). Purely derived
|
|
171
|
+
// (the deck text stays the authoritative chart source), but travels along so the deck renders its
|
|
172
|
+
// charts offline / anywhere with no engine. Folder-pack already includes it; mirror that here.
|
|
173
|
+
const chartsDir = join(deckDir, 'charts');
|
|
174
|
+
if (existsSync(chartsDir) && statSync(chartsDir).isDirectory()) {
|
|
175
|
+
for (const rel of walkFiles(chartsDir)) {
|
|
176
|
+
entries.set('charts/' + rel, readFileSync(join(chartsDir, rel)));
|
|
177
|
+
}
|
|
178
|
+
}
|
|
170
179
|
return { entries, entryName: deckName };
|
|
171
180
|
}
|
|
172
181
|
/** Replace the value of the top-level `master:` headmatter key (within the first `---` block). */
|
package/dist/container.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.js","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"container.js","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Embed the fonts referenced by `fontImports` (Google Fonts CSS URLs) into a pptx buffer.
|
|
3
3
|
* Returns the buffer unchanged when there's nothing to embed or any fetch fails.
|
|
4
|
+
* Emits one '[pptx-fonts]' summary line per export so silent degradation is visible in logs.
|
|
4
5
|
*/
|
|
5
6
|
export declare function embedFonts(pptxBuf: Buffer, fontImports: string[]): Promise<Buffer>;
|
|
@@ -26,14 +26,17 @@ function parseFaces(css) {
|
|
|
26
26
|
const family = block.match(/font-family:\s*['"]?([^;'"]+)['"]?/)?.[1];
|
|
27
27
|
const weight = parseInt(block.match(/font-weight:\s*(\d+)/)?.[1] ?? '400', 10);
|
|
28
28
|
const italic = /font-style:\s*italic/.test(block);
|
|
29
|
-
|
|
29
|
+
// A .ttf extension is the common Google-Fonts shape, but some responses carry
|
|
30
|
+
// extensionless URLs marked format('truetype') — accept those too.
|
|
31
|
+
const url = block.match(/src:\s*url\(([^)]+\.ttf)\)/)?.[1] ??
|
|
32
|
+
block.match(/src:\s*url\(([^)]+)\)\s*format\(\s*['"]?truetype['"]?\s*\)/)?.[1];
|
|
30
33
|
if (family && url)
|
|
31
34
|
faces.push({ family: family.trim(), weight, italic, url: url.replace(/['"]/g, '') });
|
|
32
35
|
}
|
|
33
36
|
return faces;
|
|
34
37
|
}
|
|
35
|
-
async function fetchText(url) {
|
|
36
|
-
const r = await fetch(url, { headers: { 'User-Agent':
|
|
38
|
+
async function fetchText(url, ua = LEGACY_UA) {
|
|
39
|
+
const r = await fetch(url, { headers: { 'User-Agent': ua } });
|
|
37
40
|
if (!r.ok)
|
|
38
41
|
throw new Error(`${url} -> ${r.status}`);
|
|
39
42
|
return r.text();
|
|
@@ -67,21 +70,47 @@ function pickSlots(faces) {
|
|
|
67
70
|
}
|
|
68
71
|
return out;
|
|
69
72
|
}
|
|
73
|
+
/** Family names requested in the Google Fonts CSS URLs (for the export summary log). */
|
|
74
|
+
function requestedFamilies(cssUrls) {
|
|
75
|
+
const fams = new Set();
|
|
76
|
+
for (const u of cssUrls) {
|
|
77
|
+
for (const m of u.matchAll(/[?&]family=([^&:@]+)/g)) {
|
|
78
|
+
try {
|
|
79
|
+
fams.add(decodeURIComponent(m[1]).replace(/\+/g, ' '));
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
fams.add(m[1]);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return [...fams];
|
|
87
|
+
}
|
|
70
88
|
/**
|
|
71
89
|
* Embed the fonts referenced by `fontImports` (Google Fonts CSS URLs) into a pptx buffer.
|
|
72
90
|
* Returns the buffer unchanged when there's nothing to embed or any fetch fails.
|
|
91
|
+
* Emits one '[pptx-fonts]' summary line per export so silent degradation is visible in logs.
|
|
73
92
|
*/
|
|
74
93
|
export async function embedFonts(pptxBuf, fontImports) {
|
|
75
94
|
const cssUrls = fontImports.filter((u) => /fonts\.googleapis\.com/.test(u));
|
|
76
95
|
if (!cssUrls.length)
|
|
77
96
|
return pptxBuf;
|
|
97
|
+
const families = requestedFamilies(cssUrls);
|
|
98
|
+
const fam = families.join(',') || '(none)';
|
|
78
99
|
let faces = [];
|
|
79
100
|
try {
|
|
80
101
|
for (const url of cssUrls)
|
|
81
102
|
faces.push(...parseFaces(await fetchText(url)));
|
|
103
|
+
if (!faces.length) {
|
|
104
|
+
// The legacy-Android UA usually coaxes .ttf URLs out of Google Fonts, but some
|
|
105
|
+
// proxies/CDNs special-case it. One retry with a plain non-browser UA before giving up.
|
|
106
|
+
for (const url of cssUrls)
|
|
107
|
+
faces.push(...parseFaces(await fetchText(url, 'slaide-export/1.0')));
|
|
108
|
+
if (faces.length)
|
|
109
|
+
console.warn(`[pptx-fonts] legacy-UA CSS fetch parsed 0 ttf faces; plain-UA retry parsed ${faces.length}`);
|
|
110
|
+
}
|
|
82
111
|
}
|
|
83
112
|
catch (e) {
|
|
84
|
-
console.warn(`
|
|
113
|
+
console.warn(`[pptx-fonts] embed skipped (could not fetch font CSS): ${e.message} | families=${fam}`);
|
|
85
114
|
return pptxBuf;
|
|
86
115
|
}
|
|
87
116
|
const slots = pickSlots(faces);
|
|
@@ -91,8 +120,10 @@ export async function embedFonts(pptxBuf, fontImports) {
|
|
|
91
120
|
for (const slot of SLOTS)
|
|
92
121
|
if (s[slot])
|
|
93
122
|
chosen.push({ family, slot, face: s[slot] });
|
|
94
|
-
if (!chosen.length)
|
|
123
|
+
if (!chosen.length) {
|
|
124
|
+
console.warn(`[pptx-fonts] embed skipped (no embeddable ttf faces) | families=${fam} facesParsed=${faces.length} downloaded=0 bytesEmbedded=0`);
|
|
95
125
|
return pptxBuf;
|
|
126
|
+
}
|
|
96
127
|
try {
|
|
97
128
|
const cache = new Map();
|
|
98
129
|
await Promise.all(chosen.map(async (c) => {
|
|
@@ -103,12 +134,16 @@ export async function embedFonts(pptxBuf, fontImports) {
|
|
|
103
134
|
}));
|
|
104
135
|
}
|
|
105
136
|
catch (e) {
|
|
106
|
-
console.warn(`
|
|
137
|
+
console.warn(`[pptx-fonts] embed skipped (could not download fonts): ${e.message} | families=${fam} facesParsed=${faces.length}`);
|
|
107
138
|
return pptxBuf;
|
|
108
139
|
}
|
|
109
140
|
const dl = chosen.filter((c) => c.face.data && c.face.data.length > 0);
|
|
110
|
-
if (!dl.length)
|
|
141
|
+
if (!dl.length) {
|
|
142
|
+
console.warn(`[pptx-fonts] embed skipped (all font downloads empty) | families=${fam} facesParsed=${faces.length} downloaded=0 bytesEmbedded=0`);
|
|
111
143
|
return pptxBuf;
|
|
144
|
+
}
|
|
145
|
+
const bytes = dl.reduce((n, c) => n + c.face.data.length, 0);
|
|
146
|
+
console.warn(`[pptx-fonts] embedding | families=${fam} facesParsed=${faces.length} downloaded=${dl.length} bytesEmbedded=${bytes}`);
|
|
112
147
|
const zip = await JSZip.loadAsync(pptxBuf);
|
|
113
148
|
// 1. write font parts and assign relationship ids (above pptxgenjs's existing rIds)
|
|
114
149
|
const relsPath = 'ppt/_rels/presentation.xml.rels';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embed-fonts.js","sourceRoot":"","sources":["../../src/export-pptx/embed-fonts.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,sCAAsC;AACtC,+FAA+F;AAC/F,0FAA0F;AAC1F,iGAAiG;AACjG,+FAA+F;AAC/F,4DAA4D;AAC5D,EAAE;AACF,iGAAiG;AACjG,+FAA+F;AAC/F,6FAA6F;AAC7F,iGAAiG;AACjG,qDAAqD;AACrD,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,MAAM,KAAK,GAAe,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;AAEtE,0FAA0F;AAC1F,6FAA6F;AAC7F,4FAA4F;AAC5F,MAAM,SAAS,GAAG,+FAA+F,CAAC;AAClH,MAAM,QAAQ,GAAG,0EAA0E,CAAC;AAE5F,yFAAyF;AACzF,SAAS,UAAU,CAAC,GAAW;IAC7B,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EAAE,CAAC;QAC1D,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACnB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,oCAAoC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"embed-fonts.js","sourceRoot":"","sources":["../../src/export-pptx/embed-fonts.ts"],"names":[],"mappings":"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"}
|
package/dist/export-pptx/pptx.js
CHANGED
|
@@ -69,10 +69,12 @@ const EXTRACT = String.raw `
|
|
|
69
69
|
var cs = getComputedStyle(probes[i]);
|
|
70
70
|
if(cs.backgroundImage && cs.backgroundImage.indexOf('url(')===0){
|
|
71
71
|
var m = cs.backgroundImage.match(/url\(["']?(.+?)["']?\)/);
|
|
72
|
-
|
|
72
|
+
// data: images embed directly; remote url() backgrounds get rasterised in Node (a
|
|
73
|
+
// screenshot of the bg layers) so cover/position/dim survive instead of being dropped.
|
|
74
|
+
if(m) bg = m[1].indexOf('data:')===0 ? { type:'image', src: m[1] } : { type:'raster' };
|
|
73
75
|
} else if(cs.backgroundImage && cs.backgroundImage.indexOf('gradient')>=0){
|
|
74
|
-
|
|
75
|
-
|
|
76
|
+
// gradients rasterise too — a first-stop colour approximation loses the gradient.
|
|
77
|
+
bg = { type:'raster' };
|
|
76
78
|
} else {
|
|
77
79
|
var c = rgbToHex(cs.backgroundColor);
|
|
78
80
|
if(c) bg = { type:'color', color: c };
|
|
@@ -208,12 +210,19 @@ const EXTRACT = String.raw `
|
|
|
208
210
|
borderColor: sbc || undefined, borderAlpha: sbc ? alphaOf(scs.borderTopColor) : 1,
|
|
209
211
|
borderWidth: sbw || undefined, radius: (parseFloat(scs.borderTopLeftRadius)||0) || undefined });
|
|
210
212
|
});
|
|
211
|
-
// images (image slots + any placed images)
|
|
213
|
+
// images (image slots + any placed images) — record object-fit (drives pptxgenjs sizing)
|
|
214
|
+
// and tag each with a data-sl-cap marker so Node can element-screenshot the rendered <img>
|
|
215
|
+
// (while its slide is active) if fetching the src fails.
|
|
212
216
|
var imgs = [];
|
|
213
217
|
region.querySelectorAll('img').forEach(function(im){
|
|
214
218
|
if(im.closest('.sl-chart, .sl-svg')) return;
|
|
215
219
|
var ib = box(im);
|
|
216
|
-
if(ib.w>1 && ib.h>1 && im.src)
|
|
220
|
+
if(ib.w>1 && ib.h>1 && im.src){
|
|
221
|
+
var icap = String(capId++);
|
|
222
|
+
im.setAttribute('data-sl-cap', icap);
|
|
223
|
+
imgs.push({ x:ib.x, y:ib.y, w:ib.w, h:ib.h, src: im.src,
|
|
224
|
+
fit: getComputedStyle(im).objectFit || undefined, cap: icap });
|
|
225
|
+
}
|
|
217
226
|
});
|
|
218
227
|
// charts (mermaid/echarts) + inline svg → tag each for an element screenshot in Node
|
|
219
228
|
var shots = [];
|
|
@@ -260,6 +269,59 @@ function mapAlign(a) {
|
|
|
260
269
|
return 'left';
|
|
261
270
|
}
|
|
262
271
|
const PX_PER_IN = 96;
|
|
272
|
+
// ---- remote image resolution (fetch-first, screenshot fallback) -----------------------------
|
|
273
|
+
// Hosted decks reference http(s) image URLs (org asset store, Unsplash, ...). pptxgenjs needs
|
|
274
|
+
// bytes, so fetch each src once per process (module-level cache — repeated exports and repeated
|
|
275
|
+
// uses of one asset pay one fetch) and fall back to an element screenshot of the rendered <img>
|
|
276
|
+
// when the fetch fails (auth-walled CDN, dead URL). Never fails the export.
|
|
277
|
+
const IMG_UA = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36';
|
|
278
|
+
const IMG_FETCH_TIMEOUT_MS = 30_000;
|
|
279
|
+
const IMG_FETCH_MAX_BYTES = 20 * 1024 * 1024;
|
|
280
|
+
const imgFetchCache = new Map();
|
|
281
|
+
function sniffImageMime(buf) {
|
|
282
|
+
if (buf.length >= 8 && buf[0] === 0x89 && buf[1] === 0x50 && buf[2] === 0x4e && buf[3] === 0x47)
|
|
283
|
+
return 'image/png';
|
|
284
|
+
if (buf.length >= 3 && buf[0] === 0xff && buf[1] === 0xd8 && buf[2] === 0xff)
|
|
285
|
+
return 'image/jpeg';
|
|
286
|
+
if (buf.length >= 6 && buf.subarray(0, 4).toString('latin1') === 'GIF8')
|
|
287
|
+
return 'image/gif';
|
|
288
|
+
if (buf.length >= 12 && buf.subarray(0, 4).toString('latin1') === 'RIFF' && buf.subarray(8, 12).toString('latin1') === 'WEBP')
|
|
289
|
+
return 'image/webp';
|
|
290
|
+
const head = buf.subarray(0, 256).toString('utf8').trimStart().toLowerCase();
|
|
291
|
+
if (head.startsWith('<svg') || head.startsWith('<?xml'))
|
|
292
|
+
return 'image/svg+xml';
|
|
293
|
+
return null;
|
|
294
|
+
}
|
|
295
|
+
function fetchImageData(src) {
|
|
296
|
+
let p = imgFetchCache.get(src);
|
|
297
|
+
if (!p) {
|
|
298
|
+
p = (async () => {
|
|
299
|
+
const ctrl = new AbortController();
|
|
300
|
+
const t = setTimeout(() => ctrl.abort(), IMG_FETCH_TIMEOUT_MS);
|
|
301
|
+
try {
|
|
302
|
+
const r = await fetch(src, { headers: { 'User-Agent': IMG_UA }, signal: ctrl.signal });
|
|
303
|
+
if (!r.ok)
|
|
304
|
+
return null;
|
|
305
|
+
const buf = Buffer.from(await r.arrayBuffer());
|
|
306
|
+
if (!buf.length || buf.length > IMG_FETCH_MAX_BYTES)
|
|
307
|
+
return null;
|
|
308
|
+
const ct = (r.headers.get('content-type') || '').split(';')[0].trim();
|
|
309
|
+
const mime = ct.startsWith('image/') ? ct : sniffImageMime(buf);
|
|
310
|
+
if (!mime)
|
|
311
|
+
return null; // not an image payload — let the screenshot fallback handle it
|
|
312
|
+
return { data: `data:${mime};base64,${buf.toString('base64')}` };
|
|
313
|
+
}
|
|
314
|
+
catch {
|
|
315
|
+
return null;
|
|
316
|
+
}
|
|
317
|
+
finally {
|
|
318
|
+
clearTimeout(t);
|
|
319
|
+
}
|
|
320
|
+
})();
|
|
321
|
+
imgFetchCache.set(src, p);
|
|
322
|
+
}
|
|
323
|
+
return p;
|
|
324
|
+
}
|
|
263
325
|
export async function exportPptx(deckPath, opts, injected) {
|
|
264
326
|
const source = readFileSync(deckPath, 'utf8');
|
|
265
327
|
const { html, ir } = renderDeckHtml(source, dirname(resolve(deckPath)), { mode: 'web', inline: true });
|
|
@@ -274,11 +336,14 @@ export async function exportPptx(deckPath, opts, injected) {
|
|
|
274
336
|
const doc = html.replace('</head>', '<style>.sl-stage{transform:none !important;}.sl-counter,.sl-progress,.sl-notes,.sl-help{display:none !important;}</style></head>');
|
|
275
337
|
await page.setContent(doc, { waitUntil: 'networkidle' });
|
|
276
338
|
await page.evaluate(() => document.fonts?.ready);
|
|
277
|
-
// Render charts (lazy) and wait until they settle before measuring the DOM.
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
.
|
|
281
|
-
|
|
339
|
+
// Render charts (lazy) and wait until they settle before measuring the DOM. Gated on the
|
|
340
|
+
// chart-lib signal + 3-arg waitForFunction form — see render-png/shoot.ts's shootHtml.
|
|
341
|
+
if (doc.includes('id="sl-mermaid-lib"') || doc.includes('id="sl-echart-lib"')) {
|
|
342
|
+
await page.evaluate(() => window.__slaideCharts?.renderAll());
|
|
343
|
+
await page
|
|
344
|
+
.waitForFunction(() => window.__slaideChartsReady === true, undefined, { timeout: 8000 })
|
|
345
|
+
.catch(() => { });
|
|
346
|
+
}
|
|
282
347
|
await page.waitForTimeout(300);
|
|
283
348
|
slidesData = [];
|
|
284
349
|
for (let i = 0; i < ir.slides.length; i++) {
|
|
@@ -301,6 +366,53 @@ export async function exportPptx(deckPath, opts, injected) {
|
|
|
301
366
|
shot.data = 'data:image/png;base64,' + Buffer.from(png).toString('base64');
|
|
302
367
|
}
|
|
303
368
|
}
|
|
369
|
+
// Resolve each image to bytes while its slide is still active: data: srcs pass through,
|
|
370
|
+
// http(s) srcs are fetched (module-level cache), and a failed fetch falls back to an
|
|
371
|
+
// element screenshot of the rendered <img> (same pattern as the chart shots above).
|
|
372
|
+
for (const region of data.regions) {
|
|
373
|
+
for (const im of region.imgs ?? []) {
|
|
374
|
+
if (im.src.startsWith('data:'))
|
|
375
|
+
continue;
|
|
376
|
+
if (/^https?:/i.test(im.src)) {
|
|
377
|
+
const fetched = await fetchImageData(im.src);
|
|
378
|
+
if (fetched) {
|
|
379
|
+
im.data = fetched.data;
|
|
380
|
+
continue;
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
if (!im.cap)
|
|
384
|
+
continue;
|
|
385
|
+
const handle = await page.$(`.sl-slide.sl-active [data-sl-cap="${im.cap}"]`);
|
|
386
|
+
if (!handle)
|
|
387
|
+
continue;
|
|
388
|
+
try {
|
|
389
|
+
const png = await handle.screenshot({ omitBackground: true });
|
|
390
|
+
im.data = 'data:image/png;base64,' + Buffer.from(png).toString('base64');
|
|
391
|
+
im.shot = true; // already cropped to its rendered box — emit without sizing
|
|
392
|
+
}
|
|
393
|
+
catch { /* image dropped from the export rather than failing it */ }
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
// Raster backgrounds (gradient or remote-url()): hide the content layers, screenshot the
|
|
397
|
+
// active slide (bg layers only), restore. JPEG q90 — backgrounds are opaque and large.
|
|
398
|
+
if (data.bg?.type === 'raster') {
|
|
399
|
+
await page.evaluate(() => {
|
|
400
|
+
const st = document.createElement('style');
|
|
401
|
+
st.id = 'sl-pptx-bg-shot';
|
|
402
|
+
st.textContent =
|
|
403
|
+
'.sl-slide.sl-active .sl-layer-content,.sl-slide.sl-active .sl-layer-chrome,.sl-slide.sl-active .sl-layer-free{visibility:hidden !important}';
|
|
404
|
+
document.head.appendChild(st);
|
|
405
|
+
});
|
|
406
|
+
try {
|
|
407
|
+
const slideEl = await page.$('.sl-slide.sl-active');
|
|
408
|
+
if (slideEl) {
|
|
409
|
+
const jpg = await slideEl.screenshot({ type: 'jpeg', quality: 90 });
|
|
410
|
+
data.bg.data = 'data:image/jpeg;base64,' + Buffer.from(jpg).toString('base64');
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
catch { /* background falls back to none rather than failing the export */ }
|
|
414
|
+
await page.evaluate(() => document.getElementById('sl-pptx-bg-shot')?.remove());
|
|
415
|
+
}
|
|
304
416
|
data.transition = ir.slides[i].transition;
|
|
305
417
|
const tms = ir.slides[i].vars['--transition-ms'];
|
|
306
418
|
data.transitionMs = tms ? parseInt(tms, 10) : undefined;
|
|
@@ -334,6 +446,8 @@ export async function exportPptx(deckPath, opts, injected) {
|
|
|
334
446
|
slide.background = { color: data.bg.color };
|
|
335
447
|
else if (data.bg?.type === 'image' && data.bg.src.startsWith('data:'))
|
|
336
448
|
slide.background = { data: stripData(data.bg.src) };
|
|
449
|
+
else if (data.bg?.type === 'raster' && data.bg.data)
|
|
450
|
+
slide.background = { data: stripData(data.bg.data) };
|
|
337
451
|
// Regions are walked in DOM order = paint order, so shapes/images/text stack correctly.
|
|
338
452
|
const transp = (a) => (a !== undefined && a < 1 ? Math.round((1 - a) * 100) : undefined);
|
|
339
453
|
for (const r of data.regions) {
|
|
@@ -349,10 +463,22 @@ export async function exportPptx(deckPath, opts, injected) {
|
|
|
349
463
|
shapeOpts.rectRadius = inch(Math.min(s.radius, s.w / 2, s.h / 2));
|
|
350
464
|
slide.addShape(s.radius ? 'roundRect' : 'rect', shapeOpts);
|
|
351
465
|
}
|
|
352
|
-
// 2. images (image slots + placed images)
|
|
466
|
+
// 2. images (image slots + placed images) — `data` is the fetched/screenshotted payload,
|
|
467
|
+
// data: srcs pass straight through. object-fit maps to pptxgenjs sizing so a cover-
|
|
468
|
+
// cropped photo exports cropped instead of squashed; screenshot fallbacks are already
|
|
469
|
+
// cropped to their rendered box, so they get no sizing.
|
|
353
470
|
for (const im of r.imgs ?? []) {
|
|
354
|
-
|
|
355
|
-
|
|
471
|
+
const payload = im.data ?? (im.src.startsWith('data:') ? im.src : null);
|
|
472
|
+
if (!payload)
|
|
473
|
+
continue;
|
|
474
|
+
const imgOpts = { data: stripData(payload), x: inch(im.x), y: inch(im.y), w: inch(im.w), h: inch(im.h) };
|
|
475
|
+
if (!im.shot) {
|
|
476
|
+
if (im.fit === 'cover')
|
|
477
|
+
imgOpts.sizing = { type: 'cover', w: inch(im.w), h: inch(im.h) };
|
|
478
|
+
else if (im.fit === 'contain')
|
|
479
|
+
imgOpts.sizing = { type: 'contain', w: inch(im.w), h: inch(im.h) };
|
|
480
|
+
}
|
|
481
|
+
slide.addImage(imgOpts);
|
|
356
482
|
}
|
|
357
483
|
// 2b. charts / inline svg captured as transparent PNGs
|
|
358
484
|
for (const s of r.shots ?? []) {
|