当前位置: 首页 > 软件库 > 程序开发 > 模板引擎 >

TagFeather

Web 开发模板引擎
授权协议 BSD
开发语言 PHP
所属分类 程序开发、 模板引擎
软件类型 开源软件
地区 不详
投 递 者 颜思淼
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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 配合生成实静态化。

 相关资料
  • 门户首页 模板文件对应的是模板目录/portal/index.html,这个页面没有被控制器 assign任何变量,模板开发者完全可以用 portal:articles等其它模板标签制作此页面 文章列表 默认模板文件(可以增加更多) 默认模板文件对应的是模板目录/portal/list.html 控制器 assign 过的变量 $category这个变量是就是一个文章分类对象,可以当成数组直接用

  • 1. 前言 模板引擎这个词,咋听起来,有点高大上的意味。 实际上,模板引擎是非常平易近人的技术。譬如大家可能都比较熟悉的 JSP ,就是一种比较典型的模板引擎。 当浏览器将请求抛给控制器,控制器处理好数据后,就跳转 JSP 等模板引擎页面。注意在跳转的同时,还会将数据组装好,也交给模板引擎处理。 模板引擎会根据数据,和模板引擎的规则,动态生成 HTML 页面,最后返回给浏览器显示。 2. 模板引擎

  • 本文向大家介绍node前端开发模板引擎Jade的入门,包括了node前端开发模板引擎Jade的入门的使用技巧和注意事项,需要的朋友参考一下 随着 web 发展,前端应用变得越来越复杂,基于后端的 javascript(Node.js) 也开始崭露头角,此时  javascript 被寄予了更大的期望,与此同时 javascript MVC 思想也开始流行起来。为了使用户界面与业务数据(内容)分离,

  • 英文原文:http://emberjs.com/guides/templates/development-helpers/ 开发助手 Handlebars和Ember中定义了一些可以简化开发模板的助手。这些助手可以方便的将变量输出到浏览器的控制台中,或者在模板中激活调试。 日志 {{log}}助手可以方便的将当前渲染上下文中的变量、表达式输出到浏览器的控制台中: 1 {{log 'Name is

  • Section Contents 入门 模板 + 数据模型 = 输出 数据模型一览 模板一览 数值,类型 基本内容 类型 模板 总体结构 指令 表达式 插值 其它 自定义指令 在模板中定义变量 命名空间 空白处理 替换(方括号)语法

  • 具体查看ejs官方文档 https://github.com/mde/ejs

  • CocoaPods 模板类库开发 - 精简篇 这篇文章只简短介绍CocoaPods配合GitHub制作类库的流程, 不做深入展开 1. 在本地执行 pod lib create LibName 并根据提示选择适配:平台、开发语言、是否包含Demo、是否包含单元测试等, 完成项目创建 默认模板新建的项目在master分支, 2020年开始GitHub将master更名为main分支, 可以通过以下

  • 我们自己实现了一个轻量级的模板引擎,不要问为什么不用smart之类的,因为我们认为没有必要为了一个小小的模板引擎而引入smaart这样复杂的实现。你可能会说,smart功能强大,支持各种标签,标签也是很强大,而且还可以对模板引擎进行各种"灵活"的配置... 这里我们觉得有必要说明一下: 框架的内置模板引擎基本上实现了我们日常开中所有常用的标签。 不常用的标签我们也做了巧妙的实现。 我们只提供了扩展