md2cv 1.2.0 → 1.4.1

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 (64) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.ja.md +65 -56
  3. package/README.md +45 -36
  4. package/dist/cli/index.d.ts +1 -1
  5. package/dist/cli/index.d.ts.map +1 -1
  6. package/dist/cli/index.js +45 -27
  7. package/dist/cli/index.js.map +1 -1
  8. package/dist/generator/common.d.ts +86 -0
  9. package/dist/generator/common.d.ts.map +1 -0
  10. package/dist/generator/common.js +326 -0
  11. package/dist/generator/common.js.map +1 -0
  12. package/dist/generator/index.d.ts +39 -12
  13. package/dist/generator/index.d.ts.map +1 -1
  14. package/dist/generator/index.js +43 -30
  15. package/dist/generator/index.js.map +1 -1
  16. package/dist/generator/resume_en.d.ts +4 -15
  17. package/dist/generator/resume_en.d.ts.map +1 -1
  18. package/dist/generator/resume_en.js +23 -323
  19. package/dist/generator/resume_en.js.map +1 -1
  20. package/dist/generator/resume_ja.d.ts +4 -15
  21. package/dist/generator/resume_ja.d.ts.map +1 -1
  22. package/dist/generator/resume_ja.js +17 -263
  23. package/dist/generator/resume_ja.js.map +1 -1
  24. package/dist/generator/rirekisho/styles.d.ts.map +1 -1
  25. package/dist/generator/rirekisho/styles.js +9 -14
  26. package/dist/generator/rirekisho/styles.js.map +1 -1
  27. package/dist/generator/rirekisho/types.d.ts +2 -2
  28. package/dist/generator/rirekisho/types.d.ts.map +1 -1
  29. package/dist/index.d.ts +1 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +1 -0
  32. package/dist/index.js.map +1 -1
  33. package/dist/parser/index.d.ts.map +1 -1
  34. package/dist/parser/index.js +172 -109
  35. package/dist/parser/index.js.map +1 -1
  36. package/dist/parser/lsp.d.ts +58 -0
  37. package/dist/parser/lsp.d.ts.map +1 -0
  38. package/dist/parser/lsp.js +265 -0
  39. package/dist/parser/lsp.js.map +1 -0
  40. package/dist/template/definitions/en.d.ts.map +1 -1
  41. package/dist/template/definitions/en.js +0 -12
  42. package/dist/template/definitions/en.js.map +1 -1
  43. package/dist/template/definitions/ja.d.ts.map +1 -1
  44. package/dist/template/definitions/ja.js +0 -12
  45. package/dist/template/definitions/ja.js.map +1 -1
  46. package/dist/types/config.d.ts +23 -15
  47. package/dist/types/config.d.ts.map +1 -1
  48. package/dist/types/index.d.ts +1 -0
  49. package/dist/types/index.d.ts.map +1 -1
  50. package/dist/types/index.js +1 -0
  51. package/dist/types/index.js.map +1 -1
  52. package/dist/types/position.d.ts +42 -0
  53. package/dist/types/position.d.ts.map +1 -0
  54. package/dist/types/position.js +32 -0
  55. package/dist/types/position.js.map +1 -0
  56. package/dist/types/sections.d.ts +39 -24
  57. package/dist/types/sections.d.ts.map +1 -1
  58. package/dist/types/sections.js +21 -0
  59. package/dist/types/sections.js.map +1 -1
  60. package/dist/validator/index.d.ts.map +1 -1
  61. package/dist/validator/index.js +11 -9
  62. package/dist/validator/index.js.map +1 -1
  63. package/examples/example-cv-ja.md +1 -1
  64. package/package.json +52 -4
@@ -0,0 +1,326 @@
1
+ /**
2
+ * Common utilities for CV/Resume generators
3
+ * Shared between English and Japanese CV generators
4
+ */
5
+ /**
6
+ * Page size dimensions in mm
7
+ * CV uses portrait orientation (width < height)
8
+ */
9
+ export const PAGE_SIZES = {
10
+ a3: { width: 297, height: 420 },
11
+ a4: { width: 210, height: 297 },
12
+ b4: { width: 257, height: 364 },
13
+ b5: { width: 182, height: 257 },
14
+ letter: { width: 215.9, height: 279.4 },
15
+ };
16
+ /**
17
+ * Default number of columns for skills grid
18
+ */
19
+ export const DEFAULT_SKILLS_COLUMNS = 3;
20
+ /**
21
+ * Escape HTML special characters
22
+ */
23
+ export function escapeHtml(text) {
24
+ if (text == null)
25
+ return '';
26
+ return text
27
+ .replace(/&/g, '&amp;')
28
+ .replace(/</g, '&lt;')
29
+ .replace(/>/g, '&gt;')
30
+ .replace(/"/g, '&quot;')
31
+ .replace(/'/g, '&#039;');
32
+ }
33
+ /**
34
+ * English date formatter
35
+ */
36
+ export const enDateFormatter = {
37
+ formatDate(date) {
38
+ if (!date)
39
+ return '';
40
+ const months = [
41
+ 'Jan',
42
+ 'Feb',
43
+ 'Mar',
44
+ 'Apr',
45
+ 'May',
46
+ 'Jun',
47
+ 'Jul',
48
+ 'Aug',
49
+ 'Sep',
50
+ 'Oct',
51
+ 'Nov',
52
+ 'Dec',
53
+ ];
54
+ return `${months[date.getMonth()]} ${date.getFullYear()}`;
55
+ },
56
+ formatEndDate(end) {
57
+ if (!end)
58
+ return '';
59
+ if (end === 'present')
60
+ return 'Present';
61
+ return this.formatDate(end);
62
+ },
63
+ itemSeparator: ', ',
64
+ };
65
+ /**
66
+ * Japanese date formatter
67
+ */
68
+ export const jaDateFormatter = {
69
+ formatDate(date) {
70
+ if (!date)
71
+ return '';
72
+ return `${date.getFullYear()}年${date.getMonth() + 1}月`;
73
+ },
74
+ formatEndDate(end) {
75
+ if (!end)
76
+ return '';
77
+ if (end === 'present')
78
+ return '現在';
79
+ return this.formatDate(end);
80
+ },
81
+ itemSeparator: '、',
82
+ };
83
+ /**
84
+ * Format date range using the provided formatter
85
+ */
86
+ export function formatDateRange(start, end, formatter) {
87
+ const startStr = formatter.formatDate(start);
88
+ const endStr = formatter.formatEndDate(end);
89
+ if (startStr && endStr)
90
+ return `${startStr} - ${endStr}`;
91
+ if (startStr)
92
+ return startStr;
93
+ return '';
94
+ }
95
+ /**
96
+ * Render education section
97
+ */
98
+ export function renderEducation(entries, formatter) {
99
+ return entries
100
+ .map((entry) => {
101
+ const dateRange = formatDateRange(entry.start, entry.end, formatter);
102
+ let html = '<div class="entry">';
103
+ html += '<div class="entry-header">';
104
+ html += `<span class="entry-title">${escapeHtml(entry.school)}</span>`;
105
+ if (dateRange) {
106
+ html += `<span class="entry-date">${escapeHtml(dateRange)}</span>`;
107
+ }
108
+ html += '</div>';
109
+ const subtitleParts = [];
110
+ if (entry.degree) {
111
+ subtitleParts.push(escapeHtml(entry.degree));
112
+ }
113
+ if (entry.location) {
114
+ subtitleParts.push(escapeHtml(entry.location));
115
+ }
116
+ if (subtitleParts.length > 0) {
117
+ html += `<div class="entry-subtitle">${subtitleParts.join(' — ')}</div>`;
118
+ }
119
+ const nonEmptyDetails = entry.details?.filter((d) => d && d.trim()) ?? [];
120
+ if (nonEmptyDetails.length > 0) {
121
+ html += '<ul>';
122
+ for (const detail of nonEmptyDetails) {
123
+ html += `<li>${escapeHtml(detail)}</li>`;
124
+ }
125
+ html += '</ul>';
126
+ }
127
+ html += '</div>';
128
+ return html;
129
+ })
130
+ .join('\n');
131
+ }
132
+ /**
133
+ * Render certifications section
134
+ */
135
+ export function renderCertifications(entries, formatter) {
136
+ return entries
137
+ .map((entry) => {
138
+ let html = `<div class="cert-item">• ${escapeHtml(entry.name)}`;
139
+ if (entry.date) {
140
+ html += ` (${escapeHtml(formatter.formatDate(entry.date))})`;
141
+ }
142
+ html += '</div>';
143
+ return html;
144
+ })
145
+ .join('\n');
146
+ }
147
+ /**
148
+ * Render skills section - supports grid and categorized formats
149
+ */
150
+ export function renderSkills(entries, options, formatter) {
151
+ const isCategorized = options.format === 'categorized' ||
152
+ entries.some((e) => e.category && (e.description || (e.items && e.items.length > 0)));
153
+ if (isCategorized && entries.some((e) => e.category)) {
154
+ return entries
155
+ .filter((e) => e.category)
156
+ .map((entry) => {
157
+ const content = entry.description ||
158
+ (entry.items?.join(formatter.itemSeparator) ?? '');
159
+ return `<div class="skill-category">• <span class="skill-category-name">${escapeHtml(entry.category)}:</span> ${escapeHtml(content)}</div>`;
160
+ })
161
+ .join('\n');
162
+ }
163
+ const allItems = [];
164
+ for (const entry of entries) {
165
+ if (entry.items) {
166
+ for (const item of entry.items) {
167
+ allItems.push(item);
168
+ }
169
+ }
170
+ }
171
+ if (allItems.length === 0) {
172
+ return '';
173
+ }
174
+ const columns = options.columns ?? DEFAULT_SKILLS_COLUMNS;
175
+ const colsClass = columns === 3 ? 'skills-grid--cols-3' : '';
176
+ const colsStyle = columns !== 3 ? `grid-template-columns: repeat(${columns}, 1fr);` : '';
177
+ let html = `<div class="skills-grid ${colsClass}"${colsStyle ? ` style="${colsStyle}"` : ''}>`;
178
+ for (const item of allItems) {
179
+ html += `<div class="skill-item">• ${escapeHtml(item)}</div>`;
180
+ }
181
+ html += '</div>';
182
+ return html;
183
+ }
184
+ /**
185
+ * Render skills from list content as grid
186
+ */
187
+ export function renderSkillsList(items, columns = DEFAULT_SKILLS_COLUMNS) {
188
+ if (items.length === 0) {
189
+ return '';
190
+ }
191
+ const colsClass = columns === 3 ? 'skills-grid--cols-3' : '';
192
+ const colsStyle = columns !== 3 ? `grid-template-columns: repeat(${columns}, 1fr);` : '';
193
+ let html = `<div class="skills-grid ${colsClass}"${colsStyle ? ` style="${colsStyle}"` : ''}>`;
194
+ for (const item of items) {
195
+ html += `<div class="skill-item">• ${escapeHtml(item)}</div>`;
196
+ }
197
+ html += '</div>';
198
+ return html;
199
+ }
200
+ /**
201
+ * Render languages section
202
+ */
203
+ export function renderLanguages(entries) {
204
+ return entries
205
+ .map((entry) => {
206
+ let html = `<span class="lang-item">${escapeHtml(entry.language)}`;
207
+ if (entry.level) {
208
+ html += ` (${escapeHtml(entry.level)})`;
209
+ }
210
+ html += '</span>';
211
+ return html;
212
+ })
213
+ .join(' • ');
214
+ }
215
+ /**
216
+ * Render core competencies section
217
+ */
218
+ export function renderCompetencies(entries) {
219
+ return entries
220
+ .map((entry) => {
221
+ return `<div class="competency-entry"><span class="competency-header">${escapeHtml(entry.header)}:</span> ${escapeHtml(entry.description)}</div>`;
222
+ })
223
+ .join('\n');
224
+ }
225
+ /**
226
+ * Render experience section
227
+ */
228
+ export function renderExperience(entries, formatter, options) {
229
+ const includeTeam = options?.includeTeam ?? true;
230
+ const includeProjects = options?.includeProjects ?? true;
231
+ return entries
232
+ .flatMap((entry) => {
233
+ return entry.roles.map((role) => {
234
+ const dateRange = formatDateRange(role.start, role.end, formatter);
235
+ let html = '<div class="entry">';
236
+ html += '<div class="entry-header">';
237
+ html += `<span class="entry-title">${escapeHtml(entry.company)} —— ${escapeHtml(role.title)}</span>`;
238
+ if (dateRange) {
239
+ html += `<span class="entry-date">${escapeHtml(dateRange)}</span>`;
240
+ }
241
+ html += '</div>';
242
+ if (includeTeam) {
243
+ const subtitleParts = [];
244
+ if (role.team) {
245
+ subtitleParts.push(escapeHtml(role.team));
246
+ }
247
+ if (entry.location) {
248
+ subtitleParts.push(escapeHtml(entry.location));
249
+ }
250
+ if (subtitleParts.length > 0) {
251
+ html += `<div class="entry-subtitle">${subtitleParts.join(' — ')}</div>`;
252
+ }
253
+ }
254
+ if (role.summary && role.summary.length > 0) {
255
+ html += '<div class="entry-summary">';
256
+ html += role.summary.map((s) => escapeHtml(s)).join(' ');
257
+ html += '</div>';
258
+ }
259
+ if (role.highlights && role.highlights.length > 0) {
260
+ html += '<ul>';
261
+ for (const highlight of role.highlights) {
262
+ html += `<li>${escapeHtml(highlight)}</li>`;
263
+ }
264
+ html += '</ul>';
265
+ }
266
+ if (includeProjects && role.projects && role.projects.length > 0) {
267
+ for (const project of role.projects) {
268
+ const projDateRange = formatDateRange(project.start, project.end, formatter);
269
+ html += '<div class="project">';
270
+ html += `<span class="project-name">${escapeHtml(project.name)}</span>`;
271
+ if (projDateRange) {
272
+ html += ` <span class="entry-date">(${escapeHtml(projDateRange)})</span>`;
273
+ }
274
+ if (project.bullets && project.bullets.length > 0) {
275
+ html += '<ul>';
276
+ for (const bullet of project.bullets) {
277
+ html += `<li>${escapeHtml(bullet)}</li>`;
278
+ }
279
+ html += '</ul>';
280
+ }
281
+ html += '</div>';
282
+ }
283
+ }
284
+ html += '</div>';
285
+ return html;
286
+ });
287
+ })
288
+ .join('\n');
289
+ }
290
+ /**
291
+ * Render section content
292
+ */
293
+ export function renderSectionContent(content, sectionId, formatter) {
294
+ switch (content.type) {
295
+ case 'text':
296
+ return `<p>${escapeHtml(content.text)}</p>`;
297
+ case 'list':
298
+ if (sectionId === 'skills') {
299
+ return renderSkillsList(content.items);
300
+ }
301
+ return ('<ul>' +
302
+ content.items.map((item) => `<li>${escapeHtml(item)}</li>`).join('\n') +
303
+ '</ul>');
304
+ case 'education':
305
+ return renderEducation(content.entries, formatter);
306
+ case 'experience':
307
+ return renderExperience(content.entries, formatter);
308
+ case 'certifications':
309
+ return renderCertifications(content.entries, formatter);
310
+ case 'skills':
311
+ return renderSkills(content.entries, content.options, formatter);
312
+ case 'competencies':
313
+ return renderCompetencies(content.entries);
314
+ case 'languages':
315
+ return renderLanguages(content.entries);
316
+ case 'table':
317
+ return ('<ul>' +
318
+ content.rows
319
+ .map((row) => `<li>${escapeHtml(row.content)}</li>`)
320
+ .join('\n') +
321
+ '</ul>');
322
+ default:
323
+ return '';
324
+ }
325
+ }
326
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/generator/common.ts"],"names":[],"mappings":"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"}
@@ -4,30 +4,57 @@
4
4
  */
5
5
  import type { Logger } from '../cli/index.js';
6
6
  import type { PaperSize, ResolvedConfig } from '../types/config.js';
7
- import type { CVMetadata } from '../types/metadata.js';
8
- import type { ParsedSection } from '../types/sections.js';
9
- import { generateCVEnHTML } from './resume_en.js';
10
- import { generateCVJaHTML } from './resume_ja.js';
7
+ import type { CVInput } from './common.js';
8
+ import { generateEnHtml } from './resume_en.js';
9
+ import { generateJaHtml } from './resume_ja.js';
11
10
  import { generateRirekishoHTML } from './rirekisho/index.js';
12
- export { generateCVEnHTML, generateCVJaHTML, generateRirekishoHTML };
11
+ export { generateEnHtml, generateJaHtml, generateRirekishoHTML };
13
12
  /**
14
- * Input for CV generation (internal type)
13
+ * Page size dimensions in mm (portrait orientation for CV)
15
14
  */
16
- interface CVInput {
17
- readonly metadata: CVMetadata;
18
- readonly sections: readonly ParsedSection[];
19
- }
15
+ export declare const PAGE_SIZES: Record<PaperSize, {
16
+ width: number;
17
+ height: number;
18
+ }>;
20
19
  /**
21
- * Page size dimensions in mm
20
+ * Page size dimensions in mm (landscape orientation for Rirekisho)
22
21
  */
23
- export declare const PAGE_SIZES: Record<PaperSize, {
22
+ export declare const PAGE_SIZES_LANDSCAPE: Record<PaperSize, {
24
23
  width: number;
25
24
  height: number;
26
25
  }>;
26
+ /**
27
+ * MIME types for supported image formats
28
+ */
29
+ export declare const IMAGE_MIME_TYPES: Record<string, string>;
30
+ /**
31
+ * Supported image file extensions (without leading dot)
32
+ */
33
+ export declare const SUPPORTED_IMAGE_EXTENSIONS: readonly string[];
34
+ /**
35
+ * Read image file and convert to base64 data URI
36
+ */
37
+ export declare function readPhotoAsDataUri(photoPath: string): string;
27
38
  /**
28
39
  * Escape HTML special characters
29
40
  */
30
41
  export declare function escapeHtml(text: string): string;
42
+ /**
43
+ * Input type for detectLanguage function
44
+ */
45
+ export interface DetectLanguageInput {
46
+ readonly metadata: {
47
+ name_ja?: string;
48
+ };
49
+ readonly sections: readonly {
50
+ title: string;
51
+ }[];
52
+ }
53
+ /**
54
+ * Detect language from CV content
55
+ * Checks for Japanese name or Japanese section titles
56
+ */
57
+ export declare function detectLanguage(cv: DetectLanguageInput): 'en' | 'ja';
31
58
  /**
32
59
  * Generate output files
33
60
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAIV,SAAS,EACT,cAAc,EACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAK1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,CAAC;AAErE;;GAEG;AACH,UAAU,OAAO;IACf,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;CAC7C;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAOzE,CAAC;AAqCJ;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO/C;AAsQD;;GAEG;AACH,wBAAsB,cAAc,CAClC,EAAE,EAAE,OAAO,EACX,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,EAAE,CAAC,CA4FnB;AAED,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAKV,SAAS,EACT,cAAc,EACf,MAAM,oBAAoB,CAAC;AAM5B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,qBAAqB,EAAE,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAOzE,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CACvC,SAAS,EACT;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAOlC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMnD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE,SAAS,MAAM,EAE5B,CAAC;AAE7B;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAY5D;AASD;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO/C;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,SAAS;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACjD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,mBAAmB,GAAG,IAAI,GAAG,IAAI,CAgBnE;AA8OD;;GAEG;AACH,wBAAsB,cAAc,CAClC,EAAE,EAAE,OAAO,EACX,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,EAAE,CAAC,CAsFnB;AAED,eAAe,cAAc,CAAC"}
@@ -6,35 +6,49 @@ import * as fs from 'fs';
6
6
  import * as path from 'path';
7
7
  import puppeteer from 'puppeteer';
8
8
  import { findSectionByTag, isSectionValidForFormat, } from '../types/sections.js';
9
- import { generateCVEnHTML } from './resume_en.js';
10
- import { generateCVJaHTML } from './resume_ja.js';
9
+ import { generateEnHtml } from './resume_en.js';
10
+ import { generateJaHtml } from './resume_ja.js';
11
11
  import { generateRirekishoHTML } from './rirekisho/index.js';
12
12
  // Re-export generators
13
- export { generateCVEnHTML, generateCVJaHTML, generateRirekishoHTML };
13
+ export { generateEnHtml, generateJaHtml, generateRirekishoHTML };
14
14
  /**
15
- * Page size dimensions in mm
15
+ * Page size dimensions in mm (portrait orientation for CV)
16
16
  */
17
17
  export const PAGE_SIZES = {
18
- a3: { width: 420, height: 297 },
18
+ a3: { width: 297, height: 420 },
19
19
  a4: { width: 210, height: 297 },
20
- b4: { width: 364, height: 257 },
21
- b5: { width: 176, height: 250 },
20
+ b4: { width: 257, height: 364 },
21
+ b5: { width: 182, height: 257 },
22
22
  letter: { width: 215.9, height: 279.4 },
23
23
  };
24
+ /**
25
+ * Page size dimensions in mm (landscape orientation for Rirekisho)
26
+ */
27
+ export const PAGE_SIZES_LANDSCAPE = {
28
+ a3: { width: 420, height: 297 },
29
+ a4: { width: 297, height: 210 },
30
+ b4: { width: 364, height: 257 },
31
+ b5: { width: 257, height: 182 },
32
+ letter: { width: 279.4, height: 215.9 },
33
+ };
24
34
  /**
25
35
  * MIME types for supported image formats
26
36
  */
27
- const IMAGE_MIME_TYPES = {
37
+ export const IMAGE_MIME_TYPES = {
28
38
  '.png': 'image/png',
29
39
  '.jpg': 'image/jpeg',
30
40
  '.jpeg': 'image/jpeg',
31
41
  '.tiff': 'image/tiff',
32
42
  '.tif': 'image/tiff',
33
43
  };
44
+ /**
45
+ * Supported image file extensions (without leading dot)
46
+ */
47
+ export const SUPPORTED_IMAGE_EXTENSIONS = Object.keys(IMAGE_MIME_TYPES).map((ext) => ext.slice(1));
34
48
  /**
35
49
  * Read image file and convert to base64 data URI
36
50
  */
37
- function readPhotoAsDataUri(photoPath) {
51
+ export function readPhotoAsDataUri(photoPath) {
38
52
  const ext = path.extname(photoPath).toLowerCase();
39
53
  const mimeType = IMAGE_MIME_TYPES[ext];
40
54
  if (!mimeType) {
@@ -63,14 +77,17 @@ export function escapeHtml(text) {
63
77
  }
64
78
  /**
65
79
  * Detect language from CV content
80
+ * Checks for Japanese name or Japanese section titles
66
81
  */
67
- function detectLanguage(cv) {
82
+ export function detectLanguage(cv) {
83
+ // Import isJapaneseText from sections to avoid duplication
84
+ const isJapanese = (text) => /[\u3040-\u309F\u30A0-\u30FF\u4E00-\u9FAF]/.test(text);
68
85
  // Check if name_ja exists or if sections have Japanese titles
69
86
  if (cv.metadata.name_ja)
70
87
  return 'ja';
71
88
  for (const section of cv.sections) {
72
89
  // Check for Japanese characters in title
73
- if (/[\u3040-\u309F\u30A0-\u30FF\u4E00-\u9FAF]/.test(section.title)) {
90
+ if (isJapanese(section.title)) {
74
91
  return 'ja';
75
92
  }
76
93
  }
@@ -120,7 +137,7 @@ function resolveSectionId(input, sections) {
120
137
  * If sectionOrder is provided, only include sections in that order
121
138
  * If not provided, use default order for CV or include all sections for rirekisho
122
139
  */
123
- function filterAndOrderSections(sections, format, sectionOrder, logger) {
140
+ function filterAndOrderSections(sections, format, logger, sectionOrder) {
124
141
  // Get all section IDs from input
125
142
  const allSectionIds = sections.map((s) => s.id);
126
143
  // Determine which sections are valid for this format
@@ -189,20 +206,24 @@ function filterAndOrderSections(sections, format, sectionOrder, logger) {
189
206
  }
190
207
  /**
191
208
  * Generate HTML for CV format
209
+ * Note: chronologicalOrder is not yet implemented for CV format.
210
+ * CV format currently uses the order as defined in the markdown file.
192
211
  */
193
- function generateCVHTML(cv, paperSize, _chronologicalOrder, sectionOrder, logger, customStylesheet) {
212
+ function generateHtml(cv, paperSize, sectionOrder, logger, customStylesheet) {
194
213
  const language = detectLanguage(cv);
195
- // TODO: Add chronological order support for CV format
196
214
  // Filter and order sections if logger is provided
197
215
  let sections = cv.sections;
198
216
  if (logger) {
199
- sections = filterAndOrderSections(cv.sections, 'cv', sectionOrder, logger);
217
+ sections = filterAndOrderSections(cv.sections, 'cv', logger, sectionOrder);
200
218
  }
201
219
  const filteredCv = { ...cv, sections };
220
+ const options = customStylesheet
221
+ ? { paperSize, customStylesheet }
222
+ : { paperSize };
202
223
  if (language === 'ja') {
203
- return generateCVJaHTML(filteredCv, { paperSize, customStylesheet });
224
+ return generateJaHtml(filteredCv, options);
204
225
  }
205
- return generateCVEnHTML(filteredCv, { paperSize, customStylesheet });
226
+ return generateEnHtml(filteredCv, options);
206
227
  }
207
228
  /**
208
229
  * Generate PDF from HTML
@@ -219,15 +240,7 @@ async function generatePDF(html, paperSize, isRirekisho) {
219
240
  let pdfOptions;
220
241
  if (isRirekisho) {
221
242
  // Rirekisho uses landscape orientation with the specified paper size
222
- // PAGE_SIZES for rirekisho are already in landscape (width > height)
223
- const rirekishoSizes = {
224
- a3: { width: 420, height: 297 },
225
- a4: { width: 297, height: 210 },
226
- b4: { width: 364, height: 257 },
227
- b5: { width: 257, height: 182 },
228
- letter: { width: 279.4, height: 215.9 },
229
- };
230
- const rirekishoSize = rirekishoSizes[paperSize];
243
+ const rirekishoSize = PAGE_SIZES_LANDSCAPE[paperSize];
231
244
  await page.setViewport({
232
245
  width: Math.round(rirekishoSize.width * 3.78),
233
246
  height: Math.round(rirekishoSize.height * 3.78),
@@ -285,7 +298,7 @@ export async function generateOutput(cv, config, logger) {
285
298
  let html;
286
299
  if (format === 'rirekisho') {
287
300
  // Log sections for rirekisho
288
- const sections = filterAndOrderSections(cv.sections, 'rirekisho', undefined, logger);
301
+ const sections = filterAndOrderSections(cv.sections, 'rirekisho', logger);
289
302
  const filteredCv = { ...cv, sections };
290
303
  // Read photo file if provided (only for rirekisho)
291
304
  let photoDataUri;
@@ -297,12 +310,12 @@ export async function generateOutput(cv, config, logger) {
297
310
  paperSize: config.paperSize,
298
311
  chronologicalOrder,
299
312
  hideMotivation: config.hideMotivation,
300
- photoDataUri,
301
- customStylesheet,
313
+ ...(photoDataUri !== undefined && { photoDataUri }),
314
+ ...(customStylesheet !== undefined && { customStylesheet }),
302
315
  });
303
316
  }
304
317
  else {
305
- html = generateCVHTML(cv, config.paperSize, chronologicalOrder, config.sectionOrder, logger, customStylesheet);
318
+ html = generateHtml(cv, config.paperSize, config.sectionOrder, logger, customStylesheet);
306
319
  }
307
320
  const baseName = path.basename(config.output);
308
321
  const suffix = format === 'rirekisho' ? '_rirekisho' : '_cv';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,SAAS,MAAM,WAAW,CAAC;AAYlC,OAAO,EACL,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,uBAAuB;AACvB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,qBAAqB,EAAE,CAAC;AAEjE;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GACrB;IACE,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IAC/B,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IAC/B,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IAC/B,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IAC/B,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;CACxC,CAAC;AAEJ;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAG7B;IACF,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IAC/B,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IAC/B,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IAC/B,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IAC/B,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;CACxC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA2B;IACtD,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,YAAY;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAsB,MAAM,CAAC,IAAI,CACtE,gBAAgB,CACjB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7B;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;IAClD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAEvC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE9C,OAAO,QAAQ,QAAQ,WAAW,MAAM,EAAE,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,cAAsB;IAC5C,OAAO,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,IAAI;SACR,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAUD;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,EAAuB;IACpD,2DAA2D;IAC3D,MAAM,UAAU,GAAG,CAAC,IAAY,EAAW,EAAE,CAC3C,2CAA2C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEzD,8DAA8D;IAC9D,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAErC,KAAK,MAAM,OAAO,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;QAClC,yCAAyC;QACzC,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,wBAAwB,GAAG;IAC/B,SAAS;IACT,YAAY;IACZ,WAAW;IACX,QAAQ;IACR,gBAAgB;IAChB,WAAW;IACX,cAAc;IACd,YAAY;CACb,CAAC;AAEF;;;GAGG;AACH,SAAS,gBAAgB,CACvB,KAAa,EACb,QAAkC;IAElC,gDAAgD;IAChD,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC;IACzD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,WAAW,CAAC,EAAE,CAAC;IACxB,CAAC;IAED,8DAA8D;IAC9D,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,CACrD,CAAC;IACF,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC,EAAE,CAAC;IACvB,CAAC;IAED,0CAA0C;IAC1C,MAAM,GAAG,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,GAAG,EAAE,CAAC;QACR,4CAA4C;QAC5C,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5D,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,SAAS,sBAAsB,CAC7B,QAAkC,EAClC,MAA0B,EAC1B,MAAc,EACd,YAAuB;IAEvB,iCAAiC;IACjC,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAEhD,qDAAqD;IACrD,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAClD,uBAAuB,CAAC,EAAE,EAAE,MAAM,CAAC,CACpC,CAAC;IACF,MAAM,iBAAiB,GAAG,aAAa,CAAC,MAAM,CAC5C,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,uBAAuB,CAAC,EAAE,EAAE,MAAM,CAAC,CAC7C,CAAC;IAEF,IAAI,kBAA4B,CAAC;IACjC,IAAI,iBAA2B,CAAC;IAEhC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,6CAA6C;YAC7C,MAAM,aAAa,GAAa,EAAE,CAAC;YACnC,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;gBACjC,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBACrD,IACE,UAAU;oBACV,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC;oBACpC,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,EACnC,CAAC;oBACD,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;YAED,yFAAyF;YACzF,kBAAkB,GAAG,aAAa,CAAC;YACnC,iBAAiB,GAAG,eAAe,CAAC,MAAM,CACxC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CACpC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,2BAA2B;YAC3B,MAAM,UAAU,GAAa,EAAE,CAAC;YAChC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC;YAE9C,gCAAgC;YAChC,KAAK,MAAM,EAAE,IAAI,wBAAwB,EAAE,CAAC;gBAC1C,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBACzB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACpB,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;YACD,kDAAkD;YAClD,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;gBAC9B,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtB,CAAC;YAED,kBAAkB,GAAG,UAAU,CAAC;YAChC,iBAAiB,GAAG,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,sDAAsD;QACtD,kBAAkB,GAAG,eAAe,CAAC;QACrC,iBAAiB,GAAG,EAAE,CAAC;IACzB,CAAC;IAED,0BAA0B;IAC1B,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAAE,mBAAmB,CAAC,CAAC;IACnE,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CACT,EAAE,QAAQ,EAAE,iBAAiB,EAAE,EAC/B,yCAAyC,CAC1C,CAAC;IACJ,CAAC;IACD,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CACT,EAAE,QAAQ,EAAE,iBAAiB,EAAE,EAC/B,mCAAmC,MAAM,UAAU,CACpD,CAAC;IACJ,CAAC;IAED,6BAA6B;IAC7B,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,MAAM,eAAe,GAAoB,EAAE,CAAC;IAE5C,KAAK,MAAM,EAAE,IAAI,kBAAkB,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,OAAO,EAAE,CAAC;YACZ,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CACnB,EAAW,EACX,SAAoB,EACpB,YAAuB,EACvB,MAAe,EACf,gBAAyB;IAEzB,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;IAEpC,kDAAkD;IAClD,IAAI,QAAQ,GAA6B,EAAE,CAAC,QAAQ,CAAC;IACrD,IAAI,MAAM,EAAE,CAAC;QACX,QAAQ,GAAG,sBAAsB,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,UAAU,GAAY,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC;IAEhD,MAAM,OAAO,GAAc,gBAAgB;QACzC,CAAC,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;QACjC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;IAElB,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,WAAW,CACxB,IAAY,EACZ,SAAoB,EACpB,WAAoB;IAEpB,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC;QACrC,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,CAAC,cAAc,EAAE,0BAA0B,CAAC;KACnD,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;QAErE,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;QAEnC,IAAI,UAA0C,CAAC;QAE/C,IAAI,WAAW,EAAE,CAAC;YAChB,qEAAqE;YACrE,MAAM,aAAa,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;YACtD,MAAM,IAAI,CAAC,WAAW,CAAC;gBACrB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC;gBAC7C,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC;gBAC/C,iBAAiB,EAAE,CAAC;aACrB,CAAC,CAAC;YAEH,UAAU,GAAG;gBACX,KAAK,EAAE,GAAG,aAAa,CAAC,KAAK,IAAI;gBACjC,MAAM,EAAE,GAAG,aAAa,CAAC,MAAM,IAAI;gBACnC,eAAe,EAAE,IAAI;gBACrB,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;gBAChE,iBAAiB,EAAE,KAAK;gBACxB,KAAK,EAAE,CAAC;aACT,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,UAAU,GAAG;gBACX,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI;gBACxB,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,IAAI;gBAC1B,eAAe,EAAE,IAAI;gBACrB,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;gBACpE,iBAAiB,EAAE,IAAI;aACxB,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACjD,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,EAAW,EACX,MAAsB,EACtB,MAAc;IAEd,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,MAAM,OAAO,GACX,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACnE,MAAM,WAAW,GACf,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAEvE,iCAAiC;IACjC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,CAAC,KAAK,CAAC,cAAc,MAAM,KAAK,CAAC,CAAC;QAExC,gCAAgC;QAChC,yFAAyF;QACzF,MAAM,kBAAkB,GACtB,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,IAAI,MAAM,CAAC,CAAC;QAEzE,qCAAqC;QACrC,IAAI,gBAAoC,CAAC;QACzC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,gBAAgB,GAAG,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACrD,MAAM,CAAC,KAAK,CACV,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,EACjC,0BAA0B,CAC3B,CAAC;QACJ,CAAC;QAED,gBAAgB;QAChB,IAAI,IAAY,CAAC;QACjB,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;YAC3B,6BAA6B;YAC7B,MAAM,QAAQ,GAAG,sBAAsB,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YAC1E,MAAM,UAAU,GAAG,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC;YAEvC,mDAAmD;YACnD,IAAI,YAAgC,CAAC;YACrC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,YAAY,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChD,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,4BAA4B,CAAC,CAAC;YACtE,CAAC;YAED,IAAI,GAAG,qBAAqB,CAAC,UAAU,EAAE;gBACvC,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,kBAAkB;gBAClB,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,GAAG,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,CAAC;gBACnD,GAAG,CAAC,gBAAgB,KAAK,SAAS,IAAI,EAAE,gBAAgB,EAAE,CAAC;aAC5D,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,YAAY,CACjB,EAAE,EACF,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,YAAY,EACnB,MAAM,EACN,gBAAgB,CACjB,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC;QAE7D,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YACpD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,QAAQ,GAAG,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC;YAEtE,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;gBAC1B,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,MAAM,SAAS,GAAG,MAAM,WAAW,CACjC,IAAI,EACJ,MAAM,CAAC,SAAS,EAChB,MAAM,KAAK,WAAW,CACvB,CAAC;gBACF,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YAC1C,CAAC;YAED,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,cAAc,UAAU,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,eAAe,cAAc,CAAC"}
@@ -2,22 +2,11 @@
2
2
  * English CV Generator
3
3
  * Generates HTML for English CV format with Times font family
4
4
  */
5
- import type { PaperSize } from '../types/config.js';
6
- import type { CVMetadata } from '../types/metadata.js';
7
- import type { ParsedSection } from '../types/sections.js';
8
- export interface CVEnOptions {
9
- readonly paperSize: PaperSize;
10
- readonly customStylesheet?: string | undefined;
11
- }
12
- /**
13
- * Input for CV generation
14
- */
15
- export interface CVInput {
16
- readonly metadata: CVMetadata;
17
- readonly sections: readonly ParsedSection[];
18
- }
5
+ import type { CVOptions } from '../types/config.js';
6
+ import type { CVInput } from './common.js';
7
+ export type { CVInput };
19
8
  /**
20
9
  * Generate English HTML CV
21
10
  */
22
- export declare function generateCVEnHTML(cv: CVInput, options: CVEnOptions): string;
11
+ export declare function generateEnHtml(cv: CVInput, options: CVOptions): string;
23
12
  //# sourceMappingURL=resume_en.d.ts.map