-->

hogan.js with master pages or layouts

2019-04-26 21:04发布

问题:

Is it possible in any way to use hogan.js as template engine with layouts something like "Razor or master pages in .NET"? I would get a result like this:

layout.hjs: contains "header" & "footer"

and

index.hjs: will include layout.hjs and contain only page content.

回答1:

sure:

layout.hjs:

{{> header}}
{{$content}}
  default content
{{/content}}
{{> footer}}

index.hjs:

{{<layout}}
  {{$content}}
    your content goes here
  {{/content}}
{{/layout}}

see the hogan test file for all it can do: https://github.com/twitter/hogan.js/blob/master/test/index.js

btw. this is Hogan@3.0.0, get it with a git url with mpn



回答2:

I'm not sure what you mean, "Razor or master pages in .NET"? What are you looking to do, use view partials?

But the basic way of setting up Hogan.js for Express is as follows:

var express = require('express');
var app = express();

app.set('views', __dirname + '/views');
app.set('view engine', 'hjs');

app.use(app.router);
app.use(express.static( __dirname + '/public' ));

app.get('/', function( req, res, next ) {
  res.render('index');
});

app.listen(3000);

You will have to npm install express [--save], npm install hjs [--save], depending if it's inside your package.json already or not.

Then you just make a views directory and throw an index.hjs file and you're set.

Let me know what you want to do with your templates and we can work from there.