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 十六進位顏色字串。

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

枚舉驗證模式

國家

世界上所有可能國家和地區的聯合類型。

驗證規則:

  • 必須是預定義的國家選項之一
  • 示例: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

語言

所有支援語言的聯合類型。

驗證規則:

  • 必須是預定義的語言選項之一
  • 示例:English、Chinese、Spanish、French、German

級別

所有可能技能熟練程度的聯合類型。

驗證規則:

  • 必須是以下之一:Advanced、Beginner、Expert、Intermediate、Master、Novice

網路

所有可能社交網路選項的聯合類型。

驗證規則:

  • 必須是預定義的網路選項之一
  • 示例:GitHub、LinkedIn、Twitter、Facebook、Instagram

AccentColor

所有可能的強調色預設的聯合型別,遵循 moderncv 的配色方案調色盤。在任何需要 AccentColor 的地方,也接受任意的 #RRGGBB 十六進位顏色字串。

驗證規則:

  • 必須是以下之一:
    • black - #000000
    • blue - #3873B3
    • burgundy - #980000
    • cerulean - #0081A7
    • green - #59B24D
    • grey - #737373
    • orange - #F28C26
    • purple - #8054CC
    • red - #F23333

LatexTemplate

所有可能模板選項的聯合類型。

驗證規則:

  • 必須是以下之一:jake、moderncv-banking、moderncv-casual、moderncv-classic
  • 另請參閱:模板

DocxFontSize

所有可能 DOCX 字體大小選項的聯合類型。

驗證規則:

  • 必須是以下之一:10pt、10.5pt、11pt、11.5pt、12pt
  • 10pt 是預設字體大小

DocxPaperSize

所有可能 DOCX 紙張大小選項的聯合類型。

驗證規則:

  • 必須是以下之一:a4、letter
  • a4 是預設紙張大小

DocxTemplate

所有可能 DOCX 模板選項的聯合類型。

驗證規則:

  • 必須是以下之一:calm
  • 另請參閱:模板

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