YAMLResume v0.8: Markdown 输出

YAMLResume v0.8 引入了对多种布局的支持,支持 Markdown 与 PDF 的同步输出。

我们非常激动地宣布 YAMLResume v0.8 的发布,这是我们让“Resume as Code”成为全球开发者和专业人士标准之旅中的一个重要里程碑。

自成立以来,YAMLResume 一直专注于一个内核使命:允许您以干净、版本控制友好的 YAML 格式编写简历,并将其编译为排版精美、像素完美的 PDF。虽然 PDF 仍然是求职的黄金标准,但我们意识到我们的用户经常需要其他格式的简历数据——用于个人网站、粘贴到申请人跟踪系统 (ATS),甚至用于输入大型语言模型 (LLM) 进行优化。

在 v0.8 中,我们引入了一个强大的新架构:多布局,随之而来的是对 Markdown 输出的一流支持。

TL;DR,快速演示:

YAMLResume v0.8: Markdown Output

带布局的 YAMLResume

在 YAMLResume 的早期版本中,编译流程是线性且单一的。您提供一个 YAML 文档,引擎吐出一个 PDF。如果您想要不同的模板,您需要更改 layout.template 字段。如果您想要不同的字体大小,您需要微调排版设置。但最终,目的地始终是通过 LaTeX 引擎生成的 PDF 文档。

这虽然有效,但也存在局限性。如果您想生成一份 PDF 通过电子邮件发送给招聘人员,同时也需要一份纯文本版本用于旧版表格怎么办?如果您想要一份 Markdown 版本发布在您的 HugoNext.js 博客上怎么办?

在 v0.8 中,我们完全重新设计了布局架构以支持多布局。现在,您可以在简历的 YAML 文档中定义一个布局列表,而不是单一的一组输出设置。每个布局指定一个 engine(如 latexmarkdown)及其特定的配置选项。

这意味着只需一个 yamlresume build 命令现在可以同时生成多个工件——PDF、Markdown 文档,未来还会有 HTML 或 docx 文档。这遵循了“单一事实来源”原则:您的 resume.yml 仍然是单一的事实来源,而输出只是为不同交付渠道量身定制的衍生表示。

这是新配置在您的 YAML 文档中的样子:

# Multiple output layouts configuration
layouts:
  - engine: latex
    page:
      margins:
        top: 2.5cm
        left: 1.5cm
        right: 1.5cm
        bottom: 2.5cm
      showPageNumbers: true
    template: moderncv-banking
    typography:
      fontSize: 11pt
  - engine: markdown

如您所见,我们在这里定义了两个布局。第一个使用 latex 引擎(我们经典的 PDF 生成器),带有特定的模板、页边距和排版设置等。第二个使用新的 markdown 引擎。这种方法的美妙之处在于,您可以根据需要添加或删除布局,而无需触及简历的实际内容。

Markdown 作为新的输出

为什么是 Markdown?Markdown 已成为开发者世界的通用语言。它轻量、可读且受到普遍支持。通过添加 Markdown 作为输出目标,YAMLResume 弥合了正式简历文档与灵活、网络优先的世界之间的鸿沟。

让我们看看实际操作。如果您安装了 yamlresume(版本 0.8.0 或更高),您只需两个命令即可生成新简历并进行构建。

第一步:创建新简历

首先,让我们使用 CLI 生成一个样板简历:

$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.

这将创建一个带有默认配置的 my-resume.yml 文档,该文档现在默认包含 LaTeXMarkdown 布局。

这是生成的 my-resume.yml 文档的内容——您可以忽略 content,直接看最后一行以查看 markdown 布局配置:

---
# yaml-language-server: $schema=https://yamlresume.dev/schema.json

content:
  basics:
    name: Andy Dufresne
    headline: Headed for the Pacific
    phone: "(213) 555-9876"
    email: hi@ppresume.com
    url: https://ppresume.com/gallery
    summary: |
      - Computer Science major with strong foundation in data structures, algorithms, and software development
      - Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
      - Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
      - Team player, with detail-oriented mindset and a keen eye for design and user experiences
  location:
    address: 123 Main Street
    city: Sacramento
    region: California
    country: United States
    postalCode: "95814"
  profiles:
    - network: Line
      url: https://line.com/PPResumeX
      username: PPResumeX
    - network: Twitter
      url: https://twitter.com/PPResumeX
      username: PPResumeX
  education:
    - institution: University of Southern California
      url: https://www.cs.usc.edu/
      degree: Bachelor
      area: Computer Engineering and Computer Science
      score: "3.8"
      startDate: Sep 1, 2016
      endDate: Jul 1, 2020
      courses:
        - Discrete Methods in Computer Science
        - Programming Language Concepts
        - Data Structures and Object-Oriented Design
        - Operating Systems
        - Computer Architecture
        - Database Systems
        - Computer Networking
        - Introduction to the Theory of Computing
      summary: |
        - Developed proficiency in programming languages such as Java, C++, and Python
        - Gained hands-on experience in software development through various projects and assignments
        - Strong communication and teamwork skills acquired through group projects and presentations
  work:
    - name: PPResume
      url: https://ppresume.com
      startDate: Dec 1, 2022
      endDate:
      position: Senior Software Engineer
      summary: |
        - Developed and implemented efficient and scalable code, ensuring high-quality and maintainable web applications
        - Collaborated with cross-functional teams to gather project requirements and translate them into technical solutions
        - Conducted thorough testing and debugging to identify and resolve any issues or bugs in the software
        - Actively participated in code reviews, providing valuable feedback to improve code quality and adherence to best practices
        - Mentored and guided junior developers, fostering a collaborative and growth-oriented team environment
      keywords:
        - Scalability
        - Growth
        - Quality
        - Mentorship
    - name: PPResume
      url: https://ppresume.com
      startDate: Sep 1, 2020
      endDate: Dec 1, 2022
      position: Software Engineer
      summary: |
        - Created reusable React components to ensure code efficiency and maintainability
        - Integrated with RESTful APIs to fetch and display dynamic data on the frontend
        - Implemented client-side routing using React Router for smooth navigation between pages
        - Actively participated in Agile development methodologies, attending daily stand-up meetings and sprint planning sessions
      keywords:
        - RESTful
        - React
        - Agile
  languages:
    - language: English
      fluency: Native or Bilingual Proficiency
      keywords:
        - TOEFL 110
        - IELTS 7.5
    - language: Chinese
      fluency: Elementary Proficiency
      keywords: []
  skills:
    - name: Web Development
      level: Expert
      keywords:
        - Python
        - Ruby
        - CSS
        - React
        - JavaScript
    - name: DevOps
      level: Intermediate
      keywords:
        - Python
        - Kubernetes
        - Docker
        - Shell
        - Ansible
    - name: Design
      level: Intermediate
      keywords:
        - Sketch
        - Figma
        - Photoshop
  awards:
    - title: Dean's List
      awarder: University of Southern California
      date: Oct 2016
      summary: |
        Awarded to students who achieve a high academic standing by maintaining a specified grade point average (GPA) during a semester.
  certificates:
    - name: AWS Certified Developer - Associate
      url: https://aws.amazon.com/certification/
      issuer: AWS
      date: Mar 2021
  publications:
    - publisher: ACM Transactions on Interactive Intelligent Systems
      url: https://dl.acm.org/journal/tiis
      name: Enhancing Human-Computer Interaction through Augmented Reality
      releaseDate: Dec 2017
      summary: |
        - Explores the potential of augmented reality (AR) in improving interaction between humans and computers
        - Highlights benefits of AR in various areas such as gaming, education, healthcare, and design
        - Discusses challenges and future directions of AR technology in enhancing user experience
  references:
    - name: Dr. Amanda Reynolds
      phone: "(555) 123-4567"
      relationship: Computer Science Professor
      email: amanda.reynolds@usc.edu
      summary: |
        Andy Dufresne shows exceptional problem-solving skills and a solid understanding of programming concepts, he would bring immense value to any team or organization he becomes a part of.
  projects:
    - name: EduWeb
      url: https://www.eduweb.xyz/
      description: A web-based educational platform for interactive learning
      startDate: Sep 2016
      endDate: Dec 2016
      summary: |
        - Designed to enhance online learning experiences
        - Facilitates students' engagement and collaboration through interactive features and user-friendly interface
        - Offers a wide range of courses across various subjects
        - Aims to improve the way students learn through the power of the web
      keywords:
        - Education
        - Online Learning
        - HCI
  interests:
    - name: Sports
      keywords:
        - Soccer
        - Swimming
        - Bicycling
        - Hiking
    - name: Music
      keywords:
        - Piano
        - Guitar
  volunteer:
    - organization: USC Computer Science and Engineering Society
      url: https://www.usccsesociety.org/
      position: Tech Mentor
      startDate: Sep 2015
      endDate: Jul 2023
      summary: |
        - Volunteered as a Tech Mentor at USC Computer Science and Engineering Society
        - Provided guidance and assistance to fellow students in their technical projects and coursework
        - Assisted in organizing workshops, coding competitions, and networking events for the society members
        - Contributed to fostering a collaborative and supportive environment within the student community

locale:
  language: en

layouts:
  - engine: latex
    page:
      margins:
        top: 2.5cm
        left: 1.5cm
        right: 1.5cm
        bottom: 2.5cm
      showPageNumbers: true
    template: moderncv-banking
    typography:
      fontSize: 11pt
  - engine: markdown

第二步:构建简历

现在,运行构建命令:

$ yamlresume build my-resume.yml
✔ Generated resume tex file successfully: my-resume.tex
◐ Generating resume pdf file with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume pdf file successfully: my-resume.pdf
✔ Generated resume markdown file successfully: my-resume.md

注意最后一行: ✔ Generated resume markdown file successfully: my-resume.md。CLI 已自动检测到您 YAML 配置中的 markdown 布局,并生成了相应的 .md 文档以及 PDF。

结果 Markdown

让我们看看生成的 my-resume.md。引擎使用标准语法标题、列表和链接,智能地将您的结构化 YAML 数据转换为干净、格式良好的 Markdown 文档。

# Andy Dufresne

Headline: Headed for the Pacific

- Email: hi@ppresume.com
- Phone: (213) 555-9876
- URL: https://ppresume.com/gallery

Location: 123 Main Street, Sacramento, California, United States, 95814

Profiles:

- Line: [@PPResumeX](https://line.com/PPResumeX)
- Twitter: [@PPResumeX](https://twitter.com/PPResumeX)

## Basics

- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiences

## Education

### University of Southern California

Bachelor, Computer Engineering and Computer Science, Score: 3.8, Sep 2016–Jul 2020

URL: https://www.cs.usc.edu/

Courses: Discrete Methods in Computer Science, Programming Language Concepts, Data Structures and Object-Oriented Design, Operating Systems, Computer Architecture, Database Systems, Computer Networking, Introduction to the Theory of Computing

Summary:

- Developed proficiency in programming languages such as Java, C++, and Python
- Gained hands-on experience in software development through various projects and assignments
- Strong communication and teamwork skills acquired through group projects and presentations

## Work

### Senior Software Engineer

PPResume, Dec 2022–Present

URL: https://ppresume.com

Keywords: Scalability, Growth, Quality, Mentorship

Summary:

- Developed and implemented efficient and scalable code, ensuring high-quality and maintainable web applications
- Collaborated with cross-functional teams to gather project requirements and translate them into technical solutions
- Conducted thorough testing and debugging to identify and resolve any issues or bugs in the software
- Actively participated in code reviews, providing valuable feedback to improve code quality and adherence to best practices
- Mentored and guided junior developers, fostering a collaborative and growth-oriented team environment

### Software Engineer

PPResume, Sep 2020–Dec 2022

URL: https://ppresume.com

Keywords: RESTful, React, Agile

Summary:

- Created reusable React components to ensure code efficiency and maintainability
- Integrated with RESTful APIs to fetch and display dynamic data on the frontend
- Implemented client-side routing using React Router for smooth navigation between pages
- Actively participated in Agile development methodologies, attending daily stand-up meetings and sprint planning sessions

## Languages

- English: Native or Bilingual Proficiency, Keywords: TOEFL 110, IELTS 7.5
- Chinese: Elementary Proficiency

## Skills

- Web Development: Expert, Keywords: Python, Ruby, CSS, React, JavaScript
- DevOps: Intermediate, Keywords: Python, Kubernetes, Docker, Shell, Ansible
- Design: Intermediate, Keywords: Sketch, Figma, Photoshop

## Awards

### Dean's List

University of Southern California, Oct 2016

Summary:
Awarded to students who achieve a high academic standing by maintaining a specified grade point average (GPA) during a semester.

## Certificates

### AWS Certified Developer - Associate

AWS, Mar 2021

URL: https://aws.amazon.com/certification/

## Publications

### Enhancing Human-Computer Interaction through Augmented Reality

ACM Transactions on Interactive Intelligent Systems, Dec 2017

URL: https://dl.acm.org/journal/tiis

Summary:

- Explores the potential of augmented reality (AR) in improving interaction between humans and computers
- Highlights benefits of AR in various areas such as gaming, education, healthcare, and design
- Discusses challenges and future directions of AR technology in enhancing user experience

## References

### Dr. Amanda Reynolds

Computer Science Professor, amanda.reynolds@usc.edu, (555) 123-4567

Summary:
Andy Dufresne shows exceptional problem-solving skills and a solid understanding of programming concepts, he would bring immense value to any team or organization he becomes a part of.

## Projects

### EduWeb

A web-based educational platform for interactive learning, Sep 2016–Dec 2016

URL: https://www.eduweb.xyz/

Keywords: Education, Online Learning, HCI

Summary:

- Designed to enhance online learning experiences
- Facilitates students' engagement and collaboration through interactive features and user-friendly interface
- Offers a wide range of courses across various subjects
- Aims to improve the way students learn through the power of the web

## Interests

- Sports: Soccer, Swimming, Bicycling, Hiking
- Music: Piano, Guitar

## Volunteer

### USC Computer Science and Engineering Society

Tech Mentor, Sep 2015–Jul 2023

URL: https://www.usccsesociety.org/

Summary:

- Volunteered as a Tech Mentor at USC Computer Science and Engineering Society
- Provided guidance and assistance to fellow students in their technical projects and coursework
- Assisted in organizing workshops, coding competitions, and networking events for the society members
- Contributed to fostering a collaborative and supportive environment within the student community

Markdown 的好处

您可能会想,“我已经有了一个漂亮的 PDF,为什么还需要 Markdown 版本?”拥有结构化的纯文本简历表示的好处是巨大的,尤其是在现代 AI 驱动的世界中。

1. 对 LLM 友好

这也许是当今最重要的优势。我们生活在大型语言模型 (LLM) 的时代。像 ChatGPT、Claude 和 Gemini 这样的工具在分析文本方面非常出色,但它们在处理二进制 PDF 文档或复杂的 LaTeX 源代码时可能会遇到困难。

通过生成干净的 Markdown 版本简历,您就拥有了 LLM 的完美输入。您可以将 resume.md 拷贝粘贴到 ChatGPT 中并要求它:

  • “根据这份职位描述调整我的简历……”
  • “批评我的总结部分并提出改进建议……”
  • “提取我的关键技能并将其格式化为求职信……”

因为 Markdown 是语义结构的(标题、列表、粗体文本),LLM 可以比原始文本或 PDF 转换更好地“理解”您简历的层次结构和内容。

2. 互操作性和网络发布

Markdown 是网络的原生内容格式。如果您有一个用 Next.js、Hugo、Jekyll 或 Gatsby 构建的个人作品集或博客,您可以直接将 resume.md 放入您的内容文档夹中。

使用新的 Markdown 输出,您可以自动化您的个人品牌工作流程:

  1. 使用您最新的工作或项目更新您的 resume.yml
  2. 运行 yamlresume build
  3. 生成的 resume.pdf 用于您的下载链接。
  4. 生成的 resume.md 更新您网站上的“关于我”页面。

不再需要手动拷贝粘贴或维护两个单独的简历版本。

3. 人类可读性和 Git 差异

虽然 YAML 具有可读性,但 Markdown 对于长文本来说更具可读性。它是一个很好的中间格式,可以在没有 YAML 语法或 LaTeX 命令“噪音”的情况下审查您的内容。

此外,由于输出是确定性的纯文本,您可以轻松地在 Git 中跟踪更改。如果您更改了职位描述,resume.md 中的差异将清楚地显示文本更改,这对于同行评审(例如,在 GitHub Pull Request 中)比尝试对二进制 PDF 进行差异比较要友好得多。

4. 通用可移植性

Markdown 可以使用 Pandoc 等工具轻松转换为几乎任何其他文档格式。需要一个 .docx 文档给坚持使用 Word 的招聘人员吗? pandoc resume.md -f gfm -o resume.docx。需要一个 HTML 片段吗? pandoc resume.md -f gfm -o resume.html。Markdown 输出作为一个多功能的“枢纽”格式,解锁了与整个文档生态系统的兼容性。

下一步:HTML 布局

布局系统和 Markdown 引擎的引入仅仅是开始。我们正在积极开发 HTML 布局引擎

想象一下运行 yamlresume build 并获得一个完全响应式、SEO 优化、独立的 HTML 文档,它看起来像您的 PDF 一样好,但是是浏览器原生的。这将允许您将简历作为简单的静态页面托管在 GitHub Pages、Vercel 或 Netlify 上,且零开销。

HTML 布局将支持:

  • 移动查看的响应式设计(无需在手机上捏合和缩放 PDF)。
  • 根据您的简历内容自动生成的 SEO 元数据。
  • 通过 CSS 变量支持主题。
  • 交互式元素(例如,可点击的项目链接、可折叠部分)。

我们相信您的简历数据属于您,您应该能够以最适合您需求的格式呈现它——无论是用于打印的像素完美 PDF、用于 AI 的干净 Markdown 文档,还是用于网络的响应式 HTML 页面。

结论

YAMLResume v0.8 是灵活性迈出的一大步。通过将内容 (YAML) 从演示 (Layouts) 中分离出来,我们正在赋能开发者以新的和创造性的方式使用他们的简历数据。

我们邀请您升级到 v0.8,将 markdown 引擎添加到您的布局中,并体验在您需要时以您需要的格式提供简历的自由。

试一试:

$ npm install -g yamlresume@latest
$ pnpm install -g yamlresume@latest
$ yarn global add yamlresume@latest
$ bun add -g yamlresume@latest
$ brew install yamlresume

Written by

Xiao Hanyu

At

Tue Dec 02 2025