YAMLResume v0.9 发布:支持 HTML 输出 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
xiaohanyu

YAMLResume v0.9 发布:支持 HTML 输出

  •  
  •   xiaohanyu
    xiaohanyu 2025 年 12 月 26 日 2084 次点击
    这是一个创建于 114 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Hello:

    距离前次 YAMLResume v0.8 更新 三周,今天来跟分享一下 v0.9 的重大更新:我们终于补全了原生 HTML 输出支持,完成了从同一份配置生成 PDF (LaTeX)、Markdown 到 HTML 三种输出格式。

    Demo:

    YAMLResume HTML Demo

    为什么我们还需要一个 HTML 简历输出?

    说实话,大家都习惯了那种传统的求职流程:改 Tex 、压 PDF 、发邮件。但我观察到最近几年,大家越来越倾向于在个人博客、GitHub Pages 或者像 Readme 这种地方放一份自己的在线 CV 。

    以前的方案通常有几种:

    1. 直接放 PDF 链接:用户点击后要在手机上捏合缩放,体验极差。
    2. 手写 HTML/CSS:稍微改个经历就要去改 HTML 或者 CSS ,很麻烦。
    3. Markdown 渲染:定制性的输出布局比较固定,难以修改

    这次 v0.9 带来的 HTML 引擎,就是为了平衡这些痛点。你只需要在 resume.yml 里加两行配置,执行 yamlresume build,它就能吐出一个完全自包含( Self-contained )的 HTML 文件。所有的 CSS 都是内联的,没有 CDN 加载,没有外部依赖,你把它丢到任何静态服务器,甚至是直接双击打开,排版都是完美的。

    当前 YAMLResume v0.9 支持一款 calm 模板(受到 LaTeX moderncv 模板的启发),在桌面端优雅大气,在手机端则会自动调整间距和字体,预览:

    YAMLResume Calm Teamplte

    一些工程实践

    在做 HTML 引擎时,我没打算随便拼凑一点字符串。

    • 类型安全:整个渲染器是用 TypeScript 重写的,配合 Zod 做配置验证,配置错了一丁点都会在编译期报错,而不是等线上显示错位。
    • 转义与安全:简历里难免有一些特殊字符,我们做了极其严格的 HTML 转义,这不仅是为了排版正确,更是为了防止 XSS 攻击。
    • 100% 测试覆盖:HTML 渲染部分的测试代码就超过了 1000 行。

    未来计划

    目前 v0.9 只是个开始。接下来我们打算引入更多基于 Web 设计审美的模板,比如“程序员暗色风格”、“单列极简风格”等。同时,我们也会支持更细致的排版参数控制。

    如果你也厌倦了手动维护好几份简历文件,或者想给自己的 GitHub 页加一份体面的在线 CV ,欢迎升级试用:

    • npm install -g yamlresume@latest
    • brew install yamlresume@latest

    一些链接:

    8 条回复    2026-01-12 21:38:32 +08:00
    duchenpaul
        1
    duchenpaul  
       2025 年 12 月 26 日
    xiaohanyu
        2
    xiaohanyu  
    OP
       2025 年 12 月 26 日
    @duchenpaul 下个版本会提供 更多的 template 以供选择,实际上的 demo 已经有了,就是还需要蛮多打磨的,所以还没有放出来: https://x.com/hanyuxiao1988/status/1999397769321283934

    JSON Resume 格式兼容目前提供了一个官方的转换工具: https://yamlresume.dev/docs/ecosystem/json2yamlresume
    lanrete
        3
    lanrete  
       2025 年 12 月 28 日
    目前在用 rendercv ,考虑下后续支持下不同工具间的格式转化么?
    xiaohanyu
        4
    xiaohanyu  
    OP
       2025 年 12 月 28 日
    @lanrete 嗯,有计划做一个通过 LLM 来直接解析各种 word/pdf 格式到 YAMLResume 的工具,本地 demo 已经跑通了其实,工程化还需要时间。
    xiaohanyu
        5
    xiaohanyu  
    OP
       2025 年 12 月 28 日
    @lanrete rendercv 也可以支持的,我考虑一下。
    wuruxu
        6
    wuruxu  
       1 月 11 日
    @xiaohanyu Stripe 的接入有什么坑吗?收款有什么需要注意的吗?
    xiaohanyu
        7
    xiaohanyu  
    OP
       1 月 12 日
    @wuruxu 这里写了一些:

    t/1073328

    好奇,你为什么会在这个帖子下问 stripe 的问题……
    wuruxu
        8
    wuruxu  
       1 月 12 日
    @xiaohanyu 谢谢大佬,记得你以前提到用的 Stripe, 没找到才直接问你
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2966 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 36ms UTC 06:41 PVG 14:41 LAX 23:41 JFK 02:41
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86