md2cv 1.0.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.
- package/CHANGELOG.md +19 -0
- package/LICENSE +674 -0
- package/README.md +219 -0
- package/dist/bin.d.ts +6 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +10 -0
- package/dist/bin.js.map +1 -0
- package/dist/cli/index.d.ts +50 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +278 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/generator/index.d.ts +36 -0
- package/dist/generator/index.d.ts.map +1 -0
- package/dist/generator/index.js +302 -0
- package/dist/generator/index.js.map +1 -0
- package/dist/generator/resume_en.d.ts +22 -0
- package/dist/generator/resume_en.d.ts.map +1 -0
- package/dist/generator/resume_en.js +524 -0
- package/dist/generator/resume_en.js.map +1 -0
- package/dist/generator/resume_ja.d.ts +22 -0
- package/dist/generator/resume_ja.d.ts.map +1 -0
- package/dist/generator/resume_ja.js +440 -0
- package/dist/generator/resume_ja.js.map +1 -0
- package/dist/generator/rirekisho/components.d.ts +83 -0
- package/dist/generator/rirekisho/components.d.ts.map +1 -0
- package/dist/generator/rirekisho/components.js +405 -0
- package/dist/generator/rirekisho/components.js.map +1 -0
- package/dist/generator/rirekisho/data.d.ts +18 -0
- package/dist/generator/rirekisho/data.d.ts.map +1 -0
- package/dist/generator/rirekisho/data.js +274 -0
- package/dist/generator/rirekisho/data.js.map +1 -0
- package/dist/generator/rirekisho/index.d.ts +20 -0
- package/dist/generator/rirekisho/index.d.ts.map +1 -0
- package/dist/generator/rirekisho/index.js +67 -0
- package/dist/generator/rirekisho/index.js.map +1 -0
- package/dist/generator/rirekisho/layout.d.ts +20 -0
- package/dist/generator/rirekisho/layout.d.ts.map +1 -0
- package/dist/generator/rirekisho/layout.js +354 -0
- package/dist/generator/rirekisho/layout.js.map +1 -0
- package/dist/generator/rirekisho/styles.d.ts +9 -0
- package/dist/generator/rirekisho/styles.d.ts.map +1 -0
- package/dist/generator/rirekisho/styles.js +362 -0
- package/dist/generator/rirekisho/styles.js.map +1 -0
- package/dist/generator/rirekisho/types.d.ts +163 -0
- package/dist/generator/rirekisho/types.d.ts.map +1 -0
- package/dist/generator/rirekisho/types.js +80 -0
- package/dist/generator/rirekisho/types.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/parser/index.d.ts +21 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +639 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/types/config.d.ts +64 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +5 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/errors.d.ts +78 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +146 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +9 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/metadata.d.ts +55 -0
- package/dist/types/metadata.d.ts.map +1 -0
- package/dist/types/metadata.js +136 -0
- package/dist/types/metadata.js.map +1 -0
- package/dist/types/result.d.ts +50 -0
- package/dist/types/result.d.ts.map +1 -0
- package/dist/types/result.js +74 -0
- package/dist/types/result.js.map +1 -0
- package/dist/types/sections.d.ts +168 -0
- package/dist/types/sections.d.ts.map +1 -0
- package/dist/types/sections.js +122 -0
- package/dist/types/sections.js.map +1 -0
- package/dist/validator/index.d.ts +20 -0
- package/dist/validator/index.d.ts.map +1 -0
- package/dist/validator/index.js +67 -0
- package/dist/validator/index.js.map +1 -0
- package/examples/example-cv-en.md +77 -0
- package/examples/example-cv-ja.md +116 -0
- package/examples/sample-photo.png +0 -0
- package/package.json +93 -0
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CSS styles for Rirekisho (履歴書)
|
|
3
|
+
*/
|
|
4
|
+
// ============================================================================
|
|
5
|
+
// Utility Functions
|
|
6
|
+
// ============================================================================
|
|
7
|
+
function mm(value) {
|
|
8
|
+
return `${value}mm`;
|
|
9
|
+
}
|
|
10
|
+
function pt(value) {
|
|
11
|
+
return `${value}pt`;
|
|
12
|
+
}
|
|
13
|
+
// ============================================================================
|
|
14
|
+
// CSS Generation
|
|
15
|
+
// ============================================================================
|
|
16
|
+
/**
|
|
17
|
+
* Generate complete CSS for the rirekisho document
|
|
18
|
+
*/
|
|
19
|
+
export function generateCSS(layout) {
|
|
20
|
+
const { paper, scale, margin, marginBottom, centerGap, pageWidth, pageHeight, footerHeight, } = layout;
|
|
21
|
+
// Content area height (excluding footer)
|
|
22
|
+
const contentHeight = pageHeight - footerHeight;
|
|
23
|
+
return `
|
|
24
|
+
/* Reset & Base */
|
|
25
|
+
@page {
|
|
26
|
+
size: ${mm(paper.width)} ${mm(paper.height)} landscape;
|
|
27
|
+
margin: 0;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
* {
|
|
31
|
+
margin: 0;
|
|
32
|
+
padding: 0;
|
|
33
|
+
box-sizing: border-box;
|
|
34
|
+
-webkit-print-color-adjust: exact;
|
|
35
|
+
print-color-adjust: exact;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
body {
|
|
39
|
+
font-family: "Noto Serif JP", "Yu Mincho", "MS Mincho", serif;
|
|
40
|
+
font-size: ${pt(10 * scale)};
|
|
41
|
+
color: #000;
|
|
42
|
+
background: #fff;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/* Layout */
|
|
46
|
+
.spread {
|
|
47
|
+
width: ${mm(paper.width)};
|
|
48
|
+
height: ${mm(paper.height)};
|
|
49
|
+
display: flex;
|
|
50
|
+
flex-direction: column;
|
|
51
|
+
padding: ${mm(margin)} ${mm(margin)} ${mm(marginBottom)} ${mm(margin)};
|
|
52
|
+
overflow: hidden;
|
|
53
|
+
background: #fff;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.spread-content {
|
|
57
|
+
display: flex;
|
|
58
|
+
flex: 1;
|
|
59
|
+
height: ${mm(contentHeight)};
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.spread-footer {
|
|
63
|
+
height: ${mm(footerHeight)};
|
|
64
|
+
display: flex;
|
|
65
|
+
align-items: center;
|
|
66
|
+
justify-content: flex-start;
|
|
67
|
+
font-size: ${pt(6 * scale)};
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.page {
|
|
71
|
+
width: ${mm(pageWidth)};
|
|
72
|
+
height: ${mm(contentHeight)};
|
|
73
|
+
overflow: hidden;
|
|
74
|
+
display: flex;
|
|
75
|
+
flex-direction: column;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.page--left {
|
|
79
|
+
margin-right: ${mm(centerGap / 2)};
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.page--right {
|
|
83
|
+
margin-left: ${mm(centerGap / 2)};
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/* History container on left page - fills remaining space */
|
|
87
|
+
.history-container {
|
|
88
|
+
flex: 1;
|
|
89
|
+
display: flex;
|
|
90
|
+
flex-direction: column;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.history-container .table-wrapper {
|
|
94
|
+
flex: 1;
|
|
95
|
+
display: flex;
|
|
96
|
+
flex-direction: column;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.history-container table {
|
|
100
|
+
flex: 1;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/* Typography */
|
|
104
|
+
.text--title {
|
|
105
|
+
font-size: ${pt(22 * scale)};
|
|
106
|
+
letter-spacing: ${mm(6 * scale)};
|
|
107
|
+
font-weight: bold;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.text--name {
|
|
111
|
+
font-size: ${pt(16 * scale)};
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.text--address {
|
|
115
|
+
font-size: ${pt(12 * scale)};
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.text--normal {
|
|
119
|
+
font-size: ${pt(10 * scale)};
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.text--small {
|
|
123
|
+
font-size: ${pt(8 * scale)};
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.text--xs {
|
|
127
|
+
font-size: ${pt(7 * scale)};
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.text--xxs {
|
|
131
|
+
font-size: ${pt(6 * scale)};
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.text--bold {
|
|
135
|
+
font-weight: bold;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/* Alignment */
|
|
139
|
+
.align--center {
|
|
140
|
+
text-align: center;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.align--left {
|
|
144
|
+
text-align: left;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.align--right {
|
|
148
|
+
text-align: right;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.valign--top {
|
|
152
|
+
vertical-align: top;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
.valign--middle {
|
|
156
|
+
vertical-align: middle;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/* Borders */
|
|
160
|
+
.border {
|
|
161
|
+
border: 0.5pt solid #000;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/* Spacing */
|
|
165
|
+
.pad {
|
|
166
|
+
padding: ${mm(1 * scale)} ${mm(2 * scale)};
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.pad--sm {
|
|
170
|
+
padding: ${mm(1 * scale)};
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.mt--sm {
|
|
174
|
+
margin-top: ${mm(layout.tableMargin)};
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/* Flex utilities */
|
|
178
|
+
.flex {
|
|
179
|
+
display: flex;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
.flex--col {
|
|
183
|
+
flex-direction: column;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
.flex--1 {
|
|
187
|
+
flex: 1;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
.flex--center {
|
|
191
|
+
align-items: center;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.flex--start {
|
|
195
|
+
align-items: flex-start;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
.flex--between {
|
|
199
|
+
justify-content: space-between;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
.flex--end {
|
|
203
|
+
align-items: flex-end;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/* Tables */
|
|
207
|
+
.table-wrapper {
|
|
208
|
+
display: block;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
table {
|
|
212
|
+
width: 100%;
|
|
213
|
+
border-collapse: collapse;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
td, th {
|
|
217
|
+
border: 0.5pt solid #000;
|
|
218
|
+
padding: 0;
|
|
219
|
+
vertical-align: middle;
|
|
220
|
+
font-weight: normal;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
.col--year {
|
|
224
|
+
width: ${mm(layout.yearColumnWidth)};
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
.col--month {
|
|
228
|
+
width: ${mm(layout.monthColumnWidth)};
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
/* Cell component */
|
|
232
|
+
.cell {
|
|
233
|
+
display: flex;
|
|
234
|
+
align-items: center;
|
|
235
|
+
border: 0.5pt solid #000;
|
|
236
|
+
min-height: ${mm(7 * scale)};
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
.cell__label {
|
|
240
|
+
width: ${mm(14 * scale)};
|
|
241
|
+
font-size: ${pt(7 * scale)};
|
|
242
|
+
text-align: center;
|
|
243
|
+
flex-shrink: 0;
|
|
244
|
+
align-self: stretch;
|
|
245
|
+
display: flex;
|
|
246
|
+
align-items: center;
|
|
247
|
+
justify-content: center;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
.cell__value {
|
|
251
|
+
flex: 1;
|
|
252
|
+
padding: ${mm(1 * scale)} ${mm(2 * scale)};
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
/* Photo box */
|
|
256
|
+
.photo-box {
|
|
257
|
+
width: ${mm(30 * scale)};
|
|
258
|
+
height: ${mm(40 * scale)};
|
|
259
|
+
border: 0.5pt dashed #000;
|
|
260
|
+
display: flex;
|
|
261
|
+
flex-direction: column;
|
|
262
|
+
align-items: center;
|
|
263
|
+
justify-content: center;
|
|
264
|
+
font-size: ${pt(6 * scale)};
|
|
265
|
+
line-height: 1.4;
|
|
266
|
+
text-align: center;
|
|
267
|
+
padding-top: ${mm(2 * scale)};
|
|
268
|
+
overflow: hidden;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
/* Photo box with image */
|
|
272
|
+
.photo-box--with-image {
|
|
273
|
+
padding: 0;
|
|
274
|
+
border: 0.5pt solid #000;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
.photo-box--with-image img {
|
|
278
|
+
display: block;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
/* Section boxes */
|
|
282
|
+
.section-box {
|
|
283
|
+
border: 0.5pt solid #000;
|
|
284
|
+
display: flex;
|
|
285
|
+
flex-direction: column;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
.section-box__header {
|
|
289
|
+
padding: ${mm(1 * scale)};
|
|
290
|
+
border-bottom: 0.5pt solid #000;
|
|
291
|
+
font-size: ${pt(10 * scale)};
|
|
292
|
+
flex-shrink: 0;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
.section-box__content {
|
|
296
|
+
padding: ${mm(2 * scale)};
|
|
297
|
+
flex: 1;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
/* Motivation container - 60% of flexible space */
|
|
301
|
+
.motivation-container {
|
|
302
|
+
flex: 6;
|
|
303
|
+
display: flex;
|
|
304
|
+
flex-direction: column;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
.motivation-container .section-box {
|
|
308
|
+
flex: 1;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
/* Notes container - 40% of flexible space to align with left page */
|
|
312
|
+
.notes-container {
|
|
313
|
+
flex: 4;
|
|
314
|
+
display: flex;
|
|
315
|
+
flex-direction: column;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
.notes-container .section-box {
|
|
319
|
+
flex: 1;
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
/* Print & Screen media */
|
|
323
|
+
@media print {
|
|
324
|
+
html, body {
|
|
325
|
+
width: ${mm(paper.width)};
|
|
326
|
+
height: ${mm(paper.height)};
|
|
327
|
+
overflow: hidden !important;
|
|
328
|
+
max-height: ${mm(paper.height)} !important;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
* {
|
|
332
|
+
page-break-inside: avoid;
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
.spread {
|
|
336
|
+
page-break-after: always;
|
|
337
|
+
page-break-before: avoid;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
@media screen {
|
|
342
|
+
html {
|
|
343
|
+
height: 100%;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
body {
|
|
347
|
+
background: #888;
|
|
348
|
+
min-height: 100%;
|
|
349
|
+
display: flex;
|
|
350
|
+
align-items: center;
|
|
351
|
+
justify-content: center;
|
|
352
|
+
padding: 20mm;
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
.spread {
|
|
356
|
+
box-shadow: 0 2mm 12mm rgba(0, 0, 0, 0.5);
|
|
357
|
+
flex-shrink: 0;
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
`;
|
|
361
|
+
}
|
|
362
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/generator/rirekisho/styles.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for Rirekisho (履歴書) generator
|
|
3
|
+
* Based on 厚生労働省 履歴書様式例 format
|
|
4
|
+
*/
|
|
5
|
+
import type { ChronologicalOrder, PaperSize } from '../../types/config.js';
|
|
6
|
+
import type { CVMetadata } from '../../types/metadata.js';
|
|
7
|
+
import type { ParsedSection } from '../../types/sections.js';
|
|
8
|
+
export type { PaperSize } from '../../types/config.js';
|
|
9
|
+
/** Options for Rirekisho generation */
|
|
10
|
+
export interface RirekishoOptions {
|
|
11
|
+
readonly paperSize: PaperSize;
|
|
12
|
+
readonly chronologicalOrder?: ChronologicalOrder;
|
|
13
|
+
readonly hideMotivation?: boolean;
|
|
14
|
+
/** Base64 encoded photo data URI (e.g., "data:image/png;base64,...") */
|
|
15
|
+
readonly photoDataUri?: string | undefined;
|
|
16
|
+
}
|
|
17
|
+
/** Input data for the Rirekisho generator */
|
|
18
|
+
export interface RirekishoInput {
|
|
19
|
+
readonly metadata: CVMetadata;
|
|
20
|
+
readonly sections: readonly ParsedSection[];
|
|
21
|
+
}
|
|
22
|
+
/** Paper dimensions in mm (landscape orientation) */
|
|
23
|
+
export interface PaperDimensions {
|
|
24
|
+
readonly width: number;
|
|
25
|
+
readonly height: number;
|
|
26
|
+
}
|
|
27
|
+
/** Paper sizes in mm (landscape orientation: width > height) */
|
|
28
|
+
export declare const PAPER_SIZES: Record<PaperSize, PaperDimensions>;
|
|
29
|
+
/** Scale factors relative to A3 base size */
|
|
30
|
+
export declare const SCALE_FACTORS: Record<PaperSize, number>;
|
|
31
|
+
/** Minimum row counts per paper size */
|
|
32
|
+
export interface MinRowCounts {
|
|
33
|
+
readonly rightHistory: number;
|
|
34
|
+
readonly license: number;
|
|
35
|
+
}
|
|
36
|
+
/** Minimum row counts for each paper size */
|
|
37
|
+
export declare const MIN_ROW_COUNTS: Record<PaperSize, MinRowCounts>;
|
|
38
|
+
/** Preferred row counts per paper size (used when space allows) */
|
|
39
|
+
export interface PreferredRowCounts {
|
|
40
|
+
readonly rightHistory: number;
|
|
41
|
+
readonly license: number;
|
|
42
|
+
}
|
|
43
|
+
/** Preferred row counts for each paper size */
|
|
44
|
+
export declare const PREFERRED_ROW_COUNTS: Record<PaperSize, PreferredRowCounts>;
|
|
45
|
+
/** Section height constraints for right page (at scale 1.0) */
|
|
46
|
+
export declare const SECTION_HEIGHTS: {
|
|
47
|
+
/** Minimum height for motivation section (mm) */
|
|
48
|
+
readonly motivationMin: 25;
|
|
49
|
+
/** Minimum height for notes section (mm) */
|
|
50
|
+
readonly notesMin: 20;
|
|
51
|
+
/** Section header height (mm) */
|
|
52
|
+
readonly sectionHeader: 8;
|
|
53
|
+
};
|
|
54
|
+
/** Row height constraints in mm (at scale 1.0) */
|
|
55
|
+
export declare const ROW_HEIGHT: {
|
|
56
|
+
readonly default: 9;
|
|
57
|
+
readonly min: 5;
|
|
58
|
+
readonly max: 11;
|
|
59
|
+
};
|
|
60
|
+
/** Font size constraints in pt (at scale 1.0) */
|
|
61
|
+
export declare const FONT_SIZE: {
|
|
62
|
+
readonly default: 11;
|
|
63
|
+
readonly min: 6;
|
|
64
|
+
};
|
|
65
|
+
/** Fixed layout dimensions in mm (at scale 1.0) */
|
|
66
|
+
export declare const FIXED_DIMENSIONS: {
|
|
67
|
+
readonly margin: 25;
|
|
68
|
+
readonly marginBottom: 20;
|
|
69
|
+
readonly centerGap: 12;
|
|
70
|
+
readonly photoWidth: 62;
|
|
71
|
+
readonly contactWidth: 45;
|
|
72
|
+
readonly genderWidth: 33;
|
|
73
|
+
readonly headerHeight: 11;
|
|
74
|
+
readonly nameRowHeight: 8;
|
|
75
|
+
readonly nameMainHeight: 25;
|
|
76
|
+
readonly birthGenderHeight: 8.5;
|
|
77
|
+
readonly addressRowHeight: 21;
|
|
78
|
+
readonly addressFuriganaHeight: 7.2;
|
|
79
|
+
readonly footerHeight: 4;
|
|
80
|
+
readonly tableMargin: 3;
|
|
81
|
+
readonly sectionHeaderHeight: 8;
|
|
82
|
+
readonly yearColumnWidth: 18.75;
|
|
83
|
+
readonly monthColumnWidth: 10.5;
|
|
84
|
+
};
|
|
85
|
+
/** Calculated layout dimensions */
|
|
86
|
+
export interface LayoutDimensions {
|
|
87
|
+
readonly paper: PaperDimensions;
|
|
88
|
+
readonly scale: number;
|
|
89
|
+
readonly margin: number;
|
|
90
|
+
readonly marginBottom: number;
|
|
91
|
+
readonly centerGap: number;
|
|
92
|
+
readonly pageWidth: number;
|
|
93
|
+
readonly pageHeight: number;
|
|
94
|
+
readonly photoWidth: number;
|
|
95
|
+
readonly contactWidth: number;
|
|
96
|
+
readonly genderWidth: number;
|
|
97
|
+
readonly headerHeight: number;
|
|
98
|
+
readonly nameRowHeight: number;
|
|
99
|
+
readonly nameMainHeight: number;
|
|
100
|
+
readonly birthGenderHeight: number;
|
|
101
|
+
readonly addressRowHeight: number;
|
|
102
|
+
readonly addressFuriganaHeight: number;
|
|
103
|
+
readonly tableRowHeight: number;
|
|
104
|
+
readonly tableFontSize: number;
|
|
105
|
+
readonly tableMargin: number;
|
|
106
|
+
readonly yearColumnWidth: number;
|
|
107
|
+
readonly monthColumnWidth: number;
|
|
108
|
+
readonly leftHistoryRows: number;
|
|
109
|
+
readonly rightHistoryRows: number;
|
|
110
|
+
readonly licenseRows: number;
|
|
111
|
+
readonly leftTableHeight: number;
|
|
112
|
+
readonly rightHistoryTableHeight: number;
|
|
113
|
+
readonly licenseTableHeight: number;
|
|
114
|
+
readonly motivationMinHeight: number;
|
|
115
|
+
readonly notesMinHeight: number;
|
|
116
|
+
readonly footerHeight: number;
|
|
117
|
+
readonly hideMotivation: boolean;
|
|
118
|
+
readonly overflows: boolean;
|
|
119
|
+
}
|
|
120
|
+
/** Data counts for layout calculation */
|
|
121
|
+
export interface DataCounts {
|
|
122
|
+
readonly historyDataRows: number;
|
|
123
|
+
readonly licenseDataRows: number;
|
|
124
|
+
}
|
|
125
|
+
/** Layout calculation input */
|
|
126
|
+
export interface LayoutInput {
|
|
127
|
+
readonly paperSize: PaperSize;
|
|
128
|
+
readonly hideMotivation: boolean;
|
|
129
|
+
readonly dataCounts: DataCounts;
|
|
130
|
+
}
|
|
131
|
+
/** Formatted date of birth */
|
|
132
|
+
export interface FormattedDOB {
|
|
133
|
+
readonly year: string;
|
|
134
|
+
readonly month: string;
|
|
135
|
+
readonly day: string;
|
|
136
|
+
}
|
|
137
|
+
/** Personal information extracted from metadata */
|
|
138
|
+
export interface PersonalInfo {
|
|
139
|
+
readonly name: string;
|
|
140
|
+
readonly furigana: string;
|
|
141
|
+
readonly phone: string;
|
|
142
|
+
readonly phone2: string;
|
|
143
|
+
readonly address: string;
|
|
144
|
+
readonly addressFurigana: string;
|
|
145
|
+
readonly postCode: string;
|
|
146
|
+
readonly address2: string;
|
|
147
|
+
readonly address2Furigana: string;
|
|
148
|
+
readonly postCode2: string;
|
|
149
|
+
readonly email: string;
|
|
150
|
+
readonly email2: string;
|
|
151
|
+
readonly gender: string;
|
|
152
|
+
readonly dob: FormattedDOB | null;
|
|
153
|
+
readonly age: number | null;
|
|
154
|
+
}
|
|
155
|
+
/** History row data [year, month, content] */
|
|
156
|
+
export type HistoryRow = readonly [string, string, string];
|
|
157
|
+
/** Today's date for display */
|
|
158
|
+
export interface TodayDate {
|
|
159
|
+
readonly year: number;
|
|
160
|
+
readonly month: number;
|
|
161
|
+
readonly day: number;
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/generator/rirekisho/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for Rirekisho (履歴書) generator
|
|
3
|
+
* Based on 厚生労働省 履歴書様式例 format
|
|
4
|
+
*/
|
|
5
|
+
/** Paper sizes in mm (landscape orientation: width > height) */
|
|
6
|
+
export const PAPER_SIZES = {
|
|
7
|
+
a3: { width: 420, height: 297 },
|
|
8
|
+
a4: { width: 297, height: 210 },
|
|
9
|
+
b4: { width: 364, height: 257 },
|
|
10
|
+
b5: { width: 257, height: 182 },
|
|
11
|
+
letter: { width: 279.4, height: 215.9 },
|
|
12
|
+
};
|
|
13
|
+
/** Scale factors relative to A3 base size */
|
|
14
|
+
export const SCALE_FACTORS = {
|
|
15
|
+
a3: 1.0,
|
|
16
|
+
a4: 0.71,
|
|
17
|
+
b4: 0.86,
|
|
18
|
+
b5: 0.61,
|
|
19
|
+
letter: 0.67,
|
|
20
|
+
};
|
|
21
|
+
/** Minimum row counts for each paper size */
|
|
22
|
+
export const MIN_ROW_COUNTS = {
|
|
23
|
+
a3: { rightHistory: 1, license: 1 },
|
|
24
|
+
a4: { rightHistory: 1, license: 1 },
|
|
25
|
+
b4: { rightHistory: 1, license: 1 },
|
|
26
|
+
b5: { rightHistory: 1, license: 1 },
|
|
27
|
+
letter: { rightHistory: 1, license: 1 },
|
|
28
|
+
};
|
|
29
|
+
/** Preferred row counts for each paper size */
|
|
30
|
+
export const PREFERRED_ROW_COUNTS = {
|
|
31
|
+
a3: { rightHistory: 9, license: 7 },
|
|
32
|
+
a4: { rightHistory: 7, license: 6 },
|
|
33
|
+
b4: { rightHistory: 8, license: 7 },
|
|
34
|
+
b5: { rightHistory: 6, license: 5 },
|
|
35
|
+
letter: { rightHistory: 7, license: 6 },
|
|
36
|
+
};
|
|
37
|
+
/** Section height constraints for right page (at scale 1.0) */
|
|
38
|
+
export const SECTION_HEIGHTS = {
|
|
39
|
+
/** Minimum height for motivation section (mm) */
|
|
40
|
+
motivationMin: 25,
|
|
41
|
+
/** Minimum height for notes section (mm) */
|
|
42
|
+
notesMin: 20,
|
|
43
|
+
/** Section header height (mm) */
|
|
44
|
+
sectionHeader: 8,
|
|
45
|
+
};
|
|
46
|
+
// ============================================================================
|
|
47
|
+
// Layout Configuration
|
|
48
|
+
// ============================================================================
|
|
49
|
+
/** Row height constraints in mm (at scale 1.0) */
|
|
50
|
+
export const ROW_HEIGHT = {
|
|
51
|
+
default: 9.0,
|
|
52
|
+
min: 5.0,
|
|
53
|
+
max: 11.0,
|
|
54
|
+
};
|
|
55
|
+
/** Font size constraints in pt (at scale 1.0) */
|
|
56
|
+
export const FONT_SIZE = {
|
|
57
|
+
default: 11,
|
|
58
|
+
min: 6,
|
|
59
|
+
};
|
|
60
|
+
/** Fixed layout dimensions in mm (at scale 1.0) */
|
|
61
|
+
export const FIXED_DIMENSIONS = {
|
|
62
|
+
margin: 25,
|
|
63
|
+
marginBottom: 20,
|
|
64
|
+
centerGap: 12,
|
|
65
|
+
photoWidth: 62,
|
|
66
|
+
contactWidth: 45,
|
|
67
|
+
genderWidth: 33,
|
|
68
|
+
headerHeight: 11, // title row + margin
|
|
69
|
+
nameRowHeight: 8,
|
|
70
|
+
nameMainHeight: 25,
|
|
71
|
+
birthGenderHeight: 8.5,
|
|
72
|
+
addressRowHeight: 21,
|
|
73
|
+
addressFuriganaHeight: 7.2,
|
|
74
|
+
footerHeight: 4,
|
|
75
|
+
tableMargin: 3,
|
|
76
|
+
sectionHeaderHeight: 8,
|
|
77
|
+
yearColumnWidth: 18.75,
|
|
78
|
+
monthColumnWidth: 10.5,
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/generator/rirekisho/types.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* md2cv - CV/Resume Generator
|
|
3
|
+
* Transforms Markdown CVs into PDF and HTML
|
|
4
|
+
*/
|
|
5
|
+
export { createCLIProgram, main } from './cli/index.js';
|
|
6
|
+
export * from './generator/index.js';
|
|
7
|
+
export * from './parser/index.js';
|
|
8
|
+
export * from './types/index.js';
|
|
9
|
+
export * from './validator/index.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACxD,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* md2cv - CV/Resume Generator
|
|
3
|
+
* Transforms Markdown CVs into PDF and HTML
|
|
4
|
+
*/
|
|
5
|
+
export { createCLIProgram, main } from './cli/index.js';
|
|
6
|
+
export * from './generator/index.js';
|
|
7
|
+
export * from './parser/index.js';
|
|
8
|
+
export * from './types/index.js';
|
|
9
|
+
export * from './validator/index.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACxD,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Markdown Parser module
|
|
3
|
+
* Parses Markdown CV files into structured data
|
|
4
|
+
*/
|
|
5
|
+
import { type ParseError, type Result } from '../types/index.js';
|
|
6
|
+
import { type CVMetadata } from '../types/metadata.js';
|
|
7
|
+
import { type ParsedSection } from '../types/sections.js';
|
|
8
|
+
/**
|
|
9
|
+
* Parsed CV structure
|
|
10
|
+
*/
|
|
11
|
+
export interface ParsedCV {
|
|
12
|
+
readonly metadata: CVMetadata;
|
|
13
|
+
readonly sections: readonly ParsedSection[];
|
|
14
|
+
readonly rawContent: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Parse markdown content
|
|
18
|
+
*/
|
|
19
|
+
export declare function parseMarkdown(markdown: string): Result<ParsedCV, ParseError[]>;
|
|
20
|
+
export default parseMarkdown;
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +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,EAOL,KAAK,aAAa,EAMnB,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;AAmpBD;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,CA+B9E;AAED,eAAe,aAAa,CAAC"}
|