Zod Schema
YAMLResume 采用 zod 在运行时验证简历数据。
本文档概述了 YAMLResume 中使用的所有 zod 模式。如果您对实现细节感兴趣,可以在这里找到源代码。
简历模式
定义整体简历结构验证,包括内容和布局验证。
属性 | 类型 | 必需 |
---|---|---|
content | ResumeContentSchema | ✅ |
layout? | ResumeLayoutSchema | ⬜ |
ResumeContentSchema
定义整个简历内容的验证结构。
属性 | 类型 | 必需 |
---|---|---|
basics | BasicsItemSchema | ✅ |
education | EducationItemSchema[] | ✅ |
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
验证获得的单个奖项、荣誉或认可。
BasicsItemSchema
验证核心个人和联系信息。
属性 | 类型 | 必需 | 验证规则 |
---|---|---|---|
name | string | ✅ | 2-128 个字符 |
email? | string | ⬜ | 参见电子邮件模式 |
headline? | string | ⬜ | 2-128 个字符 |
phone? | string | ⬜ | 参见电话模式 |
summary? | string | ⬜ | 参见摘要模式 |
url? | string | ⬜ | 参见URL 模式 |
CertificateItemSchema
验证单个认证、证书或专业资格。
EducationItemSchema
验证单个教育经历或学位课程。
属性 | 类型 | 必需 | 验证规则 |
---|---|---|---|
area | string | ✅ | 2-64 个字符 |
degree | Degree | ✅ | 必须来自预定义的学位选项 |
institution | string | ✅ | 2-128 个字符 |
startDate | string | ✅ | 参见日期模式 |
courses? | string[] | ⬜ | 每个项目 2-128 个字符 |
endDate? | string | ⬜ | 参见日期模式 |
summary? | string | ⬜ | 参见摘要模式 |
score? | string | ⬜ | 2-32 个字符 |
url? | string | ⬜ | 参见URL 模式 |
InterestItemSchema
验证单个兴趣、爱好或个人活动。
属性 | 类型 | 必需 | 验证规则 |
---|---|---|---|
name | string | ✅ | 2-128 个字符 |
keywords? | string[] | ⬜ | 参见关键词模式 |
LanguageItemSchema
验证单个语言能力项目。
LocationItemSchema
验证位置和地址信息。
属性 | 类型 | 必需 | 验证规则 |
---|---|---|---|
city | string | ✅ | 2-128 个字符 |
address? | string | ⬜ | 2-128 个字符 |
country? | Country | ⬜ | 必须来自预定义的国家选项 |
postalCode? | string | ⬜ | 2-128 个字符 |
region? | string | ⬜ | 2-128 个字符 |
ProfileItemSchema
验证单个在线个人资料或社交媒体存在。
ProjectItemSchema
验证单个项目、作品集作品或技术工作。
属性 | 类型 | 必需 | 验证规则 |
---|---|---|---|
name | string | ✅ | 2-128 个字符 |
startDate | string | ✅ | 参见日期模式 |
summary | string | ✅ | 参见摘要模式 |
description? | string | ⬜ | 4-128 个字符 |
endDate? | string | ⬜ | 参见日期模式 |
keywords? | string[] | ⬜ | 每个项目 1-32 个字符 |
url? | string | ⬜ | 有效 URL,最多 256 个字符 |
PublicationItemSchema
验证单个出版物、研究工作或学术论文。
属性 | 类型 | 必需 | 验证规则 |
---|---|---|---|
name | string | ✅ | 2-128 个字符 |
publisher | string | ✅ | 2-128 个字符 |
releaseDate? | string | ⬜ | 参见日期模式 |
summary? | string | ⬜ | 参见摘要模式 |
url? | string | ⬜ | 有效 URL,最多 256 个字符 |
ReferenceItemSchema
验证单个专业推荐人或推荐。
属性 | 类型 | 必需 | 验证规则 |
---|---|---|---|
name | string | ✅ | 2-128 个字符 |
summary | string | ✅ | 参见摘要模式 |
email? | string | ⬜ | 参见电子邮件模式 |
phone? | string | ⬜ | 有效电话格式 |
relationship? | string | ⬜ | 2-128 个字符 |
SkillItemSchema
验证单个技能、能力或技术能力。
VolunteerItemSchema
验证单个志愿者经历或社区服务。
属性 | 类型 | 必需 | 验证规则 |
---|---|---|---|
organization | string | ✅ | 2-128 个字符 |
position | string | ✅ | 2-128 个字符 |
startDate | string | ✅ | 参见日期模式 |
summary | string | ✅ | 参见摘要模式 |
endDate? | string | ⬜ | 参见日期模式 |
url? | string | ⬜ | 有效 URL,最多 256 个字符 |
WorkItemSchema
验证单个工作经历或就业职位。
属性 | 类型 | 必需 | 验证规则 |
---|---|---|---|
name | string | ✅ | 2-128 个字符 |
position | string | ✅ | 2-128 个字符 |
startDate | string | ✅ | 参见日期模式 |
summary | string | ✅ | 参见摘要模式 |
endDate? | string | ⬜ | 参见日期模式 |
keywords? | string[] | ⬜ | 每个项目 1-32 个字符 |
url? | string | ⬜ | 有效 URL,最多 256 个字符 |
ResumeLayoutSchema
定义整体布局验证配置。
属性 | 类型 | 必需 |
---|---|---|
locale? | ResumeLayoutLocaleSchema | ⬜ |
margins? | ResumeLayoutMarginsSchema | ⬜ |
page? | ResumeLayoutPageSchema | ⬜ |
template? | Template | ⬜ |
typography? | ResumeLayoutTypographySchema | ⬜ |
latex? | ResumeLayoutLaTeXSchema | ⬜ |
ResumeLayoutLocaleSchema
验证国际化和本地化的区域设置。
属性 | 类型 | 必需 | 验证规则 |
---|---|---|---|
language? | LocaleLanguage | ⬜ | 必须来自预定义的区域语言选项 |
ResumeLayoutMarginsSchema
验证文档布局的页边距设置。
ResumeLayoutPageSchema
验证文档演示的页面级设置。
属性 | 类型 | 必需 | 验证规则 |
---|---|---|---|
showPageNumbers? | boolean | ⬜ | true/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.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
枚举验证模式
国家
世界上所有可能国家和地区的联合类型。
验证规则:
- 必须是预定义的国家选项之一
- 示例:
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
模板
所有可能模板选项的联合类型。
验证规则:
- 必须是以下之一:
moderncv-banking
、moderncv-casual
、moderncv-classic
- 另请参阅:模板
区域语言
所有可能区域语言的联合类型。
验证规则:
- 必须是以下之一:
en
、es
、zh-hans
、zh-hant-hk
、zh-hant-tw
- 另请参阅:多语言
FontspecNumbers
所有可能 latex fontspec 数字选项的联合类型。
验证规则:
- 必须是以下之一:
Auto
- 允许根据选定的LocaleLanguage
自动确定样式(默认)Lining
- 标准衬线数字(CJK 语言的默认值)OldStyle
- 不同高度的旧式数字(拉丁语言的默认值)
字体大小
所有可能字体大小选项的联合类型。
验证规则:
- 必须是以下之一:
10pt
、11pt
、12pt
10pt
是默认字体大小
Last updated on