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

验证获得的单个奖项、荣誉或认可。

属性类型必需验证规则
awarderstring2-128 个字符
titlestring2-128 个字符
date?string参见日期模式
summary?string参见摘要模式

BasicsItemSchema

验证核心个人和联系信息。

属性类型必需验证规则
namestring2-128 个字符
email?string参见电子邮件模式
headline?string2-128 个字符
phone?string参见电话模式
summary?string参见摘要模式
url?string参见URL 模式

CertificateItemSchema

验证单个认证、证书或专业资格。

属性类型必需验证规则
issuerstring2-128 个字符
namestring2-128 个字符
date?string参见日期模式
url?string参见URL 模式

EducationItemSchema

验证单个教育经历或学位课程。

属性类型必需验证规则
areastring2-64 个字符
degreeDegree必须来自预定义的学位选项
institutionstring2-128 个字符
startDatestring参见日期模式
courses?string[]每个项目 2-128 个字符
endDate?string参见日期模式
summary?string参见摘要模式
score?string2-32 个字符
url?string参见URL 模式

InterestItemSchema

验证单个兴趣、爱好或个人活动。

属性类型必需验证规则
namestring2-128 个字符
keywords?string[]参见关键词模式

LanguageItemSchema

验证单个语言能力项目。

属性类型必需验证规则
fluencyFluency必须来自预定义的熟练程度选项
languageLanguage必须来自预定义的语言选项
keywords?string[]每个项目 1-32 个字符

LocationItemSchema

验证位置和地址信息。

属性类型必需验证规则
citystring2-128 个字符
address?string2-128 个字符
country?Country必须来自预定义的国家选项
postalCode?string2-128 个字符
region?string2-128 个字符

ProfileItemSchema

验证单个在线个人资料或社交媒体存在。

属性类型必需验证规则
networkNetwork必须来自预定义的网络选项
usernamestring2-128 个字符
url?string有效 URL,最多 256 个字符

ProjectItemSchema

验证单个项目、作品集作品或技术工作。

属性类型必需验证规则
namestring2-128 个字符
startDatestring参见日期模式
summarystring参见摘要模式
description?string4-128 个字符
endDate?string参见日期模式
keywords?string[]每个项目 1-32 个字符
url?string有效 URL,最多 256 个字符

PublicationItemSchema

验证单个出版物、研究工作或学术论文。

属性类型必需验证规则
namestring2-128 个字符
publisherstring2-128 个字符
releaseDate?string参见日期模式
summary?string参见摘要模式
url?string有效 URL,最多 256 个字符

ReferenceItemSchema

验证单个专业推荐人或推荐。

属性类型必需验证规则
namestring2-128 个字符
summarystring参见摘要模式
email?string参见电子邮件模式
phone?string有效电话格式
relationship?string2-128 个字符

SkillItemSchema

验证单个技能、能力或技术能力。

属性类型必需验证规则
levelLevel必须来自预定义的级别选项
namestring2-128 个字符
keywords?string[]每个项目 1-32 个字符

VolunteerItemSchema

验证单个志愿者经历或社区服务。

属性类型必需验证规则
organizationstring2-128 个字符
positionstring2-128 个字符
startDatestring参见日期模式
summarystring参见摘要模式
endDate?string参见日期模式
url?string有效 URL,最多 256 个字符

WorkItemSchema

验证单个工作经历或就业职位。

属性类型必需验证规则
namestring2-128 个字符
positionstring2-128 个字符
startDatestring参见日期模式
summarystring参见摘要模式
endDate?string参见日期模式
keywords?string[]每个项目 1-32 个字符
url?string有效 URL,最多 256 个字符

LocaleSchema

验证国际化和本地化的区域设置。

属性类型必需验证规则
language?LocaleLanguage必须来自预定义的区域语言选项

LayoutsSchema

定义整体布局验证配置。

属性类型必需验证规则
layouts[]HtmlLayoutSchema | LatexLayoutSchema | MarkdownLayoutSchema布局配置数组。

通用布局模式

MarginsSchema

验证文档布局的页边距设置。

属性类型必需验证规则
top?string参见页边距大小模式
bottom?string参见页边距大小模式
left?string参见页边距大小模式
right?string参见页边距大小模式
SectionsSchema

验证分节自定义设置。

属性类型必需验证规则
aliases?Record<SectionID, string>键必须是有效的分节 ID,值必须是字符串(2-128 个字符)
order?OrderableSectionID[]有效可排序分节 ID 的数组

HtmlLayoutSchema

验证 HTML 布局配置。

属性类型必需
engine'html'
advanced?HtmlAdvancedSchema
sections?SectionsSchema
template?HtmlTemplateSchema
typography?HtmlTypographySchema
HtmlAdvancedSchema

验证 HTML 的高级布局配置选项。

属性类型必需验证规则
showIcons?booleantrue/false
title?string-
footer?string-
description?string-
keywords?string-
HtmlTemplateSchema

验证 HTML 模板配置。

属性类型必需验证规则
templateHtmlTemplate必须来自预定义的模板选项
HtmlTypographySchema

验证 HTML 排版设置。

属性类型必需验证规则
fontFamily?string逗号分隔的字体家族列表。
fontSize?HtmlFontSize必须来自预定义的字体大小选项

LatexLayoutSchema

验证 LaTeX 布局配置。

属性类型必需验证规则
advanced?LatexAdvancedSchema参见高级模式
engine'latex'必须是 "latex"
page?LatexPageSchema参见页面模式
sections?SectionsSchema参见分节模式
template?LatexTemplate必须来自预定义的模板选项
typography?LatexTypographySchema参见排版模式
LatexAdvancedSchema

验证 LaTeX 的高级配置选项。

属性类型必需验证规则
fontspec?{ numbers?: LatexFontspecNumbers }必须来自预定义的fontspec 数字选项
showIcons?booleantrue/false
LatexPageSchema

验证文档演示的页面级设置。

属性类型必需验证规则
margins?MarginsSchema参见页边距模式
paperSize?PaperSize必须来自预定义的纸张大小选项
showPageNumbers?booleantrue/false
LatexTypographySchema

验证文档格式的排版设置。

属性类型必需验证规则
fontSize?string必须来自预定义的字体大小选项
fontFamily?string逗号分隔的字体家族列表。
links?{ underline?: boolean }true/false

MarkdownLayoutSchema

验证 Markdown 布局配置。

属性类型必需验证规则
engine'markdown'必须是 "markdown"
sections?SectionsSchema参见分节模式

原始验证模式

电子邮件模式

使用严格格式要求验证电子邮件地址。

验证规则:

  • 必须是有效的电子邮件格式
  • 模式:^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$
  • 示例:hi@ppresume.comfirst.last@company.orgtest+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.devhttps://ppresume.comhttps://github.com/yamlresume/yamlresume

关键词模式

使用单个项目约束验证关键词数组。

验证规则:

  • 字符串数组
  • 每个关键词必须在 1 到 32 个字符之间
  • 示例:["Javascript", "React", "Typescript"]["Design", "UI", "UX"]

日期模式

使用格式要求验证日期字符串。

验证规则:

  • 必须在 4 到 32 个字符之间
  • 必须可被 Date.parse() 解析
  • 示例:2025-01-01Jul 2025July 3, 20252025-02-02T00:00:03.123Z

页边距大小模式

使用单位要求验证页边距大小字符串。

验证规则:

  • 必须在 2 到 32 个字符之间
  • 模式:^\\d+(\\.\\d+)?(cm|pt|in)$
  • 必须是正数后跟有效单位:cm、pt 或 in
  • 示例:2.5cm1in72pt0.5cm12pt

枚举验证模式

国家

世界上所有可能国家和地区的联合类型。

验证规则:

  • 必须是预定义的国家选项之一
  • 示例:United StatesChinaUnited KingdomGermany

学位

所有可能学位的联合类型。

验证规则:

  • 必须是以下之一:AssociateBachelorDiplomaDoctorHigh SchoolMasterMiddle School

熟练程度

所有可能语言熟练程度的联合类型。

验证规则:

  • 必须是以下之一:
    • Elementary Proficiency
    • Full Professional Proficiency
    • Limited Working Proficiency
    • Minimum Professional Proficiency
    • Native or Bilingual Proficiency

语言

所有支持语言的联合类型。

验证规则:

  • 必须是预定义的语言选项之一
  • 示例:EnglishChineseSpanishFrenchGerman

级别

所有可能技能熟练程度的联合类型。

验证规则:

  • 必须是以下之一:AdvancedBeginnerExpertIntermediateMasterNovice

网络

所有可能社交网络选项的联合类型。

验证规则:

  • 必须是预定义的网络选项之一
  • 示例:GitHubLinkedInTwitterFacebookInstagram

LatexTemplate

所有可能模板选项的联合类型。

验证规则:

  • 必须是以下之一:moderncv-bankingmoderncv-casualmoderncv-classic
  • 必须是以下之一:moderncv-bankingmoderncv-casualmoderncv-classic
  • 另请参阅:模板

HtmlFontSize

所有可能 HTML 字体大小选项的联合类型。

验证规则:

  • 必须是以下之一:10px11px12px13px14px15px16px17px18px19px20px21px22px23px24px
  • HTML 引擎支持 10px 到 24px 的字体大小
  • 16px 是默认字体大小

HtmlTemplate

所有可能 HTML 模板选项的联合类型。

验证规则:

  • 必须是以下之一:calm
  • 另请参阅:模板

LocaleLanguage

所有可能区域语言的联合类型。

验证规则:

  • 必须是以下之一:eneszh-hanszh-hant-hkzh-hant-tw
  • 另请参阅:多语言

LatexFontspecNumbers

所有可能 latex fontspec 数字选项的联合类型。

验证规则:

  • 必须是以下之一:
    • Auto - 允许根据选定的 LocaleLanguage 自动确定样式(默认)
    • Lining - 标准衬线数字(CJK 语言的默认值)
    • OldStyle - 不同高度的旧式数字(拉丁语言的默认值)

LatexFontSize

所有可能字体大小选项的联合类型。

验证规则:

  • 必须是以下之一:10pt11pt12pt
  • 10pt 是默认字体大小

PaperSize

所有可能的 LaTeX 纸张大小选项的联合类型。

验证规则:

  • 必须是以下之一:a4letter
Edit on GitHub

Last updated on