Case study· 2026

LvJi 履历系统

一份结构化数据支撑完整履历、简历版本与作品展示,不重复维护文案。

数据文件
3
简历版本
3
作品案例
3
2026-05-26内容建模Next.js产品设计

项目目标

LvJi 用于统一管理个人职业资产,把工作经历、个人项目、简历版本与作品案例组织成一套长期可维护的职业内容系统。

它不是简历生成器,而是一个“职业内容系统”:

  • 用 YAML 保存稳定、可查询、可排序的履历事实
  • 用 Markdown 承载简历交付物与案例正文
  • 同一份主数据派生出完整履历、投递简历与作品案例

核心设计原则

1. 单一履历主数据源

履历事实只维护一份:

  • site.yaml:身份资料与首页指标
  • career.yaml:公司 → 项目 → 案例
  • skills.yaml:技能体系

工作经历、个人项目、作品案例都从同一份数据派生,不再维护第二套文案。

2. 结构化与叙事分层

YAML 负责结构化:

  • 节点类型与时间区间
  • 展示优先级与排序
  • 技能标签、案例摘要与指标

Markdown 负责叙事:

  • 简历交付物
  • 案例正文
  • 深度设计说明

这种分层既保留了页面自动派生能力,也保留了人写文档的表达空间。

3. 多视图消费同一份数据

同一条项目在不同页面消费不同字段:

  • /career:概览用 key_highlights,详情用 description + highlights
  • /works:卡片用 case.summary / metrics / tags
  • /works/[slug]:正文来自 content/works/*.md,目录由 ## 自动生成
  • /resume:三份 Markdown 投递版本,可切换与打印

数据模型

公司 → 项目

公司是一级节点(kind: company),项目挂在公司下;独立项目收进 kind: personal 的「个人项目」容器,与工作项目共用同一套字段。

每个项目可选一个 case 块,声明它是否有案例页、用哪种色调、展示哪些指标。没有 case 的项目只出现在履历页。

Markdown 内容

Markdown 文件分两类:

  • content/works/*.md:案例正文,只读展示
  • content/resumes/*.md:简历交付物,只读展示

页面结构

/

定位、指标、三个案例与经历时间线。

/career

详细履历。概览只看结论,详情展开背景、决策与成果。

/resume

三份投递版本切换,可直接打印或存为 PDF。

/works

作品索引,支持搜索、类型与标签筛选。

/works/[slug]

案例详情,左侧目录由正文 ## 标题自动生成。

设计取舍

  • 公司作为容器、项目作为内容:同时表达全职项目与独立项目
  • 默认值规则(slug / source / title / summary / 年份):减少字段重复
  • 案例正文留在 Markdown:长文不适合塞进 YAML,同时保留自动目录
  • 校验脚本兜底:引用完整性、枚举、文件存在性在构建前检查