hogan html模板,hogan.js-JavaScript中文网-JavaScript教程资源分享门户

A mustache compiler.

Hogan.js - A mustache compiler. a283b856ff917945ac756c2024a16d9c.png

Hogan.js is a compiler for the

Mustache templating language. For information

on Mustache, see the manpage and

the spec.

Basics

Hogan compiles templates to HoganTemplate objects, which have a render method.

var data = {

screenName: "dhg",

};

var template = Hogan.compile("Follow @{{screenName}}.");

var output = template.render(data);

// prints "Follow @dhg."

console.log(output);

Features

Hogan is fast--try it on your workload.

Hogan has separate scanning, parsing and code generation phases. This way it's

possible to add new features without touching the scanner at all, and many

different code generation techniques can be tried without changing the parser.

Hogan exposes scan and parse methods. These can be useful for

pre-processing templates on the server.

var text = "{{^check}}{{#i18n}}No{{/i18n}}{{/check}}";

text += "{{#check}}{{#i18n}}Yes{{/i18n}}{{/check}}";

var tree = Hogan.parse(Hogan.scan(text));

// outputs "# check"

console.log(tree[0].tag + " " + tree[0].name);

// outputs "Yes"

console.log(tree[1].nodes[0].nodes[0]);

It's also possible to use HoganTemplate objects without the Hogan compiler

present. That means you can pre-compile your templates on the server, and

avoid shipping the compiler. However, the optional lambda features from the

Mustache spec require the compiler and the original template source to be present.

Hogan also supports template inheritance,

and maintains compatibility with other implementations like mustache.java,

mustache.php, and GRMustache

Why Hogan.js?

Why another templating library?

Hogan.js was written to meet three templating library requirements: good

performance, standalone template objects, and a parser API.

Install

Node.js

npm install hogan.jscomponent

component install twitter/hogan.js

Compilation options

The second argument to Hogan.compile is an options hash.

var text = "my template."

Hogan.compile(text, {delimiters: ''});

There are currently four valid options.

asString: return the compiled template as a string. This feature is used

by hulk to produce strings containing pre-compiled templates.

sectionTags: allow custom tags that require opening and closing tags, and

treat them as though they were section tags.

var text = "my {{_foo}}example{{/foo}} template."

Hogan.compile(text, { sectionTags: [{o: '_foo', c: 'foo'}]});

The value is an array of object with o and c fields that indicate names

for custom section tags. The example above allows parsing of {{_foo}}{{/foo}}.

delimiters: A string that overrides the default delimiters. Example: "".

disableLambda: disables the higher-order sections / lambda-replace features of Mustache.

Issues

Have a bug? Please create an issue here on GitHub!

Versioning

For transparency and insight into our release cycle, releases will be numbered with the follow format:

..

And constructed with the following guidelines:

Breaking backwards compatibility bumps the major

New additions without breaking backwards compatibility bumps the minor

Bug fixes and misc changes bump the patch

For more information on semantic versioning, please visit http://semver.org/.

Testing

To run the tests you first need to update all git submodules.

$ git submodule init

$ git submodule update

Unit tests are written using QUnit. To run them, open test/index.html

in a browser.

Use node to run all tests from the

mustache spec.

$ node test/spec.js

Authors

Robert Sayre

Jacob Thornton

License

Copyright 2011 Twitter, Inc.

Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0

HomePage

Repository

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值