职业作品集网站
根据三个输入生成一个精致的单页作品集:一份简历、一张专业照片和一条 LinkedIn 个人主页链接。设计是固定的且已经完成(包含动态网络背景、逐字显示的姓名、打字效果的角色、堆叠的案例研究卡片、可点击的技能(点击后高亮显示职业时间线)、明暗主题切换以及移动端布局)。你的任务是处理内容:读取简历,编写一个 content.json,然后运行构建脚本。
本技能包含的文件:
assets/template.html:已完成的设计;正常使用情况下请勿编辑scripts/build.py:将content.json和照片合并为一个 HTML 文件references/content-schema.md:每个字段、长度指南和图标名称examples/sample-content.json:一个完整的可运行示例
1. 收集三个输入
一次性询问所有缺失的内容:
- 简历:任何格式(PDF、DOCX、纯文本、粘贴的内容均可)。必填。
- 照片:光线充足、正面拍摄的头像。可选;如果没有,个人头像区域会显示其姓名首字母。
- LinkedIn 链接:用于联系链接。
不要一开始就索要其他信息。LinkedIn 页面通常会阻止自动读取,因此请将链接视为一个链接,而不是数据源;简历是真实信息来源。如果你能读取到个人资料并且能补充事实,可以使用这些信息。
2. 阅读简历并确定角色定位
通读整份简历。在写任何内容之前,先确定综合角色定位:一个能涵盖此人所有主要身份的定位,而不仅仅是他们最新的职位头衔。例如:“一位客户成功领导者,负责设计入职流程、基于数据运营 CS 团队并建立高凝聚力团队”,而不是“客户成功主管”。人们通常不想要一个只关于单一角色的网站,他们想要展示的是贯穿整个职业生涯的主线。
挑出:
- 他们带来的 4-8 个身份(这些将成为打字动画中的内容)
- 跨越不同角色的恒定主线(将成为领导力标题和支柱)
- 3-5 个带有明确问题、行动和结果的故事(案例研究)
- 每一个提到的数字(统计数据、仪表盘、亮点)
- 工具、平台、认证、教育背景
3. 编写 content.json
遵循 references/content-schema.md;模仿 examples/sample-content.json 的结构。规则:
- 仅使用简历中的事实。 绝不捏造指标、雇主、日期、团队规模或结果。如果某个案例研究没有陈述结果,请定性地描述成果。仅当有实际陈述的百分比时才使用仪表盘。
- 第一人称,简洁自信。 短句,不要堆砌流行词汇,避免使用“充满激情”、“结果导向”或“充满活力”等词语。
- 遵守长度指南; 过长的文字会破坏布局的节奏。
- 技能必须指向真实的角色 ID,并且每个技能应映射到简历中显示该技能的每个角色。
- 职业角色按最新到最旧排序;将当前角色标记为
current: true。 - 除非对方要求,否则将
contact.phone留空。
将其保存为工作目录中的 content.json。
4. 构建
python3 <skill-dir>/scripts/build.py --content content.json --photo <photo-path> --out portfolio.html
Pillow(pip install pillow)会裁剪和压缩照片;如果没有它,照片会按原样嵌入。修复所有 ERROR;阅读每条 WARNING 并修复它,除非是有意为之。
5. 检查
如果你可以打开浏览器或截取屏幕截图,请在桌面和手机宽度下查看首屏,滚动整个页面一次,并切换暗黑模式。检查照片裁剪是否显示了面部(调整 person.photoPosition),并且没有文本溢出。否则,请对照长度指南重新阅读 content.json。
6. 交付
- 如果你能发布一个制品或网页,请私下发布
portfolio.html并给他们链接,解释他们可以选择何时分享。 - 否则,直接将文件发送给他们。
然后,简要告诉他们:
- 你围绕什么角色定位构建了网站,以便他们可以调整方向
- 他们可以要求任何文案更改,你都会重新构建
- 如何分享:发布/分享制品的链接,或者将单个文件免费托管在 GitHub Pages 或 Netlify Drop 上,然后将链接添加到他们 LinkedIn 个人资料的“精选”部分
编辑
对于文案更改,请编辑 content.json 并重新构建;切勿手动编辑已构建的 HTML。设计更改(颜色、字体、版块)请到 assets/template.html 中进行;请保持 /*__PORTFOLIO_DATA__*/null、"/*__PHOTO__*/"、__TITLE__ 和 __DESCRIPTION__ 这些占位符不变。