安装环境
- Movable Type 3.14
- RedHat Linux
安装配置插件
作者网站,还有很多其它插件。
将文件Collect.pl 上传到服务器上MT 的plugins 目录,并设置权限:
$ tag -zxvf Collect.tar.gz
$ cp Collect/Collect.pl /var/www/cgi-bin/mt/plugins/
$ chmod 755 /var/www/cgi-bin/mt/plugins/Collect.pl
修改MT 模板
Individual Archives 模板相关部分如下:
<MTCollect tags="h3,H3"><MTCollectThis><$MTEntryBody$></MTCollectThis>
<MTIfCollected>
<table align="right" width="250" class="section" bgcolor="#EEEEEE" style="padding-top: 2">
<tr>
<td bgcolor="#BBBBBB">目录</td>
</tr>
<tr>
<td>¡¡
<ol>
<MTCollected><li><a xhref="http://blog.alex.com/cgi-bin/mt/mt.cgi#<$MTCollectedIndex$>" mce_href="http://blog.alex.com/cgi-bin/mt/mt.cgi#<$MTCollectedIndex$>"><$MTCollectedContent$></a></li>
</MTCollected>
</ol>
</td>
</tr>
</table>
</MTIfCollected>
</MTCollect>
<MTCollect tags="h3,H3"><MTCollectThis show="1" h3="<a name="[N]" \/>/" H3="<a name="[N]" \/>/"><$MTEntryBody$></MTCollectThis>
</MTCollect>
上面的模板共使用了两次MTCollect 标签,第一次用于生成索引目录,第二次用于在索引的段落标题中加入锚链接(anchor)。MTCollect 标签的tags 属性用于指定收集的HTML 标签名称,区分大小写,如果有多个标签,用逗号隔开,这里我们收集标题标签h3 与 H3。
<MTCollect tags="h3,H3">
MTCollectThis 标签用于指定收集的对象,并对收集的标签赋以新值。需要用到tag="new value" 的格式,tag 必须是上级MTCollect 收集的标签名称。我们需要在标题中加入锚链接,并保存原标题。因此我们如下定义模板:
<MTCollectThis show="1" h3="<a name="[N]" \/>/" H3="<a name="[N]" \/>/"><$MTEntryBody$></MTCollectThis>
上面的模板会将原文档中的内容:
<h3>段落标题1</h3>
<h3>段落标题2</h3>
替换成如下内容:
<a name="1" /><h3>段落标题1</h3>
<a name="2 /><h3>段落标题2</h3>
新值当中的最后一个斜线 "/" 代表收集到的内容,如果需要写入一个真实的斜线,比如A 标签的结束标志 "<a />",则需要使用转义字符 "\/" 。
方括号"[]" 中的 "N" 代表收集序号,我们恰好利用这个序号来作为锚链接的值。
属性 show="1" 告诉MTCollect ,不仅显示收集并替换的新值,也显示作为收集对象的原始内容。
此插件所有标签的使用方法,请参考:
http://www.staggernation.com/mtplugins/Collect/
使用
在编写新的Blog 时,使用H3 或h3 作为文章的段落标题,上述代码将会自动识别,并生成目录索引,生成的目录索引自动编号,并可以链接到对应文章标题处。具体实例可参看本文右上部的目录。


