jade1

使用Github Pages搭建轻博客[2]
使用Jade语言模板生成HTML页面

Github Pages能够将我们的页面展示在互联网上。 虽然页面内容由我们来决定,但是所有页面都需要手动去写很不现实。 Github Pages官方推荐了使用Jekyll来生成博客。 这时一个ruby环境的静态博客生成工具,感兴趣的朋友可以了解一下。

作为前端开发,nodejs和JavaScript是比较常用的工具和语言,用起来会更顺手。

经过一番查找,发现hexo是一款基于Node.js的静态博客框架。 安装使用了一番,感觉不适合我搭建轻博客的初衷。 原因是自己的想法会被框架束缚(比如我想对生成文章的地址进行定制,使用本地图片等等)。 想要按照自己的意愿来只能通过配置或在hack。

使用Jade模板语言

Jade的官方介绍:

Jade is a terse language for writing HTML templates.

  • Produces HTML
  • Supports dynamic code
  • Supports reusability (DRY)

简练、支持动态代码,对于生成博客页面最合适不过。

比如index.jade的文件内容如下:

div !{content}
ul
  each val in [1, 2, 3, 4, 5]
    li= val

generate.js的代码:

var jade = require('jade');
var fs = require('fs');

var fn = jade.compileFile('index.jade', { 'pretty': true });

var html = fn({ 'content': '<span>hello</span>' });

fs.writeFileSync('index.html', html);

命令行执行:

node generate.js

生成的index.html内容:

<div><span>hello</span></div>
<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
</ul>

静态博客生成器

上面的代码片段足以证明,使用jade是能够支持生成静态博客这个想法的。

接下来需要完善的是:

  1. 完善generate.js代码。content的内容应该是从文件中读取,而不是hardcode在代码中。
  2. 完善index.jade文件。让你的页面看上去更完整、生动。