md2cv 2.3.0 → 2.5.0

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 (47) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.ja.md +75 -22
  3. package/README.md +76 -22
  4. package/dist/generator/common.d.ts +5 -0
  5. package/dist/generator/common.d.ts.map +1 -1
  6. package/dist/generator/common.js +6 -4
  7. package/dist/generator/common.js.map +1 -1
  8. package/dist/generator/cover_letter.d.ts +12 -0
  9. package/dist/generator/cover_letter.d.ts.map +1 -0
  10. package/dist/generator/cover_letter.js +252 -0
  11. package/dist/generator/cover_letter.js.map +1 -0
  12. package/dist/generator/index.d.ts +2 -1
  13. package/dist/generator/index.d.ts.map +1 -1
  14. package/dist/generator/index.js +24 -5
  15. package/dist/generator/index.js.map +1 -1
  16. package/dist/generator/resume_en.d.ts.map +1 -1
  17. package/dist/generator/resume_en.js +13 -4
  18. package/dist/generator/resume_en.js.map +1 -1
  19. package/dist/generator/resume_ja.d.ts.map +1 -1
  20. package/dist/generator/resume_ja.js +9 -4
  21. package/dist/generator/resume_ja.js.map +1 -1
  22. package/dist/parser/index.d.ts +5 -0
  23. package/dist/parser/index.d.ts.map +1 -1
  24. package/dist/parser/index.js +12 -2
  25. package/dist/parser/index.js.map +1 -1
  26. package/dist/template/definitions/en.d.ts.map +1 -1
  27. package/dist/template/definitions/en.js +46 -0
  28. package/dist/template/definitions/en.js.map +1 -1
  29. package/dist/template/generator.d.ts.map +1 -1
  30. package/dist/template/generator.js +4 -2
  31. package/dist/template/generator.js.map +1 -1
  32. package/dist/types/config.d.ts +2 -1
  33. package/dist/types/config.d.ts.map +1 -1
  34. package/dist/types/config.js +2 -2
  35. package/dist/types/config.js.map +1 -1
  36. package/dist/types/metadata.d.ts +8 -0
  37. package/dist/types/metadata.d.ts.map +1 -1
  38. package/dist/types/metadata.js +30 -0
  39. package/dist/types/metadata.js.map +1 -1
  40. package/dist/types/sections.d.ts +1 -1
  41. package/dist/types/sections.d.ts.map +1 -1
  42. package/dist/types/sections.js +20 -1
  43. package/dist/types/sections.js.map +1 -1
  44. package/dist/types/template.d.ts +2 -2
  45. package/dist/types/template.d.ts.map +1 -1
  46. package/examples/cover_letter.md +22 -0
  47. package/package.json +1 -1
@@ -0,0 +1,252 @@
1
+ /**
2
+ * Cover Letter Generator
3
+ * Generates HTML for cover letter format matching the CV header style
4
+ */
5
+ import { isSectionValidForFormat } from '../types/sections.js';
6
+ import { PAGE_SIZES, escapeHtml } from './common.js';
7
+ import { markdownToHtml } from './markdown.js';
8
+ /**
9
+ * Generate CSS styles for cover letter
10
+ */
11
+ function generateStyles(paperSize, marginMm, lineHeight) {
12
+ const size = PAGE_SIZES[paperSize];
13
+ const margins = marginMm ?? { top: 30, right: 30, bottom: 30, left: 30 };
14
+ const lh = lineHeight ?? 1.2;
15
+ return `
16
+ :root {
17
+ --cl-font-family: "Noto Serif", "Times New Roman", Times, Georgia, serif;
18
+ --cl-font-size-base: 11pt;
19
+ --cl-font-size-name: 20pt;
20
+ --cl-font-size-title: 11pt;
21
+ --cl-font-size-small: 10pt;
22
+ --cl-line-height: ${lh};
23
+ --cl-color-text: #333;
24
+ --cl-color-heading: #000;
25
+ --cl-color-link: #1a0dab;
26
+ }
27
+ @page {
28
+ size: ${size.width}mm ${size.height}mm;
29
+ margin: ${margins.top}mm ${margins.right}mm ${margins.bottom}mm ${margins.left}mm;
30
+ }
31
+ * { margin: 0; padding: 0; box-sizing: border-box; }
32
+ html { background: #e0e0e0; }
33
+ body {
34
+ font-family: var(--cl-font-family);
35
+ font-size: var(--cl-font-size-base);
36
+ line-height: var(--cl-line-height);
37
+ color: var(--cl-color-text);
38
+ background: #fff;
39
+ width: ${size.width}mm;
40
+ min-height: ${size.height}mm;
41
+ margin: 0 auto;
42
+ padding: ${margins.top}mm ${margins.right}mm ${margins.bottom}mm ${margins.left}mm;
43
+ }
44
+ /* Header: name+title left, contact right */
45
+ .cl-header {
46
+ display: flex;
47
+ justify-content: space-between;
48
+ align-items: flex-start;
49
+ margin-bottom: 8px;
50
+ padding-bottom: 12px;
51
+ border-bottom: 2px solid #000;
52
+ }
53
+ .cl-header-left h1 {
54
+ font-family: "Noto Sans", "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
55
+ font-size: var(--cl-font-size-name);
56
+ font-weight: bold;
57
+ color: var(--cl-color-heading);
58
+ margin-bottom: 2px;
59
+ }
60
+ .cl-header-left .cl-job-title {
61
+ font-family: "Noto Sans", "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
62
+ font-size: var(--cl-font-size-title);
63
+ color: var(--cl-color-text);
64
+ }
65
+ .cl-header-right {
66
+ text-align: right;
67
+ font-size: var(--cl-font-size-small);
68
+ line-height: 1.6;
69
+ }
70
+ .cl-header-right a {
71
+ color: var(--cl-color-link);
72
+ text-decoration: none;
73
+ }
74
+ .cl-header-right a:hover { text-decoration: underline; }
75
+ /* Date */
76
+ .cl-date {
77
+ text-align: right;
78
+ margin-bottom: 20px;
79
+ font-size: var(--cl-font-size-base);
80
+ }
81
+ /* Recipient */
82
+ .cl-recipient {
83
+ margin-bottom: 16px;
84
+ font-size: var(--cl-font-size-base);
85
+ }
86
+ .cl-recipient p { margin-bottom: 4px; }
87
+ /* Subject */
88
+ .cl-subject {
89
+ font-weight: bold;
90
+ margin-bottom: 16px;
91
+ font-size: var(--cl-font-size-base);
92
+ }
93
+ /* Body */
94
+ .cl-body p {
95
+ margin-bottom: 12px;
96
+ text-align: justify;
97
+ font-size: var(--cl-font-size-base);
98
+ }
99
+ .cl-body ul, .cl-body ol {
100
+ margin-left: 18px;
101
+ margin-bottom: 12px;
102
+ }
103
+ .cl-body li { margin-bottom: 4px; }
104
+ /* Closing */
105
+ .cl-closing {
106
+ margin-top: 24px;
107
+ font-size: var(--cl-font-size-base);
108
+ }
109
+ .cl-closing .cl-sign-off { margin-bottom: 24px; }
110
+ .cl-closing .cl-signature { font-weight: normal; }
111
+ /* Markdown inline styles */
112
+ strong, b { font-weight: bold; }
113
+ em, i { font-style: italic; }
114
+ a { color: var(--cl-color-link); text-decoration: underline; }
115
+ @media print {
116
+ html { background: none; }
117
+ body { width: auto; min-height: auto; padding: 0; }
118
+ }
119
+ `;
120
+ }
121
+ /**
122
+ * Render contact info block (right-aligned)
123
+ */
124
+ function renderContactBlock(cv) {
125
+ const lines = [];
126
+ if (cv.metadata.home_address) {
127
+ lines.push(escapeHtml(cv.metadata.home_address));
128
+ }
129
+ if (cv.metadata.phone_number) {
130
+ lines.push(escapeHtml(cv.metadata.phone_number));
131
+ }
132
+ if (cv.metadata.email_address) {
133
+ lines.push(`<a href="mailto:${escapeHtml(cv.metadata.email_address)}">${escapeHtml(cv.metadata.email_address)}</a>`);
134
+ }
135
+ if (cv.metadata.linkedin) {
136
+ const url = cv.metadata.linkedin;
137
+ // Show short display text
138
+ const display = url.replace(/^https?:\/\//, '').replace(/\/$/, '');
139
+ lines.push(`<a href="${escapeHtml(url)}">${escapeHtml(display)}</a>`);
140
+ }
141
+ return lines.join('<br>');
142
+ }
143
+ /**
144
+ * Format the date for the cover letter
145
+ */
146
+ function formatLetterDate(dateStr) {
147
+ if (dateStr)
148
+ return escapeHtml(dateStr);
149
+ // Default to current date
150
+ const now = new Date();
151
+ return now.toLocaleDateString('en-US', {
152
+ year: 'numeric',
153
+ month: 'long',
154
+ day: 'numeric',
155
+ });
156
+ }
157
+ /**
158
+ * Extract body content from sections
159
+ * The cover letter body comes from the first section (typically "Cover Letter" or "Body")
160
+ */
161
+ function extractBodyHtml(cv) {
162
+ // Only use sections valid for cover_letter format
163
+ const sections = cv.sections.filter((s) => isSectionValidForFormat(s.id, 'cover_letter'));
164
+ const parts = [];
165
+ for (const section of sections) {
166
+ if (section.content.type === 'text') {
167
+ parts.push(markdownToHtml(section.content.text));
168
+ }
169
+ else if (section.content.type === 'mixed') {
170
+ for (const part of section.content.parts) {
171
+ if (part.type === 'paragraph') {
172
+ parts.push(markdownToHtml(part.text));
173
+ }
174
+ else if (part.type === 'list') {
175
+ parts.push('<ul>' +
176
+ part.items
177
+ .map((item) => `<li>${markdownToHtml(item)}</li>`)
178
+ .join('') +
179
+ '</ul>');
180
+ }
181
+ }
182
+ }
183
+ else if (section.content.type === 'composite') {
184
+ for (const block of section.content.blocks) {
185
+ if (block.type === 'markdown') {
186
+ parts.push(markdownToHtml(block.content));
187
+ }
188
+ }
189
+ }
190
+ }
191
+ return parts.join('\n');
192
+ }
193
+ /**
194
+ * Generate cover letter HTML
195
+ */
196
+ export function generateCoverLetterHtml(cv, options) {
197
+ const styles = generateStyles(options.paperSize, options.marginMm, options.lineHeight);
198
+ const name = cv.metadata.name;
199
+ const jobTitle = cv.metadata.job_title ?? '';
200
+ const contactHtml = renderContactBlock(cv);
201
+ const dateStr = formatLetterDate(cv.metadata.date);
202
+ const recipientName = cv.metadata.recipient_name ?? 'Hiring Manager';
203
+ const recipientCompany = cv.metadata.recipient_company ?? '';
204
+ const subject = cv.metadata.subject ?? '';
205
+ const bodyHtml = extractBodyHtml(cv);
206
+ const customStylesHtml = options.customStylesheet
207
+ ? `<style class="custom-styles">${options.customStylesheet}</style>`
208
+ : '';
209
+ const headerSourceLineAttr = cv.frontmatterSourceLines
210
+ ? ` data-source-line="${cv.frontmatterSourceLines.startLine}" data-source-end-line="${cv.frontmatterSourceLines.endLine}"`
211
+ : '';
212
+ return `<!DOCTYPE html>
213
+ <html lang="en">
214
+ <head>
215
+ <meta charset="UTF-8">
216
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
217
+ <title>${escapeHtml(name)} - Cover Letter</title>
218
+ <style class="default-styles">${styles}</style>
219
+ ${customStylesHtml}
220
+ </head>
221
+ <body class="cover-letter">
222
+ <header class="cl-header"${headerSourceLineAttr}>
223
+ <div class="cl-header-left">
224
+ <h1>${escapeHtml(name)}</h1>
225
+ ${jobTitle ? `<div class="cl-job-title">${escapeHtml(jobTitle)}</div>` : ''}
226
+ </div>
227
+ <div class="cl-header-right">
228
+ ${contactHtml}
229
+ </div>
230
+ </header>
231
+
232
+ <div class="cl-date">${dateStr}</div>
233
+
234
+ <div class="cl-recipient">
235
+ <p>Dear ${escapeHtml(recipientName)},</p>
236
+ ${recipientCompany ? `<p>${escapeHtml(recipientCompany)}</p>` : ''}
237
+ </div>
238
+
239
+ ${subject ? `<div class="cl-subject">Re: ${escapeHtml(subject)}</div>` : ''}
240
+
241
+ <div class="cl-body">
242
+ ${bodyHtml}
243
+ </div>
244
+
245
+ <div class="cl-closing">
246
+ <p class="cl-sign-off">Sincerely,</p>
247
+ <p class="cl-signature">${escapeHtml(name)}</p>
248
+ </div>
249
+ </body>
250
+ </html>`;
251
+ }
252
+ //# sourceMappingURL=cover_letter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cover_letter.js","sourceRoot":"","sources":["../../src/generator/cover_letter.ts"],"names":[],"mappings":"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"}
@@ -5,10 +5,11 @@
5
5
  import type { Logger } from '../cli/index.js';
6
6
  import type { PaperSize, ResolvedConfig } from '../types/config.js';
7
7
  import type { CVInput } from './common.js';
8
+ import { generateCoverLetterHtml } from './cover_letter.js';
8
9
  import { generateEnHtml } from './resume_en.js';
9
10
  import { generateJaHtml } from './resume_ja.js';
10
11
  import { generateRirekishoHTML } from './rirekisho/index.js';
11
- export { generateEnHtml, generateJaHtml, generateRirekishoHTML };
12
+ export { generateCoverLetterHtml, generateEnHtml, generateJaHtml, generateRirekishoHTML, };
12
13
  export { inlineMarkdownToHtml, markdownToHtml } from './markdown.js';
13
14
  /**
14
15
  * Page size dimensions in mm (portrait orientation for CV)
@@ -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,EAMV,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;AAGjE,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAErE;;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;AA0PD;;GAEG;AACH,wBAAsB,cAAc,CAClC,EAAE,EAAE,OAAO,EACX,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,EAAE,CAAC,CA6FnB;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,EAMV,SAAS,EACT,cAAc,EACf,MAAM,oBAAoB,CAAC;AAM5B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,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,EACL,uBAAuB,EACvB,cAAc,EACd,cAAc,EACd,qBAAqB,GACtB,CAAC;AAGF,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAErE;;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;AA4PD;;GAEG;AACH,wBAAsB,cAAc,CAClC,EAAE,EAAE,OAAO,EACX,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,EAAE,CAAC,CA+GnB;AAED,eAAe,cAAc,CAAC"}
@@ -6,11 +6,12 @@ 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 { generateCoverLetterHtml } from './cover_letter.js';
9
10
  import { generateEnHtml } from './resume_en.js';
10
11
  import { generateJaHtml } from './resume_ja.js';
11
12
  import { generateRirekishoHTML } from './rirekisho/index.js';
12
13
  // Re-export generators
13
- export { generateEnHtml, generateJaHtml, generateRirekishoHTML };
14
+ export { generateCoverLetterHtml, generateEnHtml, generateJaHtml, generateRirekishoHTML, };
14
15
  // Re-export markdown utilities
15
16
  export { inlineMarkdownToHtml, markdownToHtml } from './markdown.js';
16
17
  /**
@@ -211,7 +212,7 @@ function filterAndOrderSections(sections, format, logger, sectionOrder) {
211
212
  * Note: chronologicalOrder is not yet implemented for CV format.
212
213
  * CV format currently uses the order as defined in the markdown file.
213
214
  */
214
- function generateHtml(cv, paperSize, sectionOrder, logger, customStylesheet, marginMm) {
215
+ function generateHtml(cv, paperSize, sectionOrder, logger, customStylesheet, marginMm, lineHeight) {
215
216
  const language = detectLanguage(cv);
216
217
  // Filter and order sections if logger is provided
217
218
  let sections = cv.sections;
@@ -223,6 +224,7 @@ function generateHtml(cv, paperSize, sectionOrder, logger, customStylesheet, mar
223
224
  paperSize,
224
225
  ...(customStylesheet && { customStylesheet }),
225
226
  ...(marginMm && { marginMm }),
227
+ ...(lineHeight && { lineHeight }),
226
228
  };
227
229
  if (language === 'ja') {
228
230
  return generateJaHtml(filteredCv, options);
@@ -296,6 +298,11 @@ export async function generateOutput(cv, config, logger) {
296
298
  }
297
299
  for (const format of formats) {
298
300
  logger.debug(`Generating ${format}...`);
301
+ // Parse line_height from metadata
302
+ const lineHeight = cv.metadata.line_height
303
+ ? parseFloat(cv.metadata.line_height)
304
+ : undefined;
305
+ const validLineHeight = lineHeight && !isNaN(lineHeight) ? lineHeight : undefined;
299
306
  // Determine chronological order
300
307
  // rirekisho always uses 'asc' (oldest first), cv uses config value or defaults to 'desc'
301
308
  const chronologicalOrder = format === 'rirekisho' ? 'asc' : (config.chronologicalOrder ?? 'desc');
@@ -330,11 +337,23 @@ export async function generateOutput(cv, config, logger) {
330
337
  ...(customStylesheet !== undefined && { customStylesheet }),
331
338
  });
332
339
  }
340
+ else if (format === 'cover_letter') {
341
+ html = generateCoverLetterHtml(cv, {
342
+ paperSize: config.paperSize,
343
+ ...(customStylesheet && { customStylesheet }),
344
+ ...(config.marginMm && { marginMm: config.marginMm }),
345
+ ...(validLineHeight && { lineHeight: validLineHeight }),
346
+ });
347
+ }
333
348
  else {
334
- html = generateHtml(cv, config.paperSize, config.sectionOrder, logger, customStylesheet, config.marginMm);
349
+ html = generateHtml(cv, config.paperSize, config.sectionOrder, logger, customStylesheet, config.marginMm, validLineHeight);
335
350
  }
336
351
  const baseName = path.basename(config.output);
337
- const suffix = format === 'rirekisho' ? '_rirekisho' : '_cv';
352
+ const suffixMap = {
353
+ rirekisho: '_rirekisho',
354
+ cover_letter: '_cover_letter',
355
+ };
356
+ const suffix = suffixMap[format] ?? '_cv';
338
357
  for (const outputType of outputTypes) {
339
358
  const ext = outputType === 'pdf' ? '.pdf' : '.html';
340
359
  const outputPath = path.join(outputDir, `${baseName}${suffix}${ext}`);
@@ -342,7 +361,7 @@ export async function generateOutput(cv, config, logger) {
342
361
  fs.writeFileSync(outputPath, html, 'utf-8');
343
362
  }
344
363
  else {
345
- const pdfBuffer = await generatePDF(html, config.paperSize, format === 'rirekisho', config.marginMm);
364
+ const pdfBuffer = await generatePDF(html, config.paperSize, format === 'rirekisho', format !== 'rirekisho' ? config.marginMm : undefined);
346
365
  fs.writeFileSync(outputPath, pdfBuffer);
347
366
  }
348
367
  generatedFiles.push(outputPath);
@@ -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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"resume_en.d.ts","sourceRoot":"","sources":["../../src/generator/resume_en.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAA0B,MAAM,oBAAoB,CAAC;AAC5E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAQ3C,YAAY,EAAE,OAAO,EAAE,CAAC;AAsRxB;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,GAAG,MAAM,CA6CtE"}
1
+ {"version":3,"file":"resume_en.d.ts","sourceRoot":"","sources":["../../src/generator/resume_en.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAA0B,MAAM,oBAAoB,CAAC;AAC5E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAQ3C,YAAY,EAAE,OAAO,EAAE,CAAC;AAgSxB;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,GAAG,MAAM,CAqDtE"}
@@ -6,10 +6,11 @@ import { PAGE_SIZES, enLocale, escapeHtml, renderSectionContent, } from './commo
6
6
  /**
7
7
  * Generate base CSS styles for English CV
8
8
  */
9
- function generateStyles(paperSize, marginMm) {
9
+ function generateStyles(paperSize, marginMm, lineHeight) {
10
10
  const size = PAGE_SIZES[paperSize];
11
11
  // Default to 30mm margins if not specified
12
12
  const margins = marginMm ?? { top: 30, right: 30, bottom: 30, left: 30 };
13
+ const lh = lineHeight ?? 1.4;
13
14
  return `
14
15
  :root {
15
16
  --cv-font-family: "Noto Serif", "Times New Roman", Times, Georgia, serif;
@@ -18,7 +19,7 @@ function generateStyles(paperSize, marginMm) {
18
19
  --cv-font-size-section: 12pt;
19
20
  --cv-font-size-small: 10pt;
20
21
  --cv-font-size-xs: 9pt;
21
- --cv-line-height: 1.4;
22
+ --cv-line-height: ${lh};
22
23
  --cv-color-text: #333;
23
24
  --cv-color-heading: #000;
24
25
  --cv-color-muted: #555;
@@ -145,6 +146,11 @@ function generateStyles(paperSize, marginMm) {
145
146
  color: var(--cv-color-heading);
146
147
  font-size: var(--cv-font-size-small);
147
148
  }
149
+ .role-team {
150
+ font-weight: normal;
151
+ font-style: normal;
152
+ color: var(--cv-color-text);
153
+ }
148
154
  .project {
149
155
  margin-left: 15px;
150
156
  margin-top: 4px;
@@ -271,7 +277,7 @@ function renderContactInfo(cv) {
271
277
  * Generate English HTML CV
272
278
  */
273
279
  export function generateEnHtml(cv, options) {
274
- const styles = generateStyles(options.paperSize, options.marginMm);
280
+ const styles = generateStyles(options.paperSize, options.marginMm, options.lineHeight);
275
281
  const name = cv.metadata.name;
276
282
  const contactHtml = renderContactInfo(cv);
277
283
  // Use sections in the order provided (already filtered and ordered by generator/index.ts)
@@ -292,6 +298,9 @@ export function generateEnHtml(cv, options) {
292
298
  const customStylesHtml = options.customStylesheet
293
299
  ? `<style class="custom-styles">${options.customStylesheet}</style>`
294
300
  : '';
301
+ const headerSourceLineAttr = cv.frontmatterSourceLines
302
+ ? ` data-source-line="${cv.frontmatterSourceLines.startLine}" data-source-end-line="${cv.frontmatterSourceLines.endLine}"`
303
+ : '';
295
304
  return `<!DOCTYPE html>
296
305
  <html lang="en">
297
306
  <head>
@@ -302,7 +311,7 @@ export function generateEnHtml(cv, options) {
302
311
  ${customStylesHtml}
303
312
  </head>
304
313
  <body class="cv cv--en">
305
- <header class="cv-header">
314
+ <header class="cv-header"${headerSourceLineAttr}>
306
315
  <h1 class="cv-name">${escapeHtml(name)}</h1>
307
316
  <div class="contact-info">${contactHtml}</div>
308
317
  </header>
@@ -1 +1 @@
1
- {"version":3,"file":"resume_en.js","sourceRoot":"","sources":["../../src/generator/resume_en.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resume_en.js","sourceRoot":"","sources":["../../src/generator/resume_en.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACL,UAAU,EACV,QAAQ,EACR,UAAU,EACV,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAIrB;;GAEG;AACH,SAAS,cAAc,CACrB,SAAoB,EACpB,QAAsB,EACtB,UAAmB;IAEnB,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACnC,2CAA2C;IAC3C,MAAM,OAAO,GAAG,QAAQ,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IACzE,MAAM,EAAE,GAAG,UAAU,IAAI,GAAG,CAAC;IAE7B,OAAO;;;;;;;;0BAQiB,EAAE;;;;;;;;;;cAUd,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,MAAM;gBACzB,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,KAAK,MAAM,OAAO,CAAC,MAAM,MAAM,OAAO,CAAC,IAAI;;;;;;;;;;;;;;;;eAgBrE,IAAI,CAAC,KAAK;oBACL,IAAI,CAAC,MAAM;;iBAEd,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,KAAK,MAAM,OAAO,CAAC,MAAM,MAAM,OAAO,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0MlF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,EAAW;IACpC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CACR,mBAAmB,UAAU,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,UAAU,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CACzG,CAAC;IACJ,CAAC;IAED,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACzC,KAAK,CAAC,IAAI,CACR,YAAY,UAAU,CAAC,WAAW,CAAC,KAAK,UAAU,CAAC,WAAW,CAAC,MAAM,CACtE,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,EAAW,EAAE,OAAkB;IAC5D,MAAM,MAAM,GAAG,cAAc,CAC3B,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,UAAU,CACnB,CAAC;IACF,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC9B,MAAM,WAAW,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAE1C,0FAA0F;IAC1F,MAAM,YAAY,GAAG,EAAE,CAAC,QAAQ;SAC7B,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACf,6DAA6D;QAC7D,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW;YACxC,CAAC,CAAC,sBAAsB,OAAO,CAAC,WAAW,CAAC,SAAS,2BAA2B,OAAO,CAAC,WAAW,CAAC,OAAO,GAAG;YAC9G,CAAC,CAAC,EAAE,CAAC;QAEP,OAAO;yCAC4B,OAAO,CAAC,EAAE,IAAI,cAAc;QAC7D,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;IAC7B,oBAAoB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC;WACpD,CAAC;IACR,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,wCAAwC;IACxC,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB;QAC/C,CAAC,CAAC,gCAAgC,OAAO,CAAC,gBAAgB,UAAU;QACpE,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,oBAAoB,GAAG,EAAE,CAAC,sBAAsB;QACpD,CAAC,CAAC,sBAAsB,EAAE,CAAC,sBAAsB,CAAC,SAAS,2BAA2B,EAAE,CAAC,sBAAsB,CAAC,OAAO,GAAG;QAC1H,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;;;;;WAKE,UAAU,CAAC,IAAI,CAAC;kCACO,MAAM;IACpC,gBAAgB;;;6BAGS,oBAAoB;0BACvB,UAAU,CAAC,IAAI,CAAC;gCACV,WAAW;;;EAGzC,YAAY;;;QAGN,CAAC;AACT,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"resume_ja.d.ts","sourceRoot":"","sources":["../../src/generator/resume_ja.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAA0B,MAAM,oBAAoB,CAAC;AAG5E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAQ3C,YAAY,EAAE,OAAO,EAAE,CAAC;AAsQxB;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,GAAG,MAAM,CAkDtE"}
1
+ {"version":3,"file":"resume_ja.d.ts","sourceRoot":"","sources":["../../src/generator/resume_ja.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAA0B,MAAM,oBAAoB,CAAC;AAG5E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAQ3C,YAAY,EAAE,OAAO,EAAE,CAAC;AA+QxB;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,GAAG,MAAM,CAsDtE"}
@@ -14,10 +14,11 @@ function getCurrentDateJa() {
14
14
  /**
15
15
  * Generate base CSS styles for Japanese CV
16
16
  */
17
- function generateStyles(paperSize, marginMm) {
17
+ function generateStyles(paperSize, marginMm, lineHeight) {
18
18
  const size = PAGE_SIZES[paperSize];
19
19
  // Default to 30mm margins if not specified
20
20
  const margins = marginMm ?? { top: 30, right: 30, bottom: 30, left: 30 };
21
+ const lh = lineHeight ?? 1.6;
21
22
  return `
22
23
  :root {
23
24
  --cv-font-family: "Noto Serif JP", "Hiragino Mincho Pro", "Yu Mincho", "MS Mincho", serif;
@@ -25,7 +26,7 @@ function generateStyles(paperSize, marginMm) {
25
26
  --cv-font-size-title: 18pt;
26
27
  --cv-font-size-section: 12pt;
27
28
  --cv-font-size-small: 9pt;
28
- --cv-line-height: 1.6;
29
+ --cv-line-height: ${lh};
29
30
  --cv-color-text: #333;
30
31
  --cv-color-heading: #000;
31
32
  --cv-color-border: #333;
@@ -177,6 +178,10 @@ function generateStyles(paperSize, marginMm) {
177
178
  color: var(--cv-color-heading);
178
179
  font-size: var(--cv-font-size-small);
179
180
  }
181
+ .role-team {
182
+ font-weight: normal;
183
+ color: var(--cv-color-text);
184
+ }
180
185
  .entry-location {
181
186
  color: var(--cv-color-text);
182
187
  font-size: var(--cv-font-size-small);
@@ -262,7 +267,7 @@ function filterSections(sections) {
262
267
  * Generate Japanese HTML CV
263
268
  */
264
269
  export function generateJaHtml(cv, options) {
265
- const styles = generateStyles(options.paperSize, options.marginMm);
270
+ const styles = generateStyles(options.paperSize, options.marginMm, options.lineHeight);
266
271
  const name = cv.metadata.name_ja ?? cv.metadata.name;
267
272
  const currentDate = getCurrentDateJa();
268
273
  // Filter sections (order is preserved from input)
@@ -294,7 +299,7 @@ export function generateJaHtml(cv, options) {
294
299
  ${customStylesHtml}
295
300
  </head>
296
301
  <body class="cv cv--ja">
297
- <header class="cv-header">
302
+ <header class="cv-header"${cv.frontmatterSourceLines ? ` data-source-line="${cv.frontmatterSourceLines.startLine}" data-source-end-line="${cv.frontmatterSourceLines.endLine}"` : ''}>
298
303
  <div class="document-title">職務経歴書</div>
299
304
  <div class="header-info">
300
305
  <div class="header-name">${escapeHtml(name)}</div>
@@ -1 +1 @@
1
- {"version":3,"file":"resume_ja.js","sourceRoot":"","sources":["../../src/generator/resume_ja.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resume_ja.js","sourceRoot":"","sources":["../../src/generator/resume_ja.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,11 @@ export interface ParsedCV {
12
12
  readonly metadata: CVMetadata;
13
13
  readonly sections: readonly ParsedSection[];
14
14
  readonly rawContent: string;
15
+ /** Source line range of the frontmatter block (for sync scroll) */
16
+ readonly frontmatterSourceLines?: {
17
+ readonly startLine: number;
18
+ readonly endLine: number;
19
+ };
15
20
  }
16
21
  /**
17
22
  * Parse markdown content
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,MAAM,EACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAQL,KAAK,aAAa,EAOnB,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AA4/BD;;GAEG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,CAqChC;AAED,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,MAAM,EACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAQL,KAAK,aAAa,EAOnB,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,mEAAmE;IACnE,QAAQ,CAAC,sBAAsB,CAAC,EAAE;QAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AA4/BD;;GAEG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,CAiDhC;AAED,eAAe,aAAa,CAAC"}
@@ -882,11 +882,21 @@ export function parseMarkdown(markdown) {
882
882
  }
883
883
  // Parse sections
884
884
  const sections = parseSections(tree);
885
- return success({
885
+ // Extract frontmatter source line range from the YAML AST node
886
+ const yamlNode = tree.children.find((node) => node.type === 'yaml');
887
+ const frontmatterSourceLines = yamlNode?.position
888
+ ? {
889
+ startLine: yamlNode.position.start.line - 1,
890
+ endLine: yamlNode.position.end.line - 1,
891
+ }
892
+ : undefined;
893
+ const result = {
886
894
  metadata,
887
895
  sections,
888
896
  rawContent: markdown,
889
- });
897
+ ...(frontmatterSourceLines && { frontmatterSourceLines }),
898
+ };
899
+ return success(result);
890
900
  }
891
901
  catch (e) {
892
902
  const msg = e instanceof Error ? e.message : 'Unknown error';