V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
hustlzp
V2EX  ›  Node.js

分享一个自己用于制作简历的 Node.js 小脚本,把 Jade 和 YAML 编译成 HTML

  •  1
     
  •   hustlzp · Sep 24, 2014 · 5733 views
    This topic created in 4233 days ago, the information mentioned may be changed or developed.

    拿了上海一家互联网金融小公司的 offer,面试的时候带着电脑把 Web 版简历给面试官看了下,感觉还是蛮加分的。

    挺简单的,就是用 YAML 做简历数据源,Jade做模板,然后编译成 HTML 就完了。使用 Gulp 来监控文件变化,自动编译。然后找个地方托管,比如 GitHub Pages 就可以了。

    Web简历地址: http://resume.hustlzp.com
    代码: https://github.com/hustlzp/resume

    主要的代码在这里:

    https://raw.githubusercontent.com/hustlzp/resume/gh-pages/gulpfile.js

    var fs = require('fs');
    var jade = require('jade');
    var gulp = require('gulp');
    var yaml = require('js-yaml');
    var moment = require('moment');
    var Promise = require("bluebird");
    
    var dataFile = 'data.yml';
    var jadeFile = 'index.jade';
    var htmlFile = 'index.html';
    
    // 将相关函数promisify
    Promise.promisifyAll(fs);
    var renderFile = Promise.promisify(jade.renderFile);
    
    // 将data.yml和index.jade编译为index.html
    gulp.task('build', function () {
      fs.readFileAsync(dataFile, "utf8").then(function (content) {
        return yaml.safeLoad(content);
      }).then(function (data) {
        // 输出未压缩的HTML
        data.pretty = true;
        data.updateTime = moment().format("YYYY-MM-DD");
        data.currentYear = moment().format("YYYY");
        return renderFile(jadeFile, data);
      }).then(function (html) {
        return fs.writeFileAsync(htmlFile, html);
      }).then(function () {
        console.log(moment().format("YYYY-MM-DD HH:mm:ss") + ' - SAVED');
      }).catch(function (err) {
        console.log(moment().format("YYYY-MM-DD HH:mm:ss") + ' - ERROR\n' + err);
        fs.writeFile(htmlFile, err);
      });
    });
    
    // 源文件变动时,触发编译
    gulp.task('watch', function () {
      gulp.watch([jadeFile, dataFile], ['build']);
    });
    
    // gulp运行时触发一次编译,然后开启监控进程
    gulp.task('default', ['build', 'watch']);
    
    6 replies    2014-09-26 14:02:53 +08:00
    hustlzp
        1
    hustlzp  
    OP
       Sep 24, 2014
    @Livid 使用markdwon格式发布的,代码字符中好多白色的,和背景分不清啦~
    pcwuyu
        2
    pcwuyu  
       Sep 24, 2014
    不错啊。。看标题我还以为是免费生成简历来着的。。。。。
    hustlzp
        3
    hustlzp  
    OP
       Sep 25, 2014
    @pcwuyu 恩恩...只是一个自动编译的小脚本...
    tolerious
        4
    tolerious  
       Sep 25, 2014
    可惜了光电的娃娃啊
    hustlzp
        5
    hustlzp  
    OP
       Sep 25, 2014
    @tolerious 对光电确实不感兴趣啊...
    tolerious
        6
    tolerious  
       Sep 26, 2014
    @hustlzp 互联网金融,不错哇
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4951 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 54ms · UTC 09:51 · PVG 17:51 · LAX 02:51 · JFK 05:51
    ♥ Do have faith in what you're doing.