template

悠然乱弹:“最好的模板引擎”Beetl 剖析及与Tiny模板引擎对比

早过忘川 提交于 2019-12-03 04:17:29
Beetl的环境搭建 输入命令 git clone https://git.oschina.net/xiandafu/beetl2.0.git 不一会儿,输出了下面的内容 Cloning into 'beetl2.0'... remote: Counting objects: 5807, done. remote: Compressing objects: 100% (2145/2145), done. remote: Total 5807 (delta 3050), reused 5383 (delta 2733) Receiving objects: 100% (5807/5807), 14.60 MiB | 684.00 KiB/s, done. Resolving deltas: 100% (3050/3050), done. Checking connectivity... done. 嗯嗯,好的开头是成功的一半,不错,代码取下来了。 cd beetl2.0 mvn install 输出结果: [WARNING] [WARNING] Some problems were encountered while building the effective settings [WARNING] 'servers.server.id' must be unique but

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

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

Django中模板编码引发extend的问题

Deadly 提交于 2019-12-02 18:47:42
用django1.5的模板继承的时候遇到一个很诡异的问题: 用{% extend %}继承父模板后,在chrome中查看源码, <head> 中的内容诡异的到 <body> 标签中了,各种排查都不行。 最后发现是模板文件格式为dos的,换行符\r\n,用dos2unix转一下就OK了,这个是个坑啊,记一下。 来源: oschina 链接: https://my.oschina.net/u/266979/blog/165696

教程:一分钟完成SiteMesh Template模板组合

谁说我不能喝 提交于 2019-12-01 21:22:05
首先要感谢发明Markdown的家伙,这东西真是好用吖! ###SiteMesh概述 嗯,请自行 Google 之。 ###教程:一分钟完成Template模板组合 ####1.内容页面 简单的示例内容页面源代码如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="theme" content="basic_theme" /> <title>应该是内容页面</title> </head> <body> <h1>Weekdays</h1> <p>5:00pm - 10:00pm</p> <p>Weekends</p> <p>5:00pm - 10:00pm</p> <a href="${pageContext.request.contextPath}/download/decorators.jsp">down</a> </body> </html> 在源代码中加入 <meta name="theme" content="basic_theme" /> 即可由SiteMesh自动完成Template模板装配。 ####2.Runtime环境配置 WEB-INF目录下添加 sitemesh.xml,文件内容中除了指定 decoration-file

Tiny模板引擎(Velocity Plus)应用示例

こ雲淡風輕ζ 提交于 2019-12-01 19:49:48
把TinyTemplate当成是Velocity的升级版其实也是可以的,毕竟它的语法是基到Veloccity扩展而来的,兼容度在80%以上。 至于TinyTemplate的实例是怎样的,且看下面: 宏的可变参数 在Java中的可变参数使用起来非常方便,Tiny模板也对可变参有一定支持。 #macro hello() ParameterList: ${helloParameterList.size()} #for(para:helloParameterList) hello:${para} #end #end #call("hello","aa",1,true,false) 运行结果: ParameterList: 4 hello:aa hello:1 hello:true hello:false 说明:在宏的包体中,有一个默认的变量,名称就是宏的名字+ParameterList,当前例子中,宏的名字是hello,所以变量的名字就是:helloParameterList。 此变量的类似是一个List,因此可以调用List的方法。 Set示例 运行结果: 宏定义及其调用示例 1:1 2:2 3:1 4:2 5:2 解释: 首先设置abc=1,然后显示它的值,结果是1,这个是理所当然的。 然后定义一个宏,在宏里设置变量abc的值为2,然后显示这个值。 在调用setAbc宏的时候

Django template 操作

落爺英雄遲暮 提交于 2019-12-01 10:38:23
模版路径配置 配置SETTING 下载 TEMPLATES 'DIRS': [os.path.join(BASE_DIR,' template ')], template 是你命名的模版文件夹 django的模板系统自带了一系列的内建标签和过滤器,一般情况下可以满足你的要求,如果觉得需更精准的模板标签或者过滤器,你可以自己编写模板标签和过滤器,然后使用{% load xxx %}标签使用他们。 静态文件路径设置(CSS,JS,IMG) STATICFILES_DIRS=( #新增 os.path.join(BASE_DIR,'static'), ) static是你命名的CSS文件夹,可任意命名, 注意这里的逗号必须加上 。 模版中导入CSS 1、static文件夹在 app 外面 ,如上图所示 settings.py 需要配置:STATICFILES_DIRS 方法1:不推荐 原因:/static/main.css 中/static/ 受到配置文件中 STATIC_ URL=‘/static/’ 影响 如果修改配置文件,所有url 都需要修改 为/xxx/main.css templates 模版 html <link rel="stylesheet" href='/static/main.css'> 方法2:(推荐) templates 模版 html 模版中导入: {%

篮子、水果和鸡蛋——关于C++的模板偏特化和萃取编程技法

江枫思渺然 提交于 2019-11-29 01:48:52
最近在读《STL源码剖析》。读这本书的时候发现自己的C++的知识其实是非常匮乏的。 从大学的C++教材上学到一些C++基本的语法、内存管理、继承、多态等方面的基础知识。这些只是是一棵大树的根。而读STL的源码和侯捷的解析的时候,发现C++还有很多丰富的细节和技巧。这些是大树上的枝叶。学习C++,不仅要学习根,也要学习枝叶,这样才能让大树茂盛起来。虽然C++语法一些用法较为晦涩,但读完这些代码之后觉得思路比以前更开阔,另外可以活动脑筋。 比如模板的偏特化这个特性。侯捷的《STL源码剖析》中对于模板的偏特化(partial specialization)的解释为: 如果class template拥有一个以上的template参数,我们可以针对其中某个或多个 template参数进行特化工作。template是一个很抽象的东西。template偏特化之后就让模板变得具体那么一点点。 用一个形象一点的比喻吧。我们把template比作一个装东西的篮子。这个篮子既可以装鸡蛋,也可以装苹果。那么所谓偏特化就是让你用一个篮子专门装水果,这就是template水果篮。以后你就只能使用水果篮来装苹果、装梨,而不能使用其他的篮子来装这些水果了。 看一个STL例子: 有一个“篮子” iterator_traits, 它内部typedef 了value_type类型,用来定义模板的参数类型class I