胡子手册:mustache — Mustache processor

这是部关于“胡子”的手册。传说中应用于PHP, Java, Ruby, Python, JavaScript, erLang等牛掰事物上的模板。至于这么介于牛A和牛C之间的事务为什么叫做胡子,据某不大健康的思路大致如下:
1. 可能如果以男人为模板,胡子大概是比较重要的部分,虽然现代人的社会大部分男人的胡子都脱不了被刮除的风险。
2. 如果有了胡子,则可以更为男人一点。如果使用了mustache模板,则上通五湖,下达四海,各类前端工程师可以游刃于纯美之间,无需考虑各种开发的小小刀片之差异。
3. 大棵一点的是有了胡子,至少么还象个男人,谁还在于您阳货之不具耶?
4. 更恶的一点:胡子么,既名之曰mustache,这痛么必然是有一点点的,反正痛过了就没事了:D。
5. 胡子挡住了你的嘴,所以你说的内容胡子上是看不出来的,这样用户真不会关注你后端的实现办法了。:)
以上胡扯,如有愿意对号入座者,自行分辨,或者可以自行摸一下,是不是硬硬的还在:D。若是觉得一个mustache就可以解决您公司复杂的python/Java/RoR/PHP之类混乱开发方式引起的使用了django/grails/rhtml/smarty之类模板的混乱,窃以为切切不可。
下面开始翻译mustache模板手册:

MUSTACHE(1) MUSTACHE MANUAL

NAME/名称
mustache — Mustache processor

SYNOPSIS/摘要
mustache
mustache –compile
mustache –tokens
DESCRIPTION/描述
Mustache is a logic-less templating system for HTML, config files, anything.
Mustache是一个用于HTML/配置文件或任何一种文档的无逻辑模板系统。
The mustache command processes a Mustache template preceded by YAML frontmatter from standard input and prints one or more documents to standard output.
mustache命令会使用由标准输入预提供的YAML数据,然后打印一个或者多个文档到标准输出。
YAML frontmatter beings with — on a single line, followed by YAML, ending with another — on a single line, e.g./该YAML的输入格式由一行—开始,跟着是YAML内容,再由另一行—结束。例如

---
names: [ {name: chris}, {name: mark}, {name: scott} ]
---

If you are unfamiliar with YAML, it is a superset of JSON. Valid JSON should work fine.如果你对YAML不熟悉,它是JSON的超集。合法的JSON也可以工作得很好。

After the frontmatter should come any valid Mustache template. See mustache(5) for an overview of Mustache templates./在数据之后跟着合法的Mustache模板。参见mustache(5)来获得Mustache模板的概况。

For example/例如:

{{#names}}
Hi {{name}}!
{{/names}}

Now let’s combine them/现在让我们来整合它们.

$ cat data.yml


names: [ {name: chris}, {name: mark}, {name: scott} ]

$ cat template.mustache

{{#names}}
Hi {{name}}!
{{/names}}

$ cat data.yml template.mustache | mustache

Hi chris!
Hi mark!
Hi scott!

If you provide multiple YAML documents (as delimited by —), your template will be rendered multiple times. Like a mail merge./如果你提供多个YAML文档(用—来分隔),模板会渲染多次。就象邮件合并。

For example/例如:

$ cat data.yml


name: chris

name: mark

name: scott

$ cat template.mustache

Hi {{name}}!

$ cat data.yml template.mustache | mustache

Hi chris!
Hi mark!
Hi scott!
OPTIONS/选项
By default mustache will try to render a Mustache template using the YAML frontmatter you provide. It can do a few other things, however.缺省地mustache命令会试图用你提供的YAML格式数据来渲染一个Mustache模板。当然,它还可以做一些其它的事情。

-c, –compile
Print the compiled Ruby version of a given template. This is the code that is actually used when rendering a template into a string. Useful for debugging but only if you are familiar with Mustache’s internals.
打印给定模板的编译后Ruby版本代码。这个代码是将模板渲染成字符串时真实使用的代码。这个代码对于高度来说是非常有用的,但是仅适用于你对Mustache内部非常熟悉的情况。

-t, –tokens
Print the tokenized form of a given Mustache template. This can be used to understand how Mustache parses a template. The tokens are handed to a generator which compiles them into a Ruby string. Syntax errors and confused tags, therefor, can probably be identified by examining the tokens produced.
打印指定Mustache模板标记后样式。这个可以用来理解Mustache是如何解析一个模板的。这些标记由一个产生器来处理,这个产生器将它们编译到一个Ruby字符串中。语法错误和令人糊涂的标签,就可能通过检测标识的产生来被认知。

INSTALLATION/安装
If you have RubyGems installed/如果你已经安装了RubyGems:

gem install mustache

EXAMPLES/例子

$ mustache data.yml template.mustache
$ cat data.yml | mustache - template.mustache
$ mustache -c template.mustache
$ cat < ---
name: Bob
age: 30
---
data

COPYRIGHT/版权
Mustache is Copyright (C) 2009 Chris Wanstrath

Original CTemplate by Google(源自Google CTemplate)

SEE ALSO/参见
mustache(5), mustache(7), gem(1), http://mustache.github.com/

http://mustache.github.com/mustache.1.html

注:
在Ubuntu下,如果没有安装ruby,请安装。如:

$ sudo apt-get install ruby rubygems
$ sudo gem install mustache

之后,它是安装到了/var/lib/gems/1.8/bin/。调用/var/lib/gems/1.8/bin/mastache或者加入路径吧。

本文的内容感谢@shellexy的帮助。

打赏

发表评论

电子邮件地址不会被公开。 必填项已用*标注