resumx
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseResumx
Resumx
Resumx renders resumes from Markdown to PDF, HTML, PNG, and DOCX. It auto-fits content to a target page count, supports tags and views for tailored output from a single source file, and uses style options for styling.
Resumx可将简历从Markdown格式渲染为PDF、HTML、PNG和DOCX格式。它能自动调整内容适配目标页数,支持标签和视图功能,可基于单个源文件生成定制化输出,同时提供多种样式选项用于排版设计。
Resources
资源
This skill includes reference documents for specific workflows. Read them when applicable:
| Resource | When to use |
|---|---|
| json-resume-to-markdown.md | Converting between Resumx Markdown and JSON Resume format (either direction) |
| writing-resume.md | Interactive resume creation, guiding users step-by-step to collect info and generate a resume |
| tagging-resume.md | Systematically tagging a resume for tailored output, including hierarchical tag taxonomy |
本技能包含针对特定工作流的参考文档,可按需阅读:
| 资源 | 使用场景 |
|---|---|
| json-resume-to-markdown.md | 在Resumx Markdown格式和JSON Resume格式之间互相转换时使用 |
| writing-resume.md | 交互式创建简历时使用,可逐步引导用户收集信息并生成简历 |
| tagging-resume.md | 为简历系统性添加标签以生成定制化输出时使用,包括层级标签分类体系 |
Markdown Syntax
Markdown语法
Standard Markdown with extensions for inline columns, bracketed spans, and fenced divs.
基于标准Markdown,扩展支持行内列、带括号span和围栏div语法。
Structure
结构
| Element | Syntax |
|---|---|
| Name | |
| Contact | |
| Section | |
| Entry | |
| Subtitle | |
| Bullets | |
| Skills | Definition list ( |
| 元素 | 语法 |
|---|---|
| 姓名 | |
| 联系方式 | |
| 章节 | |
| 条目 | |
| 副标题 | |
| 列表项 | |
| 技能 | 定义列表 ( |
Inline Columns
行内列
||markdown
undefined||markdown
undefinedGoogle || Jan 2020 - Present
谷歌 || 2020年1月 - 至今
Senior Software Engineer || San Francisco, CA
More than two columns: `A || B || C`. Escape with `\||`.高级软件工程师 || 加利福尼亚州旧金山
支持超过两列:`A || B || C`。如需转义使用 `\||`。Inline Formatting
行内格式
| Syntax | Result |
|---|---|
| Bold |
| Italic |
| Tech tag/badge |
| Highlighted text |
| Subscript |
| Superscript |
| En-dash / Em-dash |
| Smart quotes |
| 语法 | 效果 |
|---|---|
| 粗体 |
| 斜体 |
| 技术标签/徽章 |
| 高亮文本 |
| 下标 |
| 上标 |
| 短破折号 / 长破折号 |
| 智能引号 |
Definition Lists
定义列表
markdown
Languages
: JavaScript, TypeScript, Python
Frameworks
: React, Node.js, ExpressAlso used as inline metadata below entries:
markdown
undefinedmarkdown
编程语言
: JavaScript, TypeScript, Python
框架
: React, Node.js, Express也可用作条目下方的行内元数据:
markdown
undefinedGoogle || June 2022 - Present
谷歌 || 2022年6月 - 至今
Senior Software Engineer
: Infrastructure Platform Team
: San Francisco, CA
undefined高级软件工程师
: 基础设施平台团队
: 加利福尼亚州旧金山
undefinedTables
表格
markdown
| Category | Technologies |
| :-------- | ---------------------: |
| Languages | Python, TypeScript, Go |markdown
| 类别 | 技术栈 |
| :-------- | ---------------------: |
| 编程语言 | Python, TypeScript, Go |Horizontal Rule
分隔线
------Comments
注释
HTML comments () are stripped from output.
<!-- -->HTML注释 () 会从输出结果中移除。
<!-- -->Classes, IDs & Fenced Divs
类、ID与围栏Div
Bracketed Spans
带括号的Span
[text]{.class}<span>markdown
undefined[文本]{.class}<span>markdown
undefinedGoogle [2022 - Present]{.right}
谷歌 [2022 - 至今]{.right}
Senior Software Engineer [San Francisco, CA]{.right}
undefined高级软件工程师 [加利福尼亚州旧金山]{.right}
undefinedElement Attributes
元素属性
{...}markdown
- Built interactive dashboards {.@frontend}在块级元素末尾添加 可将属性应用到整个元素:
{...}markdown
- 搭建了交互式看板 {.@frontend}Fenced Divs
围栏Div
:::<div>markdown
::: {.grid .grid-cols-3}
- JavaScript
- TypeScript
- Python
:::Prefix a tag name for a specific HTML element: .
::: footer {.text-center}:::<div>markdown
::: {.grid .grid-cols-3}
- JavaScript
- TypeScript
- Python
:::可指定HTML标签前缀:。
::: footer {.text-center}Frontmatter
前置元数据
YAML () or TOML (). CLI flags always override frontmatter.
---+++支持YAML () 或TOML () 格式。CLI参数优先级始终高于前置元数据。
---+++Render Fields
渲染字段
| Field | Type | Default | Description |
|---|---|---|---|
| | None | Path(s) to custom CSS file(s) |
| | Input filename stem | Output path (name, directory with |
| | No clamping | Target page count |
| | All in source order | Section visibility and ordering |
| | | Bullet ordering strategy |
| | No overrides | Style option overrides |
| | No composed tags | Tag composition and tag view configuration |
| | No variables | Template variables for |
| | No custom icons | Custom icon definitions (SVG, URL, or base64) |
| | No custom data | Arbitrary user-defined data |
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| | 无 | 自定义CSS文件路径 |
| | 输入文件名前缀 | 输出路径(文件名、带 |
| | 不限制页数 | 目标页数 |
| | 按源文件顺序展示所有章节 | 章节可见性与排序 |
| | | 列表项排序策略 |
| | 无覆盖 | 样式选项覆盖 |
| | 无组合标签 | 标签组合与标签视图配置 |
| | 无变量 | 用于 |
| | 无自定义图标 | 自定义图标定义(SVG、URL或base64) |
| | 无自定义数据 | 任意用户自定义数据 |
Validate Fields
校验字段
Under a key:
validate| Field | Type | Default |
|---|---|---|
| | |
| | Per-preset defaults |
Presets: , , , .
recommendedminimalstrictnoneAvailable rules: , , , , , , , , .
missing-namemissing-contactno-sectionsno-entriesempty-bulletlong-bulletsingle-bullet-sectionunknown-fenced-div-tagnon-pt-font-size在键下配置:
validate| 字段 | 类型 | 默认值 |
|---|---|---|
| | |
| | 按预设默认值 |
预设选项:、、、。
recommendedminimalstrictnone可用规则:(缺失姓名)、(缺失联系方式)、(无章节)、(无条目)、(空列表项)、(列表项过长)、(章节仅含单个列表项)、(未知围栏Div标签)、(字体单位非pt)。
missing-namemissing-contactno-sectionsno-entriesempty-bulletlong-bulletsingle-bullet-sectionunknown-fenced-div-tagnon-pt-font-sizeUnknown Fields
未知字段
Unknown top-level keys error. Use for custom data.
extra未知的顶级键会触发报错,自定义数据请使用字段。
extraFull Example
完整示例
yaml
---
pages: 1
output: ./out/Jane_Smith-{view}
bullet-order: tag
style:
accent-color: '#0ea5e9'
tags:
fullstack: [frontend, backend]
leadership: false
vars:
tagline: 'Full-stack engineer with 8 years of experience'
validate:
extends: recommended
rules:
long-bullet: warning
single-bullet-section: off
extra:
name: Jane Smith
target-role: Senior SWE
---yaml
---
pages: 1
output: ./out/简·史密斯-{view}
bullet-order: tag
style:
accent-color: '#0ea5e9'
tags:
fullstack: [frontend, backend]
leadership: false
vars:
tagline: '拥有8年经验的全栈工程师'
validate:
extends: recommended
rules:
long-bullet: warning
single-bullet-section: off
extra:
name: 简·史密斯
target-role: 高级软件工程师
---CLI
CLI
bash
resumx <file> # Render (defaults to resume.md, PDF)
resumx init [filename] # Create template resumebash
resumx <文件路径> # 渲染(默认读取resume.md,输出PDF)
resumx init [文件名] # 创建简历模板Sandbox Requirement
沙箱要求
Resumx uses Playwright with Chromium for PDF rendering. Chromium cannot launch inside Cursor's default sandbox because the sandbox blocks syscalls Chromium needs to initialize. Always run resumx commands with to disable the sandbox. Without this, rendering will fail with "Chromium not found" even though Chromium is installed.
required_permissions: ["all"]Resumx使用Playwright搭配Chromium进行PDF渲染。Chromium无法在Cursor默认沙箱中启动,因为沙箱会拦截Chromium初始化所需的系统调用。运行resumx命令时请始终添加 以禁用沙箱,否则即使已经安装Chromium,渲染也会失败并提示「未找到Chromium」。
required_permissions: ["all"]Render Options
渲染选项
| Flag | Description |
|---|---|
| Path to custom CSS file, repeatable, comma-separated |
| Output path (name, directory, or template) |
| |
| Override style property, repeatable |
| Tag view name, custom view name, glob pattern, or |
| Override a template variable, repeatable |
| Hide sections (comma-separated |
| Pin sections to top in order (comma-separated |
| Bullet ordering: |
| Language filter (BCP 47), repeatable, comma-separated |
| Target page count |
| Auto-rebuild on changes |
| Validate only, no render |
| Skip validation |
| Fail on any validation error |
| Filter validation output |
| 参数 | 说明 |
|---|---|
| 自定义CSS文件路径,可重复使用,支持逗号分隔 |
| 输出路径(文件名、目录或模板) |
| 输出格式: |
| 覆盖样式属性,可重复使用 |
| 标签视图名称、自定义视图名称、通配符模式,或使用 |
| 覆盖模板变量,可重复使用 |
| 隐藏指定章节(逗号分隔的 |
| 将指定章节置顶,按参数顺序排列(逗号分隔的 |
| 列表项排序: |
| 语言过滤(BCP 47标准),可重复使用,支持逗号分隔 |
| 目标页数 |
| 文件变更时自动重新构建 |
| 仅执行校验,不渲染 |
| 跳过校验 |
| 任意校验错误都会导致执行失败 |
| 过滤校验输出结果 |
Stdin
标准输入
bash
cat resume.md | resumx
git show HEAD~3:resume.md | resumx -o oldbash
cat resume.md | resumx
git show HEAD~3:resume.md | resumx -o oldOutput Naming
输出命名
| Scenario | Output |
|---|---|
| No view, no langs | |
| With tag/view | |
| With langs | |
| Tag/view + langs | |
Template variables: , .
{view}{lang}| 场景 | 输出文件名 |
|---|---|
| 无视图、无语言配置 | |
| 配置了标签/视图 | |
| 配置了多语言 | |
| 同时配置标签/视图+多语言 | |
模板变量:、。
{view}{lang}Style Options
样式选项
Override via frontmatter or CLI .
style:--styleTypography: , , , (default ), (default ).
font-familytitle-font-familycontent-font-familyfont-size11ptline-height1.35Colors: , , , , .
text-colormuted-coloraccent-colorlink-colorbackground-colorHeadings: , (, , ), , , , , , , , , , , .
name-sizename-capsnormalsmall-capsall-small-capsname-weightname-italicsection-title-sizesection-title-capssection-title-weightsection-title-colorsection-title-borderheader-alignsection-title-alignentry-title-sizeentry-title-weightLinks: (, ).
link-underlineunderlinenoneSpacing: (unitless scale factor for all vertical gaps), , , , , , , .
gappage-margin-xpage-margin-ysection-gapentry-gaprow-gapcol-gaplist-indentLists: (, , , ).
bullet-styledisccirclesquarenoneFeatures: (, ).
iconsinlinenone可通过前置元数据的字段或CLI的参数覆盖。
style:--style排版: 、、、(默认)、(默认)。
font-familytitle-font-familycontent-font-familyfont-size11ptline-height1.35颜色: 、、、、。
text-colormuted-coloraccent-colorlink-colorbackground-color标题: 、(、、)、、、、、、、、、、、。
name-sizename-capsnormalsmall-capsall-small-capsname-weightname-italicsection-title-sizesection-title-capssection-title-weightsection-title-colorsection-title-borderheader-alignsection-title-alignentry-title-sizeentry-title-weight链接: (、)。
link-underlineunderlinenone间距: (所有垂直间距的无单位缩放系数)、、、、、、、。
gappage-margin-xpage-margin-ysection-gapentry-gaprow-gapcol-gaplist-indent列表: (、、、)。
bullet-styledisccirclesquarenone功能: (、)。
iconsinlinenoneCustom CSS
自定义CSS
Your CSS cascades on top of the default stylesheet, so you only write overrides:
css
:root {
--font-family: 'Inter', sans-serif;
--accent-color: #2563eb;
}
h2 {
letter-spacing: 0.05em;
}Reference by path: or .
css: my-styles.css--css my-styles.cssFor building a stylesheet from scratch, bundled modules: (reset, typography, layout), (icon sizing), (, , ).
@importcommon/base.csscommon/icons.csscommon/utilities.css.small-caps.sr-only.max-N你的CSS会在默认样式表基础上层叠生效,因此只需编写需要覆盖的样式即可:
css
:root {
--font-family: 'Inter', sans-serif;
--accent-color: #2563eb;
}
h2 {
letter-spacing: 0.05em;
}通过路径引用: 或 。
css: my-styles.css--css my-styles.css如果需要从零构建样式表,可 内置模块:(重置样式、排版、布局)、(图标尺寸)、(、、)。
@importcommon/base.csscommon/icons.csscommon/utilities.css.small-caps.sr-only.max-NFit to Page
页面适配
Set to auto-fit. Shrinks in order of visual impact (least noticeable first):
pages: N- Gaps (row-gap, entry-gap, section-gap)
- Line height
- Font size
- Margins (page-margin-x, page-margin-y, last resort)
For , gaps also expand to fill remaining space.
pages: 1Minimums: font-size 9pt, line-height 1.15, section-gap 4px, entry-gap 1px, page-margin-y 0.3in, page-margin-x 0.35in.
When is set, values are starting points that may be reduced. Without , they apply as-is.
pages:style:pages:设置可开启自动适配。会按照视觉影响从低到高的顺序缩小参数:
pages: N- 间距(row-gap、entry-gap、section-gap)
- 行高
- 字体大小
- 边距(page-margin-x、page-margin-y,最后调整项)
当时,间距也会自动扩展以填充剩余空间。
pages: 1最小值限制: 字体大小9pt、行高1.15、章节间距4px、条目间距1px、页面上下边距0.3英寸、页面左右边距0.35英寸。
设置时,中的值为起始基准,可能会被缩小。未设置时,样式值会严格按配置生效。
pages:style:pages:Icons
图标
Syntax
语法
:icon-name::set/name:内置图标使用格式,Iconify图标(超过20万个)使用格式,兜底支持标准emoji短代码。
:icon-name::set/name:Auto-Icons
自动图标
Links to recognized domains get icons automatically:
mailto:tel:linkedin.comgithub.comgitlab.combitbucket.orgstackoverflow.comx.comtwitter.comyoutube.comyoutu.bedribbble.combehance.netmedium.comdev.tocodepen.iomarketplace.visualstudio.comDisable with .
style: { icons: none }指向可识别域名的链接会自动添加图标:
mailto:tel:linkedin.comgithub.comgitlab.combitbucket.orgstackoverflow.comx.comtwitter.comyoutube.comyoutu.bedribbble.combehance.netmedium.comdev.tocodepen.iomarketplace.visualstudio.com可通过 禁用。
style: { icons: none }Custom Icons (Frontmatter)
自定义图标(前置元数据配置)
yaml
icons:
mycompany: '<svg>...</svg>'
partner: 'https://example.com/logo.svg'Resolver order: Frontmatter > Built-in > Iconify > Emoji.
yaml
icons:
mycompany: '<svg>...</svg>'
partner: 'https://example.com/logo.svg'解析优先级:前置元数据 > 内置图标 > Iconify > Emoji。
Tailwind CSS
Tailwind CSS
Resumx compiles Tailwind CSS v4 on-the-fly. Apply via syntax:
{.class}markdown
[React]{.bg-blue-100 .text-blue-800 .px-2 .rounded}Works with bracketed spans, element attributes, and fenced divs. Supports arbitrary values: .
.text-[#ff6600]Built-in utilities: , , – (hide children beyond the Nth).
.small-caps.sr-only.max-1.max-16Resumx会实时编译Tailwind CSS v4,可通过语法应用样式:
{.class}markdown
[React]{.bg-blue-100 .text-blue-800 .px-2 .rounded}支持在带括号的Span、元素属性、围栏Div中使用,同时支持任意值:。
.text-[#ff6600]内置工具类:、、 至 (隐藏第N个之后的子元素)。
.small-caps.sr-only.max-1.max-16Tags
标签
Tags filter content. Add to any element to mark it for a specific audience. Untagged content always passes through. Tagged content only appears when rendering for a matching tag.
{.@name}markdown
- Shared bullet
- Frontend-only bullet {.@frontend}
- Backend-only bullet {.@backend}Multiple tags: .
{.@backend .@frontend}Render with or .
--for frontend--for backend标签用于过滤内容。在任意元素上添加即可标记为面向特定受众展示。未加标签的内容始终会展示,带标签的内容仅在渲染匹配对应标签时才会展示。
{.@名称}markdown
- 通用列表项
- 仅前端展示的列表项 {.@frontend}
- 仅后端展示的列表项 {.@backend}多标签配置:。
{.@backend .@frontend}渲染时使用 或 参数。
--for frontend--for backendHierarchical Tags
层级标签
Use to nest tags when a domain spans multiple ecosystems:
/markdown
- Designed REST APIs with OpenAPI documentation {.@backend}
- Built microservices with `Express` {.@backend/node}
- Migrated `Spring Boot` monolith {.@backend/jvm}Inheritance: a view includes its entire lineage (ancestors + self + descendants) and untagged content. Siblings are excluded.
- →
--for backend/node(ancestor) +@backend(self) + untagged. Excludes@backend/node.@backend/jvm - →
--for backend(self) +@backend+@backend/node(descendants) + untagged.@backend/jvm
Depth is unlimited: nests three levels.
{.@data/ml/nlp}当领域覆盖多个生态时,可使用嵌套标签:
/markdown
- 设计了带OpenAPI文档的REST API {.@backend}
- 使用`Express`搭建微服务 {.@backend/node}
- 迁移`Spring Boot`单体应用 {.@backend/jvm}继承规则:视图会包含完整的标签谱系(祖先+自身+后代)和未标记内容,同级标签内容会被排除。
- → 展示
--for backend/node(祖先)+@backend(自身)+ 未标记内容,排除@backend/node。@backend/jvm - → 展示
--for backend(自身)+@backend+@backend/node(后代)+ 未标记内容。@backend/jvm
层级深度无限制:可嵌套三层。
{.@data/ml/nlp}Tag Composition
标签组合
Define composed tags in frontmatter as unions of constituents:
yaml
tags:
fullstack: [frontend, backend]
node-fullstack: [frontend, backend/node]
tech-lead: [backend, leadership]
startup-cto: [fullstack, leadership, architecture]Hierarchical tags work as constituents. Lineage expands per constituent: includes (+ descendants), (ancestor of ), , and untagged. Sibling is excluded.
node-fullstack@frontend@backendbackend/node@backend/node@backend/jvmCompositions expand recursively ( includes and via ). Every constituent must exist as a content tag or another composed tag; typos produce an error with a suggestion.
startup-ctofrontendbackendfullstack可在前置元数据中将组合标签定义为多个子标签的并集:
yaml
tags:
fullstack: [frontend, backend]
node-fullstack: [frontend, backend/node]
tech-lead: [backend, leadership]
startup-cto: [fullstack, leadership, architecture]层级标签可作为子标签使用,谱系会按子标签扩展:包含(+后代)、(的祖先)、和未标记内容,同级的会被排除。
node-fullstack@frontend@backendbackend/node@backend/node@backend/jvm组合会递归展开(会通过包含和)。所有子标签必须是已存在的内容标签或其他组合标签,拼写错误会触发报错并给出修正建议。
startup-ctofullstackfrontendbackendViews
视图
Tags filter content (what to show). Views configure rendering (how to show it). Every render uses a view.
标签用于过滤内容(展示什么),视图用于配置渲染规则(如何展示),每次渲染都会使用一个视图。
Four Kinds of View
四种视图类型
| Kind | Where | Nature |
|---|---|---|
| Default view | Frontmatter render fields | Base config for all renders |
| Tag view | Frontmatter | Per-tag overrides, implicit for every tag |
| Custom view | | Per-application config |
| Ephemeral view | CLI flags | One-off, not persisted |
| 类型 | 定义位置 | 性质 |
|---|---|---|
| 默认视图 | 前置元数据的渲染字段 | 所有渲染的基础配置 |
| 标签视图 | 前置元数据 | 每个标签的专属覆盖配置,所有标签默认都会生成 |
| 自定义视图 | | 针对特定应用的配置 |
| 临时视图 | CLI参数 | 一次性配置,不会持久化 |
Tag Views
标签视图
Every tag implicitly generates a tag view. Configure with the expanded form:
yaml
tags:
frontend:
sections:
hide: [publications]
pin: [skills, projects]
pages: 1
fullstack:
extends: [frontend, backend]
sections:
pin: [work, skills]
pages: 2The shorthand is sugar for .
fullstack: [frontend, backend]fullstack: { extends: [frontend, backend] }每个标签都会隐式生成一个标签视图,可通过扩展格式配置:
yaml
tags:
frontend:
sections:
hide: [publications]
pin: [skills, projects]
pages: 1
fullstack:
extends: [frontend, backend]
sections:
pin: [work, skills]
pages: 2简写形式是的语法糖。
fullstack: [frontend, backend]fullstack: { extends: [frontend, backend] }Custom Views
自定义视图
Custom views live in files, auto-discovered recursively relative to the resume:
.view.yamlyaml
undefined自定义视图保存在文件中,会在简历文件所在目录下递归自动发现:
.view.yamlyaml
undefinedstripe.view.yaml
stripe.view.yaml
stripe-swe:
selects: [backend, distributed-systems, leadership]
sections:
hide: [publications]
pin: [skills, work]
vars:
tagline: 'Stream Processing, Event-Driven Architecture, Go, Kafka'
Render with `--for stripe-swe`. Batch with `--for '*'` or `--for 'stripe-*'`. Use `--for default` to target the default view (no tag filtering); combine with named views, e.g. `--for default,frontend`, to render both. Do not name a view `default` (reserved).
Custom view fields: `selects` (content tags to include), `sections`, `pages`, `bullet-order`, `vars`, `style`, `format`, `output`.
A view without `selects` applies no content filter (all content renders). An explicit `selects: []` means only untagged content.stripe-swe:
selects: [backend, distributed-systems, leadership]
sections:
hide: [publications]
pin: [skills, work]
vars:
tagline: '流处理、事件驱动架构、Go、Kafka'
渲染时使用`--for stripe-swe`参数。批量渲染使用`--for '*'` 或 `--for 'stripe-*'`。使用`--for default`指定默认视图(无标签过滤);可和命名视图组合使用,例如`--for default,frontend`可同时渲染两个版本。请勿将视图命名为`default`(保留关键字)。
自定义视图字段:`selects`(需要包含的内容标签)、`sections`、`pages`、`bullet-order`、`vars`、`style`、`format`、`output`。
未配置`selects`的视图不会过滤内容(展示所有内容)。显式配置`selects: []`表示仅展示未标记标签的内容。Ephemeral Views
临时视图
CLI flags create an ephemeral view inline without persisting:
bash
resumx resume.md --for backend -v tagline="Stream Processing, Go" --pin skills,work -o stripe.pdfCLI参数可直接创建临时视图,无需持久化保存:
bash
resumx resume.md --for backend -v tagline="流处理、Go" --pin skills,work -o stripe.pdfCascade Order
层叠优先级
Built-in defaults
→ Default view (frontmatter render fields)
→ Tag view OR Custom view (whichever --for resolves)
→ Ephemeral view (CLI flags)内置默认值
→ 默认视图(前置元数据渲染字段)
→ 标签视图 或 自定义视图(按--for参数解析结果)
→ 临时视图(CLI参数)Template Variables
模板变量
Inject per-application text via placeholders:
{{ name }}markdown
undefined通过占位符可注入针对特定申请的文本内容:
{{ 变量名 }}markdown
undefinedJane Doe
简·多伊
jane@example.com | github.com/jane
{{ tagline }}
Define in frontmatter `vars:`, in a custom view, or via CLI `-v`:
```yaml
vars:
tagline: 'Full-stack engineer with 8 years of experience'When undefined or empty, the placeholder produces nothing (line removed). Variable values can contain markdown formatting. Defining a variable with no matching placeholder is an error.
jane@example.com | github.com/jane
{{ tagline }}
可在前置元数据的`vars:`字段、自定义视图中定义,或通过CLI的`-v`参数传入:
```yaml
vars:
tagline: '拥有8年经验的全栈工程师'当变量未定义或为空时,占位符不会生成任何内容(对应行也会被移除)。变量值可包含Markdown格式。定义了不存在对应占位符的变量会触发报错。
Sections
章节
Control which sections appear and their order:
yaml
sections:
hide: [publications, volunteer]
pin: [skills, work]hidepindata-sectionworkeducationskillsprojectsawardscertificatespublicationsvolunteerlanguagesinterestsreferencesbasicsCLI: .
--hide publications --pin skills,work可控制展示的章节和排序:
yaml
sections:
hide: [publications, volunteer]
pin: [skills, work]hidepindata-sectionworkeducationskillsprojectsawardscertificatespublicationsvolunteerlanguagesinterestsreferencesbasicsCLI参数:。
--hide publications --pin skills,workMulti-Language Output
多语言输出
Tag content with (BCP 47). Untagged content appears in all languages.
{lang=xx}markdown
undefined使用(BCP 47标准)标记内容语言,未标记的内容会在所有语言版本中展示。
{lang=xx}markdown
undefined[Experience]{lang=en} [Expérience]{lang=fr}
[工作经验]{lang=en} [Expérience]{lang=fr}
谷歌
- [Reduced API latency by 60%]{lang=en} [Réduction de la latence API de 60%]{lang=fr}
Combines with tags: `{lang=en .@backend}`. Filter with `--lang en` or `--lang en,fr`.
Dimensions multiply: 2 langs × 2 tags = 4 PDFs.- [API延迟降低60%]{lang=en} [Réduction de la latence API de 60%]{lang=fr}
可和标签组合使用:`{lang=en .@backend}`。通过`--lang en` 或 `--lang en,fr`参数过滤。
维度可叠加:2种语言 × 2个标签 = 4个PDF文件。Semantic Selectors
语义选择器
Resumx auto-generates semantic HTML attributes for CSS targeting:
Header: , , , , , , .
[data-field='name'][data-field='email'][data-field='phone'][data-field='profiles'][data-network='github'][data-field='location'][data-field='url']Sections: , , , , , , , , , , , .
section[data-section='work']section[data-section='education']section[data-section='skills']section[data-section='projects']section[data-section='awards']section[data-section='certificates']section[data-section='publications']section[data-section='volunteer']section[data-section='languages']section[data-section='interests']section[data-section='references']section[data-section='basics']Headings are classified by fuzzy keyword matching.
Entries: (container), (individual ).
.entries.entry<article>Dates: with ISO 8601 . wraps start/end tags.
<time>datetime.date-range<time>Resumx会自动生成语义化HTML属性,用于CSS定位:
头部: 、、、、、、。
[data-field='name'][data-field='email'][data-field='phone'][data-field='profiles'][data-network='github'][data-field='location'][data-field='url']章节: 、、、、、、、、、、、。
section[data-section='work']section[data-section='education']section[data-section='skills']section[data-section='projects']section[data-section='awards']section[data-section='certificates']section[data-section='publications']section[data-section='volunteer']section[data-section='languages']section[data-section='interests']section[data-section='references']section[data-section='basics']标题会通过模糊关键词匹配分类。
条目: (容器)、(单个元素)。
.entries.entry<article>日期: 带ISO 8601格式属性的元素,包裹起止标签。
datetime<time>.date-range<time>Git Integration
Git集成
If the user hasn't set up the alias yet, run this first:
git resumxbash
git config alias.resumx '!f() { spec="$1"; shift; case "$spec" in *:*) ;; *) spec="$spec:resume.md";; esac; git show "$spec" | resumx "$@"; }; f'Then render from git history:
bash
git resumx sent/stripe-2026-02:resume.md # render from tag
git resumx HEAD~3:resume.md --css my-styles.css -o stripe # past commit
git show :resume.md | resumx -o staged # staged changesPre-commit hook: for validation.
Post-commit hook: auto-render on every commit.
resumx --check如果用户还未配置别名,先执行以下命令:
git resumxbash
git config alias.resumx '!f() { spec="$1"; shift; case "$spec" in *:*) ;; *) spec="$spec:resume.md";; esac; git show "$spec" | resumx "$@"; }; f'之后可从Git历史中渲染简历:
bash
git resumx sent/stripe-2026-02:resume.md # 从标签渲染
git resumx HEAD~3:resume.md --css my-styles.css -o stripe # 从历史提交渲染
git show :resume.md | resumx -o staged # 渲染暂存区变更Pre-commit钩子:使用进行校验。
Post-commit钩子:每次提交后自动渲染。
resumx --checkUsing AI
AI使用
Install agent skills: .
npx skills add resumx/resumx安装Agent技能:。
npx skills add resumx/resumxTailoring to Job Postings
针对职位描述定制简历
- Give the agent and the job posting URL
resume.md - Agent reads the JD, maps each requirement to existing bullets (covered, weak, missing)
- Agent decides what's durable vs ephemeral: will this change make the next 10 applications better, or just this one?
- Durable improvements (better phrasing, new bullets, new tags) → edit
resume.md - Ephemeral adjustments (keywords, section order, tagline) → create a view or use CLI vars
- Render:
resumx resume.md --for stripe-swe -o out/stripe.pdf
With , layout auto-adjusts after every edit.
pages: 1- 给Agent提供和职位招聘链接
resume.md - Agent读取职位描述,将每个要求和现有列表项匹配(覆盖、薄弱、缺失)
- Agent判断变更的持久性:该变更是否对接下来的10次申请都有用,还是仅针对本次申请?
- 持久性优化(更优的表述、新列表项、新标签)→ 直接编辑
resume.md - 临时性调整(关键词、章节顺序、个人简介)→ 创建视图或使用CLI变量
- 渲染:
resumx resume.md --for stripe-swe -o out/stripe.pdf
设置时,每次编辑后布局会自动调整。
pages: 1Zero-File-Modification Rendering
零文件修改渲染
For maximum speed and zero git diff, render entirely from CLI flags:
bash
resumx resume.md --for backend -v tagline="Stream Processing, Go, Kafka" --pin skills,work -o stripe.pdf为了实现最快速度且无Git变更,可完全通过CLI参数实现渲染:
bash
resumx resume.md --for backend -v tagline="流处理、Go、Kafka" --pin skills,work -o stripe.pdfResume Template
简历模板
markdown
---
pages: 1
---markdown
---
pages: 1
---Full Name
全名
{{ tagline }}
{{ tagline }}
Education
教育背景
University Name || Sept 2019 - June 2024
大学名称 || 2019年9月 - 2024年6月
Degree Name
- GPA: 3.85
学位名称
- GPA: 3.85
Work Experience
工作经验
Company Name || Start - End
公司名称 || 开始时间 - 结束时间
Job Title
- Achievement with quantified impact using
Technology
职位名称
- 使用取得的可量化成就
技术栈
Projects
项目经历
Project Name (Individual/Group)
项目名称 (个人/团队)
- Description of what was built
- 项目描述
Technical Skills
技术技能
Languages
: Java, Python, TypeScript
Frameworks
: React, Node.js, FastAPI
undefined编程语言
: Java, Python, TypeScript
框架
: React, Node.js, FastAPI
undefinedWriting Best Practices
写作最佳实践
- Start bullets with strong action verbs (Led, Developed, Engineered, Increased)
- Quantify results (20% improvement, 500+ users)
- Wrap technologies in backticks
- Use consistent date formats ()
Jan 2020 - Present - Use for literal brackets in dates:
\[Date\][\[Jun 2024\]]{.right}
- 列表项以强动作动词开头(主导、开发、设计、提升)
- 量化成果(提升20%、500+用户)
- 技术名词用反引号包裹
- 使用统一的日期格式()
2020年1月 - 至今 - 日期中需要字面方括号时使用:
\[日期\][\[2024年6月\]]{.right}