markdown-to-document-cli 1.1.4 → 1.2.8
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 +248 -18
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +523 -134
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -1
- package/dist/services/CoverService.d.ts +25 -3
- package/dist/services/CoverService.d.ts.map +1 -1
- package/dist/services/CoverService.js +226 -97
- package/dist/services/CoverService.js.map +1 -1
- package/dist/services/MarkdownPreprocessor.d.ts +5 -0
- package/dist/services/MarkdownPreprocessor.d.ts.map +1 -1
- package/dist/services/MarkdownPreprocessor.js +18 -7
- package/dist/services/MarkdownPreprocessor.js.map +1 -1
- package/dist/services/PandocService.d.ts +7 -1
- package/dist/services/PandocService.d.ts.map +1 -1
- package/dist/services/PandocService.js +61 -15
- package/dist/services/PandocService.js.map +1 -1
- package/dist/services/TypographyService.d.ts +8 -1
- package/dist/services/TypographyService.d.ts.map +1 -1
- package/dist/services/TypographyService.js +417 -57
- package/dist/services/TypographyService.js.map +1 -1
- package/dist/types/index.d.ts +37 -11
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +28 -1
- package/dist/types/index.js.map +1 -1
- package/dist/utils/constants.d.ts.map +1 -1
- package/dist/utils/constants.js +224 -0
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/cssBuilder.d.ts +93 -0
- package/dist/utils/cssBuilder.d.ts.map +1 -0
- package/dist/utils/cssBuilder.js +231 -0
- package/dist/utils/cssBuilder.js.map +1 -0
- package/dist/utils/dependencyChecker.d.ts +63 -0
- package/dist/utils/dependencyChecker.d.ts.map +1 -0
- package/dist/utils/dependencyChecker.js +268 -0
- package/dist/utils/dependencyChecker.js.map +1 -0
- package/dist/utils/pathValidator.d.ts +48 -0
- package/dist/utils/pathValidator.d.ts.map +1 -0
- package/dist/utils/pathValidator.js +188 -0
- package/dist/utils/pathValidator.js.map +1 -0
- package/dist/utils/themeUtils.d.ts +70 -0
- package/dist/utils/themeUtils.d.ts.map +1 -0
- package/dist/utils/themeUtils.js +141 -0
- package/dist/utils/themeUtils.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"themeUtils.d.ts","sourceRoot":"","sources":["../../src/utils/themeUtils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAK1F;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAE3C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAEhE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE,CAEvE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAYpE;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,EAAE,CAOtG;AAID;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,kBAAkB,EAAE,CAE7D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAE5E;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,gBAAgB,EAAE,CAS7G;AAED;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAMhF;AAID;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CAUnD;AAED;;GAEG;AACH,wBAAgB,gCAAgC,IAAI,MAAM,CAUzD;AAID;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,GAAE,MAAgB,GAAG,UAAU,CAKlG;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,GAAE,kBAA4B,GAAG,kBAAkB,CAK5H"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme and Preset Utility Functions
|
|
3
|
+
* Centralized helpers for theme/preset filtering, validation, and listing
|
|
4
|
+
*/
|
|
5
|
+
import { COVER_THEMES, TYPOGRAPHY_PRESETS } from './constants.js';
|
|
6
|
+
// ============ Cover Theme Utilities ============
|
|
7
|
+
/**
|
|
8
|
+
* Get all available cover theme IDs
|
|
9
|
+
*/
|
|
10
|
+
export function getCoverThemeIds() {
|
|
11
|
+
return Object.keys(COVER_THEMES);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Get cover theme by ID
|
|
15
|
+
*/
|
|
16
|
+
export function getCoverTheme(id) {
|
|
17
|
+
return COVER_THEMES[id];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Check if a cover theme ID is valid
|
|
21
|
+
*/
|
|
22
|
+
export function isValidCoverTheme(id) {
|
|
23
|
+
return id in COVER_THEMES;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Get cover themes filtered by category
|
|
27
|
+
*/
|
|
28
|
+
export function getCoverThemesByCategory(category) {
|
|
29
|
+
return Object.values(COVER_THEMES).filter(theme => theme.category === category);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Get cover themes grouped by category
|
|
33
|
+
*/
|
|
34
|
+
export function getCoverThemesGrouped() {
|
|
35
|
+
const groups = {};
|
|
36
|
+
for (const theme of Object.values(COVER_THEMES)) {
|
|
37
|
+
const cat = theme.category;
|
|
38
|
+
if (!groups[cat]) {
|
|
39
|
+
groups[cat] = [];
|
|
40
|
+
}
|
|
41
|
+
groups[cat].push(theme);
|
|
42
|
+
}
|
|
43
|
+
return groups;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Get cover theme categories with theme counts
|
|
47
|
+
*/
|
|
48
|
+
export function getCoverThemeCategorySummary() {
|
|
49
|
+
const grouped = getCoverThemesGrouped();
|
|
50
|
+
return Object.entries(grouped).map(([category, themes]) => ({
|
|
51
|
+
category,
|
|
52
|
+
count: themes.length,
|
|
53
|
+
themes: themes.map(t => t.id)
|
|
54
|
+
}));
|
|
55
|
+
}
|
|
56
|
+
// ============ Typography Preset Utilities ============
|
|
57
|
+
/**
|
|
58
|
+
* Get all available typography preset IDs
|
|
59
|
+
*/
|
|
60
|
+
export function getTypographyPresetIds() {
|
|
61
|
+
return Object.keys(TYPOGRAPHY_PRESETS);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Get typography preset by ID
|
|
65
|
+
*/
|
|
66
|
+
export function getTypographyPreset(id) {
|
|
67
|
+
return TYPOGRAPHY_PRESETS[id];
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Check if a typography preset ID is valid
|
|
71
|
+
*/
|
|
72
|
+
export function isValidTypographyPreset(id) {
|
|
73
|
+
return id in TYPOGRAPHY_PRESETS;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Get typography presets by category (basic, content, document)
|
|
77
|
+
*/
|
|
78
|
+
export function getTypographyPresetsByCategory(category) {
|
|
79
|
+
const categoryMap = {
|
|
80
|
+
basic: ['novel', 'presentation', 'review', 'ebook'],
|
|
81
|
+
content: ['text_heavy', 'table_heavy', 'image_heavy', 'balanced'],
|
|
82
|
+
document: ['report', 'manual', 'magazine']
|
|
83
|
+
};
|
|
84
|
+
const ids = categoryMap[category] || [];
|
|
85
|
+
return ids.map(id => TYPOGRAPHY_PRESETS[id]).filter(Boolean);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Get typography presets grouped by category
|
|
89
|
+
*/
|
|
90
|
+
export function getTypographyPresetsGrouped() {
|
|
91
|
+
return {
|
|
92
|
+
basic: getTypographyPresetsByCategory('basic'),
|
|
93
|
+
content: getTypographyPresetsByCategory('content'),
|
|
94
|
+
document: getTypographyPresetsByCategory('document')
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
// ============ CLI Help Utilities ============
|
|
98
|
+
/**
|
|
99
|
+
* Generate help text for cover themes
|
|
100
|
+
*/
|
|
101
|
+
export function generateCoverThemeHelpText() {
|
|
102
|
+
const grouped = getCoverThemesGrouped();
|
|
103
|
+
const lines = [];
|
|
104
|
+
for (const [category, themes] of Object.entries(grouped)) {
|
|
105
|
+
const themeList = themes.map(t => t.id).join(', ');
|
|
106
|
+
lines.push(` ${category}: ${themeList}`);
|
|
107
|
+
}
|
|
108
|
+
return lines.join('\n');
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Generate help text for typography presets
|
|
112
|
+
*/
|
|
113
|
+
export function generateTypographyPresetHelpText() {
|
|
114
|
+
const grouped = getTypographyPresetsGrouped();
|
|
115
|
+
const lines = [];
|
|
116
|
+
for (const [category, presets] of Object.entries(grouped)) {
|
|
117
|
+
const presetList = presets.map(p => p.id).join(', ');
|
|
118
|
+
lines.push(` ${category}: ${presetList}`);
|
|
119
|
+
}
|
|
120
|
+
return lines.join('\n');
|
|
121
|
+
}
|
|
122
|
+
// ============ Validation Utilities ============
|
|
123
|
+
/**
|
|
124
|
+
* Validate and return cover theme, with fallback to default
|
|
125
|
+
*/
|
|
126
|
+
export function validateCoverTheme(id, defaultId = 'apple') {
|
|
127
|
+
if (id && isValidCoverTheme(id)) {
|
|
128
|
+
return COVER_THEMES[id];
|
|
129
|
+
}
|
|
130
|
+
return COVER_THEMES[defaultId];
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Validate and return typography preset ID, with fallback to default
|
|
134
|
+
*/
|
|
135
|
+
export function validateTypographyPreset(id, defaultId = 'ebook') {
|
|
136
|
+
if (id && isValidTypographyPreset(id)) {
|
|
137
|
+
return id;
|
|
138
|
+
}
|
|
139
|
+
return defaultId;
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=themeUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"themeUtils.js","sourceRoot":"","sources":["../../src/utils/themeUtils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAIlE,kDAAkD;AAElD;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC5B,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,EAAU;IACpC,OAAO,YAAY,CAAC,EAAE,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAU;IACxC,OAAO,EAAE,IAAI,YAAY,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,QAAgB;IACrD,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;AACpF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACjC,MAAM,MAAM,GAAiC,EAAE,CAAC;IAEhD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACf,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACrB,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B;IACxC,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;IACxC,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QACxD,QAAQ;QACR,KAAK,EAAE,MAAM,CAAC,MAAM;QACpB,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChC,CAAC,CAAC,CAAC;AACR,CAAC;AAED,wDAAwD;AAExD;;GAEG;AACH,MAAM,UAAU,sBAAsB;IAClC,OAAO,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAyB,CAAC;AACnE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAAU;IAC1C,OAAO,kBAAkB,CAAC,EAAE,CAAC,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,EAAU;IAC9C,OAAO,EAAE,IAAI,kBAAkB,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,8BAA8B,CAAC,QAA0C;IACrF,MAAM,WAAW,GAAyC;QACtD,KAAK,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,CAAC;QACnD,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,CAAC;QACjE,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC;KAC7C,CAAC;IAEF,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACxC,OAAO,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACjE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,2BAA2B;IACvC,OAAO;QACH,KAAK,EAAE,8BAA8B,CAAC,OAAO,CAAC;QAC9C,OAAO,EAAE,8BAA8B,CAAC,SAAS,CAAC;QAClD,QAAQ,EAAE,8BAA8B,CAAC,UAAU,CAAC;KACvD,CAAC;AACN,CAAC;AAED,+CAA+C;AAE/C;;GAEG;AACH,MAAM,UAAU,0BAA0B;IACtC,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;IACxC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACvD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,KAAK,SAAS,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gCAAgC;IAC5C,MAAM,OAAO,GAAG,2BAA2B,EAAE,CAAC;IAC9C,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,KAAK,UAAU,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,iDAAiD;AAEjD;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,EAAsB,EAAE,YAAoB,OAAO;IAClF,IAAI,EAAE,IAAI,iBAAiB,CAAC,EAAE,CAAC,EAAE,CAAC;QAC9B,OAAO,YAAY,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,EAAsB,EAAE,YAAgC,OAAO;IACpG,IAAI,EAAE,IAAI,uBAAuB,CAAC,EAAE,CAAC,EAAE,CAAC;QACpC,OAAO,EAAwB,CAAC;IACpC,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "markdown-to-document-cli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.8",
|
|
4
4
|
"description": "Professional-grade EPUB/PDF conversion tool for Markdown files. 8 validation modules, auto-fix, typography presets, font subsetting (99% size reduction), ISBN validation, copyright page generation.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"cli",
|
|
31
31
|
"npx"
|
|
32
32
|
],
|
|
33
|
-
"author": "잘생김프로쌤 <
|
|
33
|
+
"author": "잘생김프로쌤 <edulovesai@gmail.com>",
|
|
34
34
|
"license": "MIT",
|
|
35
35
|
"repository": {
|
|
36
36
|
"type": "git",
|