TagFeather是一个让美工不用去学任何程序代码,只需要借助流行工具很容易得到几乎所见所得的预览的开发性模板引擎,目前还只有PHP实现的版本。简单的讲,美工只需要按照程序员指定的 CSS Class 和 ID 就什么都不用管了。对于程序员来说,TagFeather很容易掌握,而且开放的结构使得扩展极为方便。对美工来说,只要指定 class , id ,name 之类的东西,最后保存的时候注意输出成 xhm,其它不用学了,而且小样就是模板文件。 对程序员来说,现在的模板改成 TagFeather难度都不大。只要在代码里加两三句就行了。我曾经想把Discuz的模板改成 TagFeather 的。
TagFeather 实际上就是解析允许有 <? 开始和 <% 开始的 xml。在生成文本的过程中 hook钩挂插件函数。这样他其实有很强大的扩展能力
现有的所有模板引擎都是需要美工去学另外的模板语言。但是 tagfeather 另劈一条新道路。这也就是它的价值。我现在面临的困惑
我知道这个东西很强大,如果有人理解我的思维,这确实完全是改变世界的东西
我很期盼 TagFeather 的 java, python 版本。但是我没有足够的时间一个人的实力不足以完善那么大的工程。
现在主要代码已经稳定了
Demo 表现出我美术功底差的毛病。
即将完成的时候小修小改也是这个东西
如果感兴趣,请在我博客留言
http://blog.csdn.net/dvaknheo/

解决方案 »

  1.   

    first.php
    第一个例子,
    美工: first.php 为美工模板。只需要在 xhtml 前加一句 include<? require_once("first.code.php");?>
    为了体现 服务端属性的特点,第一个输出的时候添加 php:foreach="$words" foreach:element="<?$word?>"  服务端属性程序员:first.code.php 
    包含 tagfeather 库
    对应 .loop1 写一个约定名称为 tfend_class_loop1 的函数.
      内容为添加服务端属性 php
    在{}里的文本会被 tf_text_cookie 这个钩子展开成 <?php echo 
    $words=array('Hello','World');
    $author='dvaknheo';
    $tf=TagFeather::GetInstance();//struct mode,this file is a xml File too;
    结构文件,load_struct 和 prebuild_loadstruct 共同作用处理服务端属性
    php:assign="loop2"
    assign:type="class"
    php:for="$i"
    for:total="2"
    for:mode="inside"class="loop2"  的标签会天津啊 php:for服务端属性神奇魔法函数 GO 如果在缓存,exit 否则得到缓存文件并运行。
    TagFeather::GO();second.php 美工+程序员 ,混合在一起 当一个人出原型的时候用的,方便
    TagFeather::OutBegin();TagFeather::OutEnd();在缓存中被改成 if(tf_in_cache);
    阻止 函数重定义的错误,平常代码文件也可以成对出现
    third.php 
    美工 负责编辑 third.view.html
    程序员,负责 third.phpfeedback.html 美工: 给一个负责更新的页面调用如 image,javscript 过来,其它不用管
      

  2.   

    test/index.php 底下的图预览的时候是 baidu 的logo 可是经过程序员在后台处理变了。
    对美工来说,丫要怎么变不管,能有个可对照的图来设计太爽了。
    表格也如此多爽,目前的版本对美工说,能做到。对程序员说,写一个扩展吧。对我来说,还是没写出来啊表格预览是现在模板都做不好的事情。但是 tagfeather 的 php:onlyonce 只显示第X个出现的标签。
    以后会扩展成,插件接一个php 类,然后给美工指定 class 就行了。列数目,交叉颜色,这些都是可预览的
      

  3.   

    最大的失误,没有把地址贴上来http://www.dvaknheo.com/tagfeather看演示的客户端代码是看不到什么特殊的,就如 C 语言的 Hello world 
    服务端代码,以及“模板输出可以作为模板”的概念我现在想找几个人一起开发