md2cv 1.1.0 → 1.2.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 (68) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.ja.md +62 -1
  3. package/README.md +70 -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 +106 -18
  7. package/dist/cli/index.js.map +1 -1
  8. package/dist/generator/index.d.ts.map +1 -1
  9. package/dist/generator/index.js +22 -11
  10. package/dist/generator/index.js.map +1 -1
  11. package/dist/generator/resume_en.d.ts.map +1 -1
  12. package/dist/generator/resume_en.js +9 -5
  13. package/dist/generator/resume_en.js.map +1 -1
  14. package/dist/generator/resume_ja.d.ts.map +1 -1
  15. package/dist/generator/resume_ja.js +10 -6
  16. package/dist/generator/resume_ja.js.map +1 -1
  17. package/dist/generator/rirekisho/components.d.ts.map +1 -1
  18. package/dist/generator/rirekisho/components.js +1 -1
  19. package/dist/generator/rirekisho/components.js.map +1 -1
  20. package/dist/generator/rirekisho/index.js.map +1 -1
  21. package/dist/generator/rirekisho/layout.d.ts.map +1 -1
  22. package/dist/generator/rirekisho/layout.js +16 -7
  23. package/dist/generator/rirekisho/layout.js.map +1 -1
  24. package/dist/index.d.ts +2 -1
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +2 -1
  27. package/dist/index.js.map +1 -1
  28. package/dist/parser/index.d.ts.map +1 -1
  29. package/dist/parser/index.js +69 -14
  30. package/dist/parser/index.js.map +1 -1
  31. package/dist/template/definitions/en.d.ts +17 -0
  32. package/dist/template/definitions/en.d.ts.map +1 -0
  33. package/dist/template/definitions/en.js +204 -0
  34. package/dist/template/definitions/en.js.map +1 -0
  35. package/dist/template/definitions/index.d.ts +6 -0
  36. package/dist/template/definitions/index.d.ts.map +1 -0
  37. package/dist/template/definitions/index.js +6 -0
  38. package/dist/template/definitions/index.js.map +1 -0
  39. package/dist/template/definitions/ja.d.ts +17 -0
  40. package/dist/template/definitions/ja.d.ts.map +1 -0
  41. package/dist/template/definitions/ja.js +243 -0
  42. package/dist/template/definitions/ja.js.map +1 -0
  43. package/dist/template/generator.d.ts +61 -0
  44. package/dist/template/generator.d.ts.map +1 -0
  45. package/dist/template/generator.js +219 -0
  46. package/dist/template/generator.js.map +1 -0
  47. package/dist/template/index.d.ts +6 -0
  48. package/dist/template/index.d.ts.map +1 -0
  49. package/dist/template/index.js +6 -0
  50. package/dist/template/index.js.map +1 -0
  51. package/dist/types/config.d.ts +103 -0
  52. package/dist/types/config.d.ts.map +1 -1
  53. package/dist/types/config.js +94 -1
  54. package/dist/types/config.js.map +1 -1
  55. package/dist/types/index.d.ts +1 -0
  56. package/dist/types/index.d.ts.map +1 -1
  57. package/dist/types/index.js +1 -0
  58. package/dist/types/index.js.map +1 -1
  59. package/dist/types/result.d.ts.map +1 -1
  60. package/dist/types/result.js.map +1 -1
  61. package/dist/types/sections.d.ts.map +1 -1
  62. package/dist/types/sections.js +9 -2
  63. package/dist/types/sections.js.map +1 -1
  64. package/dist/types/template.d.ts +68 -0
  65. package/dist/types/template.d.ts.map +1 -0
  66. package/dist/types/template.js +12 -0
  67. package/dist/types/template.js.map +1 -0
  68. package/package.json +2 -2
@@ -0,0 +1,243 @@
1
+ /**
2
+ * Japanese template definitions
3
+ */
4
+ /**
5
+ * Japanese frontmatter field templates
6
+ */
7
+ export const JA_FRONTMATTER_FIELDS = [
8
+ {
9
+ key: 'name',
10
+ example: '山田 太郎',
11
+ description: '氏名(漢字)- 履歴書に表示される正式な氏名',
12
+ required: true,
13
+ },
14
+ {
15
+ key: 'name_furigana',
16
+ example: 'ヤマダ タロウ',
17
+ description: '氏名(フリガナ)- カタカナで記載。履歴書形式で使用',
18
+ required: false,
19
+ },
20
+ {
21
+ key: 'email_address',
22
+ example: 'taro.yamada@example.com',
23
+ description: 'メールアドレス - 連絡可能なメールアドレス',
24
+ required: true,
25
+ },
26
+ {
27
+ key: 'phone_number',
28
+ example: '090-1234-5678',
29
+ description: '電話番号 - 連絡可能な電話番号(携帯推奨)',
30
+ required: true,
31
+ },
32
+ {
33
+ key: 'post_code',
34
+ example: '100-0001',
35
+ description: '郵便番号 - ハイフン付きで記載',
36
+ required: false,
37
+ },
38
+ {
39
+ key: 'home_address',
40
+ example: '東京都千代田区千代田1-1-1',
41
+ description: '現住所 - 都道府県から番地まで記載',
42
+ required: false,
43
+ },
44
+ {
45
+ key: 'home_address_furigana',
46
+ example: 'とうきょうとちよだくちよだ',
47
+ description: '現住所(ふりがな)- ひらがなで記載。履歴書形式で使用',
48
+ required: false,
49
+ },
50
+ {
51
+ key: 'dob',
52
+ example: '1990-04-15',
53
+ description: '生年月日(YYYY-MM-DD形式)- 履歴書形式で年齢計算に使用',
54
+ required: false,
55
+ },
56
+ {
57
+ key: 'gender',
58
+ example: 'male',
59
+ description: '性別(male/female/other)- 任意記載。履歴書形式で使用',
60
+ required: false,
61
+ },
62
+ {
63
+ key: 'linkedin',
64
+ example: 'https://linkedin.com/in/taroyamada',
65
+ description: 'LinkedIn プロフィール URL - 職務経歴書で使用',
66
+ required: false,
67
+ },
68
+ {
69
+ key: 'github',
70
+ example: 'https://github.com/taroyamada',
71
+ description: 'GitHub プロフィール URL - エンジニア向け',
72
+ required: false,
73
+ },
74
+ {
75
+ key: 'website',
76
+ example: 'https://taroyamada.dev',
77
+ description: '個人サイト・ポートフォリオ URL',
78
+ required: false,
79
+ },
80
+ ];
81
+ /**
82
+ * Japanese section templates
83
+ */
84
+ export const JA_SECTIONS = [
85
+ {
86
+ id: 'summary',
87
+ title: '職務要約',
88
+ description: 'これまでのキャリアの概要と強みを簡潔にまとめます(2〜4文程度)。採用担当者が最初に読む部分なので、自分の価値を端的に伝えることが重要です。経験年数、専門分野、主な実績を含めましょう。',
89
+ usage: 'cv',
90
+ content: `これまでの職務経験の概要、主な実績、得意分野などを記載してください。
91
+ 採用担当者に自分の価値を伝える重要なセクションです。
92
+
93
+ 例:
94
+ Webアプリケーション開発に8年以上従事し、大規模システムの設計・開発をリードしてきました。
95
+ チームマネジメントと技術的な課題解決を得意とし、品質の高いソリューションの提供に注力しています。`,
96
+ },
97
+ {
98
+ id: 'experience',
99
+ title: '職歴',
100
+ description: '勤務先、役職、業務内容、実績を記載します。新しい職歴から順に記載(逆時系列)。具体的な数値や成果を含めると効果的です(例:「売上を25%向上」「処理時間を40%短縮」)。',
101
+ usage: 'both',
102
+ content: `\`\`\`resume:experience
103
+ - company: 株式会社サンプル
104
+ location: 東京都
105
+ roles:
106
+ - title: シニアエンジニア
107
+ team: プラットフォーム開発部
108
+ start: 2020-04
109
+ end: present
110
+ summary:
111
+ - バックエンドシステムの設計・開発を担当
112
+ highlights:
113
+ - マイクロサービスアーキテクチャへの移行をリード(チーム10名)
114
+ - API レスポンス時間を 40% 改善
115
+ - 新人エンジニア 5 名の育成・メンタリングを担当
116
+ projects:
117
+ - name: 決済システム刷新プロジェクト
118
+ start: 2021-04
119
+ end: 2022-03
120
+ bullets:
121
+ - 決済処理の高速化を実現(処理時間50%短縮)
122
+ - 障害発生率を 80% 削減
123
+ \`\`\``,
124
+ },
125
+ {
126
+ id: 'education',
127
+ title: '学歴',
128
+ description: '学校名、学部・学科、卒業年月を記載します。新しい学歴から順に記載。GPA(3.5以上の場合)、卒業論文のテーマ、関連する受賞歴なども記載可能です。',
129
+ usage: 'both',
130
+ content: `\`\`\`resume:education
131
+ - school: 東京大学
132
+ degree: 工学部 情報工学科
133
+ location: 東京都
134
+ start: 2010-04
135
+ end: 2014-03
136
+ details:
137
+ - GPA: 3.8/4.0(3.5以上の場合は記載推奨)
138
+ - 卒業論文: 分散システムにおける効率的なデータ同期手法の研究
139
+ - 学部長賞受賞
140
+ \`\`\``,
141
+ },
142
+ {
143
+ id: 'skills',
144
+ title: 'スキル',
145
+ description: '技術スキルや業務スキルをカテゴリ別に記載します。応募する職種に関連するスキルを優先的に記載。習熟度を正直に記載し、実務経験のあるものを中心にリストアップしましょう。',
146
+ usage: 'both',
147
+ content: `\`\`\`resume:skills
148
+ categories:
149
+ - category: プログラミング言語
150
+ items: [TypeScript, Python, Go, Java]
151
+ - category: フレームワーク
152
+ items: [React, Node.js, Spring Boot, Django]
153
+ - category: インフラ・ツール
154
+ items: [AWS, Docker, Kubernetes, Terraform, CI/CD]
155
+ - category: データベース
156
+ items: [PostgreSQL, MySQL, MongoDB, Redis]
157
+ \`\`\``,
158
+ },
159
+ {
160
+ id: 'certifications',
161
+ title: '免許・資格',
162
+ description: '取得した資格や免許を記載します。取得日の新しいものから順に記載。応募職種に関連する資格を優先的に記載しましょう。有効期限がある資格は更新状況も確認してください。',
163
+ usage: 'both',
164
+ content: `\`\`\`resume:certifications
165
+ - name: AWS ソリューションアーキテクト プロフェッショナル
166
+ issuer: Amazon Web Services
167
+ date: 2023-06
168
+ - name: 基本情報技術者
169
+ issuer: IPA(情報処理推進機構)
170
+ date: 2015-04
171
+ - name: TOEIC 900点
172
+ issuer: ETS
173
+ date: 2022-01
174
+ - name: 普通自動車第一種運転免許
175
+ issuer: 公安委員会
176
+ date: 2010-08
177
+ \`\`\``,
178
+ },
179
+ {
180
+ id: 'languages',
181
+ title: '語学',
182
+ description: '語学力とレベルを記載します。ネイティブ、ビジネスレベル、日常会話レベルなどの表現を使用。TOEIC、TOEFL、IELTS、日本語能力試験(JLPT)などのスコアがあれば併記しましょう。',
183
+ usage: 'cv',
184
+ content: `\`\`\`resume:languages
185
+ - language: 日本語
186
+ level: ネイティブ
187
+ - language: 英語
188
+ level: ビジネスレベル(TOEIC 900点)
189
+ - language: 中国語
190
+ level: 日常会話レベル(HSK 4級)
191
+ \`\`\``,
192
+ },
193
+ {
194
+ id: 'competencies',
195
+ title: '自己PR',
196
+ description: '自分の強みや特徴をアピールします。具体的なエピソードや実績を交えて記載すると説得力が増します。応募職種で求められる能力と自分の強みを結びつけて記載しましょう。',
197
+ usage: 'both',
198
+ content: `\`\`\`resume:competencies
199
+ - header: 技術リーダーシップ
200
+ description: 10名以上のエンジニアチームをリードし、複数のプロジェクトを成功に導いた経験があります。メンバーの成長支援と技術的な意思決定の両面でチームに貢献してきました。
201
+ - header: 問題解決力
202
+ description: 複雑な技術課題に対して、論理的なアプローチで解決策を見出すことが得意です。本番環境での障害対応経験も豊富で、迅速な原因特定と対策実施ができます。
203
+ - header: コミュニケーション力
204
+ description: 技術者・非技術者問わず、分かりやすく説明し、円滑なプロジェクト推進を実現します。顧客折衝やステークホルダーとの調整経験も豊富です。
205
+ \`\`\``,
206
+ },
207
+ {
208
+ id: 'motivation',
209
+ title: '志望動機',
210
+ description: '応募先企業・職種への志望理由を記載します(履歴書形式のみ)。企業研究を行い、なぜその企業・職種に興味を持ったのか、自分のスキルや経験がどのように貢献できるかを具体的に記載しましょう。',
211
+ usage: 'rirekisho',
212
+ content: `貴社を志望した理由、入社後に実現したいこと、
213
+ 自分のスキルや経験がどのように貢献できるかを記載してください。
214
+
215
+ ポイント:
216
+ - 企業研究を行い、具体的な魅力を挙げる
217
+ - 自分の経験・スキルと応募職種の関連性を示す
218
+ - 入社後のビジョンや貢献したいことを明確に
219
+ - 熱意を持ちつつも、具体的かつ論理的に記載`,
220
+ },
221
+ {
222
+ id: 'notes',
223
+ title: '本人希望記入欄',
224
+ description: '勤務条件や特記事項を記載します(履歴書形式のみ)。特に希望がない場合は「貴社規定に従います」と記載するのが一般的です。希望がある場合は明確かつ簡潔に記載しましょう。',
225
+ usage: 'rirekisho',
226
+ content: `特に希望がない場合は「貴社規定に従います」と記載。
227
+ 希望がある場合は以下のような内容を記載:
228
+
229
+ - 希望勤務地:東京本社 / リモートワーク希望
230
+ - 入社可能日:即日 / 現職の引き継ぎ後(約1ヶ月後)
231
+ - 勤務形態:フルタイム / 時短勤務希望
232
+ - その他特記事項`,
233
+ },
234
+ ];
235
+ /**
236
+ * Complete Japanese template definition
237
+ */
238
+ export const JA_TEMPLATE = {
239
+ language: 'ja',
240
+ frontmatterFields: JA_FRONTMATTER_FIELDS,
241
+ sections: JA_SECTIONS,
242
+ };
243
+ //# sourceMappingURL=ja.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ja.js","sourceRoot":"","sources":["../../../src/template/definitions/ja.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Template generator module
3
+ * Generates markdown templates for CV/rirekisho
4
+ */
5
+ import type { OutputFormat } from '../types/config.js';
6
+ import type { FrontmatterFieldTemplate, SectionInfo, SectionTemplate, TemplateDefinition, TemplateInfo, TemplateLanguage, TemplateOptions } from '../types/template.js';
7
+ /**
8
+ * Get template definition for a language
9
+ */
10
+ export declare function getTemplateDefinition(language: TemplateLanguage): TemplateDefinition;
11
+ /**
12
+ * Get information about available templates
13
+ */
14
+ export declare function getTemplateInfo(language: TemplateLanguage): TemplateInfo;
15
+ /**
16
+ * Get all available template infos
17
+ */
18
+ export declare function getAllTemplateInfos(): TemplateInfo[];
19
+ /**
20
+ * Get section info for a specific language and format
21
+ */
22
+ export declare function getSectionInfos(language: TemplateLanguage, format: OutputFormat): SectionInfo[];
23
+ /**
24
+ * Format section list for display
25
+ */
26
+ export declare function formatSectionList(language: TemplateLanguage, format: OutputFormat): string;
27
+ /**
28
+ * Format template list for display
29
+ */
30
+ export declare function formatTemplateList(): string;
31
+ /**
32
+ * Filter sections based on output format
33
+ */
34
+ export declare function filterSectionsForFormat(sections: readonly SectionTemplate[], format: OutputFormat): SectionTemplate[];
35
+ /**
36
+ * Generate frontmatter field descriptions as HTML comment block
37
+ * This is placed before the frontmatter to avoid YAML parsing issues
38
+ */
39
+ export declare function generateFrontmatterDescription(fields: readonly FrontmatterFieldTemplate[], language: TemplateLanguage): string;
40
+ /**
41
+ * Generate frontmatter block
42
+ * Note: Comments are NOT included inside YAML frontmatter to avoid parsing issues
43
+ */
44
+ export declare function generateFrontmatter(fields: readonly FrontmatterFieldTemplate[], _includeComments: boolean, _language: TemplateLanguage): string;
45
+ /**
46
+ * Generate section block
47
+ */
48
+ export declare function generateSection(section: SectionTemplate, includeComments: boolean, _language: TemplateLanguage): string;
49
+ /**
50
+ * Generate complete markdown template
51
+ */
52
+ export declare function generateTemplate(options: TemplateOptions): string;
53
+ /**
54
+ * Get available template languages
55
+ */
56
+ export declare function getAvailableLanguages(): TemplateLanguage[];
57
+ /**
58
+ * Validate template language
59
+ */
60
+ export declare function isValidLanguage(lang: string): lang is TemplateLanguage;
61
+ //# sourceMappingURL=generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/template/generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EACV,wBAAwB,EACxB,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAY9B;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,gBAAgB,GACzB,kBAAkB,CAQpB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,gBAAgB,GAAG,YAAY,CASxE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,YAAY,EAAE,CAEpD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,YAAY,GACnB,WAAW,EAAE,CASf;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,YAAY,GACnB,MAAM,CA8BR;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAgB3C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,SAAS,eAAe,EAAE,EACpC,MAAM,EAAE,YAAY,GACnB,eAAe,EAAE,CAKnB;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,SAAS,wBAAwB,EAAE,EAC3C,QAAQ,EAAE,gBAAgB,GACzB,MAAM,CAiBR;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,wBAAwB,EAAE,EAC3C,gBAAgB,EAAE,OAAO,EACzB,SAAS,EAAE,gBAAgB,GAC1B,MAAM,CASR;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,eAAe,EACxB,eAAe,EAAE,OAAO,EACxB,SAAS,EAAE,gBAAgB,GAC1B,MAAM,CAiBR;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAkEjE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,gBAAgB,EAAE,CAE1D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,gBAAgB,CAEtE"}
@@ -0,0 +1,219 @@
1
+ /**
2
+ * Template generator module
3
+ * Generates markdown templates for CV/rirekisho
4
+ */
5
+ import { EN_TEMPLATE } from './definitions/en.js';
6
+ import { JA_TEMPLATE } from './definitions/ja.js';
7
+ /**
8
+ * Language display names
9
+ */
10
+ const LANGUAGE_NAMES = {
11
+ en: 'English',
12
+ ja: '日本語 (Japanese)',
13
+ };
14
+ /**
15
+ * Get template definition for a language
16
+ */
17
+ export function getTemplateDefinition(language) {
18
+ switch (language) {
19
+ case 'ja':
20
+ return JA_TEMPLATE;
21
+ case 'en':
22
+ default:
23
+ return EN_TEMPLATE;
24
+ }
25
+ }
26
+ /**
27
+ * Get information about available templates
28
+ */
29
+ export function getTemplateInfo(language) {
30
+ const definition = getTemplateDefinition(language);
31
+ return {
32
+ language,
33
+ languageName: LANGUAGE_NAMES[language],
34
+ formats: ['cv', 'rirekisho', 'both'],
35
+ sectionCount: definition.sections.length,
36
+ frontmatterFieldCount: definition.frontmatterFields.length,
37
+ };
38
+ }
39
+ /**
40
+ * Get all available template infos
41
+ */
42
+ export function getAllTemplateInfos() {
43
+ return getAvailableLanguages().map(getTemplateInfo);
44
+ }
45
+ /**
46
+ * Get section info for a specific language and format
47
+ */
48
+ export function getSectionInfos(language, format) {
49
+ const definition = getTemplateDefinition(language);
50
+ const sections = filterSectionsForFormat(definition.sections, format);
51
+ return sections.map((section) => ({
52
+ id: section.id,
53
+ title: section.title,
54
+ description: section.description,
55
+ usage: section.usage,
56
+ }));
57
+ }
58
+ /**
59
+ * Format section list for display
60
+ */
61
+ export function formatSectionList(language, format) {
62
+ const sections = getSectionInfos(language, format);
63
+ const lines = [];
64
+ const header = language === 'ja'
65
+ ? `利用可能なセクション (${format} フォーマット):`
66
+ : `Available sections (${format} format):`;
67
+ lines.push(header);
68
+ lines.push('');
69
+ for (const section of sections) {
70
+ const usageLabel = section.usage === 'both'
71
+ ? language === 'ja'
72
+ ? '共通'
73
+ : 'both'
74
+ : section.usage;
75
+ lines.push(` ${section.id}`);
76
+ lines.push(` ${language === 'ja' ? 'タイトル' : 'Title'}: ${section.title}`);
77
+ lines.push(` ${language === 'ja' ? '用途' : 'Usage'}: ${usageLabel}`);
78
+ lines.push(` ${language === 'ja' ? '説明' : 'Description'}: ${section.description}`);
79
+ lines.push('');
80
+ }
81
+ return lines.join('\n');
82
+ }
83
+ /**
84
+ * Format template list for display
85
+ */
86
+ export function formatTemplateList() {
87
+ const infos = getAllTemplateInfos();
88
+ const lines = [];
89
+ lines.push('Available templates:');
90
+ lines.push('');
91
+ for (const info of infos) {
92
+ lines.push(` ${info.language} - ${info.languageName}`);
93
+ lines.push(` Formats: ${info.formats.join(', ')}`);
94
+ lines.push(` Sections: ${info.sectionCount}`);
95
+ lines.push(` Frontmatter fields: ${info.frontmatterFieldCount}`);
96
+ lines.push('');
97
+ }
98
+ return lines.join('\n');
99
+ }
100
+ /**
101
+ * Filter sections based on output format
102
+ */
103
+ export function filterSectionsForFormat(sections, format) {
104
+ return sections.filter((section) => {
105
+ if (format === 'both')
106
+ return true;
107
+ return section.usage === 'both' || section.usage === format;
108
+ });
109
+ }
110
+ /**
111
+ * Generate frontmatter field descriptions as HTML comment block
112
+ * This is placed before the frontmatter to avoid YAML parsing issues
113
+ */
114
+ export function generateFrontmatterDescription(fields, language) {
115
+ const requiredLabel = language === 'ja' ? '必須' : 'required';
116
+ const optionalLabel = language === 'ja' ? '任意' : 'optional';
117
+ const headerLabel = language === 'ja'
118
+ ? 'フロントマターフィールドの説明'
119
+ : 'Frontmatter Field Descriptions';
120
+ const lines = [`<!-- ${headerLabel}:`];
121
+ for (const field of fields) {
122
+ const reqLabel = field.required ? requiredLabel : optionalLabel;
123
+ lines.push(` ${field.key}: ${field.description} (${reqLabel})`);
124
+ }
125
+ lines.push('-->');
126
+ return lines.join('\n');
127
+ }
128
+ /**
129
+ * Generate frontmatter block
130
+ * Note: Comments are NOT included inside YAML frontmatter to avoid parsing issues
131
+ */
132
+ export function generateFrontmatter(fields, _includeComments, _language) {
133
+ const lines = ['---'];
134
+ for (const field of fields) {
135
+ lines.push(`${field.key}: ${field.example}`);
136
+ }
137
+ lines.push('---');
138
+ return lines.join('\n');
139
+ }
140
+ /**
141
+ * Generate section block
142
+ */
143
+ export function generateSection(section, includeComments, _language) {
144
+ const lines = [];
145
+ lines.push(`# ${section.title}`);
146
+ lines.push('');
147
+ if (includeComments) {
148
+ const commentLines = section.description.split('\n');
149
+ for (const line of commentLines) {
150
+ lines.push(`<!-- ${line} -->`);
151
+ }
152
+ lines.push('');
153
+ }
154
+ lines.push(section.content);
155
+ return lines.join('\n');
156
+ }
157
+ /**
158
+ * Generate complete markdown template
159
+ */
160
+ export function generateTemplate(options) {
161
+ const definition = getTemplateDefinition(options.language);
162
+ const sections = filterSectionsForFormat(definition.sections, options.format);
163
+ const parts = [];
164
+ // Add header comment
165
+ if (options.includeComments) {
166
+ const headerComment = options.language === 'ja'
167
+ ? `<!--
168
+ md2cv テンプレート
169
+ フォーマット: ${options.format}
170
+
171
+ このテンプレートを編集して、あなたの CV/履歴書を作成してください。
172
+ コメント(<!-- -->)は出力には含まれません。
173
+
174
+ 使い方:
175
+ md2cv -i this-file.md -f ${options.format}
176
+
177
+ 詳細: https://github.com/yuyash/md2cv
178
+ -->`
179
+ : `<!--
180
+ md2cv Template
181
+ Format: ${options.format}
182
+
183
+ Edit this template to create your CV/resume.
184
+ Comments (<!-- -->) will not appear in the output.
185
+
186
+ Usage:
187
+ md2cv -i this-file.md -f ${options.format}
188
+
189
+ Documentation: https://github.com/yuyash/md2cv
190
+ -->`;
191
+ parts.push(headerComment);
192
+ parts.push('');
193
+ // Add frontmatter field descriptions as HTML comment (outside YAML block)
194
+ parts.push(generateFrontmatterDescription(definition.frontmatterFields, options.language));
195
+ parts.push('');
196
+ }
197
+ // Add frontmatter
198
+ parts.push(generateFrontmatter(definition.frontmatterFields, options.includeComments, options.language));
199
+ parts.push('');
200
+ // Add sections
201
+ for (const section of sections) {
202
+ parts.push(generateSection(section, options.includeComments, options.language));
203
+ parts.push('');
204
+ }
205
+ return parts.join('\n').trimEnd() + '\n';
206
+ }
207
+ /**
208
+ * Get available template languages
209
+ */
210
+ export function getAvailableLanguages() {
211
+ return ['en', 'ja'];
212
+ }
213
+ /**
214
+ * Validate template language
215
+ */
216
+ export function isValidLanguage(lang) {
217
+ return getAvailableLanguages().includes(lang);
218
+ }
219
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/template/generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Template module exports
3
+ */
4
+ export { filterSectionsForFormat, formatSectionList, formatTemplateList, generateFrontmatter, generateFrontmatterDescription, generateSection, generateTemplate, getAllTemplateInfos, getAvailableLanguages, getSectionInfos, getTemplateDefinition, getTemplateInfo, isValidLanguage, } from './generator.js';
5
+ export { EN_TEMPLATE, JA_TEMPLATE } from './definitions/index.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/template/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,8BAA8B,EAC9B,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Template module exports
3
+ */
4
+ export { filterSectionsForFormat, formatSectionList, formatTemplateList, generateFrontmatter, generateFrontmatterDescription, generateSection, generateTemplate, getAllTemplateInfos, getAvailableLanguages, getSectionInfos, getTemplateDefinition, getTemplateInfo, isValidLanguage, } from './generator.js';
5
+ export { EN_TEMPLATE, JA_TEMPLATE } from './definitions/index.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/template/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,8BAA8B,EAC9B,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC"}
@@ -14,6 +14,109 @@ export type LogFormat = 'json' | 'text';
14
14
  * - desc: newest first (default for CV)
15
15
  */
16
16
  export type ChronologicalOrder = 'asc' | 'desc';
17
+ /**
18
+ * CLI option definition
19
+ */
20
+ export interface CLIOptionDefinition {
21
+ readonly flags: string;
22
+ readonly description: string;
23
+ readonly defaultValue?: string | boolean;
24
+ readonly required?: boolean;
25
+ }
26
+ /**
27
+ * Generate command CLI option definitions
28
+ */
29
+ export declare const GENERATE_OPTIONS: {
30
+ input: {
31
+ flags: string;
32
+ description: string;
33
+ required: true;
34
+ };
35
+ output: {
36
+ flags: string;
37
+ description: string;
38
+ };
39
+ format: {
40
+ flags: string;
41
+ description: string;
42
+ defaultValue: string;
43
+ };
44
+ outputType: {
45
+ flags: string;
46
+ description: string;
47
+ defaultValue: string;
48
+ };
49
+ paperSize: {
50
+ flags: string;
51
+ description: string;
52
+ };
53
+ config: {
54
+ flags: string;
55
+ description: string;
56
+ };
57
+ order: {
58
+ flags: string;
59
+ description: string;
60
+ };
61
+ hideMotivation: {
62
+ flags: string;
63
+ description: string;
64
+ defaultValue: false;
65
+ };
66
+ photo: {
67
+ flags: string;
68
+ description: string;
69
+ };
70
+ sectionOrder: {
71
+ flags: string;
72
+ description: string;
73
+ };
74
+ stylesheet: {
75
+ flags: string;
76
+ description: string;
77
+ };
78
+ logFormat: {
79
+ flags: string;
80
+ description: string;
81
+ defaultValue: string;
82
+ };
83
+ verbose: {
84
+ flags: string;
85
+ description: string;
86
+ defaultValue: false;
87
+ };
88
+ };
89
+ /**
90
+ * Init command CLI option definitions
91
+ */
92
+ export declare const INIT_OPTIONS: {
93
+ output: {
94
+ flags: string;
95
+ description: string;
96
+ };
97
+ lang: {
98
+ flags: string;
99
+ description: string;
100
+ defaultValue: string;
101
+ };
102
+ format: {
103
+ flags: string;
104
+ description: string;
105
+ defaultValue: string;
106
+ };
107
+ noComments: {
108
+ flags: string;
109
+ description: string;
110
+ };
111
+ listTemplates: {
112
+ flags: string;
113
+ description: string;
114
+ };
115
+ listSections: {
116
+ flags: string;
117
+ description: string;
118
+ };
119
+ };
17
120
  /**
18
121
  * CLI options parsed from command line
19
122
  */