YAMLResume

Zod Schema

YAMLResume 采用 zod 在运行时验证简历数据。

本文档概述了 YAMLResume 中使用的所有 zod 模式。如果您对实现细节感兴趣,可以在这里找到源代码。

简历模式

定义整体简历结构验证,包括内容和布局验证。

属性类型必需
contentResumeContentSchema
layout?ResumeLayoutSchema

ResumeContentSchema

定义整个简历内容的验证结构。

属性类型必需
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 个字符

ResumeLayoutSchema

定义整体布局验证配置。

ResumeLayoutLocaleSchema

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

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

ResumeLayoutMarginsSchema

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

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

ResumeLayoutPageSchema

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

属性类型必需验证规则
showPageNumbers?booleantrue/false

ResumeLayoutTypographySchema

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

属性类型必需验证规则
fontSize?string必须来自预定义的字体大小选项

ResumeLayoutLaTeXSchema

验证 LaTeX 特定配置选项。

属性类型必需验证规则
fontspec?{ numbers?: FontspecNumbers }必须来自预定义的fontspec 数字选项

原始验证模式

电子邮件模式

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

验证规则:

  • 必须是有效的电子邮件格式
  • 模式:^(?!\.)(?!.*\.\.)([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

模板

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

验证规则:

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

区域语言

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

验证规则:

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

FontspecNumbers

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

验证规则:

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

字体大小

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

验证规则:

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

Last updated on