模版卷标

### Movable Type 使用手册：模版卷标

« 目录

- 模版卷标

- 网志数据
- 文章项目列示/汇整页面
- 评论
- 预览评论
- 汇整模版及汇整总索引
- 与分类相关的卷标
- 月历显示卷标
- 引用功能卷标
- 搜寻结果卷标
- 其它卷标
- 全域卷标属性
- 日期卷标格式

# 模版卷标

Movable Type 的模版是把一些特殊的卷标嵌入标准的纯文字片段（在这种情况下也有可能是 HTML ）。某些卷标是所谓的『容器』卷标，里面盛装著可以称之为子模版的东西，实际上就是在两个 MT 卷标间夹著其它的文字和 MT 卷标。基本上你可以把容器卷标想成是一种循环或者是一种条件区块。

其它非容器卷标其实就祇是变数卷标：她们是动态信息的路霸，先占住那个位置等著真正的数据出现。

所有的 Movable Type 卷标都被小于符号和大于符号给包起来，就跟 HTML 卷标一样。你可以选择性地在这些符号内再插入一个 `$` 符号，就像这样：

    <$MTEntryBody$>

因此你可以很快地区别某个卷标到底是 HTML 卷标还是 Movable Type 卷标。

Movable Type 卷标会用属性来修改她们的作用。卷标属性就跟 HTML 卷标属性很像：她们是一连串的 `名称="值"` 配对，彼此之间再以空白隔开。例如说：

    <MTEntries author="Foo" category="Bar">

（请查阅 `MTEntries` 文件来看看这样到底会做些甚么事。）

属性的值一定要用引号包起来，否则会没办法被正确解读。如果你要在某个插入 `$` 字符的卷标中加入属性，那么你也应该把属性放在两个 `$` 之间。例如：

    <$MTEntryDate format="%B %e, %Y"$>

有一些卷标属性是全域性的，因此可以套用在所有的 Movable Type 变数代换卷标上。全域属性会在后面的全域卷标属性小节讨论到。至于其它的属性则具有卷标专一性，祇能套用在特定的卷标上；这些属性将会在后面随著那些卷标一起列出。

还有一些 Movable Type 卷标是对内容具有敏感性的。例如说，祇有在这样的文章项目里使用 `MTComments` 卷标才有意义：跟`单篇`文章汇整并用的汇整模版或者是`评论跳出`模版。

## 网志数据

- MTBlogs
  这是一个会列出系统上所有网志的容器卷标，会囊括所有你（也就是可以编辑模版、重建档案的人）可以存取的、以及所不可以存取的网志。你可以在这个容器卷标里使用任何的 `<$MTBlog*$>` 卷标。

- MTBlogID
  你的网志的数字型 ID 。

- MTBlogName
  你的网志名称，也就是会显示在网志组态画面上的那一个。

- MTBlogDescription
  你的网志描述，也就是会显示在网志组态画面上的那一个。

- MTBlogURL
  你的网志的绝对网址，也就是会显示在网志组态画面上的那一个。

- MTBlogArchiveURL
  你的网志的`汇整网址`，也就是会显示在网志组态画面上的那一个。

- MTBlogRelativeURL
  你的网志的相对网址，就跟从网志组态画面上站台网址所取得的一样。这对于建立临时站台来说非常好用，因为你并不需要把任何网址写死在你的模版中。

- MTBlogSitePath
  你的网志的本机站台路径，也就是会显示在网志组态画面上的那一个。

- MTBlogHost
  你的网志绝对网址的主机名称部分。举例来说，如果你的`站台网址`（在网志组态画面里的那一个）是 http://www.your-site.com/blog/ ，那么主机名称部分就会是 `www.your-site.com` 。

  在预设的情况下，如果你的网志网址指定了连接埠号码的话，这个连接埠号码也会成为此卷标值的一部份。你可以把这个卷标的 `exclude_port` 属性设为 `1` 以移除此数值。

- MTBlogTimezone
  你为网志所选择的时区，会被表示成从 UTC `+|-hh:mm` 的格式。例如说，领先 UTC `4` 小时的时区，就会被显示成 `+04:00` 。

- MTBlogEntryCount
  网志的文章项目数量。

- MTBlogCommentCount
  网志的评论数量。

- MTBlogCCLicenseURL
  对应到你所选择的创意公用授权条款信息的网址。

- MTCCLicenseRDF
  这会产生一份利于程序阅读的 RDF ，内容就是你所选择的创意公用授权条款。

  这个卷标的作用会依情境而异：如果你把它用于文章情境的话，这份 RDF 就会包含跟这篇文章有关的额外信息；否则它就祇会包含整体性的网志信息。

- MTBlogIfCCLicense
  这个容器卷标里的部分，祇有当你在网志组态中选择了创意公用授权条款后，才会被显示出来。

## 文章项目列示/汇整页面

- MTEntries
  这个容器卷标会建立起一个情境，使得其内的所有卷标都会去参照网志上的文章项目清单。实际的文章清单可拿选用的属性来加以配置；预设值是显示最新 `N` 天的文章项目，这里的 `N` 就是你在这个网志的组态中所设定的天数。当你要改变这个作用的时候，你可以加上下列的属性：
  - lastn=``N''
    显示这份网志上最新的 `N` 篇文章项目；这里的 `N` 是某个大于 0 的数字。

  - offset=``M''
    当这个属性跟 `lastn` （如前述）一起用的时候，就先从头数最新的 `M` 篇文章项目，然后才显示接在之后的 `N` 篇文章。举个例子来说，如果你用了下列的卷标：

        <MTEntries lastn="5" offset="5">
        ...
        </MTEntries>

    那么就会显示第 6 到第 10 篇文章项目。

    注意：祇有跟 `lastn` 一起用的时候才有效。

  - category=``类别名称''
    显示在`类别名称`这个类别中的所有文章。请注意这很有可能会是一长串文章，所以你应该会想要再加上 `lastn` 来限定显示文章的篇数。

    如果你想要从多个类别里把文章项目抓出来，或者是祇限定那些被指定到多个类别的文章时， `类别名称` 也可以包含 `AND` 和 `OR` 这两个布林逻辑算符。但是请注意，你祇能用其中的一个；也就是说，你没办法用 `Foo AND Bar OR Baz` -- 这是行不通的！你祇能用 `Foo AND Bar AND ...` 或者 `Foo OR Bar OR ...` 。

    再举一个例子说明，如果你想要列出所有同时被指定到 `Foo` 和 `Bar` 这两个类别的文章项目，你可以用：

        <MTEntries category="Foo AND Bar">
        ...
        </MTEntries>

  - author=``作者姓名''
    依照作者的`作者姓名`显示所有的文章。请注意这很有可能会是一长串文章，所以你应该会想要再加上 `lastn` 来限定显示文章的篇数。

  - days=``N''
    显示所有比 `N` 天年轻的文章。

  - recently_commented_on=``N''
    显示最新 `N` 篇有人发表评论的文章项目。每一则文章项目都祇会出现一次而已。所以如果文章甲有一篇评论，然后文章乙有一篇评论，接著又有人对文章甲发表评论，结果最后祇会显示两则文章项目：文章甲，然后显示的是文章乙。

  - sort_order=``ascend|descend''
    指定目前使用的 `<MTEntries>` 卷标所要采用的排序方法。这里的设定将会覆写掉你在网志组态的文章项目排序的全域设定。有效的值分别是 `ascend` 和 `descend` 。

    在这个情境下， `ascend` 和 `descend` 并不祇是依时间先后排序；事实上这个属性还可以跟稍后会提到的 `sort_by` 一起用来排序。举例来说，你可以把文章项目标题排成从 A 到 Z (`ascend`) 或者是从 Z 到 A (`descend`) 。

    预设值是 `descend` 。

  - sort_by=``字段名称''
    用写作日期以外的字段来排序文章项目。有效的`字段名称`值包含有 `title` 、 `status` 、 `modified_on` 、 `author_id` 或 `excerpt` 。

    这个属性最常见的用法是拿来把文章项目按照字母顺序排列，而不是照他们的时间先后。举例来说，假设你拿 Movable Type 来显示某个字典站台，所以你会想拿字母来聚集部分的文章项目，所以你就建立 26 个不同的类别，也就是从 A 到 Z 。当你要显示站台上所有的文章项目，而又想以字母来分类，以字母顺序来排序（在此假设你拿字或词来当作每一则文章项目的标题）；你可以这么做：

        <MTCategories>
        <$MTCategoryLabel$><br />
        <MTEntries sort_by="title" sort_order="descend">
        <a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a><br />
        </MTEntries><br />
        </MTCategories>

  请注意：你可以把 `lastn` 、 `category` 和 `author` 一起混用来筛选文章项目列示（其实还有 `days` 这个被此卷标自己用掉的属性；然而祇要你用了其它属性，那么这个属性就会被覆写掉）。举例来说，你可以把 `lastn` 和 `category` 一起用在 `MTEntries` 里，其结果就如你所预期的一般：显示该类别理最新得 N 则文章项目。如果你想要再用作者姓名加以筛选，你也可以把 `lastn` 、 `category` 和 `author` 三个都用上：

      <MTEntries category="Fun" author="Me" lastn="10">
      ...
      </MTEntries>

  这样就会显示 `Fun` 这个分类中，作者是 `Me` 的最新 10 则文章项目。

- MTEntryTitle
  文章项目的标题。

- MTEntryStatus
  这则文章项目的出版状态（可能是`草稿`或者是`定稿`）。在大多数的情况下，这个卷标其实没有甚么用。因为在你的网志上，祇有状态为`定稿`的文章才会被显示出来。不过在汇出机制里，或许你会用到这个卷标。

- MTEntryExcerpt
  这则文章项目的文章。如果你没有提供文摘的话，系统就会自动拿文章项目的前 20 个字，然后再加上删节号（ `...` ）来当作文摘。

  如果你提供了文摘的话，请注意所有的换列或换段都不会被转换，除非你在这个卷标里用了 `convert_breaks` 属性：

      有断行的文摘：
      <$MTEntryExcerpt convert_breaks="1"$>

- MTEntryBody
  文章项目的主要文字部分。

  如果你在这则文章项目中核选了`转换换列`而自动转换换列和换段，那么段落 -- 用两个换列所分隔出来的文字区块 -- 就会被包在 <p> 和 </p> 卷标里，而所有单一的换列都会维持著，并且插入一个 <br /> 卷标。

  请注意，祇要你在这个卷标中加上了 `convert_breaks` 属性，就会覆写掉针对该文章项目的`文字格式`设定。所以假设你在文章项目中开启了这项设定，却想在特殊的情况下把它关闭，你可以这样做：

      <$MTEntryBody convert_breaks="0"$>

  同时也请注意，如果你祇想显示文章本体的前 N 个字，那么就可以用 words 属性。再举例来说，下列的例子就祇会显示文章本体的前 5 个字。

      <$MTEntryBody words="5"$>

  当寻找前 N 个字的时候，首先会从文章本体移去 HTML ，然后就祇会剩下字及字间空白了。

- MTEntryMore
  文章项目的延伸（『更多...』）文字部分。

  如果你在这则文章项目中核选了`转换换列`而自动转换换列和换段，那么段落 -- 用两个换列所分隔出来的文字区块 -- 就会被包在 <p> 和 </p> 卷标里，而所有单一的换列都会维持著，并且插入一个 <br /> 卷标。

  请注意，祇要你在这个卷标中加上了 `convert_breaks` 属性，就会覆写掉针对该文章项目的`文字格式`设定。所以假设你在文章项目中开启了这项设定，却想在特殊的情况下把它关闭，你可以这样做：

      <$MTEntryMore convert_breaks="0"$>

- MTEntryLink
  指到包含此文章项目的汇整页面绝对网址；如果你选择了多重汇整类别，那么这里的汇整网址就会按照你所选定的`偏好汇整类别`而定。这也是预设的动作，你可以用 `archive_type` 属性来加以覆写成你想要连结的汇整类别。

  举例来说，假设你已经选择了要用`单篇`汇整来当作`偏好汇整类别`，那么接下来这个卷标：

      <$MTEntryLink$>

  就会产生一个通往该文章项目所属的单篇汇整页面网址，文章的档名将会是该则文章项目的 ID ，不满六位数字的部分则补上零，最后再接上你的网志的`汇整档案扩展名`（像是 `html`）。

  如果你在网志里同时也启用了`分类`汇整，那么你也许会想改连到该则文章项目所属的分类汇整页面；这个时候你就可以用这个卷标：

      <$MTEntryLink archive_type="Category"$>

  这个卷标会被取代成一个到该文章项目的类别汇整页面的链接。

  如果你想要真正的永久链接 -- 也就是某一个永远连到特定文章项目的链接，即使是跟许多其它文章项目一起被汇编到同一个页面亦然 -- 这时你应该用 `<$MTEntryPermalink$>` 卷标。

- MTEntryPermalink
  一个指向包含该文章项目汇整页面的绝对网址，后面并以定位锚 (`#`) 来（藉由 ID ）指向该则文章项目。这跟 `<$MTEntryLink$>` 很像，但聪明得多，因为他在单篇汇整以外的汇整中都会包含这个锚（在单篇汇整中如果还加上这个定位锚，就会显得相当累赘）。

  就跟 `<$MTEntryLink$>` 一样，这个卷标也有选用的 `archive_type` 属性来指定所要连结的汇整类别。

- MTEntryKeywords
  新增/编辑文章项目画面中的关键词字段的值。

- MTEntryAuthor
  该篇文章项目的作者名字。

- MTEntryAuthorNickname
  该篇文章项目的作者昵称。

- MTEntryAuthorEmail
  该篇文章项目的作者E-mail 地址。

  如果你加上了 `spam_protect` 属性，那么E-mail 地址就会被加以修改，以免某些垃圾信机器人蒐集到你的E-mail 地址；然而在这种情况下，网页浏览器却仍旧能够显示出正确的E-mail 地址。举例来说，如果有个E-mail 地址是 `foo@bar.com` ，然后你用了

      <$MTEntryAuthorEmail spam_protect="1"$>

  那么这个E-mail 地址就会被显示成 `foo&#64;bar&#46;com` 。

- MTEntryAuthorURL
  这则文章项目作者的网站网址。

- MTEntryAuthorLink
  加上链接的作者名字。加上链接的规则是这样的：如果作者有输入网页网址，那么这里的作者名字就会连到那个网址；如果作者祇有输入E-mail 地址而没有输入网址的话，这里的作者名字就会连到他的E-mail 地址；如果E-mail 地址和网页网址都没有填写的话，这里就祇会显示出作者名字，而不提供任何链接。

  这个规则可以用 show_email 和 show_url 这两个卷标属性来加以覆写。举例来说，如过你用了

      <$MTEntryAuthorLink show_email="0"$>

  那么作者的E-mail 地址就永远不会被显示出来；于是整个规则就会变成：如果作者有输入网页网址，那么作者名字就会连到那个网址；如果作者没有填写网址，那么这里就祇会显示出作者名字，而不提供任何链接。

  如果你加上了 `spam_protect` 属性，而又显示了电子邮件链接的话，这里的E-mail 地址也同样地会被加以修改，以免被某些垃圾信机器人蒐集到。然后在这种状况下，网页浏览器却还是可以显示出正确的E-mail 地址。举例来说，如果有个E-mail 地址是 `foo@bar.com` ，然后你用了

      <$MTEntryAuthorLink spam_protect="1"$>

  那么这个E-mail 地址就会被显示成 `foo&#64;bar&#46;com` 。

- MTEntryDate
  这则文章项目的日期。就跟所有的日期卷标一样，这个卷标也有著选用的 `format` 属性和 `language` 属性。关于这些属性的详细信息，请见日期卷标格式小节。

- MTEntryModifiedDate
  这则文章项目的修改日期。就跟所有的日期卷标一样，这个卷标也有著选用的 `format` 属性和 `language` 属性。关于这些属性的详细信息，请见日期卷标格式小节。

- MTEntryCommentCount
  这则文章项目的评论数量。

- MTEntryTrackbackCount
  这则文章项目收到的引用通告数量。

- MTEntryTrackbackData
  给小书签用的引用数据 RDF 倾印。这些倾印将不会被浏览器显示出来。

- MTEntryTrackbackLink
  如果这则文章项目的允许通告被打开了，那么这个引用通告网址就可以被用来送出通告给这则文章项目。

- MTEntryTrackbackID
  如果某篇文章的允许通告被打开了的话，这个卷标就会对应到这篇文章的引用对象的数字型 ID 。你也可以任意地用这个卷标来建立替换的引用通告网址。

- MTEntryIfExtended
  这是一个容器卷标：被装在其中的内容祇有在当文章项目的延伸文字区块有被填写的时候，才会显示出来。如果你希望在索引模版中，祇有当文章项目还有『更多』文字的时候才显示出『尚有内容...』的链接时，就会非常有用。你可以用像是这样的东西：

      <MTEntryIfExtended>
      <a href="<$MTEntryLink$>#<$MTEntryID$>">尚有内容...</a>
      </MTEntryIfExtended>

- MTEntryIfAllowComments
  这是一个容器卷标：被装在其中的内容祇有当该则文章项目允许发表评论（也就是如果该则文章项目的`编辑文章项目`画面里的`允许评论`被设定成`开启`或`关闭`）的时候，才会被显示出来。你可以用这个卷标来让某个连到这则文章项目评论的链接，（当然）祇有在允许发表评论的时候才显示出来。

  使用这个卷标的范例请见后面文章项目小节的评论区段。

- MTEntryIfCommentsOpen
  这是一个容器卷标：被装在其中的内容祇有当该则文章项目的允许回响被设定成`开启`时才会被显示出来。举例来说，你就可以用这个卷标来适时地显示出『发表回响』表单。

- MTEntryIfAllowPings
  这是一个容器卷标：被装在其中的内容祇有当该则文章项目允许使用引用通告（也就是如果该则文章项目的`编辑文章项目`画面里的`允许通告`设定被开启）的时候，才会被显示出来。

  使用这个卷标的范例请见引用功能文件。

- MTEntryID
  该文章项目的数字型 ID 。拿来做为永久链接的定位锚时非常好用。在预设的情况下，这个文章项目 ID 并不会补满零；也就是说，对于一个 ID `8` 的文章项目来说，这个卷标祇会产生 `8` 这个值。有的时候你会比较希望你的 ID 被补满零；在这种情况下，你可以在 `MTEntryID` 卷标里使用 pad属性：

      <$MTEntryID pad="1"$>

  这会用零把文章项目 ID 补满成六 (6) 位数字，像是 `000008` 。

- MTEntryCategory
  这个文章项目被指定的主要类别名称。

- MTEntryCategories
  会显示该文章项目所被指定的所有类别 -- 包括主要类别 -- 清单的容器卷标。在这个容器理你可以用任何的 `<$MTCategory*$>` 卷标（说明文件）来显示关于每一个类别的信息。

  你也可以在这个卷标里用 glue 属性来指定类别间的分隔字符串。例如当你想要用逗号来隔开类别名称时就会很好用。请注意 glue 属性的值不可以是单引号或双引号。

  举例来说：

      这篇文章被归类到下列的类别中：
      <MTEntryCategories glue=", ">
      <a href="<$MTCategoryArchiveLink$>"><$MTCategoryLabel$></a>
      </MTEntryCategories>

- MTEntryFlag
  该文章项目的某一个布林旗标的值。目前可用的两个旗标分别是 `convert_breaks` 和 `allow_comments` 。如果旗标的值为真，那么就会显示 `1` 这个值；否则就会显示 `0` 这个值。至于旗标的名称则是以 `flag` 属性来递送。例如：

      <$MTEntryFlag flag="allow_comments"$>

  这个卷标用于以汇出机制来汇出文章项目数据的情况里。你应该不需要在你自己的模版里用到。

- MTEntryPrevious
  这个容器卷标会建立起一个情境，使得其内的所有卷标都会去参照前一则文章项目。举例来说，在这种 `MTEntryPrevious` 情境中，某个 <$MTEntryTitle$> 卷标就会变成前一则文章项目的标题。在你（用一个 </MTEntryPrevious> 卷标）结束这个情境后，所有的卷标又会恢复成参照当前的文章项目。

  使用这卷标的范例请见后面的 `MTEntryNext` 文件。

- MTEntryNext
  这个容器卷标会建立起一个情境，使得其内的所有卷标都会去参照下一则文章项目。举例来说，在这种 `MTEntryNext` 情境中，某个 <$MTEntryTitle$> 卷标就会变成下一则文章项目的标题。在你（用一个 </MTEntryNext> 卷标）结束这个情境后，所有的卷标又会恢复成参照当前的文章项目。

  接下来这个范例是个导览列，让你连结到前一则和下一则文章项目，还有一个链接连回你的网志主索引。

      <MTEntryPrevious>
      <a href="<$MTEntryLink$>">&lt;&lt; <$MTEntryTitle$></a> |
      </MTEntryPrevious>
      <a href="<$MTBlogURL$>">Main</a>
      <MTEntryNext>
      | <a href="<$MTEntryLink$>"><$MTEntryTitle$> &gt;&gt;</a>
      </MTEntryNext>

- MTDateHeader
  这是一个容器卷标：在这个容器里的内容祇有当该文章项目会在文章项目清单上产生新的一天的时候才会显示出来。像这种卷标祇有在 `MTEntries` 容器里的时候才会变得非常有用。举例来说：

      <MTEntries>
        <MTDateHeader>
          <$MTEntryDate format="%B %e, %Y"$>
        </MTDateHeader>
        Title: <$MTEntryTitle$>
      </MTEntries>

- MTDateFooter
  这是一个容器卷标：在这个容器里的内容祇有当该文章项目跟下一则文章项目的发表日期不同时才会显示出来。这个卷标可以跟 `MTDateHeader` 卷标来把你特定日期里的所有文章排进某种结构（例如说 `div` ）里。这个卷标就跟 `MTDateHeader` 一样，祇有在 `MTEntries` 容器里的时候才会非常有用。举例来说：

      <MTEntries>
        <MTDateHeader>
          <div class="day">
          <$MTEntryDate format="%B %e, %Y"$>
        </MTDateHeader>
        Title: <$MTEntryTitle$>
        <MTDateFooter>
          </div>
        </MTDateFooter>
      </MTEntries>

- MTEntriesHeader
  这是一个容器卷标：在这个容器里的内容祇有当该文章项目是整个 `<MTEntries>` 容器里的第一篇的时候才会显示出来。

- MTEntriesFooter
  这是一个容器卷标：在这个容器里的内容祇有当该文章项目是整个 `<MTEntries>` 容器里的最后一篇的时候才会显示出来。举例来说，这可以用在你的索引页面上，连结到前一则文章项目的汇整页面。例如当你在使用逐日汇整时：

      <MTEntries days="1">
      ...
      <MTEntriesFooter>
      <MTEntryPrevious>
      <a href="<$MTEntryLink archive_type="Daily"$>">昨日汇整： <$MTEntryDate format="%A, %B %d, %Y"$></a>
      </MTEntryPrevious>
      </MTEntriesFooter>
      </MTEntries>

## 回响

- MTComments
  一个会列出特定文章项目或特定网志里（这得依 `lastn` 属性使用的情境而定，详见后述）所有回响清单的容器卷标。

  如果你在这个卷标里加上了 `lastn="N"` 属性，这里的 `N` 是你想要显示的回响数量，那么就会显示当前文章项目 -- 如果用在文章项目情境中 -- 或网志 -- 如果用在其它地方 -- 里最新的 `N` 篇回响。

  如果你使用这个卷标时没有加上任何属性，那么 `<MTComments>` 就会列出所有当前文章项目的回响。这表示当你使用这个卷标而不加上任何属性的时候，一定是用于文章项目情境：在`单篇汇整模版`、`回响预览模版`、`回响清单模版`或`回响出错模版`里，放进 `<MTEntries>` 中。

  在预设的情况下，这些回响会按照你在网志组态里指定的回响显示顺序来排序并储存。不过你还是可以在这个卷标里用 `sort_order` 属性来覆写这个设定；这个属性的值可以是 ascend 或是 descend 。

  举例来说，要显示你的网志上最近被发表的 6 篇回响，丝毫不考虑他们各自所属的文章项目，而以时间顺序倒序排列（把最新的放在最前面）的话，你可以把下列的卷标放到你的主索引模版里：

      <MTComments lastn="6" sort_order="descend">
      <p><$MTCommentAuthor$> 说道：<br />
      <$MTCommentBody$></p>
      </MTComments>

  对于回响清单里的每一篇来说，在容器内的文字及卷标都会被显示出来。下列每一个卷标都用于显示某篇回响的特定变数区块。

- MTCommentID
  这篇回响的数字型 ID 。拿来做为永久链接的定位锚时非常好用。在预设的情况下，这个文章项目 ID 并不会补满零；也就是说，对于一个 ID `8` 的文章项目来说，这个卷标祇会产生 `8` 这个值。有的时候你会比较希望你的 ID 被补满零；在这种情况下，你可以在这个卷标里使用 pad 属性：

      <$MTCommentID pad="1"$>

  这会用零把回响 ID 补满成六 (6) 位数字，像是 `000008` 。

- MTCommentEntryID
  这篇回响所对应到的文章项目数字型 ID 。当你在使用 `<MTComments lastn="N">` 的时候会相当有用，因为它会让你连到跟这篇回响所对应到的特定文章项目。

  这个卷标也有一个选用的 `pad` 属性，其功能就跟前述的 `<$MTCommentID$>` 卷标中的 `pad` 属性一模一样。

- MTCommentIP
  发表回响的作者的来源 IP 地址。

- MTCommentAuthor
  这篇回响的作者名字。

- MTCommentAuthorLink
  加上链接的作者名字。加上链接的规则是这样的：如果作者有输入网页网址，那么这里的作者名字就会连到那个网址；如果作者祇有输入E-mail 地址而没有输入网址的话，这里的作者名字就会连到他的E-mail 地址；如果E-mail 地址和网页网址都没有填写的话，这里就祇会显示出作者名字，而不提供任何链接。

  这个规则可以用 show_email 和 show_url 这两个卷标属性来加以覆写。举例来说，如过你用了

      <$MTCommentAuthorLink show_email="0"$>

  那么作者的E-mail 地址就永远不会被显示出来；于是整个规则就会变成：如果作者有输入网页网址，那么作者名字就会连到那个网址；如果作者没有填写网址，那么这里就祇会显示出作者名字，而不提供任何链接。

  如果你希望强迫发表回响的读者一定要留下E-mail 地址 -- 这意味著你不能够在网志组态里核选允许匿名回响核选框 -- 而又不想在网志上显示她们的E-mail 地址时会相当有用。

  如果你加上了 `spam_protect` 属性，而又显示了电子邮件链接的话，这里的E-mail 地址也同样地会被加以修改，以免被某些垃圾信机器人蒐集到。然后在这种状况下，网页浏览器却还是可以显示出正确的E-mail 地址。举例来说，如果有个E-mail 地址是 `foo@bar.com` ，然后你用了

      <$MTCommentAuthorLink spam_protect="1"$>

  那么这个E-mail 地址就会被显示成 `foo&#64;bar&#46;com` 。

- MTCommentEmail
  这篇回响的作者E-mail 地址。

  如果你加上了 `spam_protect` 属性，那么E-mail 地址就会被加以修改，以免某些垃圾信机器人蒐集到你的E-mail 地址；然而在这种情况下，网页浏览器却仍旧能够显示出正确的E-mail 地址。举例来说，如果有个E-mail 地址是 `foo@bar.com` ，然后你用了

      <$MTCommentEmail spam_protect="1"$>

  那么这个E-mail 地址就会被显示成 `foo&#64;bar&#46;com`.

- MTCommentURL
  这篇回响的作者网站网址。

- MTCommentBody
  回响的本体。如果你在网志组态里选择了`转换换列和换段`，那么段落 -- 用两个换列所分隔出来的文字区块 -- 就会被包在 <p> 和 </p> 卷标里，而所有单一的换列都会维持著，并且插入一个 &lt;br /&gt; 卷标。

  请注意，祇要你在这个卷标中加上了 `convert_breaks` 属性，就会覆写掉针对全域的`转换换列和换段`设定。所以假设你在全域设定中开启了这项设定，却想在特殊的情况下把它关闭，你可以这样做：

      <$MTCommentBody convert_breaks="0"$>

- MTCommentDate
  这篇回响发表在你的站台上的日期。就跟所有的日期卷标一样，这个卷标也有著选用的 `format` 属性和 `language` 属性。关于这些属性的详细信息，请见日期卷标格式小节。

- MTCommentOrderNumber
  一连串回响中，特定回响的序数，从 `1` 开始。请注意这里的顺序是按照排序（递增或递减）而定的。

- MTCommentEntry
  这个容器卷标会建立起一个情境，使得其内的所有卷标都会去参照回响所对应到的文章项目，所以你可以用 `<$MTEntry*$>` 卷标来参照该则文章项目。举例来说，你就可以这么用：

      <MTComments lastn="5" sort_order="descend">
      <MTCommentEntry>
      这篇回响是针对 <$MTEntryTitle$> 这篇文章所发表的。
      </MTCommentEntry>
      </MTComments>

## 预览回响

当你做出`回响预览模版`的时候，你应该要采用下列这些卷标。这些卷标全部都跟前述的`回响`小节里名称相近的卷标作用相仿；唯一的不同是这些卷标祇能用于预览之用，而不是用在 `<MTComments>` 区块中。

- MTCommentPreviewAuthor
- MTCommentPreviewIP
- MTCommentPreviewAuthorLink
- MTCommentPreviewEmail
- MTCommentPreviewURL
- MTCommentPreviewBody
- MTCommentPreviewDate
  这些卷标全部都跟前述的`回响`小节里名称相近的卷标意思相同。

- MTCommentPreviewIsStatic
  这是一个神秘的隐藏卷标，你应该把这个卷标放进你的`回响预览`模版和`回响出错`模版里，好让系统得知发表完回响后要把读者转送到哪里。使用这个卷标时，把下面这个隐藏输入字段贴进你的`回响预览`模版和`回响`出错模版里：

      <input type="hidden" name="static" value="<$MTCommentPreviewIsStatic$>">

- MTCommentPreviewState
  注意：这个卷标到 Movable Type 1.4 版为止都不该使用。建立回响预览的建议方法是使用一个可编辑的表单来让读者得以编辑被预览的回响；在这种情况下，你不应该使用 `<$MTCommentPreviewState$>` 卷标。

  这是一个你需要在回响预览页面（`回响预览模版`）里使用的神奇卷标。这个卷标会被取代成一切要发表回响所需的回响数据，以及回响是从嵌入式回响或弹出式回响所发表的消息。

## 汇整模版及汇整总索引

下列的模版卷标和变数适用于你的汇整页面及汇整总索引。

- MTArchiveList
  这是一个表示你所有汇整页面清单的容器卷标。对每一个汇整页面来说，你都可以用任何后述的卷标变数；除此之外，你也还可以用 `MTEntries` 卷标来显示该页面上每一则文章项目的信息。举例来说：

      <MTArchiveList>
        <a href="<$MTArchiveLink$>"><$MTArchiveDate$></a><br />
        <MTEntries>
          [<$MTEntryTitle$>]
        </MTEntries>
        <br /><br />
      </MTArchiveList>

  这会显示一个连往汇整页面的链接，后面再跟著那一个页面上每一则文章项目的标题清单。

  这个卷标有两个属性可用： `archive_type` 会指定汇整清单的类别，而 `lastn` 则会限制列出的汇整数量。

  `archive_type` 这个属性是选用的；如果没有这个属性的时候，就会使用你的偏好汇整类别，或者你的汇整类别。不过这个属性在你选用了多于一种网志汇整类别的，而你又想要用不是你的偏好汇整类别列出的时候会很好用。举例来说，如果你打算要保持`单篇`汇整和`逐日`汇整，而你的偏好汇整类别是`单篇`汇整时，你可以用这个卷标来列出你的`逐日`汇整：

      <MTArchiveList archive_type="Daily">
      ...
      </MTArchiveList>

  `lastn` 属性可以用来限制列出的汇整数量；举例来说，如果你的网志上有多于 10 个月份量的汇整，但是你祇想要列出最近的 5 个时，就用这个卷标：

      <MTArchiveList archive_type="Monthly" lastn="5">
      ...
      </MTArchiveList>

- MTArchiveLink
  连到这个汇整页面的绝对网址。

  根据预设值，这个链接会连到目前正在建立的汇整类别的汇整页面；举例来说，建立一连串的`逐月`汇整时， `<$MTArchiveLink>` 会产生连到特定的`逐月`汇整的链接。你可以指定 `archive_type` 属性来覆写这个作用；这个属性可以设成下列几个值之一： `Individual` 、 `Daily` 、 `Weekly` 、 `Monthly` 或 `Category` 。

- MTArchiveTitle
  汇整页面的『标题』。这个值会按照汇整的类别而决定：
  - Category
    类别名称。

  - Daily
    用 `Month Day, YYYY` 格式表示的日期。

  - Weekly
    用 `Month Day, YYYY - Month Day, YYYY` 格式表示的该周日期范围。

  - Monthly
    用 `Month YYYY` 格式表示的月份。

  - Individual
    文章项目的标题。

  把 `MTArchiveTitle` 跟 `MTArchiveLink` 放在一起用可以说是建立汇整总索引最简单的方法了。因为 `MTArchiveTitle` 的值会随著任何你选择的类别而改写。举例来说：

      <MTArchiveList>
      <a href="<$MTArchiveLink$>"><$MTArchiveTitle$></a><br />
      </MTArchiveList>

  不论你选择了哪一种汇整类别，都能够显示出有用的汇整页面清单。

- MTArchiveCount
  在特定的汇整集合中的文章项目数量；举例来说，如果你正在使用逐月汇整，这就会反映出这个月的文章项目数量。这个卷标被放进 `<MTArchiveList>` 容器时会很有用，就像这样：

      <MTArchiveList>
      <a href="<$MTArchiveLink$>"><$MTArchiveTitle$> (<$MTArchiveCount$>)</a><br />
      </MTArchiveList>

- MTArchiveDate
  汇整周期的开始日期。这个卷标祇有当你在列出`逐日`汇整、`逐周`汇整或者是`逐月`汇整时才有意义。这也是标准的日期卷标，所以请参照后面会提到的日期卷标格式来自订日期格式。

  你可以在某个 `MTArchiveList` 容器里使用这个卷标，也可以用于某个和按时汇整类别相关联的汇整模版里、在 `MTEntries` 卷标以外的地方。你可以用来显示特定汇整页面的日期档头 -- 例如月份和年份：

      <$MTBlogName$> Archives: <$MTArchiveDate format="%B %Y"$>
      <MTEntries>
      ...
      </MTEntries>

- MTArchiveDateEnd
  汇整周期的结束日期。这个卷标祇有当你在列出`逐日`汇整、`逐周`汇整或者是`逐月`汇整时才有意义；除此以外的情况都会失效。请参照后面会提到的日期卷标格式来自订日期格式。

  你可以在 `<$MTArchiveDate>` 卷标所适用的相同情境中使用这个卷标。

- MTArchiveCategory
  这份汇整清单的名称。这个卷标祇有当你在列出`分类`汇整的时候才有意义。

  你可以在某个 `MTArchiveList` 容器中使用这个卷标，也可以用于某个和你的`分类`汇整相关联的汇整模版里、在 `MTEntries` 卷标以外的地方。你可以用来显示特定汇整页面的类别档头，像是：

      <$MTBlogName$> Archives: <$MTArchiveCategory$>
      <MTEntries>
      ...
      </MTEntries>

- MTArchivePrevious
  这个容器卷标会建立起一个情境，使得其内的所有卷标都会去参照前一个汇整。例如在 `MTArchivePrevious` 情境中， <$MTArchiveTitle$> 卷标就会去参照前一个汇整的标题。当你（用 </MTArchivePrevious> 卷标）结束这个情境后，所有的卷标又会回来参照现用的汇整。

  这个卷标可以用于你指定与`逐日`、`逐周`或`逐月`汇整相关联的汇整模版中；如果你想要在单篇文章汇整中也有相似的功能，请参考 `<MTEntryPrevious>` 卷标。

  在预设的情况下，『前一份』汇整是按照汇整类别而定的 -- 例如说，在`逐日`汇整里，『前一份』汇整指的是前一天的文章汇整。如果你想要覆写这样的作用 -- 像是你更想要连结到前一个月份的汇整 -- 时你就可以用 `archive_type` 属性（范例见后）。

  使用这个卷标的范例请见后面的 `<MTArchiveNext>` 文件。

- MTArchiveNext
  这个容器卷标会建立起一个情境，使得其内的所有卷标都会去参照下一个汇整。例如在 `MTArchiveNext` 情境中， <$MTArchiveTitle$> 卷标就会去参照下一个汇整的标题。当你（用 </MTArchiveNext> 卷标）结束这个情境后，所有的卷标又会回来参照现用的汇整。

  这个卷标可以用于你指定与`逐日`、`逐周`或`逐月`汇整相关联的汇整模版中；如果你想要在单篇文章汇整中也有相似的功能，请参考 `<MTEntryNext>` 卷标。

  在预设的情况下，『下一份』汇整是按照汇整类别而定的 -- 例如说，在`逐日`汇整里，『下一份』汇整指的是前一天的文章汇整。如果你想要覆写这样的作用 -- 像是你更想要连结到前一个月份的汇整 -- 时你就可以用 `archive_type` 属性。

  这个范例是一个导览列，提供连往前一份汇整和下一份汇整的链接，以及一个连回你的网志主索引的链接。

      <MTArchivePrevious>
      <a href="<$MTArchiveLink$>">&lt;&lt; <$MTArchiveTitle$></a> |
      </MTArchivePrevious>
      <a href="<$MTBlogURL$>">Main</a>
      <MTArchiveNext>
      | <a href="<$MTArchiveLink$>"><$MTArchiveTitle$> &gt;&gt;</a>
      </MTArchiveNext>

  接下来这个导览列的范例可以被用在`逐日`汇整里，用来连到前一个月份的汇整以及下一个月份的汇整。如果你在你所有的`逐日`汇整里都加上了月历，然后想要连到前一个月份和下一个月份的月历时，就会很有用。

      <MTArchivePrevious archive_type="Monthly">
      <a href="<$MTArchiveLink archive_type="Monthly"$>"><$MTArchiveDate format="%b"$></a>
      </MTArchivePrevious>
      <MTArchiveNext archive_type="Monthly">
      <a href="<$MTArchiveLink archive_type="Monthly"$>"><$MTArchiveDate format="%b"$></a>
      </MTArchiveNext>

## 与分类相关的卷标

接下来这些卷标可以用来显示网志上的类别清单，以及每一个类别的信息（ ID 、卷标等）。

- MTCategories
  这个容器卷标会建立起一个情境，使得其内的所有卷标都会去参照网志上的类别清单。对于每一个类别来说，你都可以使用任何下列的卷标变数；除此之外，你也可以用 `<MTEntries>` 卷标来显示这个类别中每一个文章项目的信息。例如：

      <MTCategories>
        <a href="<$MTCategoryArchiveLink$>"><$MTCategoryLabel$></a><br />
        <MTEntries>
        <$MTEntryTitle$>&nbsp;
        </MTEntries>
        <br /><br />
      </MTCategories>

  这会显示连往每一个类别的链接，然后后面再个别跟著该类别的文章标题清单。

  如果某个类别里没有包含任何文章项目的话，预设这个类别就不会包含在这个类别清单里。这个预设的作用之所以会是这样，主要因为它是从 `<MTArchiveList>` 的预设作用所复制而来的。请注意如果你包括了连到分类汇整页面的话，这样也是建议的作法；因为空的类别不会产生汇整页面。换而言之，连往空的类别的汇整链接会是一个坏掉的链接。

  如果你想要覆写这个预设的作用，你可以在这个卷标里加进 `show_empty` 属性。例如这些卷标：

      <MTCategories show_empty="1">
      <$MTCategoryLabel$>
      </MTCategories>

  就会显示所有的类别清单，即使是空的类别也会。

- MTCategoryID
  类别的数字型 ID 。

- MTCategoryLabel
  类别卷标。

- MTCategoryArchiveLink
  这是一个连到该分类的汇整页面的链接。这个卷标祇有在你启用了网志的`分类`汇整时才有效；否则你就会在重建页面的时候得到一个错误讯息。

- MTCategoryDescription
  该类别的描述。

- MTCategoryCount
  该类别中的文章项目数量。

- MTCategoryTrackbackLink
  如果该类别已经被设定成接受送进来的引用通告那么引用通告网址就可以用来发送通告给这个类别。这个卷标可以用在任何类别情境（分类汇整或者是在 `<MTCategories>` 里面）中，不然你也可以用 category 属性来指明引用通告网址所要对应到的类别。举例来说：

      <$MTCategoryTrackbackLink category="Foo Bar"$>

  祇要你指定了这个属性，就可以在任何你想要的地方使用这个卷标。

## 月历显示卷标

下列的卷标可以用来在你的文章项目里画出月历。事实上并没有任何限制说你一定得要用 HTML 的表格来画出月历；这些卷标完全是泛用型的，因此你可以利用她们来做出各种迥然不同样子的月历。

- MTCalendar
  这个容器卷标代表著一个月长度的月历，所有在 `<MTCalendar>` 卷标和 `</MTCalendar>` 卷标之间的组成组件都代表著月历里的一个『格子』（有可能是一个月里的某一天，或者是属于别的月份的空白格子）。

  这个卷标还可以加上选用的 `month` 属性，用来指定要显示哪一个月份和年份的月历。如果这个属性的值是 `this` 这个字符串，就会建立起近期情境；这表示说，你可以在汇整模版里用

      <MTCalendar month="this">
      ...
      </MTCalendar>

  来表示正被检视的汇整那个月份的月历。这个卷标在`单篇`汇整、`逐日`汇整、`逐周`汇整和`逐月`汇整里都可以用，但是你不能拿进`分类`汇整用。

  如果 `month` 属性的值被设定成 `last` 的话，就会建立出相对目前日期的前一个月份的月历。

  如果你想要建立特定月份的月历，你可以在 `month` 属性中用 `YYYYMM` 格式（例如： `200112` ）来指定确切的月份和年份。

  如果你没有加上 `month` 属性的话，就会显示当月的月历。

  如果你祇想要在月历里显示某个特定类别的文章，你可以指定 `category` 属性，并且指明该类别的名称。举例来说，下面这个卷标：

      <MTCalendar month="200201" category="Foo">
      ...
      </MTCalendar>

  就祇会显示 2002 年一月份所有 `Foo` 这个类别里的文章项目。

- MTCalendarDay
  用数字表示的日期（例如： `1` ）。你可以在 `<MTCalendarIfEntries>` 容器和 `<MTCalendarIfNoEntries>` 容器里用这个卷标。

- MTCalendarCellNumber
  月历里的『格子』号码；第一个格子位于最左上角的角落里，号码是 `1` ，然后依序增加，往水平方向在月历上横跨。

  这个卷标跟前述的 `<$MTCalendarDay$>` 不同，因为后者仅套用于非『空白』的格子（也就是代表著特定月份里某个日子的项目）。

- MTCalendarDate
  该月每一天的时间戳印；这个卷标接受标准的 `format` 属性。如果你祇想要显示数字型的日期，那么就祇需要用 `<$MTCalendarDay$>` 就可以了；祇有在你想要显示更多日期/时间信息的时候，才有必要使用这个卷标。

- MTCalendarWeekHeader
  这是一个容器卷标；在 `<MTCalendarWeekHeader>` 卷标和 `</MTCalendarWeekHeader>` 卷标间的组成元素都祇会在每一周的开始时被显示出来。

- MTCalendarWeekFooter
  这是一个容器卷标；在 `<MTCalendarWeekFooter>` 卷标和 `</MTCalendarWeekFooter>` 卷标间的组成元素都祇会在每一周的结束时被显示出来。

- MTCalendarIfBlank
  这是一个容器卷标；在 `<MTCalendarIfBlank>` 卷标和 `</MTCalendarIfBlank>` 卷标间的组成元素都祇会在该格子是一个『空』格子 -- 也就是不代表该月份任何一天的格子 -- 时被显示出来。

- MTCalendarIfEntries
  这是一个容器卷标；在 `<MTCalendarIfEntries>` 卷标和 `</MTCalendarIfEntries>` 卷标间的组成元素都祇会在该格子里的日期有任何文章项目时才显示出来。你还可以用 `<MTEntries>` 卷标来显示那一天里所有的文章项目。

  举例来说：

      <MTCalendarIfEntries>
          这一天里的文章：
          <MTEntries>
          <a href="<$MTEntryLink$>"><$MTEntryTitle$></a><br />
          </MTEntries>
      </MTCalendarIfEntries>

- MTCalendarIfNoEntries
  这是一个容器卷标；在 `<MTCalendarIfNoEntries>` 卷标和 `</MTCalendarIfNoEntries>` 卷标间的组成元素祇有在该格子里的日期没有任何文章项目的时候才显示出来。

- MTCalendarIfToday
  这是一个容器卷标；在 `<MTCalendarIfToday>` 卷标和 `</MTCalendarIfToday>` 卷标间的组成元素祇有在该格子里的日期就是目前的日期时才显示出来。

这里是一个标准的月历显示组成，会显示出目前的月份。

    <table border="0" cellspacing="4" cellpadding="0" summary="Monthly calendar">
    <caption><$MTDate format="%B %Y"$></caption>
    <tr>
    <th abbr="星期日" align="center">Sun</th>
    <th abbr="星期一" align="center">Mon</th>
    <th abbr="星期二" align="center">Tue</th>
    <th abbr="星期三" align="center">Wed</th>
    <th abbr="星期四" align="center">Thu</th>
    <th abbr="星期五" align="center">Fri</th>
    <th abbr="星期六" align="center">Sat</th>
    </tr>
    <MTCalendar>
    <MTCalendarWeekHeader><tr></MTCalendarWeekHeader>
    <td <MTCalendarIfToday>bgcolor="#EEEEEE"</MTCalendarIfToday> align="center">
    <MTCalendarIfEntries><MTEntries lastn="1"><a href="<$MTEntryLink$>"><$MTCalendarDay$>
    </a></MTEntries></MTCalendarIfEntries>
    <MTCalendarIfNoEntries><$MTCalendarDay$></MTCalendarIfNoEntries>
    <MTCalendarIfBlank>&nbsp;</MTCalendarIfBlank></td>
    <MTCalendarWeekFooter></tr></MTCalendarWeekFooter>
    </MTCalendar>
    </table>

请注意：计算出月历显示的代价相当高昂，所以如果你想要在网站上的每一页都摆上同样的月历，比较好的作法是在索引模版里建立一个月历，然后用服务器端的囊括功能或者是 PHP （或者是任何动态的网页服务器工具）来把这个档案囊括到你的每一页里。

## 引用功能卷标

有一些卷标是和引用功能系统有关的。

- MTPings
  这个容器卷标会列出特定文章项目、特定类别或者是你整个系统里所有的通告。

  如果你在文章项目情境里 -- 举例来说，像是在引用清单模版里 -- 使用这个卷标，那么它就会列出所有送到该文章项目的引用通告。

  如果是用在某个跟分类汇整相关联的模版中，那么这个卷标就会列出所有送到这个类别的引用通告。

  如果适用在任何其它的情境中，那么这个卷标就会列出所有（除非你在卷标里也用了 lastn 属性 -- 详见后述）送到你的系统的引用通告。

  除此之外，如果你³³³想指定列出某一个特定类别的通告的话，你也可以在这个卷标里用 category 属性来提供该类别的名称，像这样：

      <MTPings category="Foo">
      ...
      </MTPings>

  同时你也可以在这个卷标里面使用 sort_order 属性和 lastn 属性，他们作用的情况会跟在其它 Movable Type 卷标里的一样。 sort_order 属性的值可以是 `ascend` 或者是 `descend` ；而 lastn 属性的职责应该是正整数，表示要列出最近 N 个引用通告。

  举例来说，要在头版页列出在 `Foo Bar` 这个类别中最新的 15 个通告的话，你可以把下列这段加入你的主索引模版之中：

      <MTPings category="Foo Bar" lastn="15">
      <a href="<$MTPingURL$>"><$MTPingTitle$></a><br />
      </MTPings>

- MTPingID
  引用通告的数字型 ID 。

- MTPingTitle
  随著引用通告被送过来的标题。通常这也就是远程文章项目的标题。

- MTPingURL
  随著引用通告被送过来的网址。通常这也就是远程文章项目的网址。

- MTPingExcerpt
  随著引用通告被送过来的文摘。

- MTPingDate
  引用通告被送到你的站台的日期。就跟所有的日期卷标一样，在这个卷标里也能够选用 `format` 属性和 `language` 属性。更多信息请见日期卷标格式小节。

- MTPingBlogName
  发表远程文章项目的网志名称。

- MTPingIP
  送出该通告的主机 IP 地址。

- MTPingsSent
  这个容器卷标代表著从某个文章项目送出去的引用通告列示。这些是引用通告网址，而不是永久链接。

  举例来说：

      <MTPingsSent>
      网址： <$MTPingsSentURL$><br />
      </MTPingsSent>

- MTPingsSentURL
  通告所用的网址；这个卷标得放在 `<MTPingsSent>` 卷标里面使用。

## 搜寻结果卷标

下列这些卷标祇能用于你的搜寻模版里。

- MTSearchResults
  这个容器代表著所行搜寻结果的列示。在这个容器卷标内，你可以使用任何的 `<$MTEntry*$>` 卷标，因为搜寻结果所代表的项目会进入情境之中。你也可以用任何的 `<$MTBlog*$>` 卷标来存取特定文章项目结果被找到的网志数据。

  举例来说：

      <MTSearchResults>
      <MTBlogResultHeader>
      <h2><$MTBlogName$>内的结果</h2>
      </MTBlogResultHeader>
      <h3><a href="<$MTEntryLink$>#<$MTEntryID pad="1"$>"><$MTEntryTitle$></a></h3>
      <$MTEntryExcerpt$> <$MTEntryEditLink$><br />
      <div class="posted"><$MTEntryDate$> 时，被发表在 <$MTBlogName$></div>
      </div>
      </MTSearchResults>

- MTSearchResultCount
  在所有的网志内搜寻所找到的结果数量（换而言之，并不是各网志的结果计数）。

- MTNoSearchResults
  这个容器卷标里面的内容祇有当搜寻之后没有找到任何数据时才显示出来。

  举例来说：

      <MTNoSearchResults>
      <h2>已搜寻 "<$MTSearchString$>"</h2>
      <p>没有找到任何包含有 "<$MTSearchString$>" 的页面。</p>
      </MTNoSearchResults>

- MTNoSearch
  这个容器卷标里面的内容祇有当没有任何实际的搜寻动作采行的时候才显示出来。使用的时机是当某个读者直接在她的浏览器里连到你的 mt-search.cgi 页面时：

      http://YOURDOMAIN.COM/PATH-TO/mt-search.cgi

  或者是在新回响搜寻的情况下，有读者直接到

      http://YOURDOMAIN.COM/PATH-TO/mt-search.cgi?Type=newcomments&help=1

  正确使用这个卷标的方法可能是显示搜寻指引，或者是提供更进阶的搜寻表单。

  例如像这样：

      <MTNoSearch>
      <h2>指引</h2>
      <p>... 这里是一些搜寻指引 ...</p>
      </MTNoSearch>

- MTBlogResultHeader
  当显示标准的搜寻结果（也就是指不是新回响搜寻的搜寻结果）时，找到的结果会依网志而被加以分组。

  这个容器卷标里面的内容祇有当搜寻的结果位于网志分组里的第一笔时才显示。要显示网志名称、甚至是加上连往该网志的主索引链接时，都很好用。

- MTEntryEditLink
  如果使用者显示搜寻结果页面的时候已经登入 Movable Type 了，而且具有编辑被列出的文章项目权限时，这个卷标就会提供编辑搜寻结果所列出的文章项目的链接。

- MTSearchString
  用 HTML 编码过的搜寻串列。

## 其它卷标

这些卷标并不适合放在上述任何一类里。

- MTElse
  你可以用 `<MTElse>` 卷标来让任何条件卷标支持『否则』条件。也就是说，通常适用于任何名称里含有 `If` 的卷标（例如像 `<MTEntryIfExtended>` ）。 `<MTElse>` 这个容器卷标里面的内容祇有当条件不被符合时才显示。这个 `<MTElse>` 容器应该被放进能够提供『否则』条件的条件卷标容器里。

  以下是一个用法的范例：

      <MTEntryIfExtended>
      这个文章项目具有延伸的内容。
      <MTElse>
      这个文章项目没有延伸的内容。
      </MTElse>
      </MTEntryIfExtended>

- MTIfNonEmpty
  你可以用这个 `MTIfNonEmpty` 卷标来检查另一个卷标的值是否为空字符串。你得在这个卷标的 `tag` 属性里提供其它卷标的名称才行。这是一个条件卷标，因此其内的结构祇有当情境为真（也就是检验 `tag` 的结果为非空字符串值）时，才会被显示出来。

  举例来说：

      <MTIfNonEmpty tag="MTEntryAuthorURL">
      作者的首页网址是 <$MTEntryAuthorURL$>.
      </MTIfNonEmpty>

- MTInclude
  你可以用 `MTInclude` 卷标来把一个模版模块（请见前面提过的模版模块区段，这个区段位于模版小节里）或外部档案囊括进另一个模版里。 `<MTInclude>` 会取用下列的属性：
  - module
    在你的模版清单中所定义的模版模块名称。举例来说，如果你把某个常用的 HTML 片段拿来当作模版的档头，然后你还想透过 Movable Type 来管理这个片段，那么你可以把这个片段拉进去，变成名叫 `Header` 的模版模块，再用 `<MTInclude>` 来囊括之：

        <$MTInclude module="Header"$>

  - file
    要囊括进你的模版的外部档案路径。这个路径可以是完整的档案系统路径，也可以祇是在`本机站台路径`目录下或`本机汇整路径`目录下的单纯档名。举例来说，如果你的本机站台路径目录里，有个叫 foo.html 的档案，那么你可以像这样将其囊括进某个模版里：

        <$MTInclude file="foo.html"$>

    这个档案将在页面被重建的时候被囊括进你的模版；请注意这个作用不该和服务器端囊括弄混，因为后者会在每次网页服务器收到该页的需求时就把外部档案囊括进去。所以每当你变更了透过 `<MTInclude>` 卷标被囊括的外部档案后，请别忘记得要重建这些页面才有办法囊括这些被修订过的部分。

- MTLink
  现在你可以用 `<MTLink>` 卷标来自动产生索引模版或系统中某篇文章的网址。 `<MTLink>` 可以使用下列的属性：
  - template
    在你的模版清单中所定义的索引模版名称。举例来说，如果你想要产生连结到你称做 `About Page` 的模版所产生的页面的话，你可以用：

        <a href="<$MTLink template="About Page"$>">My About Page</a>

  - entry_id
    你所要连结的文章的数字型 ID 。像是这样：

        <a href="<$MTLink entry_id="562"$>">Link to a certain entry</a>

- MTDate
  这是一个能够代表页面重建时的日期/时间的标准卷标。你可以用在像是`最近更新于`的地方，例如：

      本页面最后更新时间： <$MTDate format="%B %d, %Y %I:%M %p"$>.

- MTGoogleSearch
  利用 Google API 来维护特定查询的结果清单，或者是列出一些跟目前页面相似的页面。

  这个卷标可以加上下列的属性：

  - query
    搜寻串列。

  - related
    要求 Google 传回跟某一页很像的页面；这个值可以是一个网址，在这种情况下传回的页面会跟这个网址很像；这个值也可以是 `1` ，在这个情况下传回的页面会跟你的页面（假设你在站台网址设定了你的主页网址）很像。范例请见后。

  - title
    如果你设定了 title=``1'' 这样的属性，那么送到 Google 的搜寻字符串就会是目前文章项目的标题。

  - excerpt
    如果你设定了 excerpt=``1'' 这样的属性，那么送到 Google 的搜寻字符串就会是目前文章项目的文摘。

  - keywords
    如果你设定了 keywords=``1'' 这样的属性，那么送到 Google 的搜寻字符串就会是目前文章项目的关键词。

  - results
    要传回的结果数量；目前 Google 对于每次查询将不会传回超过 10 笔查询结果，所以（目前所能使用的）最大值就是 `10` 。

  举例来说，如果你想要列出查询 `movable type` 的最前 5 笔搜寻结果：

      <MTGoogleSearch query="movable type" results="5">
      <a href="<$MTGoogleSearchResult property="URL"$>"><$MTGoogleSearchResult property="title"$></a><br />
      </MTGoogleSearch>

  或者是列出跟你的页面相似的其它页面清单：

      <MTGoogleSearch related="1">
      <a href="<$MTGoogleSearchResult property="URL"$>"><$MTGoogleSearchResult property="title"$></a><br />
      </MTGoogleSearch>

  请注意 query 、 related 、 title 以及 excerpt 这些属性通通具有完全的排他性。

  同时也请注意，如果你在你的单篇汇整模版里使用 Google 搜寻卷标的话，搜寻结果清单也会在任何你储存文章项目的时候被产生；而这会拖慢重建的进度；甚至当你发表的速度较快、或者当你的站台总是有大量回响时，你可能很快就会用完 Google 所允许的每日查询次数上限。

  注意：使用这个卷标前你得先取得一把 Google API 金钥，并且将之贴进你的网志组态里；同时你还得先安装 SOAP::Lite 模块和 LWP::UserAgent 模块（你可以执行 mt-check.cgi 来看看你是否已经安装过这些模块了）。

- MTGoogleSearchResult
  Google API 搜寻的单独结果（请见上述的 `<MTGoogleSearch>` 卷标）。

  这个卷标祇有一个额外的 property 属性，用来指定要显示的搜寻结果字段（像是：标题、网址、摘要等等）。预设的 property 是 `title` 。

  有效的 property 值包括了： `summary` 、 `URL` 、 `snippet` 和 `title` 。

- MTSetVar
  这个卷标可以设定某个变数的值 -- 你可以用 `name` 属性来设定变数名称，然后用 `value` 属性来设定变数值。然后你就可以用 `<MTGetVar>` 卷标（如后述）来取得这个变数的值。

- MTGetVar
  这个卷标会把自己代换成某个变数的值；要取用的变数名称则由 `name` 属性来指定。举例来说，你可以在外部模版中设定变数 `foo` 的值：

      <MTSetVar name="foo" value="bar">

  然后在某个被囊括的模版模块里，取得这个变数的值：

      <MTGetVar name="foo">

- MTCGIPath
  包含有 Movable Type CGI 脚本的目录的网址路径。这个卷标会被组态档案中 `CGIPath` 列的值（在安装过程中所设定的；详见安装指引）代换掉。 `MTCGIPath` 可以让连往 Movable Type CGI 脚本 -- 像是 mt-comments.cgi 和 mt-add-notify.cgi -- 这件事变得相当简单；你不再需要老是在你的模版里使用这些 CGI 脚本的网址，而祇需要用这个卷标就可以了。举例来说，当你要建立发表回响的表单时：

      <form method="post" action="<$MTCGIPath$><$MTCommentScript$>">

- MTCommentScript
  你的 mt.cfg 档案里的 CommentScript 设定；预设值是 mt-comments.cgi 。

- MTTrackbackScript
  你的 mt.cfg 档案里的 TrackbackScript 设定，预设值是 mt-tb.cgi 。

- MTStaticWebPath
  你的 mt.cfg 档案里的 StaticWebPath 设定值。

- MTImageURL
  已上传影像的绝对网址，用于`跳出已上传影像模版`。

- MTImageWidth
  已上传影像的宽度，用于`跳出已上传影像模版`。

- MTImageHeight
  已上传影像的高度，用于`跳出已上传影像模版`。

- MTErrorMessage
  这个卷标祇能被用在`回响出错模版`里，它会被取代成送出回响过程中所发生的错误讯息（例如像是无效或缺少了的E-mail 地址）。

- MTVersion
  你所在使用的 MT 版本。例如： `2.0` 。

- MTPublishCharset
  你在 mt.cfg 里所设定的 PublishCharset ；如果你没有设定的话，预设值会是 `iso-8859-1` （译注：而这将导致中文显示的不正确。所以请务必在 mt.cfg 里将 PublishCharset 设成 `UTF-8` ）。

## 全域卷标属性

全域卷标属性可以被用于任何变数代换卷标（会被代换成某个值的卷标 -- 这种卷标的对比就是会『容纳』其它组成元素和卷标的容器卷标）。然而这并不意味著当他们被使用于任何卷标里，都一定要有意义；实际上使用者得自己判断特定的卷标属性是否在实做上有意义。

全域属性的用法就跟卷标专一属性的用法一样：在卷标里使用 `name="value"` 配对。例如：

    <$MTEntryExcerpt encode_html="1"$>

这个卷标会被取代成以 HTML 编码过的文摘。

以下是全域卷标属性的清单：

- filters
  列出一组会被套用到卷标值里的文字格式过滤器。这里的过滤器名称将会是能够独特地指定出过滤器的短名称，而不是你在文字格式选项里所看到的长称号。你可以用逗号 (`,`) 来分隔过滤器名称。如果你指定了多重过滤器的话，它们将会按照你所列出的顺序先后被执行。举例来说，如果你定义了一个短名称叫 wiki 、会执行 Text::WikiFormat 这个 CPAN 模块的过滤器的话，你就可以这么做：

      <$MTEntryTitle filters="wiki"$>

  来把 `''这是一个标题''` 这样的标题转换成 `<em>这是一个标题</em>` 。

- encode_html
  当这个属性被设成 `1` 的时候，卷标的值就会编码成 HTML 。举例来说，如果没有这个属性的时候卷标的值为 `Foo & Bar -> Baz` ，那么编码成 HTML 的版本就会变成 `Foo &amp; Bar -&gt; Baz` 。

  使用范例：

      <$MTEntryExcerpt encode_html="1"$>

- encode_xml
  当这个属性被设成 `1` 的时候，就把该项目中任何 XML 里需要加以编码的字符予以编码。这些字符包括有： `&` 、 `` 、 `<` 和 `>` 。 举例来说，如果没有这个属性的时候卷标的值为 `Foo & Bar -> Baz` ，那么编码成 XML 的版本就会变成 `Foo &amp; Bar -&gt; Baz` 。

  使用范例（于 RSS 模版中）：

      <item>
          <title><$MTEntryTitle encode_xml="1"$></title>

  注意：这个属性跟 encode_html 间的差异在于后者会把更多特殊字符编码成 HTML 项目；如果你安装了 HTML::Entities 模块，那么你就不需要在 mt.cfg 里开启 NoHTMLEntities 选项。

- encode_js
  当这个属性被设成 `1` 的时候，就把卷标的值按照 Javascript 字符串值的用法编码成合适的格式。举例来说，如果没有这个属性的时候卷标的值为 `Foo "Bar" Baz's 1/2 Quux` ，那么编码后的版本就会变成 `Foo \"Bar\" Baz\'s 1\/2 Quux` 。

  使用范例：

      <script type="text/javascript">
      var str = '<$MTEntryTitle encode_js="1"$>';
      </script>

- encode_php
  把卷标的值按照三种 PHP 字符串值： single-quote 、 double-quote 或 here document 其中之一的用法编码成合适的格式。这个卷标属性的值应该是 `q` (single-quote) 、 `qq` (double-quote) 或 `heredoc` (here document -- 请注意此处的 `here` 对于一个 here document 来说仍然具有功效）。

  `q` 的使用范例：

      <?php
      $str = '<$MTEntryTitle encode_php="q"$>'
      ?>

  `heredoc` 的使用范例：

      <?php
      $str = <<<HERE
      <$MTEntryBody encode_php="heredoc"$>
      HERE;
      ?>

- encode_url
  把卷标的值按照网址的用法编码成合适的格式。这会把非字母的字符编码成其十六进位等效字符串。举例来说， `foo bar` 这个字符串就会被转换成 `foo%20bar` 。

  使用范例：

      <a href="/search?q=<$MTEntryTitle encode_url="1"$>">搜寻</a>

  （感谢 Scott Andrew LePera 提供了此范例的原始版本。）

- decode_html
  当这个属性被设成 `1` 的时候，把所有在这个卷标值里的 HTML 项目加以译码。举例来说，如果没有这个属性的时候卷标的值为 `foo&lt;br&gt;` ，那么 HTML 项目被译码后的版本就会变成 `foo<br>` 。

  用法范例：

      <$MTEntryTitle decode_html="1"$>

- decode_xml
  当这个属性被设成 `1` 的时候，把所有在这个卷标值里的 XML 项目加以译码。举例来说，如果没有这个属性的时候卷标的值为 `foo&lt;br&gt;` ，那么 XML 项目被译码后的版本就会变成 `foo<br />` 。

  用法范例：

      <$MTEntryTitle decode_xml="1"$>

- remove_html
  当这个属性被设成 `1` 的时候，就从卷标值里删掉所有的 HTML 卷标。举例来说，如果没有这个属性的时候卷标的值为 `Foo<br /> Bar` ，那么没有 HTML 卷标的版本就会变成 `Foo Bar` 。

  用法范例：

      <$MTEntryTitle remove_html="1"$>

- dirify
  当这个属性被设成 `1` 的时候，就把这个卷标值给『变成目录』。这表示这个卷标的值会按照档案或目录名称的用法，转换成适当的样子：首先这个值会全部被转换成小写，接著删去所有的 HTML 卷标及项目，奇怪的字符接著也被删去（所谓奇怪的字符指的就是那些不包含在：字母数字字符、底线 (`_`) 和空白），然后再把空白转换成底线 (`_`) 。

  dirify 同时也会把一些高-ASCII 字符（像是重音标记字符）转换成相对应的低-ASCII 字符；这表示像 `crudité` 这样的东西将会被转换成 `crudite` 。

  举例来说，如果没有这个属性的时候卷标的值为 `Foo "Baz" is<br /> Bar!` ，那么变成目录后的版本就会是 `foo_baz_is_bar` 。

  用法范例：

      <$MTArchiveCategory dirify="1"$>

- upper_case
  把卷标的值转为全部大写。

  用法范例：

      <$MTEntryTitle upper_case="1"$>

- lower_case
  把卷标的值转为全部小写。

  用法范例：

      <$MTArchiveDate format="%B" lower_case="1"$>

- trim_to
  把卷标的值修剪成祇剩下前 N 个字符；这里的 N 需要用这个属性的值来指定。

  用法范例：

      <$MTEntryTitle trim_to="15"$>

  上面这个卷标将祇会显示出文章项目标题的前 `15` 个字符。

- space_pad
  在卷标的值之前插入空白，使其总长度变成 N 个字符长；这里的 N 需要用这个属性的值来指定。

  用法范例：

      <$MTCalendarDay space_pad="3"$>

  上面这个卷标会在 `3` 这个值前面插入空白，使其变成『`3`』。

- zero_pad
  在卷标的值之前插入零，使其总长度变成 N 个字符长；这里的 N 需要用这个属性的值来指定。

  用法范例：

      <$MTCalendarDay zero_pad="5"$>

  上面这个卷标会在 `8` 这个值前面插入零，使其变成 `00008` 。

- sprintf
  这是泛用型的sprintf格式制订属性。这个属性的值应该要是格式字符串；卷标的值会被当作参数递送给sprintf。举例来说， zero_pad 也可以这样做：

      <$MTCalendarDay sprintf="%05s"$>

- sanitize
  把讨论中的文字送进消毒过滤器里清理一番。如果这个属性的值被设定成 `1` 的话，预设的消毒规格 -- 不论是该网志独有的或是整体设定里的 -- 就会被采行。如果这个属性的值被设定成 `0` 的话，这个卷标的消毒功能就会被关闭。如果这个属性的值是任何其它的东西的话，也会被当成是要采行消毒规格。

  用法范例

      <$MTEntryBody sanitize="a href"$>

  这样将会把文章中所有的 HTML 卷标清乾净，祇留下 `<a>` （而且祇会留著带有 `href` 属性的）。

## 日期卷标格式

Movable Type 用了标准的 `strftime` 格式字符串来描述日期和时间。（然而，请注意 `strftime` 本身并不真的是拿来施用格式的。）在任何的日期卷标里，你都应该可以用 `format` 属性来指定格式字符串，就像这样：

    <$MTDate format="%B %e, %Y %I:%M %p"$>

上面这个格式正是英文日期的预设格式，会做出像是这样子的日期：

    September 20, 2001 11:44 PM

你可以在网志组态的`显示日期的语言`里面选取不同的语言，这个语言会被套用在周里的名称、月份的名称和上午/下午的说明。预设被使用的语言是`英文`。

你也可以用 `language` 属性来指定语言，覆写掉预设的设定；这祇会套用在你正在制订格式的那个日期字符串上。以下是可用的语言卷标清单： `cz` 、 `dk` 、 `nl` 、 `en` 、 `fr` 、 `de` 、 `is` 、 `jp` 、 `it` 、 `no` 、 `pl` 、 `pt` 、 `si` 、 `es` 、 `fi` 、 `se` 。

以下则是格式说明清单。

- %a
  一周里的哪一天，以缩写表示。例如： `Thu` 。

- %A
  一周里的哪一天，以全称表示。例如： `Thursday` 。

- %b
  月份名称的缩写。例如： `Sep` 。

- %B
  完整的月份名称。例如： `September` 。

- %d
  该月的第几天，以两位数字表示；必要的时候在前面补 `0` 。例如： `09` 。

- %e
  该月的第几天，必要的时候在前面补上空白。例如： `9` 。

- %H
  时，以 24 时制（军队时制）表示成两位数字，必要的时候在前面补 `0` 。例如： `16` 。

- %I
  时，以 12 时制表示成两位数字，必要的时候在前面补 `0` 。例如： `04` 。

- %j
  该年的第几天，以三位数字表示，必要的时候在前面补 `0` 。例如： `056` 。

- %k
  时，以 24 时制（军队时制）表示成两位数字，必要的时候在前面补上空白。例如： `9` 。

- %l
  时，以 12 时制表示成两位数字，必要的时候在前面补上空白。例如： `4` 。

- %m
  月份，以两位数字表示，必要的时候在前面补 `0` 。例如： `09` 。

- %M
  分，以两位数字表示，必要的时候在前面补 `0` 。例如： `02` 。

- %p
  `AM` 或 `PM` 。

- %S
  秒，以两位数字表示，必要的时候在前面补 `0` ，例如： `04` 。

- %x
  按照语言决定的日期格式。对于多数的语言来说，就是 %B %e, %Y 。例如： `September 6, 2002` 。

- %X
  按照语言决定的时间格式。对于多数的语言来说，就是 %I:%M %p 。例如： `4:31 PM` 。

- %y
  年份，以两位数字表示，必要的时候在前面补 `0` ，例如： `01` 。

- %Y
  年份，以四位数字表示。例如： `2001` 。

注意：自 Movable Type 2.0 版起，就不再提供 `%Z` 这个格式组件了；如果你需要用到时区的话，请参照 `<$MTBlogTimezone$>` 卷标。

Copyright © 2001-2003 Six Apart. All Rights Reserved.