YAMLResume

类型

本文档概述了定义 YAMLResume 简历结构的 TypeScript 类型。作为 TypeScript 项目,YAMLResume 采用静态类型来确保数据一致性。此文件提供了用于表示简历信息的核心数据结构概述,包括个人详细信息、教育、经验、技能等。

您可以查看 types/index.ts 了解真实来源的详细信息。

理解这些类型对于想要自定义或扩展 YAMLResume 功能的贡献者和开发者至关重要。

本文档为寻求创建有效 YAMLResume 的用户提供权威参考,阐明可选和必填字段之间的区别。为了确保在 YAMLResume 中成功编译,最小简历必须包含以下基本字段:

  • content.basics.name
  • education[number].area
  • education[number].degree
  • education[number].institution
  • education[number].startDate

因此,理论上最小可行简历如下所示:

content:
  basics:
    name: Xiao Hanyu
  education:
    - area: Computer Science and Technology
      degree: Bachelor
      institution: Zhejiang University
      startDate: Sep, 2007

Resume

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

属性类型必需描述
contentContent✅定义整个简历内容的结构。
layouts?Layouts⬜定义整体布局配置。
locale?Locale⬜定义整体区域配置。

以下是简历结构的高级图表:

Content

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

属性类型必需描述
basicsBasicsItem✅表示核心个人和联系信息。
educationEducationItem[]✅包含教育经历集合。
awards?AwardItem[]⬜包含奖项和认可集合。
certificates?CertificateItem[]⬜包含认证和证书集合。
interests?InterestItem[]⬜包含兴趣、爱好或个人活动集合。
languages?LanguageItem[]⬜包含语言能力集合。
location?LocationItem⬜包含位置信息。
projects?ProjectItem[]⬜包含项目集合。
profiles?ProfileItem[]⬜包含在线个人资料集合。
publications?PublicationItem[]⬜包含出版物集合。
references?ReferenceItem[]⬜包含推荐人集合。
skills?SkillItem[]⬜包含技能集合。
volunteer?VolunteerItem[]⬜包含志愿者经历集合。
work?WorkItem[]⬜包含工作经历和就业历史集合。

AwardItem

表示获得的单个奖项、荣誉或认可。

属性类型必需描述
awarderstring✅颁发奖项的组织或实体。
titlestring✅奖项的名称或标题。
date?string⬜获奖日期(例如:"2020"、"Oct 2020")。
summary?string⬜关于奖项的简短描述或详细信息。

BasicsItem

表示核心个人和联系信息。

属性类型必需描述
namestring✅全名。
email?string⬜电子邮件地址。
headline?string⬜简短的专业标题或职位(例如:"软件工程师")。
phone?string⬜电话号码。
summary?string⬜专业摘要或目标声明。
url?string⬜个人网站或作品集 URL。

CertificateItem

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

属性类型必需描述
issuerstring✅颁发证书的组织。
namestring✅证书名称。
date?string⬜获得证书的日期(例如:"2021"、"Nov 2021")。
url?string⬜与证书相关的 URL(例如:验证链接)。

EducationItem

表示单个教育经历或学位课程。

属性类型必需描述
areastring✅学习领域(例如:"计算机科学")。
degreeDegree✅获得的学位类型。
institutionstring✅机构名称。
startDatestring✅学习开始日期(例如:"2016"、"Sep 2016")。
courses?string[]⬜所修课程列表。
endDate?string⬜学习结束日期(例如:"2020"、"May 2020"),空值表示"现在"。
summary?string⬜成就或详细信息的描述。
score?string⬜GPA 或学术成绩。
url?string⬜与机构或学位相关的 URL。

InterestItem

表示单个兴趣、爱好或个人活动。

属性类型必需描述
namestring✅兴趣类别名称(例如:"阅读"、"摄影")。
keywords?string[]⬜与兴趣相关的关键词。

LanguageItem

表示单个语言能力项目。

属性类型必需描述
fluencyFluency✅语言熟练程度。
languageLanguage✅语言。
keywords?string[]⬜与语言技能相关的特定关键词(例如:"翻译")。

LocationItem

表示位置和地址信息。

属性类型必需描述
citystring✅城市名称。
address?string⬜街道地址。
country?Country⬜国家代码或名称。
postalCode?string⬜邮政编码。
region?string⬜州、省或地区。

ProfileItem

表示单个在线个人资料或社交媒体存在。

属性类型必需描述
networkNetwork✅网络或平台名称。
usernamestring✅平台上的用户名。
url?string⬜个人资料的 URL。

ProjectItem

表示单个项目、作品集作品或技术工作。

属性类型必需描述
namestring✅项目名称。
startDatestring✅项目开始日期(例如:"2021"、"Jan 2021")。
summarystring✅项目的详细成就。
description?string⬜项目描述。
endDate?string⬜项目结束日期(例如:"2022"、"Jul 2022")。
keywords?string[]⬜项目中使用的关键词或技术。
url?string⬜与项目相关的 URL(例如:仓库、实时演示)。

PublicationItem

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

属性类型必需描述
namestring✅出版物的名称或标题。
publisherstring✅作品的出版商。
releaseDate?string⬜发布日期(例如:"2023"、"Mar 2023")。
summary?string⬜出版物的摘要或摘要。
url?string⬜与出版物相关的 URL(例如:DOI、链接)。

ReferenceItem

表示单个专业推荐人或推荐。

属性类型必需描述
namestring✅推荐人姓名。
summarystring✅关于推荐人的简短说明。
email?string⬜推荐人的电子邮件地址。
phone?string⬜推荐人的电话号码。
relationship?string⬜与推荐人的关系(例如:"前经理")。

SkillItem

表示单个技能、能力或技术能力。

属性类型必需描述
levelLevel✅技能熟练程度。
namestring✅技能名称。
keywords?string[]⬜与技能相关的特定关键词或技术。

VolunteerItem

表示单个志愿者经历或社区服务。

属性类型必需描述
organizationstring✅组织名称。
positionstring✅担任的角色或职位。
startDatestring✅志愿者工作开始日期(例如:"2019"、"Jun 2019")。
summarystring✅职责或成就摘要。
endDate?string⬜志愿者工作结束日期(例如:"2020"、"Dec 2020")。
url?string⬜与组织或工作相关的 URL。

WorkItem

表示单个工作经历或就业职位。

属性类型必需描述
namestring✅公司或雇主名称。
positionstring✅职位或担任的职位。
startDatestring✅就业开始日期(例如:"2021"、"Apr 2021")。
summarystring✅职责和成就摘要。
endDate?string⬜就业结束日期(例如:"2023"、"Aug 2023")。
keywords?string[]⬜与角色或使用的技术相关的关键词。
url?string⬜与公司或工作相关的 URL。

Locale

定义国际化和本地化的区域设置。

属性类型必需描述
language?LocaleLanguage⬜简历内容和模板术语的选定语言。

Layouts

支持多种输出格式的布局项数组。

属性类型必需描述
layouts[]DocxLayout | HtmlLayout | LatexLayout | MarkdownLayout⬜多个输出布局配置。

通用布局类型

Margins

定义文档布局的页边距设置。

属性类型必需描述
top?string⬜上边距值(例如:"2.5cm")。
bottom?string⬜下边距值(例如:"2.5cm")。
left?string⬜左边距值(例如:"1.5cm")。
right?string⬜右边距值(例如:"1.5cm")。
Sections

定义分节别名设置以自定义分节名称。

属性类型必需描述
aliases?Record<SectionID, string>⬜用于分节名称的自定义别名,覆盖默认翻译。
order?OrderableSectionID[]⬜最终输出中分节的自定义顺序。
Theme

定义简历的视觉主题设置,例如强调色。markdown 引擎会忽略主题选项。

属性类型必需说明
colors?{ accent?: AccentColor | HexColor }⬜定义主题颜色设置。

colors.accent 选项设置用于章节标题、分隔线、链接和标签等突出元素的强调色。它接受命名的 AccentColor 预设或任意的 #RRGGBB 十六进制颜色字符串。

HtmlLayout

HTML 布局配置。

属性类型必需描述
engine'html'✅生成简历的引擎。
advanced?HtmlAdvanced⬜定义高级布局配置选项。
sections?Sections⬜定义分节自定义设置。
template?HtmlTemplate⬜定义选定的模板。
theme?Theme⬜定义简历的视觉主题设置。
typography?HtmlTypography⬜定义文档格式的排版设置。
HtmlAdvanced

定义 HTML 的高级配置选项。

属性类型必需描述
showAnchors?boolean⬜是否在章节和条目上生成用于锚点导航的 fragment id 属性(默认:true)。
showIcons?boolean⬜是否显示链接和社交主页的图标。
title?string⬜HTML 文档的自定义标题。
footer?string⬜HTML 文档的自定义页脚。
description?string⬜HTML 文档的 Meta 描述。
keywords?string⬜HTML 文档的 Meta 关键词。
HtmlTypography

定义 HTML 文档格式的排版设置。

属性类型必需描述
fontFamily?string⬜要使用的逗号分隔的字体家族列表。
fontSize?HtmlFontSize⬜文档的基础字体大小。
lineSpacing?LineSpacing⬜文档的行间距。

LatexLayout

LaTeX 布局配置。

属性类型必需描述
advanced?LatexAdvanced⬜定义高级配置选项。
engine'latex'✅生成简历的引擎。
page?LatexPage⬜定义文档演示的页面级设置。
sections?Sections⬜定义分节自定义设置。
template?LatexTemplate⬜定义选定的模板。
theme?Theme⬜定义简历的视觉主题设置。
typography?LatexTypography⬜定义文档格式的排版设置。
LatexAdvanced

定义 LaTeX 的高级配置选项。

属性类型必需描述
fontspec?{ numbers?: LatexFontspecNumbers }⬜LaTeX fontspec 包配置。
showIcons?boolean⬜是否显示链接和社交主页的图标。
showUrls?boolean⬜是否显示原始 URL 或将其隐藏在合理的文本后面。
LatexPage

定义 LaTeX 的文档演示页面级设置。

属性类型必需描述
margins?Margins⬜定义页边距设置。
paperSize?PaperSize⬜定义纸张大小。
showPageNumbers?boolean⬜是否显示页码。
LatexTypography

定义 LaTeX 的文档格式排版设置。

属性类型必需描述
fontSize?LatexFontSize⬜文档的基础字体大小。
fontFamily?string⬜要使用的逗号分隔的字体家族列表。
lineSpacing?LineSpacing⬜文档的行间距。
links?{ underline?: boolean }⬜链接样式设置。

MarkdownLayout

Markdown 布局配置。

属性类型必需描述
engine'markdown'✅生成简历的引擎。
sections?Sections⬜定义分节自定义设置。

DocxLayout

DOCX 布局配置。

属性类型必需描述
engine'docx'✅生成简历的引擎。
advanced?DocxAdvanced⬜定义高级配置选项。
page?DocxPage⬜定义文档演示的页面级设置。
sections?Sections⬜定义分节自定义设置。
template?DocxTemplate⬜定义选定的模板。
theme?Theme⬜定义简历的视觉主题设置。
typography?DocxTypography⬜定义文档格式的排版设置。
DocxAdvanced

定义 DOCX 的高级配置选项。

属性类型必需描述
showIcons?boolean⬜是否显示链接和社交主页的图标。
showUrls?boolean⬜是否显示原始 URL 或将其隐藏在合理的文本后面。
DocxPage

定义 DOCX 的文档演示页面级设置。

属性类型必需描述
margins?Margins⬜定义页边距设置。
paperSize?DocxPaperSize⬜定义纸张大小。
showPageNumbers?boolean⬜是否显示页码。
DocxTypography

定义 DOCX 的文档格式排版设置。

属性类型必需描述
fontSize?DocxFontSize⬜文档的基础字体大小。
fontFamily?string⬜要使用的逗号分隔的字体家族列表。
lineSpacing?LineSpacing⬜文档的行间距。

枚举类型

内容 Enum

Country

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

Degree

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

  • Associate
  • Bachelor
  • Diploma
  • Doctor
  • High School
  • Master
  • Middle School

Fluency

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

  • Elementary Proficiency
  • Full Professional Proficiency
  • Limited Working Proficiency
  • Minimum Professional Proficiency
  • Native or Bilingual Proficiency

Language

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

Level

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

  • Advanced
  • Beginner
  • Expert
  • Intermediate
  • Master
  • Novice

Network

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

布局 Enum

AccentColor

所有可能的强调色预设的联合类型,遵循 moderncv 的配色方案调色板。在任何需要 AccentColor 的地方,也接受任意的 #RRGGBB 十六进制颜色字符串。

  • black - #000000
  • blue - #3873B3
  • burgundy - #980000
  • cerulean - #0081A7
  • green - #59B24D
  • grey - #737373
  • orange - #F28C26
  • purple - #8054CC
  • red - #F23333

DocxFontSize

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

  • 10pt - 10pt 字体大小(默认)
  • 10.5pt - 10.5pt 字体大小
  • 11pt - 11pt 字体大小
  • 11.5pt - 11.5pt 字体大小
  • 12pt - 12pt 字体大小

DocxPaperSize

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

  • a4(默认)
  • letter

DocxTemplate

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

另请参阅:模板

  • calm

HtmlFontSize

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

HTML 引擎支持 14px 到 20px 的字体大小:

  • 14px、15px、16px (默认)、17px、18px、19px、20px

HtmlTemplate

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

另请参阅:模板

  • calm
  • kami
  • vscode

LatexFontSize

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

目前只支持 3 个选项:

  • 10pt - 10pt 字体大小(默认)
  • 11pt - 11pt 字体大小
  • 12pt - 12pt 字体大小

LineSpacing

所有可能的行间距选项的联合类型。

这些语义值遵循 Tailwind CSS 的 leading 刻度:

  • tight - 紧凑间距,适合容纳更多内容
  • snug - 比 tight 稍多的空间
  • normal - 均衡的可读性(默认)
  • relaxed - 行之间更多呼吸空间
  • loose - 非常宽松的布局

LatexFontspecNumbers

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

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

LatexTemplate

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

另请参阅:模板

  • jake
  • moderncv-banking
  • moderncv-casual
  • moderncv-classic

PaperSize

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

  • a4 (默认)
  • letter

语言 Enum

LocaleLanguage

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

另请参阅:多语言

  • en
  • es
  • zh-hans
  • zh-hant-hk
  • zh-hant-tw
Edit on GitHub

Last updated on

On this page