YAMLResume

Zod Schema

YAMLResume は zod を採用して実行時に履歴書データを検証します。

この文書は、YAMLResume で使用されるすべての zod スキーマの概要を提供します。実装の詳細に興味がある場合は、ここ でソースコードを見つけることができます。

履歴書スキーマ

全体的な履歴書構造検証を定義し、コンテンツとレイアウト検証を含みます。

属性タイプ必須
contentContentSchema✅
layouts?LayoutsSchema⬜
locale?LocaleSchema⬜

ContentSchema

履歴書全体のコンテンツ検証構造を定義します。

属性タイプ必須
basicsBasicsItemSchema✅
educationEducationItemSchema[]✅
awards?AwardItemSchema[]⬜
certificates?CertificateItemSchema[]⬜
interests?InterestItemSchema[]⬜
languages?LanguageItemSchema[]⬜
location?LocationItemSchema⬜
projects?ProjectItemSchema[]⬜
profiles?ProfileItemSchema[]⬜
publications?PublicationItemSchema[]⬜
references?ReferenceItemSchema[]⬜
skills?SkillItemSchema[]⬜
volunteer?VolunteerItemSchema[]⬜
work?WorkItemSchema[]⬜

AwardItemSchema

獲得した単一の賞、名誉、または認識を検証します。

属性タイプ必須検証ルール
awarderstring✅2-128 文字
titlestring✅2-128 文字
date?string⬜日付スキーマ を参照
summary?string⬜要約スキーマ を参照

BasicsItemSchema

コア個人情報と連絡先情報を検証します。

属性タイプ必須検証ルール
namestring✅2-128 文字
email?string⬜メールスキーマ を参照
headline?string⬜2-128 文字
phone?string⬜電話スキーマ を参照
summary?string⬜要約スキーマ を参照
url?string⬜URL スキーマ を参照

CertificateItemSchema

単一の認証、証明書、または専門資格を検証します。

属性タイプ必須検証ルール
issuerstring✅2-128 文字
namestring✅2-128 文字
date?string⬜日付スキーマ を参照
url?string⬜URL スキーマ を参照

EducationItemSchema

単一の教育経験または学位プログラムを検証します。

属性タイプ必須検証ルール
areastring✅2-64 文字
degreeDegree✅事前定義された学位オプション からである必要があります
institutionstring✅2-128 文字
startDatestring✅日付スキーマ を参照
courses?string[]⬜各項目 2-128 文字
endDate?string⬜日付スキーマ を参照
summary?string⬜要約スキーマ を参照
score?string⬜2-32 文字
url?string⬜URL スキーマ を参照

InterestItemSchema

単一の興味、趣味、または個人的な活動を検証します。

属性タイプ必須検証ルール
namestring✅2-128 文字
keywords?string[]⬜キーワードスキーマ を参照

LanguageItemSchema

単一の言語能力項目を検証します。

属性タイプ必須検証ルール
fluencyFluency✅事前定義された流暢度オプション からである必要があります
languageLanguage✅事前定義された言語オプション からである必要があります
keywords?string[]⬜各項目 1-32 文字

LocationItemSchema

位置と住所情報を検証します。

属性タイプ必須検証ルール
citystring✅2-128 文字
address?string⬜2-128 文字
country?Country⬜事前定義された国オプション からである必要があります
postalCode?string⬜2-128 文字
region?string⬜2-128 文字

ProfileItemSchema

単一のオンラインプロフィールまたはソーシャルメディアの存在を検証します。

属性タイプ必須検証ルール
networkNetwork✅事前定義されたネットワークオプション からである必要があります
usernamestring✅2-128 文字
url?string⬜有効な URL、最大 256 文字

ProjectItemSchema

単一のプロジェクト、ポートフォリオ作品、または技術的な作業を検証します。

属性タイプ必須検証ルール
namestring✅2-128 文字
startDatestring✅日付スキーマ を参照
summarystring✅要約スキーマ を参照
description?string⬜4-128 文字
endDate?string⬜日付スキーマ を参照
keywords?string[]⬜各項目 1-32 文字
url?string⬜有効な URL、最大 256 文字

PublicationItemSchema

単一の出版物、研究作業、または学術論文を検証します。

属性タイプ必須検証ルール
namestring✅2-128 文字
publisherstring✅2-128 文字
releaseDate?string⬜日付スキーマ を参照
summary?string⬜要約スキーマ を参照
url?string⬜有効な URL、最大 256 文字

ReferenceItemSchema

単一の専門推薦人または推薦を検証します。

属性タイプ必須検証ルール
namestring✅2-128 文字
summarystring✅要約スキーマ を参照
email?string⬜メールスキーマ を参照
phone?string⬜有効な電話フォーマット
relationship?string⬜2-128 文字

SkillItemSchema

単一のスキル、能力、または技術的能力を検証します。

属性タイプ必須検証ルール
levelLevel✅事前定義されたレベルオプション からである必要があります
namestring✅2-128 文字
keywords?string[]⬜各項目 1-32 文字

VolunteerItemSchema

単一のボランティア経験またはコミュニティサービスを検証します。

属性タイプ必須検証ルール
organizationstring✅2-128 文字
positionstring✅2-128 文字
startDatestring✅日付スキーマ を参照
summarystring✅要約スキーマ を参照
endDate?string⬜日付スキーマ を参照
url?string⬜有効な URL、最大 256 文字

WorkItemSchema

単一の職歴または雇用職位を検証します。

属性タイプ必須検証ルール
namestring✅2-128 文字
positionstring✅2-128 文字
startDatestring✅日付スキーマ を参照
summarystring✅要約スキーマ を参照
endDate?string⬜日付スキーマ を参照
keywords?string[]⬜各項目 1-32 文字
url?string⬜有効な URL、最大 256 文字

LocaleSchema

国際化とローカライゼーションのロケール設定を検証します。

属性タイプ必須検証ルール
language?LocaleLanguage⬜事前定義されたロケール言語オプション からである必要があります

LayoutsSchema

全体的なレイアウト検証設定を定義します。

属性タイプ必須検証ルール
layouts[]DocxLayoutSchema | HtmlLayoutSchema | LatexLayoutSchema | MarkdownLayoutSchema⬜レイアウト設定の配列。

一般的なレイアウトスキーマ

MarginsSchema

文書レイアウトのマージン設定を検証します。

属性タイプ必須検証ルール
top?string⬜マージンサイズスキーマ を参照
bottom?string⬜マージンサイズスキーマ を参照
left?string⬜マージンサイズスキーマ を参照
right?string⬜マージンサイズスキーマ を参照
SectionsSchema

セクションのカスタマイズ設定を検証します。

属性タイプ必須検証ルール
aliases?Record<SectionID, string>⬜キーは有効なセクションID、値は文字列(2-128文字)でなければなりません
order?OrderableSectionID[]⬜有効な順序付け可能なセクションIDの配列
ThemeSchema

アクセントカラーなど、履歴書のビジュアルテーマ設定を定義します。 markdown エンジンはテーマオプションを無視します。

属性タイプ必須検証ルール
colors?{ accent?: AccentColor | HexColor }⬜アクセントカラー を参照

colors.accent オプションは、セクションタイトル、罫線、リンク、 ラベルなどのハイライト要素に使用するアクセントカラーを設定します。 名前付きの AccentColor プリセット、または任意の #RRGGBB 形式の16進カラー文字列を指定できます。

HtmlLayoutSchema

HTML レイアウト設定を検証します。

属性タイプ必須
engine'html'✅
advanced?HtmlAdvancedSchema⬜
sections?SectionsSchema⬜
template?HtmlTemplateSchema⬜
theme?ThemeSchema⬜
typography?HtmlTypographySchema⬜
HtmlAdvancedSchema

高度な HTML レイアウト設定を検証します。

属性タイプ必須検証ルール
showAnchors?boolean⬜true/false
showIcons?boolean⬜true/false
title?string⬜-
footer?string⬜-
description?string⬜-
keywords?string⬜-
HtmlTemplateSchema

HTML テンプレート設定を検証します。

属性タイプ必須検証ルール
templateHtmlTemplate⬜事前定義されたテンプレートオプション からである必要があります
HtmlTypographySchema

HTML タイポグラフィ設定を検証します。

属性タイプ必須検証ルール
fontFamily?string⬜フォントファミリーのカンマ区切りリスト。
fontSize?HtmlFontSize⬜事前定義されたフォントサイズオプション からである必要があります
lineSpacing?LineSpacing⬜事前定義された行間オプション からである必要があります

LatexLayoutSchema

LaTeX 固有の設定オプションを検証します。

属性タイプ必須検証ルール
advanced?LatexAdvancedSchema⬜高度なスキーマ を参照
engine'latex'✅"latex" でなければなりません
page?LatexPageSchema⬜ページスキーマ を参照
sections?SectionsSchema⬜セクションスキーマ を参照
template?LatexTemplate⬜事前定義されたテンプレートオプション からである必要があります
theme?ThemeSchema⬜テーマスキーマ を参照
typography?LatexTypographySchema⬜タイポグラフィスキーマ を参照
LatexAdvancedSchema

LaTeX の高度な設定オプションを検証します。

属性タイプ必須検証ルール
fontspec?{ numbers?: LatexFontspecNumbers }⬜事前定義されたfontspec 数字オプション からである必要があります
showIcons?boolean⬜true/false
showUrls?boolean⬜true/false
LatexPageSchema

文書プレゼンテーションのページレベル設定を検証します。

属性タイプ必須検証ルール
margins?MarginsSchema⬜マージンスキーマ を参照
paperSize?PaperSize⬜事前定義された用紙サイズオプション からである必要があります
showPageNumbers?boolean⬜true/false
LatexTypographySchema

文書フォーマットのタイポグラフィ設定を検証します。

属性タイプ必須検証ルール
fontSize?LatexFontSize⬜事前定義されたフォントサイズオプション からである必要があります
fontFamily?string⬜フォントファミリーのカンマ区切りリスト。
lineSpacing?LineSpacing⬜事前定義された行間オプション からである必要があります
links?{ underline?: boolean }⬜true/false

MarkdownLayoutSchema

Markdown レイアウト設定を検証します。

属性タイプ必須検証ルール
engine'markdown'✅"markdown" でなければなりません
sections?SectionsSchema⬜セクションスキーマ を参照

DocxLayoutSchema

DOCX レイアウト設定を検証します。

属性タイプ必須検証ルール
engine'docx'✅"docx" でなければなりません
advanced?DocxAdvancedSchema⬜高度なスキーマ を参照
page?DocxPageSchema⬜ページスキーマ を参照
sections?SectionsSchema⬜セクションスキーマ を参照
template?DocxTemplate⬜事前定義されたテンプレートオプション からである必要があります
theme?ThemeSchema⬜テーマスキーマ を参照
typography?DocxTypographySchema⬜タイポグラフィスキーマ を参照
DocxAdvancedSchema

DOCX の高度な設定オプションを検証します。

属性タイプ必須検証ルール
showIcons?boolean⬜true/false
showUrls?boolean⬜true/false
DocxPageSchema

文書プレゼンテーションのページレベル設定を検証します。

属性タイプ必須検証ルール
margins?MarginsSchema⬜マージンスキーマ を参照
paperSize?DocxPaperSize⬜事前定義された用紙サイズオプション からである必要があります
showPageNumbers?boolean⬜true/false
DocxTypographySchema

文書フォーマットのタイポグラフィ設定を検証します。

属性タイプ必須検証ルール
fontSize?DocxFontSize⬜事前定義されたフォントサイズオプション からである必要があります
fontFamily?string⬜フォントファミリーのカンマ区切りリスト。
lineSpacing?LineSpacing⬜事前定義された行間オプション からである必要があります

プリミティブ検証スキーマ

メールスキーマ

厳格なフォーマット要件を使用してメールアドレスを検証します。

検証ルール:

  • 有効なメール形式である必要があります
  • パターン:^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$
  • 例:hi@ppresume.com、first.last@company.org、test+tag@domain.co.uk

電話スキーマ

柔軟なフォーマットサポートを使用して電話番号を検証します。

検証ルール:

  • パターン:^[+]?[(]?[0-9\\s-]{1,15}[)]?[0-9\\s-]{1,15}$
  • 国コード、括弧、スペース、ハイフンを含む場合があります
  • 例:555-123-4567、+44 20 7946 0958、(555) 123-4567

要約スキーマ

長さ制約を使用して要約テキストを検証します。

検証ルール:

  • 16 から 1024 文字の間である必要があります
  • 例:
    • "5 年以上のフルスタック開発経験を持つソフトウェアエンジニア。"
    • "ユーザーエクスペリエンスとモダンデザイン原則に情熱を持つクリエイティブデザイナー。"
    • "時間と予算内で複雑なプロジェクトを配信する良好な記録を持つプロジェクトマネージャー。"

URL スキーマ

長さ制約を使用して URL を検証します。

検証ルール:

  • 有効な URL 形式である必要があります
  • 最大長 256 文字
  • 例:https://yamlresume.dev、https://ppresume.com、https://github.com/yamlresume/yamlresume

キーワードスキーマ

単一項目制約を使用してキーワード配列を検証します。

検証ルール:

  • 文字列配列
  • 各キーワードは 1 から 32 文字の間である必要があります
  • 例:["Javascript", "React", "Typescript"]、["Design", "UI", "UX"]

日付スキーマ

フォーマット要件を使用して日付文字列を検証します。

検証ルール:

  • 4 から 32 文字の間である必要があります
  • Date.parse() で解析可能である必要があります
  • 例:2025-01-01、Jul 2025、July 3, 2025、2025-02-02T00:00:03.123Z

マージンサイズスキーマ

単位要件を使用してマージンサイズ文字列を検証します。

検証ルール:

  • 2 から 32 文字の間である必要があります
  • パターン:^\\d+(\\.\\d+)?(cm|pt|in)$
  • 有効な単位(cm、pt、in)が続く正数である必要があります
  • 例:2.5cm、1in、72pt、0.5cm、12pt

DOCX フォントファミリースキーマ

DOCX 出力用のフォントファミリー名を検証します。

検証ルール:

  • ターゲットシステムで利用可能な有効なフォントファミリー名である必要があります
  • 例:Arial、Times New Roman、Calibri

列挙検証スキーマ

国

世界のすべての可能な国と地域のユニオンタイプ。

検証ルール:

  • 事前定義された国オプションの 1 つである必要があります
  • 例:United States、China、United Kingdom、Germany

学位

すべての可能な学位のユニオンタイプ。

検証ルール:

  • 以下のいずれかである必要があります:Associate、Bachelor、Diploma、Doctor、High School、Master、Middle School

流暢度

すべての可能な言語流暢度のユニオンタイプ。

検証ルール:

  • 以下のいずれかである必要があります:
    • Elementary Proficiency
    • Full Professional Proficiency
    • Limited Working Proficiency
    • Minimum Professional Proficiency
    • Native or Bilingual Proficiency

言語

すべてのサポートされている言語のユニオンタイプ。

検証ルール:

  • 事前定義された言語オプションの 1 つである必要があります
  • 例:English、Chinese、Spanish、French、German

レベル

すべての可能なスキル習熟度のユニオンタイプ。

検証ルール:

  • 以下のいずれかである必要があります:Advanced、Beginner、Expert、Intermediate、Master、Novice

ネットワーク

すべての可能なソーシャルネットワークオプションのユニオンタイプ。

検証ルール:

  • 事前定義されたネットワークオプションの 1 つである必要があります
  • 例:GitHub、LinkedIn、Twitter、Facebook、Instagram

AccentColor

moderncv のカラースキームパレットに 従う、すべてのアクセントカラープリセットの共用体型です。 AccentColor が期待される任意の場所では、任意の #RRGGBB 形式の 16進カラー文字列も受け付けます。

検証ルール:

  • 以下のいずれかである必要があります:
    • black - #000000
    • blue - #3873B3
    • burgundy - #980000
    • cerulean - #0081A7
    • green - #59B24D
    • grey - #737373
    • orange - #F28C26
    • purple - #8054CC
    • red - #F23333

DocxFontSize

すべての可能な DOCX フォントサイズオプションのユニオンタイプ。

検証ルール:

  • 以下のいずれかである必要があります:10pt、10.5pt、11pt、11.5pt、12pt
  • 10pt がデフォルトフォントサイズです

DocxPaperSize

すべての可能な DOCX 用紙サイズオプションのユニオンタイプ。

検証ルール:

  • 以下のいずれかである必要があります:a4、letter
  • a4 がデフォルトの用紙サイズです

DocxTemplate

すべての可能な DOCX テンプレートオプションのユニオンタイプ。

検証ルール:

LatexTemplate

すべての可能なテンプレートオプションのユニオンタイプ。

検証ルール:

  • 以下のいずれかである必要があります:jake、moderncv-banking、moderncv-casual、moderncv-classic
  • 参照:テンプレート

HtmlFontSize

すべての可能な HTML フォントサイズオプションのユニオンタイプ。

検証ルール:

  • 以下のいずれかである必要があります:14px、15px、16px、17px、18px、19px、20px
  • HTML エンジンは 14px から 20px のフォントサイズをサポートします
  • 16px がデフォルトフォントサイズです

HtmlTemplate

すべての可能な HTML テンプレートオプションのユニオンタイプ。

検証ルール:

  • 以下のいずれかである必要があります:calm、kami、vscode
  • 参照:テンプレート

LocaleLanguage

すべての可能なロケール言語のユニオンタイプ。

検証ルール:

  • 以下のいずれかである必要があります:en、es、zh-hans、zh-hant-hk、zh-hant-tw
  • 参照:多言語

LatexFontspecNumbers

すべての可能な latex fontspec 数字オプションのユニオンタイプ。

検証ルール:

  • 以下のいずれかである必要があります:
    • Auto - 選択された LocaleLanguage に基づいてスタイルを自動決定することを許可(デフォルト)
    • Lining - 標準のライニング数字(CJK 言語のデフォルト)
    • OldStyle - 異なる高さのオールドスタイル数字(ラテン言語のデフォルト)

LatexFontSize

すべての可能なフォントサイズオプションのユニオンタイプ。

検証ルール:

  • 以下のいずれかである必要があります:10pt、11pt、12pt
  • 10pt がデフォルトフォントサイズです

LineSpacing

すべての可能な行間オプションのユニオンタイプ。

検証ルール:

  • 以下のいずれかである必要があります:
    • tight - より多くのコンテンツを収めるためのコンパクトな間隔
    • snug - tight よりわずかに多いスペース
    • normal - バランス 取れた読みやすさ(デフォルト)
    • relaxed - 行間に更多のスペース
    • loose - 非常にゆったりとしたレイアウト

PaperSize

すべての可能な LaTeX 用紙サイズオプションのユニオンタイプ。

検証ルール:

  • 以下のいずれかである必要があります:a4、letter
Edit on GitHub

Last updated on

On this page