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.
Files changed (48) hide show
  1. package/README.md +248 -18
  2. package/dist/cli.d.ts +3 -0
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +523 -134
  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 +7 -1
  18. package/dist/services/PandocService.d.ts.map +1 -1
  19. package/dist/services/PandocService.js +61 -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/dependencyChecker.d.ts +63 -0
  37. package/dist/utils/dependencyChecker.d.ts.map +1 -0
  38. package/dist/utils/dependencyChecker.js +268 -0
  39. package/dist/utils/dependencyChecker.js.map +1 -0
  40. package/dist/utils/pathValidator.d.ts +48 -0
  41. package/dist/utils/pathValidator.d.ts.map +1 -0
  42. package/dist/utils/pathValidator.js +188 -0
  43. package/dist/utils/pathValidator.js.map +1 -0
  44. package/dist/utils/themeUtils.d.ts +70 -0
  45. package/dist/utils/themeUtils.d.ts.map +1 -0
  46. package/dist/utils/themeUtils.js +141 -0
  47. package/dist/utils/themeUtils.js.map +1 -0
  48. 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":"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"}
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.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": "잘생김프로쌤 <bluelion79@gmail.com>",
33
+ "author": "잘생김프로쌤 <edulovesai@gmail.com>",
34
34
  "license": "MIT",
35
35
  "repository": {
36
36
  "type": "git",