模板语言

Velocity宏定义的坑与解决办法

白昼怎懂夜的黑 提交于 2019-12-06 03:00:12
使用Velocity,当然就免不了要使用宏,或者说 使用Velocity而 不使用其宏,就相当于废了Velocity一半以上的武功,非常可惜的。 怎么使用Velocity的宏呢,才最大程度的发挥其作用但是又避免掉入其中的坑呢?且听悠然乱弹乱弹: 官方文档中,关于Macro是这么说的: #macro - Allows users to define a Velocimacro (VM), a repeated segment of a VTL template, as required Format: # [ { ] macro [ } ] ( vmname $arg1 [ $arg2 $arg3 ... $argn ] ) [ VM VTL code... ] # [ { ] #end [ } ] vmname - Name used to call the VM ( #vmname ) $arg1 $arg2 [ ... ] - Arguments to the VM. There can be any number of arguments, but the number used at invocation must match the number specified in the definition. [ VM VTL code... ] - Any valid VTL

TinyTemplate模板引擎火热出炉,正式开源了~~~

非 Y 不嫁゛ 提交于 2019-12-03 04:17:18
涉水模板引擎领域,纯属不小心。 在此对以下人员表示强烈感谢与致敬: @sub jetbrick作者 @sept @webit webit作者 @罗格林 rythm作者 @闲.大赋 beetl作者 以及许许多多虽然没有列出来,但是在我写tinytemplate时帮助过我的人。 序言 本来是没有自己写一个模板引擎的计划的,因为按我的理解,一直认为这种“语言”级的引擎,难度是非常大的。总感觉自己的水平不够,因此不敢有这个念头。直到大量使用Velocty的时候,碰到velocty诸多不尽如人意的地方,但是又无能为力,退回到JSP吧,又心不有甘。于是就期望着寻找一种语法结构接近velocty,但是又没有Velocity这些不方便之处的模板语言。于是进到一个模板语言群,一群大佬们个个至少是一个模板语言的作者,于是作者在里面表达了自己的期望,大佬们都介绍了自己的模板引擎,于是作者一个接一个的看源码,看文档。说实际,看文档,感觉都非常不错,都有自己的特色,看语法也都不错,除了一部分自己特别关注的点没有之外,其他部分都非常不错了。但是距离自己的诉求还是有差距,怎么办呢?于是就准备找一个最接近的模板引擎来进行一定的扩展,挑来挑去就挑中了jetbrick这个模板语言。 之所以挑中这个是因为以下几个原因: Antlr词法及语法文件编写非常清晰,对于我这种Antlr盲来说,也可以看得懂