来自头部tiile-tag中panini的<title> Handlebars变量{{page}} </title>是来自data.JSON的对象的键

时间:2016-03-14 18:15:32

标签: json gulp handlebars.js

您好我有JSON文件:

{
	"index" : "Main page",
	"contacts" : "Find me!",
}

有一个用于panini(ZF)的把手模板:

<!doctype html>
<html lang="ru">
<head>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/3.0.3/normalize.min.css">
    <meta charset="utf-8" />
    <meta http-equiv="x-ua-compatible" content="ie=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    {{#if page}}
        <title>{{lookup data.this}}</title> 
        <link rel="stylesheet" href="assets/css/screen.css" />
    {{/if}}

panini中的{{page}}是通过模板的页面的名称(没有扩展名)。 我不知道如何编写适当的模板来从数据对象获取密钥值。我想像解析index.html panini变量页面的值为“index”时,contacts.html - “contacts”和title-tag内部的魔法就像这个data.index一样。

那不会在真实服务器上运行。它应该只在本地计算机上工作,以帮助快速开发。

必须打开魔法的脚本:

//part of the gulpfile.js

gulp.task('pages', ['jade'], function() {
  return gulp.src('src/pages/**/*.{html,hbs,handlebars}')
    .pipe(panini({
      root: 'src/pages/',
      layouts: 'src/layouts/',
      partials: 'src/partials/',
      data: 'src/data/',
      helpers: 'src/helpers/'
    }))
    .pipe(gulp.dest('dist'));
});

//part of the gulpfile.js

1 个答案:

答案 0 :(得分:0)

context parameter of a normal selector语法如下:{{lookup data page}},如果你的data.json有这样的话,它应该可以正常工作:

{
  "index": "main page title",
  "contact": "Contact page title"
}