@speajus/markdown-to-pdf 1.0.16 → 1.0.18
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.pdf +0 -0
- package/dist/fonts/NotoColorEmoji.ttf +0 -0
- package/dist/fonts/OpenMoji-Color.ttf +0 -0
- package/dist/renderer.js +7 -2
- package/dist/types.d.ts +2 -1
- package/package.json +4 -3
package/README.pdf
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/dist/renderer.js
CHANGED
|
@@ -37,7 +37,7 @@ async function renderMarkdownToPdf(markdown, options) {
|
|
|
37
37
|
? options.emojiFont
|
|
38
38
|
: themeEmojiFont === 'none'
|
|
39
39
|
? false
|
|
40
|
-
: themeEmojiFont; // 'twemoji' | 'openmoji'
|
|
40
|
+
: themeEmojiFont; // 'twemoji' | 'openmoji' | 'noto'
|
|
41
41
|
// Use provided image renderer or create default Node.js renderer
|
|
42
42
|
const imageRenderer = options?.renderImage ?? defaults_js_1.DEFAULTS.renderImage(basePath);
|
|
43
43
|
const { margins } = layout;
|
|
@@ -57,12 +57,15 @@ async function renderMarkdownToPdf(markdown, options) {
|
|
|
57
57
|
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
58
58
|
const nodeFs = require('fs');
|
|
59
59
|
let fontPath;
|
|
60
|
-
if (typeof emojiFontOpt === 'string' && emojiFontOpt !== 'twemoji' && emojiFontOpt !== 'openmoji' && emojiFontOpt !== 'none') {
|
|
60
|
+
if (typeof emojiFontOpt === 'string' && emojiFontOpt !== 'twemoji' && emojiFontOpt !== 'openmoji' && emojiFontOpt !== 'noto' && emojiFontOpt !== 'none') {
|
|
61
61
|
fontPath = emojiFontOpt; // custom file path
|
|
62
62
|
}
|
|
63
63
|
else if (emojiFontOpt === 'openmoji') {
|
|
64
64
|
fontPath = nodePath.join(__dirname, 'fonts', 'OpenMoji-Color.ttf');
|
|
65
65
|
}
|
|
66
|
+
else if (emojiFontOpt === 'noto') {
|
|
67
|
+
fontPath = nodePath.join(__dirname, 'fonts', 'NotoColorEmoji.ttf');
|
|
68
|
+
}
|
|
66
69
|
else {
|
|
67
70
|
fontPath = nodePath.join(__dirname, 'fonts', 'Twemoji.Mozilla.ttf');
|
|
68
71
|
}
|
|
@@ -534,7 +537,9 @@ async function renderMarkdownToPdf(markdown, options) {
|
|
|
534
537
|
const zebraColor = theme.table.zebraColor ?? '#f9f9f9';
|
|
535
538
|
for (let r = 0; r < table.rows.length; r++) {
|
|
536
539
|
const row = table.rows[r];
|
|
540
|
+
doc.y = y; // sync doc.y BEFORE ensureSpace check
|
|
537
541
|
ensureSpace(rowH);
|
|
542
|
+
y = doc.y; // re-sync AFTER possible page break
|
|
538
543
|
// Zebra stripe: fill even rows (0-indexed, so odd visual rows) with a tinted background
|
|
539
544
|
if (zebraStripes && r % 2 === 1) {
|
|
540
545
|
doc.save();
|
package/dist/types.d.ts
CHANGED
|
@@ -92,9 +92,10 @@ export interface ThemeConfig {
|
|
|
92
92
|
/** Emoji font to use for rendering emoji characters.
|
|
93
93
|
* - `'twemoji'` (default) — use the bundled Twemoji.Mozilla.ttf color emoji font.
|
|
94
94
|
* - `'openmoji'` — use the bundled OpenMoji-Color.ttf (COLR) emoji font.
|
|
95
|
+
* - `'noto'` — use the bundled NotoColorEmoji.ttf (CBDT) emoji font.
|
|
95
96
|
* - `'none'` — disable emoji font; emoji render with the body font.
|
|
96
97
|
*/
|
|
97
|
-
emojiFont?: 'twemoji' | 'openmoji' | 'none';
|
|
98
|
+
emojiFont?: 'twemoji' | 'openmoji' | 'noto' | 'none';
|
|
98
99
|
}
|
|
99
100
|
/**
|
|
100
101
|
* A custom font definition providing font data for registration with PDFKit.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@speajus/markdown-to-pdf",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.18",
|
|
4
4
|
"description": "A new project created with Intent by Augment.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
],
|
|
31
31
|
"scripts": {
|
|
32
32
|
"build:pdfkit": "node -e \"const fs=require('fs'),p=require('path'),{execSync:e}=require('child_process'),d=p.join('node_modules','pdfkit','js');if(!fs.existsSync(d)){const t='/tmp/pdfkit-build-'+Date.now();e('git clone --depth 1 --branch support-color-emoji-google https://github.com/jspears/pdfkit.git '+t,{stdio:'inherit'});const pd=p.resolve('node_modules/pdfkit');for(const f of['lib','rollup.config.js','.babelrc','yarn.lock']){const s=p.join(t,f);if(fs.existsSync(s)){e('cp -r '+s+' '+pd,{stdio:'inherit'})}}e('cd '+pd+' && npm install --ignore-scripts && npx rollup -c',{stdio:'inherit'});e('rm -rf '+t,{stdio:'inherit'})}\"",
|
|
33
|
-
"postinstall": "node -e \"if(require('fs').existsSync('src')){require('child_process').execSync('npm run build:pdfkit',{stdio:'inherit'})}\" || true",
|
|
33
|
+
"postinstall": "node -e \"if(require('fs').existsSync('src')){require('child_process').execSync('npm run build:pdfkit',{stdio:'inherit'})}\" || true && node scripts/patch-fontkit-colr.js",
|
|
34
34
|
"docs:dev": "cd docs && $npm_execpath dev",
|
|
35
35
|
"build": "tsc && mkdir -p dist/fonts && cp src/fonts/* dist/fonts/",
|
|
36
36
|
"generate": "tsx samples/generate.ts",
|
|
@@ -68,5 +68,6 @@
|
|
|
68
68
|
"overrides": {
|
|
69
69
|
"canvas": "^3.2.1"
|
|
70
70
|
}
|
|
71
|
-
}
|
|
71
|
+
},
|
|
72
|
+
"packageManager": "pnpm@9.2.0+sha512.98a80fd11c2e7096747762304106432b3ddc67dcf54b5a8c01c93f68a2cd5e05e6821849522a06fb76284d41a2660d5e334f2ee3bbf29183bf2e739b1dafa771"
|
|
72
73
|
}
|