极简原生 · 所见即所得 · 9 款精炼模板 · 移动端/桌面端自适应 · 零配置一键 A4 打印导出
👉 立即在线体验 • 快速上手 • 模板特性 • PDF 打印指南
使用原生 HTML、CSS 和 JavaScript 的本地简历编辑器。无需构建,无运行时框架。新版采用简洁的浅色/深色工作台,并适配手机屏幕。
下载整个仓库,双击 index.html 即可开始。也可以在项目目录运行 npm start(需要 Python),打开 http://127.0.0.1:8765。
- 在左侧编辑内容,或直接点击右侧简历文字编辑;选中文字可加粗。
- 在“样式”中调整模板、字体、颜色、字号和间距。
- 模板包含经典、双栏、居中、留白、目录、映色、时间轴、名片、分节九款,提供八组主题色与自定义强调色。切换模板或字体会保留当前排版参数。
- 模板库使用轻量的线条示意缩略图;选中后在右侧查看当前简历的实际效果。
- 双栏模板的侧栏贯穿纸张左侧,包含姓名、联系方式及分配到侧栏的板块;栏宽按整张纸计算,可调整栏间距与板块分配。侧栏使用紧凑的内部留白,正文保留右侧页边距。
- 时间轴用纵向节点串联经历;名片使用左右页头与两列技能;分节使用横向浅色标题带。新模板的名称、板块顺序、显隐、配色和字体均可继续自定义,并随备份与分享链接保存。
- “紧凑 / 均衡 / 舒展”是明确的一键排版预设;滑块支持实时拖动和右侧数字精确输入。
- 在“布局”中调整页头对齐、板块标题样式、联系方式图标、姓名字号和正文字距;可排序或隐藏板块、修改标题。双栏还支持侧栏宽度、栏间距和各板块所在栏。
- 方案 A/B 共享文字内容,分别保存排版设置。
- 手机版底部直接切换内容、样式、布局和预览。写内容时使用完整编辑区;调整样式和布局时,上方预览、下方滚动调节,可收起预览腾出空间。每个编辑标签保留自己的滚动位置。导出位于顶部,“更多操作”中提供分享、备份、JSON、AI 提示词和深浅外观切换;键盘弹出时优先保留输入空间。
- 超过一页时,预览显示分页虚线,工具栏保留预计页数;不再显示超页提示卡片。虚线随内容、字号、页边距与缩放实时更新,按 A4 可用高度估算;打印时的段落避断可能改变分页位置,以打印预览为准。辅助标记不会出现在 PDF 或纸质简历中。
- 点击“导出 PDF”,在浏览器打印窗口中选择保存为 PDF,使用 A4、100% 缩放、无外边距,并开启背景图形。简历的左右留白和每页上下留白由软件内的页边距设置控制。零外边距可排除 Chrome / Edge 自动添加的日期、标题、网址和页码;若浏览器沿用了自定义打印设置,请同时取消“页眉和页脚”,避免浏览器额外添加内容或缩放。软件无法锁定系统打印窗口的用户设置。
- 内容自动保存在当前浏览器中。通过“导出备份”保存 JSON 文件,用“导入备份”恢复或迁移到其他浏览器。
- “JSON”页支持源码编辑、复制和 AI 提示词。将提示词手动交给自己的 AI 工具,再把生成的 JSON 导入;应用本身不连接 AI 服务。
清除浏览器数据会清除自动保存内容,请保留 JSON 备份。直接打开文件与通过本地服务器打开属于不同存储环境,迁移时使用导入/导出。
点击侧栏底部“分享链接”或预览工具栏“分享”,再点击“复制链接”。对方打开即可还原生成链接时的简历内容和当前方案的模板、字体、配色、字号、间距等排版设置,并可编辑、导出 PDF 或 JSON。链接包含当前方案,不包含另一个 A/B 方案,也不包含编辑器深浅主题、侧栏宽度或预览缩放比例。
接收方进入独立的临时会话,编辑、切换方案和导入备份均不会覆盖其本机简历。刷新会重新读取原始链接;需要保留修改时,重新生成链接或导出备份。点击“返回本机简历”可回到原有数据。
链接形如 https://你的站点/EasyCV/#resume=1g.…。需要先将包含本功能的完整项目部署到可公开访问的静态网站;127.0.0.1 / localhost 只适合本机测试,直接打开 file:// 文件时不生成分享链接。项目不自动上传或发布。
链接是可读取的快照,Base64 不是加密,持有链接的人可以获取其中全部内容;后续修改不会更新已发出的链接。特别长的链接可能被聊天或邮件应用截断,此时请改用 JSON 备份。
实现采用 UTF-8 → 浏览器原生 gzip 压缩 → Base64URL,无新增运行时依赖。不支持压缩时可生成未压缩格式 1j;打开 1g 格式需要支持 DecompressionStream 的浏览器。编码位于 URL 的 # 片段中,由浏览器读取,不随网页 HTTP 请求发送到服务器。参见 MDN Compression Streams 和 URI fragment。浏览器历史及接收链接的软件仍可能保留完整链接。
为限制解码和渲染开销,当前版本最多接收 256 KiB 解压后 JSON,生成的 URL 限制为 64,000 个字符;这属于应用的保护上限,不代表所有分享渠道都支持这个长度。数据先完整解码、校验再载入,损坏、未知版本和过大的链接会显示错误并返回本机简历。字体文件本身不嵌入 URL,接收方使用网站提供的字体及本机中文后备字体,不同系统的字形和换行仍可能略有差异;固定版式投递请用 PDF。
主字体选项均支持中文:Noto Sans SC、鸿蒙黑体、未来荧黑、未来荧黑紧凑版、系统黑体。前四项内置本地字形,切换时中英文一起变化。页面移除了 Logo 图片与 favicon 图形,只保留 EasyCV 文字名称。
旧链接与备份中的 Inter、Manrope、DM Sans、Outfit、Roboto、JetBrains Mono 字体组合继续兼容。加载这些旧组合时才显示“中文搭配”,避免误把西文变化当作中文字体变化。已有的鸿蒙文件只含常规字重,粗体由浏览器合成;Noto Sans SC 支持可变字重,未来荧黑提供常规、粗体两档。未来荧黑紧凑版使用真正的窄体字形,不通过 CSS 压缩文字。
旧西文字体和 Font Awesome 图标位于 assets/;Noto Sans SC 位于 assets/sans/,未来荧黑位于 assets/chinese/,均附 OFL 许可证。Noto Sans SC 和未来荧黑按 Unicode 范围分片,只有选用后才加载当前文字需要的分片。系统字体不下载额外字库,默认页面不需要外部字体服务。
字体来源:Noto Sans SC、未来荧黑 v0.93。字体核查及兼容说明见 字体检查记录。没有字体上传入口。
自定义颜色使用应用内圆角调色盘,可拖动选色、输入 HEX/RGB,也可在支持的浏览器里使用屏幕取色。所有下拉菜单采用统一圆角浮层,支持方向键、首尾键、回车选择、Escape 取消和 Tab 离开,兼容深色、窄屏及减少动态效果设置。
npm ci
npm test测试会自动启动本地静态服务器。Windows 默认使用已安装的 Edge;其他系统先运行 npx playwright install chromium。可以用 PLAYWRIGHT_CHANNEL 指定浏览器通道。截图与打印 PDF 输出到 artifacts/。
app.js:内容状态、模板和编辑功能。style.css:九款简历模板和打印规则。workspace.css:统一的编辑器界面、控件、动效、响应式布局和无障碍偏好。workspace.js:数据校验、安全文本处理和工作台交互。design.js:模板与字体目录、声明式滑块、布局控制、统一通知、确认框和缩放。controls.js/controls.css:共享下拉浮层、圆角调色盘、关闭按钮和键盘操作,不引入额外依赖。share.js/share.css:链接编码、独立分享会话和分享界面。tests/:浏览器集成测试。
资源更新脚本为 scripts/vendor_assets.py,仅更新字体或图标时使用,需要 Python 的 fonttools 和 brotli,会访问 Google Fonts 和 Font Awesome 的公开资源。普通使用和测试无需运行。
Noto Sans SC 与旧版新增西文字体使用 python scripts/vendor_sans.py 更新,未来荧黑使用 python scripts/vendor_chinese.py 更新,需要相同 Python 依赖。字体源文件暂存到 artifacts/font-sources/,不会提交到仓库。导出时等待字体加载完成,使用当前页边距生成每页一致的打印边距;预览页数为估算,精确分页以打印结果为准。
打印使用零外边距 A4 纸张,通过仅打印时启用的表格头尾留白重复每页上下边距,保留可选择的文字与链接。双栏底色覆盖整张纸的左侧,文字沿用设置的上下留白。浏览器自动页眉页脚与零外边距的关系见 Chrome 官方文档。导出时需开启背景图形。
详细改动和验证范围见 CHANGES.md。