Closed happypeter closed 9 years ago
一个思路是这样:
https://github.com/paularmstrong/swig 模板引擎
var path = require('path');
var swig = require('gulp-swig');
var data = require('gulp-data');
var getJsonData = function(file) {
return require('./src/json/' + path.basename(file.path).replace(/html$/, 'json'));
};
gulp.task('build', function () {
return gulp.src('src/md/**/*.md')
.pipe(markdown())
.pipe(wrap({src: 'src/layout/default.html'}))
.pipe(data(getJsonData))
.pipe(swig())
.pipe(gulp.dest('dist'));
});
修改文件之后,为了让相应的页面内容能够实时更新,上面的代码
.pipe(swig())
应该代替为
.pipe(swig({defaults: { cache: false }}))
每一个视频对应一个 json 文件,位置 src/json/*.json,并且视频 json 文件的名字与视频笔记名相同,比如说第一个视频笔记名为 src/md/1.md, 则其对应的 json 文件名为 src/json/1.json
json 文件的格式为:
{
"title": "the first episode",
"desc": "intro react"
}
那对应的模板文件,src/layout/default.html 需要添加一些代码,如下:
<h3>{{ title }}</h3>
<p>{{ desc }}</p>
对,就是这个效果
比如有下面的文件内容: