TagFeather Web 开发模板引擎

程序名称:TagFeather

授权协议: BSD

操作系统: 跨平台

开发语言: PHP

TagFeather 介绍

TagFeather 是一个让美工不用去学任何程序代码,只需要借助流行工具就能所见所得的预览的 Web
开发模板引擎。简单的讲,页面设计人员只需要按照程序员指定的 CSS Class 和 ID 就什么都不用管了。对于程序员来说,TagFeather很
容易掌握,而且开放的结构使得扩展极为方便。TagFeather 目前还只有PHP实现的版本,但将来会在各种语言上实现的。

TagFeather 有什么优点 和其他 PHP 模板 模板比较。TagFeather
比现有的所有模板都更美工欢迎。因为他们不需要学任何其它程序语言或者模板语言。他们用普通HTML工具预览所得到的结果就是最终输出结果的小样。相比使
用内嵌代码的而其很多只见结构不见预览的模板比如 Smarty 来说这是一种质的飞跃,对于使用标记性标签,如 Struct,ASP.Net 来说
TagFeather 则不需要专用的编辑器来预览。相比另一个优秀的PHP模板引擎PHPTAL,TagFeahter 则是不必一定在模板html
文件中加入特殊属性。 TagFeather 的原理是用自定义的 SAX 引擎解析宽松 xml 格式的模板文件。编译成和 TagFeather 引擎无关的
PHP 代码。常见的模板引擎如 Smarty 则是通过解析编译字符串得到编译后代码的。TagFeather的
各种功能都是用钩子函数来实现的。TagFeather 编译后的代码是原生,不需要额外支持就可以执行的 PHP代码。 TagFeather
为了更方便程序员和美工 所见所得 页面设计不再只见结构不见预览结果,不需要任何辅助工具。 完全的页面设计和程序逻辑分离
不需要在模板HTML文件中加入任何奇怪的东西。 不必学任何模板语言 页面设计人员不需要。程序员也只需了解一些特殊的属性怎么用,可以用 PHP
语言来检查配置。 容易入门 因为不需要学习模板语言,所以页面设计是几乎0学习成本,程序员学习的成本也低于 smarty 方便的格式重排
你可以实现现有模板都很难做到的功能:预览横排但不满足整除关系的表格。 如果设计得当,模板输出文件甚至可以作为输入模板使用。

运 行速度快 TagFeather 编译后的代码是不需要 TagFeather 支持的。和某号称“It is extremely
fast”,但实际上是效率最低下的某模板引擎比起来。TagFeather 编译后的文件就和你不用任何模板自己写的一样。 编译出来的文件可读
用某模板的人都不知道生成的代码是怎么样的,但 TagFeather 让你很清楚你做的是什么。

可以做辅助设计 即使你不相信 TagFeather 在运行时候的表现,你也可以用他编译出来的 PHP 文件。因为编译出来的文件很容易明白。

方便 确实很灵活方便开始建模的时候可以把代码,配置和模板三个文件混合写在一起。后来可以把代码,配置写在一起。或者你也可以三者分离。 扩展性强
TagFeather 的功能都是由钩子函数实现的,写一个钩子函数是很容易的事情。 不需要配置 简单项目 通用 大部分模板都很容易转为TagFeather
模板 模板可以和代码混用。你可以在模板里自由书写代码,但是也可以设置为模板安全。 安全 有插件使得模板是安全的,就是只能 增强的XML解析器
TagFeather的 模板文件是XML,但是TagFeather的
解析器做了一些改进,你可以在属性和文本区域里混合使用宿主语言(当前是PHP)和普通文本。 TagFeather 的缺点 TagFeather
目前还没有经过大规模的应用考验。 TagFeather
的编译效率和文档复杂度有关,编译效率很低,简单的页面不到1秒,能每次运行时都可以实时编译。但复杂页面会导致运行超时。编译前后效率比可达 1000:1以上。
TagFeather 支持 GB2312 编码,但理论上对 GBK编码会有问题。 TagFeather
的产品完成度还不够,作为一个程序合格,但是作为一个产品,还有很多不足。尽管我已经竭力以产品角度来对待 很多从非 TagFeather 的模板转移到
TagFeather 的麻烦在于: TagFeather 要求输入的必须是可以含标准服务端属性的 XML文件。 XHTML 的一些属性导致那些源模板不符合
XML。尽管TagFeather已 经够宽松了。 编译型的模板的一个缺点:必须要可写的文件作为缓存。 TagFeather 的特点 TagFeather
的工作原理是用 SAX 方式 解析 xml 模板输出解析后数据,和一般通用 的 SAX Parser 解析器不同的是: TagFeather 的 SAX
解析器 TF_XmlParser 是支持带服务端标记 <? <% 的,而且不会替换 & 实体符号。而且 而且做了部分扩充
根据系统和用户添加的解析钩子,TagFeather 因此得到不同的输出。 TagFeather 的输入和输出都是可稍微扩展的 XML 文件
TagFeather 为什么没有缓存系统? 缓存系统不是模板系统考虑的事,TagFeather 推荐使用 Pear::CacheLite 配合生成实静态化。

TagFeather 官网

http://code.google.com/p/tagfeather/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


BlazeDS 是一个基于服务器的Java 远程控制(remoting)和Web消息传递(messaging)技术, 它能够使得后端的Java应用程序和运行在浏览器上的Adobe
OVal 是一个可扩展的Java对象数据验证框架,验证的规则可以通过配置文件、Annotation、POJOs 进行设定。可以使用纯 Java
Volta 是一套开发工具,专为开发分布式、实时系统应用。它包括级联,控制流分析工具,
OpenDDS 是一个开源的 C++ 实现的 对象管理组织 OMG 的 数据分布式服务 (DDS) 。OpenDDS利用自适应通信环境(ACE)提供一个跨平台的环境。
JADE (Java Agent DEvelopment Framework) 是一个完全用Java语言实现的软件框架。它通过一个兼容 FIPA
FastMM ,在D2006和2007中已代替了原来的内存管理器。
WebRTC 是一项在浏览器内部进行实时视频和音频通信的技术,是谷歌于2010年以6820万美元收购VoIP软件开发商 Global IT
gwtwiki - The Java Wikipedia API (Bliki engine),是一个 Wikipedia/Mediawiki 语法解析器,可以把 wiki 的文本转换成 HTML。它支持 wiki 标签,例如 bold, italic, headers, nowiki,
Esper 是一个复杂事件处理组件(CEP - Complex Event Processing),它有 Java 版本和 .NET 版本(NEsper)。
LuaTinker 的作者是Kwon-il Lee韩国人写的,最新的版本是0.2.C,这个C++ wrapper For Lua能够方便和
各种语言环境下gitignore文件的一个集合。
简介 ContentExtractor 是一个开源的网页正文抽取工具,用JAVA实现,具有非常高的抽取精度。
SwiftRandom 是一组函数集合,可以从不同的分布生成伪随机变量。 使用示例: //Single pseudorandom normal variable
java-linq-examples 是 101 个 LINQ 示例的 Java 移植版本。Android 兼容 Java 1.7. 此外还有以下语言移植版本:
mal,Make a Lisp,顾名思义,用图灵完备的编程语言写 Lisp 交互器,目前已经有35种不同语言的实现:
一个 Go 语言实现的中国行政区划查询工具。 介绍 最新中国行政区划,数据来源:http://www.stats.gov.cn/tjsj/tjbz/xzqhdm/201608/t20160809_1386477.html
Teaf 简介 Tencent Easy ACE Framework,基于 ACE 的高性能轻量级服务框架,单进程多线程模型,支持 select/epoll 等多种网络
介绍 让 Guzzle 支持 Swoole 协程,这个项目目的就是这么简单明了! Guzzle-Swoole 是 Guzzle 的处理器(Handler),并没有对 Guzzle 本身代码进行修改,理论上可以兼容后续版本。
goproxy-shell goproxy服务端部署脚本 使用方法 wget --no-check-certificate https://github.com/sjz123321/goproxy-
1. pyMd2Doc介紹(pip版本) 利用python将markdown转换成带可收缩、可跳转到文本内容的目录文档。