md2cv 1.1.1 → 1.4.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 (93) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.ja.md +69 -1
  3. package/README.md +77 -11
  4. package/dist/cli/index.d.ts +17 -1
  5. package/dist/cli/index.d.ts.map +1 -1
  6. package/dist/cli/index.js +140 -34
  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 +65 -41
  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 -319
  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 +18 -260
  23. package/dist/generator/resume_ja.js.map +1 -1
  24. package/dist/generator/rirekisho/components.d.ts.map +1 -1
  25. package/dist/generator/rirekisho/components.js +1 -1
  26. package/dist/generator/rirekisho/components.js.map +1 -1
  27. package/dist/generator/rirekisho/index.js.map +1 -1
  28. package/dist/generator/rirekisho/layout.d.ts.map +1 -1
  29. package/dist/generator/rirekisho/layout.js +16 -7
  30. package/dist/generator/rirekisho/layout.js.map +1 -1
  31. package/dist/generator/rirekisho/styles.d.ts.map +1 -1
  32. package/dist/generator/rirekisho/styles.js +9 -14
  33. package/dist/generator/rirekisho/styles.js.map +1 -1
  34. package/dist/generator/rirekisho/types.d.ts +2 -2
  35. package/dist/generator/rirekisho/types.d.ts.map +1 -1
  36. package/dist/index.d.ts +3 -1
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +3 -1
  39. package/dist/index.js.map +1 -1
  40. package/dist/parser/index.d.ts.map +1 -1
  41. package/dist/parser/index.js +224 -107
  42. package/dist/parser/index.js.map +1 -1
  43. package/dist/parser/lsp.d.ts +58 -0
  44. package/dist/parser/lsp.d.ts.map +1 -0
  45. package/dist/parser/lsp.js +265 -0
  46. package/dist/parser/lsp.js.map +1 -0
  47. package/dist/template/definitions/en.d.ts +17 -0
  48. package/dist/template/definitions/en.d.ts.map +1 -0
  49. package/dist/template/definitions/en.js +204 -0
  50. package/dist/template/definitions/en.js.map +1 -0
  51. package/dist/template/definitions/index.d.ts +6 -0
  52. package/dist/template/definitions/index.d.ts.map +1 -0
  53. package/dist/template/definitions/index.js +6 -0
  54. package/dist/template/definitions/index.js.map +1 -0
  55. package/dist/template/definitions/ja.d.ts +17 -0
  56. package/dist/template/definitions/ja.d.ts.map +1 -0
  57. package/dist/template/definitions/ja.js +243 -0
  58. package/dist/template/definitions/ja.js.map +1 -0
  59. package/dist/template/generator.d.ts +61 -0
  60. package/dist/template/generator.d.ts.map +1 -0
  61. package/dist/template/generator.js +219 -0
  62. package/dist/template/generator.js.map +1 -0
  63. package/dist/template/index.d.ts +6 -0
  64. package/dist/template/index.d.ts.map +1 -0
  65. package/dist/template/index.js +6 -0
  66. package/dist/template/index.js.map +1 -0
  67. package/dist/types/config.d.ts +126 -15
  68. package/dist/types/config.d.ts.map +1 -1
  69. package/dist/types/config.js +94 -1
  70. package/dist/types/config.js.map +1 -1
  71. package/dist/types/index.d.ts +2 -0
  72. package/dist/types/index.d.ts.map +1 -1
  73. package/dist/types/index.js +2 -0
  74. package/dist/types/index.js.map +1 -1
  75. package/dist/types/position.d.ts +42 -0
  76. package/dist/types/position.d.ts.map +1 -0
  77. package/dist/types/position.js +32 -0
  78. package/dist/types/position.js.map +1 -0
  79. package/dist/types/result.d.ts.map +1 -1
  80. package/dist/types/result.js.map +1 -1
  81. package/dist/types/sections.d.ts +39 -24
  82. package/dist/types/sections.d.ts.map +1 -1
  83. package/dist/types/sections.js +30 -2
  84. package/dist/types/sections.js.map +1 -1
  85. package/dist/types/template.d.ts +68 -0
  86. package/dist/types/template.d.ts.map +1 -0
  87. package/dist/types/template.js +12 -0
  88. package/dist/types/template.js.map +1 -0
  89. package/dist/validator/index.d.ts.map +1 -1
  90. package/dist/validator/index.js +1 -2
  91. package/dist/validator/index.js.map +1 -1
  92. package/examples/example-cv-ja.md +1 -1
  93. package/package.json +53 -5
@@ -1 +1 @@
1
- {"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/types/result.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH;;GAEG;AACH,MAAM,UAAU,OAAO,CAAI,KAAQ;IACjC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAI,KAAQ;IACjC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAO,MAAoB;IAClD,OAAO,MAAM,CAAC,EAAE,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAO,MAAoB;IAClD,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,GAAG,CAAU,MAAoB,EAAE,EAAmB;IACpE,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,OAAO,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAU,MAAoB,EAAE,EAAmB;IACzE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CACrB,MAAoB,EACpB,EAA8B;IAE9B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CAAO,MAAoB;IAC/C,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,kCAAkC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAO,MAAoB,EAAE,YAAe;IAClE,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/types/result.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH;;GAEG;AACH,MAAM,UAAU,OAAO,CAAI,KAAQ;IACjC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAI,KAAQ;IACjC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAO,MAAoB;IAClD,OAAO,MAAM,CAAC,EAAE,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAO,MAAoB;IAClD,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,GAAG,CACjB,MAAoB,EACpB,EAAmB;IAEnB,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,OAAO,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CACtB,MAAoB,EACpB,EAAmB;IAEnB,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CACrB,MAAoB,EACpB,EAA8B;IAE9B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CAAO,MAAoB;IAC/C,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,kCAAkC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAO,MAAoB,EAAE,YAAe;IAClE,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC"}
@@ -35,54 +35,69 @@ export declare function getRequiredSectionsForFormat(format: OutputFormat): stri
35
35
  * Check if a section is valid for a given output format
36
36
  */
37
37
  export declare function isSectionValidForFormat(sectionId: string, format: OutputFormat): boolean;
38
+ /**
39
+ * CV language type
40
+ */
41
+ export type CvLanguage = 'en' | 'ja';
42
+ /**
43
+ * Check if text contains Japanese characters (Hiragana, Katakana, or Kanji)
44
+ */
45
+ export declare function isJapaneseText(text: string): boolean;
46
+ /**
47
+ * Get tags for a section filtered by language
48
+ * @param sectionId The section ID
49
+ * @param language The language to filter by ('en' or 'ja')
50
+ * @returns Array of tags in the specified language
51
+ */
52
+ export declare function getTagsForLanguage(sectionId: string, language: CvLanguage): string[];
38
53
  /**
39
54
  * Education entry structure (resume:education block)
40
55
  */
41
56
  export interface EducationEntry {
42
57
  readonly school: string;
43
- readonly degree: string | undefined;
44
- readonly location: string | undefined;
45
- readonly start: Date | undefined;
46
- readonly end: Date | undefined;
47
- readonly details: readonly string[] | undefined;
58
+ readonly degree?: string;
59
+ readonly start: Date;
60
+ readonly end: Date;
61
+ readonly location?: string;
62
+ readonly details?: readonly string[];
48
63
  }
49
64
  /**
50
65
  * Project entry within a role
51
66
  */
52
67
  export interface ProjectEntry {
53
68
  readonly name: string;
54
- readonly start: Date | undefined;
55
- readonly end: Date | undefined;
56
- readonly bullets: readonly string[] | undefined;
69
+ readonly start: Date;
70
+ readonly end: Date;
71
+ readonly bullets?: readonly string[];
57
72
  }
58
73
  /**
59
74
  * Role entry within experience
60
75
  */
61
76
  export interface RoleEntry {
62
77
  readonly title: string;
63
- readonly team: string | undefined;
64
- readonly start: Date | undefined;
65
- readonly end: Date | 'present' | undefined;
66
- readonly summary: readonly string[] | undefined;
67
- readonly highlights: readonly string[] | undefined;
68
- readonly projects: readonly ProjectEntry[] | undefined;
78
+ readonly start: Date;
79
+ readonly end: Date | 'present';
80
+ readonly team?: string;
81
+ readonly summary?: readonly string[];
82
+ readonly highlights?: readonly string[];
83
+ readonly projects?: readonly ProjectEntry[];
69
84
  }
70
85
  /**
71
86
  * Experience entry structure (resume:experience block)
72
87
  */
73
88
  export interface ExperienceEntry {
74
89
  readonly company: string;
75
- readonly location: string | undefined;
76
90
  readonly roles: readonly RoleEntry[];
91
+ readonly location?: string;
77
92
  }
78
93
  /**
79
94
  * Certification entry structure (resume:certifications block)
80
95
  */
81
96
  export interface CertificationEntry {
82
97
  readonly name: string;
83
- readonly issuer: string | undefined;
84
- readonly date: Date | undefined;
85
- readonly url: string | undefined;
98
+ readonly date: Date;
99
+ readonly issuer?: string;
100
+ readonly url?: string;
86
101
  }
87
102
  /**
88
103
  * Skill entry structure (resume:skills block)
@@ -92,16 +107,16 @@ export interface CertificationEntry {
92
107
  */
93
108
  export interface SkillEntry {
94
109
  readonly category: string;
95
- readonly items: readonly string[];
96
- readonly description: string | undefined;
97
- readonly level: string | undefined;
110
+ readonly items?: readonly string[];
111
+ readonly description?: string;
112
+ readonly level?: string;
98
113
  }
99
114
  /**
100
115
  * Skills section options
101
116
  */
102
117
  export interface SkillsOptions {
103
- readonly columns: number | undefined;
104
- readonly format: 'grid' | 'categorized' | undefined;
118
+ readonly columns: number;
119
+ readonly format: 'grid' | 'categorized';
105
120
  }
106
121
  /**
107
122
  * Competency entry structure (resume:competencies block)
@@ -115,7 +130,7 @@ export interface CompetencyEntry {
115
130
  */
116
131
  export interface LanguageEntry {
117
132
  readonly language: string;
118
- readonly level: string | undefined;
133
+ readonly level: string;
119
134
  }
120
135
  /**
121
136
  * Parsed section content
@@ -1 +1 @@
1
- {"version":3,"file":"sections.d.ts","sourceRoot":"","sources":["../../src/types/sections.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sections.d.ts","sourceRoot":"","sources":["../../src/types/sections.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,WAAW,GAAG,MAAM,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,SAAS,YAAY,EAAE,CAAC;CAC/C;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,UAAU,EAgF3C,CAAC;AAEX;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAKpE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,CAQpE;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,CAS3E;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,GACnB,OAAO,CAKT;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC;AAErC;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,UAAU,GACnB,MAAM,EAAE,CAQV;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IACnB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IACnB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,IAAI,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAC5D;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAA;CAAE,GAC3E;IACE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;CAC9C,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACjD,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;CACjC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;CAC9C,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAA;CAAE,GAC1E;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,QAAQ,EAAE,CAAA;CAAE,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC"}
@@ -27,7 +27,14 @@ export const SECTION_DEFINITIONS = [
27
27
  },
28
28
  {
29
29
  id: 'experience',
30
- tags: ['職歴', '職務経歴', '職務履歴', 'Experience', 'Work Experience', 'Professional Experience'],
30
+ tags: [
31
+ '職歴',
32
+ '職務経歴',
33
+ '職務履歴',
34
+ 'Experience',
35
+ 'Work Experience',
36
+ 'Professional Experience',
37
+ ],
31
38
  usage: 'both',
32
39
  requiredFor: ['cv', 'rirekisho', 'both'],
33
40
  },
@@ -103,7 +110,7 @@ export function getValidTagsForFormat(format) {
103
110
  export function getRequiredSectionsForFormat(format) {
104
111
  return SECTION_DEFINITIONS.filter((def) => {
105
112
  if (format === 'both') {
106
- return def.requiredFor.includes('cv') || def.requiredFor.includes('rirekisho');
113
+ return (def.requiredFor.includes('cv') || def.requiredFor.includes('rirekisho'));
107
114
  }
108
115
  return def.requiredFor.includes(format) || def.requiredFor.includes('both');
109
116
  }).map((def) => def.id);
@@ -119,4 +126,25 @@ export function isSectionValidForFormat(sectionId, format) {
119
126
  return true;
120
127
  return def.usage === 'both' || def.usage === format;
121
128
  }
129
+ /**
130
+ * Check if text contains Japanese characters (Hiragana, Katakana, or Kanji)
131
+ */
132
+ export function isJapaneseText(text) {
133
+ return /[\u3040-\u309F\u30A0-\u30FF\u4E00-\u9FAF]/.test(text);
134
+ }
135
+ /**
136
+ * Get tags for a section filtered by language
137
+ * @param sectionId The section ID
138
+ * @param language The language to filter by ('en' or 'ja')
139
+ * @returns Array of tags in the specified language
140
+ */
141
+ export function getTagsForLanguage(sectionId, language) {
142
+ const def = SECTION_DEFINITIONS.find((d) => d.id === sectionId);
143
+ if (!def)
144
+ return [];
145
+ return def.tags.filter((tag) => {
146
+ const isJapanese = isJapaneseText(tag);
147
+ return language === 'ja' ? isJapanese : !isJapanese;
148
+ });
149
+ }
122
150
  //# sourceMappingURL=sections.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sections.js","sourceRoot":"","sources":["../../src/types/sections.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sections.js","sourceRoot":"","sources":["../../src/types/sections.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Template types for CV/rirekisho markdown generation
3
+ */
4
+ import type { OutputFormat } from './config.js';
5
+ /**
6
+ * Supported template languages
7
+ */
8
+ export type TemplateLanguage = 'en' | 'ja';
9
+ /**
10
+ * Template generation options
11
+ */
12
+ export interface TemplateOptions {
13
+ readonly language: TemplateLanguage;
14
+ readonly format: OutputFormat;
15
+ readonly includeComments: boolean;
16
+ readonly outputPath: string | undefined;
17
+ }
18
+ /**
19
+ * Default template options
20
+ */
21
+ export declare const DEFAULT_TEMPLATE_OPTIONS: Omit<TemplateOptions, 'outputPath'>;
22
+ /**
23
+ * Section template definition
24
+ */
25
+ export interface SectionTemplate {
26
+ readonly id: string;
27
+ readonly title: string;
28
+ readonly description: string;
29
+ readonly content: string;
30
+ readonly usage: 'cv' | 'rirekisho' | 'both';
31
+ }
32
+ /**
33
+ * Frontmatter field template
34
+ */
35
+ export interface FrontmatterFieldTemplate {
36
+ readonly key: string;
37
+ readonly example: string;
38
+ readonly description: string;
39
+ readonly required: boolean;
40
+ }
41
+ /**
42
+ * Complete template definition for a language
43
+ */
44
+ export interface TemplateDefinition {
45
+ readonly language: TemplateLanguage;
46
+ readonly frontmatterFields: readonly FrontmatterFieldTemplate[];
47
+ readonly sections: readonly SectionTemplate[];
48
+ }
49
+ /**
50
+ * Template info for listing available templates
51
+ */
52
+ export interface TemplateInfo {
53
+ readonly language: TemplateLanguage;
54
+ readonly languageName: string;
55
+ readonly formats: readonly OutputFormat[];
56
+ readonly sectionCount: number;
57
+ readonly frontmatterFieldCount: number;
58
+ }
59
+ /**
60
+ * Section info for listing available sections
61
+ */
62
+ export interface SectionInfo {
63
+ readonly id: string;
64
+ readonly title: string;
65
+ readonly description: string;
66
+ readonly usage: 'cv' | 'rirekisho' | 'both';
67
+ }
68
+ //# sourceMappingURL=template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/types/template.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,IAAI,CAAC,eAAe,EAAE,YAAY,CAI/D,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,WAAW,GAAG,MAAM,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,iBAAiB,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAChE,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,WAAW,GAAG,MAAM,CAAC;CAC7C"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Template types for CV/rirekisho markdown generation
3
+ */
4
+ /**
5
+ * Default template options
6
+ */
7
+ export const DEFAULT_TEMPLATE_OPTIONS = {
8
+ language: 'en',
9
+ format: 'cv',
10
+ includeComments: true,
11
+ };
12
+ //# sourceMappingURL=template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/types/template.ts"],"names":[],"mappings":"AAAA;;GAEG;AAmBH;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAwC;IAC3E,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,IAAI;IACZ,eAAe,EAAE,IAAI;CACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validator/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAIL,KAAK,MAAM,EACX,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAC;AAQ3B;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,QAAQ;IAC3C,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;CAC3B;AAqED;;GAEG;AACH,wBAAgB,UAAU,CACxB,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,WAAW,EAAE,eAAe,EAAE,CAAC,CAcxC;AAED,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validator/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAIL,KAAK,MAAM,EACX,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAC;AAQ3B;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,QAAQ;IAC3C,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;CAC3B;AAoED;;GAEG;AACH,wBAAgB,UAAU,CACxB,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,WAAW,EAAE,eAAe,EAAE,CAAC,CAcxC;AAED,eAAe,UAAU,CAAC"}
@@ -37,8 +37,7 @@ function validateSections(cv, format, errors, logger) {
37
37
  // Warn about unknown sections
38
38
  // Get all H1 headings from raw content to check for unknown sections
39
39
  const h1Regex = /^#\s+(.+)$/gm;
40
- let match;
41
- while ((match = h1Regex.exec(cv.rawContent)) !== null) {
40
+ for (const match of cv.rawContent.matchAll(h1Regex)) {
42
41
  const title = match[1]?.trim();
43
42
  if (title) {
44
43
  const sectionDef = findSectionByTag(title);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validator/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validator/index.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ email_address2: taro.yamada2@example.com
11
11
  phone_number2: 03-1234-5678
12
12
  post_code2: 100-0001
13
13
  home_address2: 東京都千代田区千代田 1 - 1
14
- home_address_furigana2: とうきょうと ちよだく ちよだ
14
+ home_address2_furigana: とうきょうと ちよだく ちよだ
15
15
  dob: 1995-04-15
16
16
  gender: 男
17
17
  ---
package/package.json CHANGED
@@ -1,10 +1,48 @@
1
1
  {
2
2
  "name": "md2cv",
3
- "version": "1.1.1",
3
+ "version": "1.4.0",
4
4
  "description": "Transform Markdown into professional CVs and Japanese rirekisho (履歴書) - supports PDF/HTML output with multiple paper sizes",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ },
13
+ "./parser": {
14
+ "types": "./dist/parser/index.d.ts",
15
+ "import": "./dist/parser/index.js"
16
+ },
17
+ "./parser/lsp": {
18
+ "types": "./dist/parser/lsp.d.ts",
19
+ "import": "./dist/parser/lsp.js"
20
+ },
21
+ "./types": {
22
+ "types": "./dist/types/index.d.ts",
23
+ "import": "./dist/types/index.js"
24
+ },
25
+ "./types/sections": {
26
+ "types": "./dist/types/sections.d.ts",
27
+ "import": "./dist/types/sections.js"
28
+ },
29
+ "./types/config": {
30
+ "types": "./dist/types/config.d.ts",
31
+ "import": "./dist/types/config.js"
32
+ },
33
+ "./validator": {
34
+ "types": "./dist/validator/index.d.ts",
35
+ "import": "./dist/validator/index.js"
36
+ },
37
+ "./generator": {
38
+ "types": "./dist/generator/index.d.ts",
39
+ "import": "./dist/generator/index.js"
40
+ },
41
+ "./template": {
42
+ "types": "./dist/template/index.d.ts",
43
+ "import": "./dist/template/index.js"
44
+ }
45
+ },
8
46
  "bin": {
9
47
  "md2cv": "./dist/bin.js"
10
48
  },
@@ -18,7 +56,7 @@
18
56
  ],
19
57
  "scripts": {
20
58
  "build": "tsc -p tsconfig.build.json",
21
- "check": "npm run typecheck && npm run lint && npm run test",
59
+ "check": "npm run typecheck && npm run lint && npm run format:check && npm run test:unit",
22
60
  "clean": "rm -rf dist coverage",
23
61
  "format": "prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"",
24
62
  "format:check": "prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"",
@@ -31,13 +69,12 @@
31
69
  "test:integration": "vitest run tests/integration",
32
70
  "test:e2e": "vitest run tests/e2e",
33
71
  "test:watch": "vitest",
34
- "typecheck": "tsc --noEmit"
72
+ "typecheck": "tsc --noEmit",
73
+ "prepare": "husky"
35
74
  },
36
75
  "keywords": [
37
76
  "cv",
38
77
  "resume",
39
- "rirekisho",
40
- "shokumukeirekisho",
41
78
  "markdown",
42
79
  "pdf",
43
80
  "html",
@@ -62,6 +99,8 @@
62
99
  "eslint": "^9.39.1",
63
100
  "eslint-config-prettier": "^10.1.8",
64
101
  "fast-check": "^4.4.0",
102
+ "husky": "^9.1.7",
103
+ "lint-staged": "^16.2.7",
65
104
  "markdownlint": "^0.40.0",
66
105
  "markdownlint-cli": "^0.47.0",
67
106
  "prettier": "^3.5.0",
@@ -89,5 +128,14 @@
89
128
  "remark-stringify": "^11.0.0",
90
129
  "unified": "^11.0.5",
91
130
  "yaml": "^2.8.2"
131
+ },
132
+ "lint-staged": {
133
+ "*.ts": [
134
+ "prettier --write",
135
+ "eslint --fix"
136
+ ],
137
+ "*.{json,md,yaml,yml}": [
138
+ "prettier --write"
139
+ ]
92
140
  }
93
141
  }