Semantic Resume: 从 Markdown 生成带结构化标注的 HTML 简历 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
cllu
V2EX    分享创造

Semantic Resume: 从 Markdown 生成带结构化标注的 HTML 简历

  •  
  •   cllu
    cllu 2015-12-18 18:30:22 +08:00 3437 次点击
    这是一个创建于 3638 天前的主题,其中的信息可能已经有所发展或是发生改变。

    TL;DR: 本来花几个小时可以做完的简历,花了几天的时间写了一个做简历的工具。前去围观

    这次找工作做简历用的 HTML ,最早是从JoyNeop/yart fork 出来 。开始是手写的 HTML ,为了跟上 Semantic Web 的时代潮流加上结构化数据的标注。写的过程中发现大量重复的代码,而且对着 HTML 改简历也不是很方便。就试着改 Markdown 的解析引擎(用的是marked)来自动生成,过程并没有想象中的复杂。为了完整性,最后用 React 做成了一个单页的应用,集成编辑器和 HTML 预览。

    主要特点:

    • 从 Markdown 文本生成, YAML 头信息用来指定格式化的数据(与 Jekyll 相同的格式)
    • HTML 针对打印优化,可以通过浏览器打印存储为 PDF 文件
    • 利用 schema.org 进行结构化标注,方便搜索引擎解析(重用了 Markdown 的链接格式)
    • 集成编辑器(基本的 Vim 绑定),方便实时预览和修改

    一些有意思的地方:

    • 更改marked的解析器,生成自定义的 HTML 。 marked 的 API 设计得恰到好处,跟之前改过的一个 PHP 版本的 Markdown 解析器比较起来简直不能再方便。
    • 找了半天没找到codemirror支持 YAML 和 Markdown 混合编辑的模式,就自己实现了一下,其实只是简单的状态转移,归功于 codemirror 的成熟和易用。

    代码开源在 GitHub : https://github.com/cllu/Semantic-Resume
    单页应用放在了 GitHub Page 上: https://semantic-resume.chunlianglyu.com/

    欢迎围观吐槽。

    3 条回复    2015-12-23 13:09:12 +08:00
    0rangeT1ger
        1
    0rangeT1ger  
       2015-12-23 10:57:59 +08:00
    网站挂了...
    0rangeT1ger
        2
    0rangeT1ger  
       2015-12-23 10:58:16 +08:00
    啊, 又好了
    cllu
        3
    cllu  
    OP
       2015-12-23 13:09:12 +08:00
    @0rangeT1ger 就是一个静态页面放在了 GitHub Pages 上,然后前面还加了 CloudFlare ,一般不怎么会挂。不过用了 Google Fonts 的字体,墙内估计会卡在这里。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3154 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: .9.8.5 23ms UTC 11:41 PVG 19:41 LAX 03:41 JFK 06: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