十月 08, 2006

The ABC of Blogger Template Tag

国庆几天看了很多blogger模版修改的trick和tip,但看得越多就觉得越乱。只能是依葫芦画瓢,缺少自己的想法和思路。加上一直想加上一个AJAX的评论功能,所以今天下载了自己的Template开始好好研究。

总的来说,Blogger的Template也就是一种标示语言,在

中已经说得很清楚了。

但是有几个小地方还是需要特别注意一下的;)

首先, b:sectionb:widget 是定义页面的最基本元素(tag),其中 b:section 的子元素只能是 b:widget

其次,<b:widget>的使用形如:

<b:widget id="myList" type='ListView' pageType="all" locked="no" title="My Favorite Things"/>

其中最有意思的就是 pageType 属性了,通过设置成不同的值: "all," "archive," "main," or "item,",可以指定这个widget在所有页面,存档页面,首页或单独的文章页面显示(暂时有问题,不能在模版中使用)。

之后,b:widget下面的元素就是 b:includable b:include

b:includableb:include 的关系就像C语言中的函数声明与函数的调用。首先,每个 b:widget 里面都需要一个main主函数:

<b:includable id='main' var='this'>
[content]
</b:includable>

id相当于函数名,而var则是变量。你还可以用不同的id声明其他 b:includable ,并通过

<b:include name='id_other' data='var_other'/>

调用 b:includable ,并通过data属性传递参数。在其内部则通过 data: 使用参数,如:


data:var_other.title


除了"main",可以使用 b:include 调用同一 section 内的任意 b:includable 。而每个 :widget 自动调用其中的"main" b:includable


最后,不同的widget还有不同的 data: ,可以在 Layouts Data Tags 找到不同 widget 对应的 data: 列表,列表里面的 data: 都是直接在"main" b:includable中可见的。也就是对"main" b:includable来说,即使没有申明var属性,仍然可以直接得到widget传递的参数


BLogger的模版语言还有其他的tag, 比如 b:loop, b:if, b:else, expr:。主要用于控制flow,用法还算简单,具体还可以参考 ecmanaut: Blogger beta templates

没有评论: