Help:模板格式

模板格式template用来借助于模板对结果进行格式编排.

利用模板进行自定义格式编排
一些结果格式支持利用维基模板来全面控制嵌入式查询的显示. 这种方式适用于模板格式、列表格式、编号列表格式以及项目符号列表格式. 如果指定了某个模板，就会采用该模板对所有的结果«行»进行格式编排. 相应模板的名称（不带开头的前缀«Template:»）是在参数template当中提供的，因而这种查询具有的一般形式为：

对于嵌入式查询之中的每个结果，SMW都会调用所指定的模板；其中，结果和打印输出取值作为经过编号的模板参数来使用，从而一个在被编排为一张表格时会显示三列的查询，将会设置三个模板参数. 继而，可采取通常的方式，写出、等等，从而在该模板当中使用这些取值. 每个参数分别指的是嵌入式查询将会为所选择的每个页面而显示的，结果之中的一个"字段"或者列. 通常，查询所显示的第一个字段是页面标题（参见这里）， 因此，参数就是页面标题，而,, ...</tt>则是查询所显示的其余属性. 下文将列举许多示例.

这种模板功能为查询的显示提供了更大的灵活性，包括：
 * 更改输出的显示顺序，或者省略或重复输出；
 * 根据查询结果来显示图片；
 * 为属性取值创建链接；
 * 按表格当中的列，利用CSS样式来改变字体大小、对齐方式以及背景颜色等等.

如果真的采用某个模板来调整链接的外观，也许您会需要设置参数 | link=none | </tt>，来禁用SMW对文章名称的自动链接功能. 如显示信息所述，通过为某些或全部的打印输出选择普通输出格式，亦可实现类似的效果. 这样，对于任何您希望其作为链接的内容，您的模板就必须将其括在 </tt>当中.

要理解如何为某一查询的格式编排而创建模板，首先查看一下带有参数format=table</tt>的查询，会有所用处. 例如，那些指的是单独一个页面的查询（就像配合使用参数#show</tt>那样）将仅仅隐藏该结果页面的页面标题， 从而，参数</tt>指的是第一个打印输出语句. 利用打印输出语句?</tt>，或者为mainlabel</tt>指定任何取值，都将改变这种情况.

下列这些示例全都采用的是Template:Query output demo (zh-hans)，其基本上含有如下维基文本：

people squeeze into the of.

下列这些查询演示的就是该模板的效果：

实际运行结果：

在上面这个例子中，可以看到模板如何忽略了查询之中所指定的«面积（km²）»之类任何标题标签. 然而，模板所显示的这些取值的确采用的是?Area#km²=面积（km²）</tt>当中所指定的计量单位， 并且将采取类似的方式遵循所提供的全部显示格式（参见Help:显示信息）.

如下是一个按人口数量排序的类似查询，并且采用format=ol</tt>来生成编号列表.

实际运行结果：

如果我们直接指定单个页面的话，查询结果之中通常并不包括该页面，因此要在下列查询之中重复利用同一模板的话，我们必须通过添加|?</tt>来告诉该查询，将此页面的标题显示为第一列：

实际运行结果：

利用#show</tt>亦可达到同样的效果，尽管这样的方式可能并不是这项功能最为典型的用法：

实际运行结果：

模板之中亦可包含其他的解析器函数，如条件，甚至是查询. 可在下列页面上找到关于复杂查询格式的例子（这些属于外部链接，可能会发生变更）：


 * semanticweb.org主页上所显示的即将发生的事件：该页面的事件一节当中显示的仅仅是某些重大事件（即将举办的活动）. 每个此类事件均采用一个模板来进行格式编排，而该模板又利用另一个嵌入式查询来找出特定事件的子事件（如同地协作的研讨会、辅导课等等）.
 * korrekt.org上的出版物列表：该页面上的所有列表都是利用模板化查询（templated queries）来创建的. 根据一项结果相应的出版物类型以及所提供的数据，利用条件（#if</tt>和#ifeq</tt>）来改变该结果的格式（主要出版物的标题采用加粗字体）.

用户参数userparam的使用方法
可以向查询当中添加单独一个额外的参数. 为此，应当添加的是userparam= . 在模板之中，在userparam=后面所提供的那个取值将作为变量 加以提供. 这为模板提供了额外的可复用性： 基于该参数，可以创建单独一个模板，并且可从不同的查询当中对其加以调用，而又产生出不同的结果. 在关于人口数量的示例当中，您可以决定采用不同的动词，而不仅仅是"拥挤"，比如"适应"、"居住"、"位于"等等之类的动词：

实际运行结果：

显示指向进一步结果的链接
当使用模板参数'template'的时候，只有在'format=template'的情况下，才会看到指向更多结果的'further results...'链接. 也就是说，比如，看来它并不兼容'format=ol'.

如果准备采用您的模板来创建表格式输出，可能需要利用专门的模板起始与结尾参数（introtemplate and outrotemplate parameters）来确保指向更多结果的链接'further results...'有效地发挥作用.

示例查询
上面这个查询将产生一张表格输出，其中含有[ 所选城市]的图片.