markdown-to-document-cli 1.1.4 → 1.2.7

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.
Files changed (40) hide show
  1. package/README.md +54 -9
  2. package/dist/cli.d.ts +3 -0
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +476 -103
  5. package/dist/cli.js.map +1 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +18 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/services/CoverService.d.ts +25 -3
  10. package/dist/services/CoverService.d.ts.map +1 -1
  11. package/dist/services/CoverService.js +226 -97
  12. package/dist/services/CoverService.js.map +1 -1
  13. package/dist/services/MarkdownPreprocessor.d.ts +5 -0
  14. package/dist/services/MarkdownPreprocessor.d.ts.map +1 -1
  15. package/dist/services/MarkdownPreprocessor.js +18 -7
  16. package/dist/services/MarkdownPreprocessor.js.map +1 -1
  17. package/dist/services/PandocService.d.ts +3 -1
  18. package/dist/services/PandocService.d.ts.map +1 -1
  19. package/dist/services/PandocService.js +31 -15
  20. package/dist/services/PandocService.js.map +1 -1
  21. package/dist/services/TypographyService.d.ts +8 -1
  22. package/dist/services/TypographyService.d.ts.map +1 -1
  23. package/dist/services/TypographyService.js +417 -57
  24. package/dist/services/TypographyService.js.map +1 -1
  25. package/dist/types/index.d.ts +37 -11
  26. package/dist/types/index.d.ts.map +1 -1
  27. package/dist/types/index.js +28 -1
  28. package/dist/types/index.js.map +1 -1
  29. package/dist/utils/constants.d.ts.map +1 -1
  30. package/dist/utils/constants.js +224 -0
  31. package/dist/utils/constants.js.map +1 -1
  32. package/dist/utils/cssBuilder.d.ts +93 -0
  33. package/dist/utils/cssBuilder.d.ts.map +1 -0
  34. package/dist/utils/cssBuilder.js +231 -0
  35. package/dist/utils/cssBuilder.js.map +1 -0
  36. package/dist/utils/themeUtils.d.ts +70 -0
  37. package/dist/utils/themeUtils.d.ts.map +1 -0
  38. package/dist/utils/themeUtils.js +141 -0
  39. package/dist/utils/themeUtils.js.map +1 -0
  40. package/package.json +2 -2
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Theme and Preset Utility Functions
3
+ * Centralized helpers for theme/preset filtering, validation, and listing
4
+ */
5
+ import type { CoverTheme, TypographyPreset, TypographyPresetId } from '../types/index.js';
6
+ /**
7
+ * Get all available cover theme IDs
8
+ */
9
+ export declare function getCoverThemeIds(): string[];
10
+ /**
11
+ * Get cover theme by ID
12
+ */
13
+ export declare function getCoverTheme(id: string): CoverTheme | undefined;
14
+ /**
15
+ * Check if a cover theme ID is valid
16
+ */
17
+ export declare function isValidCoverTheme(id: string): boolean;
18
+ /**
19
+ * Get cover themes filtered by category
20
+ */
21
+ export declare function getCoverThemesByCategory(category: string): CoverTheme[];
22
+ /**
23
+ * Get cover themes grouped by category
24
+ */
25
+ export declare function getCoverThemesGrouped(): Record<string, CoverTheme[]>;
26
+ /**
27
+ * Get cover theme categories with theme counts
28
+ */
29
+ export declare function getCoverThemeCategorySummary(): {
30
+ category: string;
31
+ count: number;
32
+ themes: string[];
33
+ }[];
34
+ /**
35
+ * Get all available typography preset IDs
36
+ */
37
+ export declare function getTypographyPresetIds(): TypographyPresetId[];
38
+ /**
39
+ * Get typography preset by ID
40
+ */
41
+ export declare function getTypographyPreset(id: string): TypographyPreset | undefined;
42
+ /**
43
+ * Check if a typography preset ID is valid
44
+ */
45
+ export declare function isValidTypographyPreset(id: string): boolean;
46
+ /**
47
+ * Get typography presets by category (basic, content, document)
48
+ */
49
+ export declare function getTypographyPresetsByCategory(category: 'basic' | 'content' | 'document'): TypographyPreset[];
50
+ /**
51
+ * Get typography presets grouped by category
52
+ */
53
+ export declare function getTypographyPresetsGrouped(): Record<string, TypographyPreset[]>;
54
+ /**
55
+ * Generate help text for cover themes
56
+ */
57
+ export declare function generateCoverThemeHelpText(): string;
58
+ /**
59
+ * Generate help text for typography presets
60
+ */
61
+ export declare function generateTypographyPresetHelpText(): string;
62
+ /**
63
+ * Validate and return cover theme, with fallback to default
64
+ */
65
+ export declare function validateCoverTheme(id: string | undefined, defaultId?: string): CoverTheme;
66
+ /**
67
+ * Validate and return typography preset ID, with fallback to default
68
+ */
69
+ export declare function validateTypographyPreset(id: string | undefined, defaultId?: TypographyPresetId): TypographyPresetId;
70
+ //# sourceMappingURL=themeUtils.d.ts.map
@@ -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.1.4",
3
+ "version": "1.2.7",
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": "잘생김프로쌤 <bluelion79@gmail.com>",
33
+ "author": "잘생김프로쌤 <edulovesai@gmail.com>",
34
34
  "license": "MIT",
35
35
  "repository": {
36
36
  "type": "git",