0

我目前对 gulp-handlebars 使用以下格式:

{{#> layouts/main title="my title" pagename="my_page_name"}}

我看到其他人使用以下格式:

---
layouts: main
title: my title
pagename: app-is-fixed
---

当我尝试第二种格式时,我的页面无法编译,或者它将标题作为文本添加到页面顶部而不是变量。

有人可以指导我如何为我的模板页面使用第二种格式吗?

4

1 回答 1

0

设法通过使用 gulp-assemble 解决它,他们对如何开始https://www.npmjs.com/package/gulp-assemble有很好的描述

如果有人感兴趣,这是使用的格式:

var gulp = require('gulp');
var rename = require('gulp-rename');
var assemble = require('assemble');
var helpers = require('handlebars-helpers');
var app = assemble();
var prettify = require('gulp-prettify');
var config = require('../config');

gulp.task('init', function(cb) {
  app.helper('compare', helpers.comparison());
  app.helper('markdown', require('helper-markdown'));
  app.partials(config.paths.path_src + 'templates/includes/**/*.hbs');
  app.layouts(config.paths.path_src + 'templates/layouts/**/*.hbs');
  app.pages(config.paths.path_src + 'templates/content/**/*.hbs');
  cb();
});

gulp.task('assemble', ['init'], function() {
  return app.toStream('pages')
    .pipe(app.renderFile())
    .pipe(prettify({
        indent_inner_html: false,
        preserve_newlines: true,
        end_with_newline: true,
        extra_liners: ['head', 'body']
    }))
    .pipe(rename({
        extname: '.html'
    }))
    .pipe(rename({dirname: ''}))
    .pipe(app.dest('site'));
});

gulp.task('test', ['assemble']);

您的 hbs 页面将如下所示:

---
layout: default
title: Blank
heading: Blank
pagedescription: blank desc
---
{{#*inline "head-block"}}test-head{{/inline}}
{{#*inline "scripts-block"}}test-foot{{/inline}}

test file
于 2017-08-29T10:20:31.613 回答