模块
模块为页面提供动态内容,包括页面列表、评分、论坛、表单、站点动态等。本文列出 ProjectWikit 提供的全部模块及其参数与示例。通用的维基语法请参阅语法。
放置模块
不带正文的模块写成一行:
[[module Rate]]带正文的模块需要结束标签。正文是一个模板,由模块填入内容:
[[module ListPages category="news" limit="5"]]
* %%title_linked%%
[[/module]]- 模块名不区分大小写:
[[module ListPages]]、[[module listpages]]与[[module LISTPAGES]]相同。 - 参数名不区分大小写:
perPage与perpage相同。除非模块另有说明,参数值区分大小写。 - 参数值应放在双引号中:
category="news"。 - 模块未列出的参数会被忽略。
[[module654 ...]]是[[module ...]]的另一种写法。- 除 Button 外,模块的输出自成一块。即使写在句子中间,也会另起一行显示。
模块可用的位置
- 页面内容中,包括通过
[[include]]引入的页面和分类模板(分类:_template)。被引入页面中的模块作用于引入它的页面。例如,被引入组件中的[[module Rate]]为引入它的页面评分。 - 论坛帖子中不可用。
- 站点页脚的授权说明文字中(参阅站点管理)仅
[[module Time]]可用。
模块嵌套
模块正文中可以包含其他模块,包括带正文的模块:
[[module ListUsers]]
[[module CSS]]
#header { background-image: url(%%avatar%%); }
[[/module]]
[[/module]]外层模块会先替换整段正文中的变量,内层模块随后才运行。两个模块都认识同名变量时,以外层的值为准。为此,[[module ListUsers]] 额外提供 %%user_displayname%% 与 %%user_name%%,以便在 [[module ListPages]] 中使用。
[[module ListPages]] 嵌套超过 10 层时会停止并显示错误。
开关值
标注为“开关”的参数接受 true、yes、t 或 1 表示开启,false、no、f 或 0 表示关闭,不区分大小写。其他值一律按默认值处理。
从页面地址读取的值
部分模块会从页面地址读取值。页面名之后的部分按“键/值”成对读取:
/page-name/key/value/other-key/other-value键不区分大小写。例如,/forum/c-3/p/2 显示编号为 3 的论坛分类的第 2 页。
错误
模块无法运行时,页面会在其位置显示一个错误块,页面其余部分照常显示。
| 提示 | 含义 |
|---|---|
| 模块 '{name}' 不存在 | 没有该名称的模块,或该模块在此处不可用 |
| 处理模块 '{name}' 时出错 | 模块无法以给定的参数值运行 |
| 模块处理已禁用 | 页面是以 /nomodule/true 打开的 |
如果某个模块导致页面无法正常使用,请在页面地址后追加 /nomodule/true 访问,例如 /main/nomodule/true。此时页面上的模块都不再运行。
模块一览
| 模块 | 正文 | 用途 |
|---|---|---|
| ListPages | 有 | 按分类、标签、日期、评分等条件列出页面 |
| CountPages | 有 | 以与 ListPages 相同的条件统计页面数 |
| PagesByTag | 无 | 列出带有某个标签的页面 |
| TagCloud | 无 | 按使用次数显示所有标签 |
| WantedPages | 无 | 列出指向不存在页面的链接 |
| ListUsers | 有 | 显示当前读者或本页作者的信息 |
| Members | 有 | 列出用户账号,可按身份组筛选 |
| SiteChanges | 无 | 全站最近的更改,可筛选 |
| Rate | 无 | 本页的评分组件 |
| ForumStart | 无 | 论坛版块与论坛分类 |
| ForumCategory | 无 | 某个论坛分类中的论坛主题 |
| ForumThread | 无 | 某个论坛主题中的帖子 |
| ForumNewThread | 无 | 发起论坛主题的表单 |
| RecentPosts | 无 | 论坛最新帖子 |
| FrontForum | 有 | 以新闻条目形式显示论坛主题 |
| NewPage | 无 | 创建页面的表单 |
| Search | 无 | 带筛选条件的站内搜索 |
| Files | 无 | 本页附件列表 |
| Gallery | 无 | 本页图片附件的缩略图 |
| CSS | 有 | 为页面添加 CSS |
| PageDescription | 有 | 设置链接预览中的描述 |
| PageImage | 无 | 设置链接预览中的图片 |
| Redirect | 无 | 将读者转到另一个地址 |
| Button | 无 | 编辑按钮或标签按钮 |
| Input | 有 | 不提交任何内容的表单控件 |
| ApplicationForm | 无 | 提交支持工单或入组申请 |
| MembershipByPassword | 无 | 凭入组密码获得身份组 |
| Comments | 无 | 指向本页评论的链接 |
| Time | 有 | 以读者时区显示的当前日期与时间 |
页面列表
ListPages
筛选页面,并为每个页面渲染一次正文,将 %%title%% 等变量替换为该页面的值。
[[module ListPages category="*" order="updated_at desc" limit="10"]]
* %%title_linked%% (%%rating%%), edited %%updated_at%%
[[/module]]没有正文时,每个页面都不显示任何内容。读者无权查看的分类中的页面一律不会列出。
指定单个页面
| 参数 | 取值 | 含义 |
|---|---|---|
fullname | 页面全名,或 . | 仅显示该页面。. 表示当前页面。其他筛选参数全部忽略。 |
name | . | 仅显示当前页面。其他筛选参数全部忽略。 |
range | .、others | .:仅显示当前页面,其他筛选参数全部忽略。others:按其他参数筛选出的页面,但不含当前页面。不识别其他取值。 |
筛选页面
| 参数 | 取值 | 默认值 | 含义 |
|---|---|---|---|
category | *、.、分类名 | . | *:所有分类。.:当前页面所在分类。其他写法为以空格或逗号分隔的分类名列表;-名称 排除该分类,列表中的 . 表示当前分类。主分类的名称是 _default。 |
pagetype | normal、hidden、* | normal | normal:名称不以 _ 开头的页面。hidden:仅含名称以 _ 开头的页面。其他取值:两者都包括。 |
name | *、=、前缀*、前缀%、页面名 | * | 按不含分类的页面名筛选。=:与当前页面同名。abc* 或 abc%:以 abc 开头的名称。其他写法为精确匹配。 |
tags | 参阅标签 | * | 按标签筛选。 |
parent | -、=、-=、.、页面全名 | 无 | -:没有父页面的页面。=:与当前页面父页面相同的页面。-=:父页面与当前页面不同的页面。.:当前页面的子页面。页面全名:该页面的子页面。 |
link_to | 页面全名,或 . | 无 | 链接到指定页面的页面。. 表示当前页面。 |
created_by | 用户名、wd:名称 或 . | 无 | 该用户作为作者的页面。wd:名称 表示导入的 Wikidot 账号。. 表示读者本人;未登录的读者得到空列表。 |
created_at | 参阅日期 | 无 | 按创建时间筛选。 |
updated_at | 参阅日期 | 无 | 按最后编辑时间筛选。 |
rating | 数字,可带比较符,或 = | 无 | 按评分筛选。 |
votes | 整数,可带比较符,或 = | 无 | 按投票数筛选。 |
popularity | 整数,可带比较符,或 = | 无 | 按人气值(正面投票所占百分比)筛选。 |
_字段名 | 值,可带比较符 | 无 | 按数据表单字段筛选。参阅数据表单字段。 |
取值无法对应到任何对象时(父页面不存在、用户不存在、日期或数字无法识别),列表为空。
rating、votes 与 popularity 的比较符为 =、<>、>、>=、< 与 <=,写在值的前面:rating=">=10"。不写比较符时按 = 处理。单独的 = 表示“等于当前页面的值”。使用赞成/反对评分的站点或分类,评分为投票之和;使用星级评分的,评分为平均值。评分筛选与按评分排序采用 category 中第一个分类的评分系统;未指定分类时采用 _default 的评分系统。
标签
| 取值 | 含义 |
|---|---|
* | 不按标签筛选(默认) |
- | 没有任何标签的页面 |
= | 带有当前页面全部标签的页面,可以带有其他标签 |
== | 标签与当前页面完全相同的页面,不多也不少。当前页面没有标签时:没有任何标签的页面 |
| 标签列表 | 以空格或逗号分隔的标签,规则见下 |
在标签列表中:
+标签:页面必须带有该标签。-标签:页面不得带有该标签。标签:页面至少带有以这种写法列出的标签之一。- 标签分类中的标签写作
分类:标签。
标签名按小写匹配。站点上不存在某个 +标签,或所有不带符号的标签都不存在时,列表为空。不存在的 -标签 会被忽略。
[[module ListPages category="*" tags="+euclid -archived"]]日期
created_at 与 updated_at 接受年、年月或年月日,前面可以加比较符:
2021 2021-02 2021-02-09 >=2021-02 <>2021日期按站点时区解释(参阅站点管理)。年、月或日均涵盖整个时段,即从第一天的 00:00 起,到该时段结束后次日的 00:00 为止(不含)。各比较符使用该时段的方式如下:
| 取值 | 选出的页面时间 |
|---|---|
2021 或 =2021 | 在 2021 年内:不早于 2021-01-01 00:00,且早于 2022-01-01 00:00 |
2021-02 | 在 2021 年 2 月内:不早于 2021-02-01 00:00,且早于 2021-03-01 00:00 |
2021-02-09 | 在 2021 年 2 月 9 日内:不早于 2021-02-09 00:00,且早于 2021-02-10 00:00 |
<>2021 | 在 2021 年以外:早于 2021-01-01 00:00,或不早于 2022-01-01 00:00 |
>2021 | 在 2021 年之后:不早于 2022-01-01 00:00 |
>=2021 | 从 2021 年开始:不早于 2021-01-01 00:00 |
<2021 | 在 2021 年之前:早于 2021-01-01 00:00 |
<=2021 | 截至 2021 年结束:早于 2022-01-01 00:00 |
= | 在当前页面所在的那一天内 |
每个参数仅接受一个条件。created_at=">=2021-02-08" 选出 2021 年 2 月 8 日及之后创建的页面,updated_at="<2021-03" 选出最后编辑于 2021 年 3 月之前的页面。
年份必须在 1 到 9999 之间。超出范围的月或日会调整为最接近的有效值,因此 2021-13-99 按 2021-12-31 处理。其他文字会使列表为空。
排序
order 接受一个字段名,可在其后加一个空格和 desc 表示降序。两个词都应小写。默认值为 created_at desc。
| 字段 | 排序依据 |
|---|---|
created_at | 创建时间 |
updated_at | 最后编辑时间 |
created_by | 作者用户名。有多位作者的页面会为每位作者各出现一次。 |
name | 不含分类的页面名 |
fullname | 页面全名 |
title | 标题 |
rating | 评分 |
votes | 投票数 |
popularity | 人气值 |
size | 当前源代码的长度 |
revisions | 历史记录条数 |
comments | 本页评论中的帖子数 |
random | 随机排序,忽略方向 |
_字段名 | 数据表单字段,按文本比较 |
其他字段一律从新到旧列出。在默认排序下使用 reverse="true",仅在全部页面都位于同一页列表中时才会变为从旧到新,因为它仅反转当前这一页列表。
数量与分页
| 参数 | 取值 | 默认值 | 含义 |
|---|---|---|---|
offset | 整数 | 0 | 跳过开头的若干页面。 |
limit | 整数 | 无 | 最多显示的页面总数。 |
perPage | 整数 | 20 | 每页列表的页面数,最大 250。0 或负数不显示任何页面。 |
reverse | 开关 | false | 反转当前这一页列表中页面的顺序。 |
所选页面在一页列表中放不下时,列表下方会出现分页栏。分页链接是 /page-name/p/2 形式的普通地址,可以直接链接到某一页列表。同一页面上的所有列表共用 p 的值。
格式
| 参数 | 取值 | 默认值 | 含义 |
|---|---|---|---|
prependLine | 维基语法 | 无 | 在所有页面之前渲染一次。不替换变量。 |
appendLine | 维基语法 | 无 | 在所有页面之后渲染一次。不替换变量。 |
separate | 开关 | true | 开启:每个页面的正文、prependLine 与 appendLine 分别渲染,正文中的 [[iftags]]、[[ifcategory]] 与图片以被列出的页面为准。关闭:先把全部内容拼成一段维基语法再渲染,跨行组成表格时必须关闭;此时 [[iftags]] 与 [[ifcategory]] 以列表所在的页面为准。 |
wrapper | 开关 | true | 开启:列表包在 class 为 list-pages-box 的 div 中,并带有分页栏。关闭:没有外框,也没有分页栏,仅显示第一页列表(或地址中 p 指定的那一页)。 |
tagTarget | 页面名 | system:page-tags | %%tags_linked%% 链接指向的页面:/<tagTarget>/tag/<标签>。 |
使用列表生成表格:
[[module ListPages category="*" tags="+featured" order="rating desc" separate="false" prependLine="||~ Page ||~ Rating ||~ Created ||"]]
|| %%title_linked%% || %%rating%% || %%created_at|%Y-%m-%d%% ||
[[/module]]也可以不使用 prependLine 与 appendLine,而将正文分为 [[head]]、[[body]] 与 [[foot]] 三段。三段必须按此顺序出现,使用另外两段时必须同时写出 [[body]]。紧接开始标签之后与紧挨结束标签之前的换行会被去除:
[[module ListPages category="news" perPage="5"]]
[[head]]
++ Latest news
[[/head]]
[[body]]
* %%title_linked%%
[[/body]]
[[foot]]
[[[news:archive|All news]]]
[[/foot]]
[[/module]]从地址读取参数值
任何参数值都可以使用 @URL|默认值 从页面地址读取。模块使用地址中与该参数同名的键的值;地址中没有该键时使用默认值:
[[module ListPages category="@URL|sandbox"]]
* %%title_linked%%
[[/module]]以 /page-name/category/drafts 访问时列出 drafts 分类的页面;以 /page-name 访问时列出 sandbox 分类的页面。此写法适用于 ListPages 与 CountPages。
变量
变量写作 %%名称%%,区分大小写:%%Title%% 不会被替换。除非另有说明,某个页面没有值的变量会原样保留。分类模板(分类:_template)中也可以使用这些变量。
页面:
| 变量 | 值 |
|---|---|
%%name%% | 不含分类的页面名 |
%%category%% | 分类(主分类为 _default) |
%%fullname%% | 页面全名;主分类的页面不带分类前缀 |
%%title%% | 标题 |
%%title_linked%%、%%linked_title%% | 显示标题的页面链接 |
%%link%% | / 加页面标题。仅在标题与页面名相同时才与页面地址一致。 |
%%content%% | 页面当前的源代码 |
%%content{n}%% | 源代码的第 n 段,从 1 开始计数。段与段之间以由四个或更多 = 组成的一行分隔。不存在的段为空值。 |
%%size%% | 当前源代码的字符数 |
%%revisions%% | 历史记录条数 |
%%children%% | 子页面数 |
%%index%% | 在列表中的序号,从 1 开始,跨页连续 |
%%total%% | 所选页面的总数 |
父页面(页面没有父页面时原样保留):
| 变量 | 值 |
|---|---|
%%parent_name%%、%%parent_category%%、%%parent_fullname%%、%%parent_title%% | 父页面的名称、分类、全名与标题 |
%%parent_title_linked%%、%%parent_linked_title%% | 显示标题的父页面链接 |
日期(以读者时区显示):
| 变量 | 值 |
|---|---|
%%created_at%% | 创建时间 |
%%updated_at%% | 最后编辑时间 |
%%created_at|格式%%、%%updated_at|格式%% | 同上,使用 [[date]] 的格式,例如 %%created_at|%Y-%m-%d%% |
人员:
| 变量 | 值 |
|---|---|
%%created_by%% | 作者的显示名,以空格分隔。导入的 Wikidot 账号带 wd: 前缀。 |
%%created_by_unix%% | 作者的用户名 |
%%created_by_id%% | 作者的用户编号 |
%%created_by_linked%% | 带头像的作者用户链接 |
%%created_by_linked_plain%% | 不带头像的作者用户链接 |
%%authors_count%% | 作者人数 |
%%updated_by%%、%%updated_by_unix%%、%%updated_by_id%%、%%updated_by_linked%%、%%updated_by_linked_plain%% | 最后编辑者的对应信息。没有编辑者时,文字形式与链接形式显示“系统”。 |
评分:
| 变量 | 值 |
|---|---|
%%rating%% | 赞成/反对:带符号的总和,如 +12。星级:保留一位小数的平均值,没有投票时为 —。评分关闭:0。 |
%%rating_votes%% | 投票数 |
%%rating_percent%% | 仅星级:平均值占 5 分的百分比。其他情况为 0。 |
%%popularity%% | 正面投票(赞成,或 3.0 分及以上的星级投票)所占百分比。评分关闭时为 0。 |
%%current_user_voted%% | True 或 False |
标签。标签为小写并已排序。全名以 _ 开头的标签为隐藏标签。
| 变量 | 值 |
|---|---|
%%tags%% | 可见标签,以空格分隔 |
%%_tags%% | 仅隐藏标签 |
%%alltags%% | 全部标签 |
%%tags_linked%%、%%_tags_linked%%、%%alltags_linked%% | 同上,以链接形式列出,以逗号分隔。链接指向 /system:page-tags/tag/<标签>,或 tagTarget 指定的页面。 |
%%tags_linked|前缀%%(_tags 与 alltags 同样适用) | 链接指向“前缀加标签”。前缀不以 /、http:// 或 https:// 开头时,会在前面补上 /。 |
评论:
| 变量 | 值 |
|---|---|
%%comments%% | 本页评论中的帖子数 |
%%commented_at%% | 最后一条帖子的时间;没有帖子时为空 |
%%commented_by%%、%%commented_by_unix%%、%%commented_by_id%%、%%commented_by_linked%% | 最后一条帖子的作者;没有帖子时为空 |
站点:
| 变量 | 值 |
|---|---|
%%site_name%% | 站点标识名 |
%%site_title%% | 站点标题 |
%%site_domain%% | 站点域名 |
%%preview%%、%%summary%% 与 %%first_paragraph%% 不可用。
列表显示 %%content%% 时,被列出页面中的模块也会运行。被列出页面中的 [[module CSS]] 会作用于列表所在的页面,其中的 [[module Redirect]] 也会让列表所在的页面发生重定向。
在分类模板中,模板自身的变量会在其中任何模块运行之前被替换。因此,写在模板中的 [[module ListPages]] 正文得到的是当前显示页面的值,而不是被列出页面的值。
数据表单字段
_template 页面中含有 [[form]] 块的分类即为数据表单分类。该块以 YAML 定义字段,分类中每个页面的源代码则以 YAML 的 字段: 值 行保存各字段的值。[[form]] 块本身不会显示。
[[form]]
fields:
status:
type: select
label: Status
values:
open: Open
done: Done
priority:
label: Priority
[[/form]]该分类中的一个页面:
status: done
priority: 02字段属性有 type、label、hint、default、value 与 values(select 的选项)。类型有 text(默认)、wiki、select、checkbox、hidden 与 static;hidden 与 static 字段的值始终为定义中的 value。字段值通过编辑页面源代码修改。对于此类页面:
| 变量 | 值 |
|---|---|
%%form_data{字段}%% | 用于显示的字段值。页面作者输入的文字按原文显示;wiki 与 static 字段以及 select 选项的显示文字按维基语法渲染。 |
%%form_raw{字段}%% | 保存的原始值 |
%%form_label{字段}%% | 字段的标签 |
%%form_hint{字段}%% | 字段的提示 |
ListPages 可以在字段名前加下划线,按字段筛选与排序:
[[module ListPages category="projects" _status="=done" order="_priority desc"]]
* %%title_linked%%: %%form_data{status}%%
[[/module]]- 比较符为
=、<>、>、>=、<与<=。=不区分大小写;其他比较符逐字符比较文本,因此仅位数相同的数字可以正确比较(应写作01、02……10)。 - 所在分类没有表单的页面,永远不满足字段条件。
- 按字段筛选时需要读取满足其他参数的全部页面,分类中页面较多时速度较慢。
旧参数名
以下旧参数名同样可用:
| 写法 | 等同于 |
|---|---|
date | created_at |
categories | category |
tag | tags |
order="dateCreatedAsc"、dateCreatedDesc | created_at、created_at desc |
order="dateEditedAsc"、dateEditedDesc | updated_at、updated_at desc |
order="titleAsc"、titleDesc | title、title desc |
order="ratingAsc"、ratingDesc | rating、rating desc |
order="pageLengthAsc"、pageLengthDesc | size、size desc |
未指定 range 时,skipCurrent="true" 不列出当前页面,与 range="others" 相同。
CountPages
以与 ListPages 相同的参数统计页面数,并渲染一次正文。perPage 不起作用;offset 与 limit 起作用。支持 @URL|默认值 写法。
| 变量 | 值 |
|---|---|
%%total%%、%%count%% | 页面数(不区分大小写) |
[[module CountPages category="scp" tags="+euclid"]]
There are %%total%% Euclid pages.
[[/module]]PagesByTag
按标题顺序列出带有某个标签的页面。
| 参数 | 取值 | 默认值 | 含义 |
|---|---|---|---|
tag | 标签名,或 分类:标签 | 无 | 要列出的标签。页面地址中的 tag 值(/page-name/tag/euclid)优先。 |
未指定标签,或标签分类不存在时,模块不显示任何内容。标签名不区分大小写。读者无权查看的分类中的页面不会列出。
[[module PagesByTag]]放在 system:page-tags 页面上时,它列出地址中指定标签的页面;TagCloud 的链接默认正是指向这里。
TagCloud
显示站点上的全部标签,使用越多的标签字号越大、颜色越深。标签按不含分类的名称排序。名称以 _ 开头的标签从不显示。
| 参数 | 取值 | 默认值 | 含义 |
|---|---|---|---|
limit | 0 或更大的整数 | 全部 | 仅包含使用最多的若干个标签。无法识别的值会显示错误。 |
minFontSize、maxFontSize | 带单位的大小,如 80% 或 12px | 100%、300% | 使用最少与最多的标签的字号。须同时指定且单位相同;仅指定其中一个时,两者都使用默认值。 |
minColor、maxColor | #rgb、#rrggbb、rgb(r,g,b) 或 r,g,b | 128,128,192、64,64,128 | 使用最少与最多的标签的颜色。须同时指定;仅指定其中一个时,两者都使用默认值。 |
target | 页面名 | system:page-tags | 标签链接指向 /<target>/tag/<标签>。 |
categories | yes | 无 | 按标签分类分组显示在可折叠块中,按标签分类的“优先级”排序。 |
大小按“整数加单位”解析:1.5em 会被解析为 1,单位为 .5em。请使用整数,例如 150%。大小不以数字开头、两个大小的单位不同或颜色无法识别时,模块显示错误。
[[module TagCloud limit="50" minFontSize="80%" maxFontSize="200%" categories="yes"]]WantedPages
以表格列出指向不存在页面的链接及其所在的页面。
| 参数 | 取值 | 默认值 | 含义 |
|---|---|---|---|
category_from | 同 ListPages 的 category | . | 包含这些链接的页面所在的分类。 |
category_to | 同 ListPages 的 category | * | 缺失页面所在的分类。 |
perPage | 整数 | 20 | 每页列表的行数,最大 250。 |
还可以使用 ListPages 的其他筛选参数(如 tags 或 parent)进一步限定源页面。limit 与 offset 会被忽略。
[[module WantedPages category_from="*" category_to="-fragment"]]用户
ListUsers
显示读者本人或当前页面作者的信息。
| 参数 | 取值 | 默认值 | 含义 |
|---|---|---|---|
always | 开关 | false | 为未登录的读者也渲染正文。不开启时,未登录的读者看不到任何内容。 |
anonname | 文字 | [匿名] | 未登录读者使用的名称。 |
authors | 开关 | false | 改为为当前页面的每位作者各渲染一次正文。 |
读者相关的变量(不区分大小写):
| 变量 | 已登录 | 未登录 |
|---|---|---|
%%number%% | 用户编号 | -1 |
%%title%%、%%user_displayname%% | 显示名;没有显示名时为用户名 | anonname |
%%name%%、%%user_name%% | 用户名 | anonname |
%%avatar%% | 头像地址 | 默认头像地址 |
%%is_authenticated%% | true | false |
authors="yes" 时的变量:
| 变量 | 值 |
|---|---|
%%author%% | 作者的显示名;导入的 Wikidot 账号带 wd: 前缀 |
%%author_linked%% | 作者的用户链接 |
[[module ListUsers always="yes"]]
[[if %%is_authenticated%%]]
Signed in as %%title%%.
[[else]]
Not signed in.
[[/if]]
[[/module]][[module ListUsers authors="yes"]]
%%author_linked%%
[[/module]]Members
按用户编号顺序列出用户账号,每个账号渲染一次正文。已停用的账号也包括在内。
| 参数 | 取值 | 默认值 | 含义 |
|---|---|---|---|
role | 身份组的标识名或编号 | 全部账号 | 仅列出拥有该身份组的账号。身份组不存在时显示错误。 |
perPage | 整数 | 100 | 每页列表的账号数,最大 500。 |
limit | 整数 | 100 | 未指定 perPage 时使用。 |
变量(不区分大小写):
| 变量 | 值 |
|---|---|
%%members%%、%%member%% | 带头像的用户链接 |
%%time%% | 注册时间 |
%%number%% | 用户编号 |
%%name%% | 用户名 |
%%title%% | 显示名;没有显示名时为用户名 |
%%index%% | 序号,从 1 开始,跨页连续 |
%%total%% | 列出的账号总数 |
分页使用地址中的 p。
[[module Members role="staff" perPage="20"]]
|| %%index%% || %%members%% || %%time%% ||
[[/module]]站点动态
SiteChanges
从新到旧显示全站最近的更改。该模块没有参数;筛选条件通过列表上方的表单或页面地址设置。
地址中的键:
| 键 | 取值 | 含义 |
|---|---|---|
category | 分类名,或 * | 分类筛选 |
username | 用户名,或 ~部分名称 | 用户筛选。名称为 system 时,或以 ~ 开头且文字是 system 一词的一部分时,还会包括系统所做的更改。 |
perpage | 大于 0 的整数 | 每页列表的条目数,默认 20 |
p | 整数 | 列表页码 |
| 更改类型 | true | 显示该类型 |
category、username、perpage 与各更改类型的键必须带值。缺少值的键,或不是正整数的 perpage,都会显示错误。
更改类型与标记:
| 键 | 标记 | 说明 |
|---|---|---|
source | S | 文章内容已更改 |
title | T | 标题已更改 |
name | R | 页面已重命名/删除 |
tags | A | 标签已更改 |
new | N | 新页面已创建 |
parent | M | 父页面已更改 |
file_added、file_deleted、file_renamed | F | 文件已添加 / 文件已删除 / 文件已重命名 |
votes_deleted | V | 投票已更改 |
authorship | C | 作者已更改 |
wikidot | W | 从 Wikidot 导入的编辑 |
回退操作以其撤销的类型作为标记,选中其中任一类型时都会包括在内。键 revert 仅选出回退操作。
[[module SiteChanges]]地址示例:/system:recent-changes/source/true/username/~ali/perpage/50。
评分
Rate
显示当前页面的评分组件。组件样式取决于站点或页面所在分类设置的评分系统(参阅站点管理);评分系统为“关闭”时不显示任何内容。投票需要为页面评分的权限。
[[module Rate]]| 参数 | 默认值 | 说明 |
|---|---|---|
favourite | no | 设为 yes 时,在评分组件后面显示收藏按钮与收藏人数。评分系统为“关闭”时同样不显示。 |
[[module Rate favourite="yes"]]无论页面中是否含有此模块,读者都可以通过页面下方的“评分”按钮评分,通过“收藏”按钮收藏(参阅功能)。
论坛
论坛由包含论坛模块的系统页面组成。pwikit seed 会为新站点写入这些页面(参阅命令行)。论坛地址会被改写到这些页面:
| 地址 | 页面 | 模块 |
|---|---|---|
/forum/start | forum:start | ForumStart |
/forum/s-<id> | forum:start/s/<id> | ForumStart |
/forum/c-<id> | forum:category/c/<id> | ForumCategory |
/forum/t-<id> | forum:thread/t/<id> | ForumThread |
/forum:new-thread/c/<id> | forum:new-thread | ForumNewThread |
/forum:recent-posts | forum:recent-posts | RecentPosts |
编号之后的名称(如 /forum/t-12/my-thread)仅用于提高可读性。其他键应紧跟在编号之后:/forum/c-3/p/2。论坛模块还会设置页面标题。论坛的使用方法请参阅功能。
ForumStart
列出论坛版块及其中的论坛分类。没有可见论坛分类的版块不会显示。该模块没有参数。
| 地址中的键 | 含义 |
|---|---|
s | 仅显示该版块。版块不存在时返回 404 状态。 |
hidden | 取值为 show 时同时列出隐藏的版块 |
ForumCategory
列出某个论坛分类中的主题,置顶的主题排在前面。该模块没有参数。
| 地址中的键 | 含义 |
|---|---|
c | 论坛分类编号。不存在或未指定时返回 404 状态。 |
sort | 取值为 start 时按主题创建时间排序;否则按最后回复时间排序 |
p | 列表页码 |
查看需要该论坛分类的查看权限。用于存放页面评论的论坛分类不显示 创建主题 链接。
ForumThread
显示某个主题中的帖子,回复显示在被回复的帖子下方。回复、编辑与删除按权限提供。
| 参数 | 取值 | 默认值 | 含义 |
|---|---|---|---|
contentonly | yes | 无 | 仅显示帖子,不显示导航路径、描述、主题选项和回复入口。 |
| 地址中的键 | 含义 |
|---|---|
t | 主题编号。不存在或未指定时返回 404 状态。 |
p | 列表页码 |
post | 帖子编号;打开包含该帖子的那一页列表 |
ForumNewThread
显示在某个论坛分类中发起主题的表单。该模块没有参数。
| 地址中的键 | 含义 |
|---|---|
c | 论坛分类编号。不存在或未指定时返回 404 状态。 |
RecentPosts
列出论坛中最新的帖子,可通过列表上方的下拉框限定为某个论坛分类。该模块没有参数。
| 地址中的键 | 含义 |
|---|---|
c | 论坛分类编号。取值不是数字时,下拉框与列表都会为空。 |
p | 列表页码 |
站点设有用于页面评论的论坛分类时,不限定论坛分类的列表也会包括页面评论。
FrontForum
以新闻条目的形式从新到旧显示论坛分类中的主题,每个主题渲染一次正文。内容取自每个主题的首条帖子。置顶的主题仍按日期顺序排列。不提供分页。
| 参数 | 取值 | 默认值 | 含义 |
|---|---|---|---|
category | 以 ; 分隔的论坛分类编号 | 必填 | 取主题的论坛分类。不存在的编号会被跳过。没有任何编号时显示错误。 |
limit | 整数 | 20 | 主题数量。0 不显示任何主题。 |
offset | 整数 | 0 | 跳过开头的若干主题。 |
论坛分类编号可以从论坛地址中获得:/forum/c-3/news 表示编号为 3 的论坛分类。不支持 feed、feedTitle、fixRelativeLinks、separate 与 order。
变量(区分大小写):
| 变量 | 值 |
|---|---|
%%title%% | 主题标题 |
%%linked_title%%、%%title_linked%% | 主题链接 |
%%link%% | 主题地址 |
%%author%% | 主题作者的用户链接 |
%%date%% | 主题的创建时间 |
%%date|格式%% | 同上,使用 [[date]] 的格式 |
%%comments%% | 回复数(帖子数减去首条) |
%%category%% | 论坛分类链接 |
%%content%%、%%text%%、%%long%%、%%body%% | 首条帖子的源代码 |
%%description%%、%%short%%、%%summary%% | 首条帖子纯文本的前 200 个字符 |
没有正文时使用站点语言的默认格式,中文为:
+ %%linked_title%%
%%author%% 发表于 %%date|%O前(%Y年%b%e日 %H:%M)%%
%%content%%
%%comments%% 条回复 | 分类:%%category%%没有查看论坛分类权限的读者看不到任何内容。
[[module FrontForum category="3;7" limit="5"]]
++ %%linked_title%%
%%date|%Y-%m-%d%% · %%author%%
%%summary%%
[[/module]]ForumPost 与 ForumNewPost
这两个模块由主题页面用于加载、编辑、回复和预览帖子,不能放在页面上;写入页面时显示“模块 '…' 不存在”。
创建页面与搜索
NewPage
显示用于创建页面的输入框和按钮。
| 参数 | 取值 | 默认值 | 含义 |
|---|---|---|---|
category | 分类名 | 无 | 在该分类中创建新页面:输入的名称变为 分类:名称。 |
example | 文字 | 无 | 输入框为空时显示的占位文字。 |
submit | 文字 | 创建页面 | 按钮文字。指定为空值时按钮上没有文字。 |
提交时,名称会按照与链接相同的规则转换为页面名。名称可用且页面尚不存在时,浏览器会打开新页面的编辑器。
[[module NewPage category="draft" example="my-idea" submit="Start a draft"]]Search
显示站内搜索,带有作者、标签、分类与日期范围筛选。结果从新到旧排列。
页面文字包含输入的全部词语时才算匹配。作者筛选接受用户名、导入的 Wikidot 用户名或显示名。在标签框中,-标签 表示排除该标签。日期范围按 UTC 的整日比较创建日期,而不是按站点时区。在管理后台中设为不计入搜索的页面、分类和标签不会出现在结果中。
| 参数 | 取值 | 默认值 | 含义 |
|---|---|---|---|
placeholder | 文字 | 搜索文章标题或内容… | 搜索框中的占位文字 |
q | 文字 | 无 | 初始搜索词 |
tags | 标签 | 无 | 标签筛选框的初始值 |
category | 分类名 | 无 | 分类筛选框的初始值 |
| 地址中的键 | 含义 |
|---|---|
q | 初始搜索词;优先于参数 q |
author | 作者筛选框的初始值 |
datefrom、dateto | 日期范围的初始值,格式为 YYYY-MM-DD |
[[module Search]]地址示例:/search:site/q/archive/author/alice。
附件
Files
以表格列出当前页面的附件及其 MIME 类型与大小,并提供管理附件的链接。该模块没有参数。
[[module Files]]Gallery
显示当前页面图片附件的缩略图。
| 参数 | 取值 | 默认值 | 含义 |
|---|---|---|---|
size | square、thumbnail、small、medium | medium | square:75 × 75,裁剪为正方形。thumbnail:长边 100。small:长边 240。medium:长边 500。其他取值显示错误。 |
[[gallery]] 是该模块的简写:
[[gallery size="small"]]简写会在整个页面源代码中被替换,包括 [[code]] 块内部。
页面设置与样式
CSS
将正文作为 CSS 添加到页面。无论模块写在页面的哪个位置,CSS 始终放在页面头部,因此它在页面中的位置不会影响规则的优先顺序。该模块没有参数;可以写入 head 参数,但该参数将被忽略。
[[module CSS]]
#page-title { color: purple; }
[[/module]]被引入页面中的 [[module CSS]],或列表中以 %%content%% 显示的页面中的 [[module CSS]],同样作用于显示它的页面。
PageDescription
将正文文字设为链接预览中使用的页面描述(og:description 标签)。没有此模块时,使用页面文字的开头部分。该模块不在页面上显示任何内容。
[[module PageDescription]]
A short summary of this page for link previews.
[[/module]]PageImage
设置链接预览中使用的图片(og:image 标签)。该模块不在页面上显示任何内容。
| 参数 | 取值 | 默认值 | 含义 |
|---|---|---|---|
src | 地址,或 页面名/文件名 | 无 | 完整地址(含 //)按原样使用。页面名/file.png 指向文件域名上该页面的附件。不含 / 的单独文件名按原样使用,不会解析为当前页面的附件。 |
[[module PageImage src="main/cover.png"]]Redirect
读者打开页面时,以 HTTP 重定向将其转到另一个地址。
| 参数 | 取值 | 默认值 | 含义 |
|---|---|---|---|
destination | 地址 | 无 | 目标地址。使用 javascript: 或 data: 的地址会被拒绝并显示错误。 |
noredirect | 开关 | false | 关闭重定向。 |
如需查看或编辑带有重定向的页面,请在页面地址后追加 /noredirect/true 访问。
[[module Redirect destination="/scp-1730"]]被引入页面中的 Redirect,或列表中以 %%content%% 显示的页面中的 Redirect,会让显示它的页面发生重定向。
按钮与表单
Button
显示作用于当前页面的按钮。多个按钮可以在同一行文字中并排显示。
| 写法 | 作用 |
|---|---|
[[button edit]] | 打开编辑器。为不存在的页面显示时(通过 _404 模板页面),打开创建该页面的编辑器。 |
[[button set-tags +标签 -标签]] | 添加和移除标签,然后重新加载页面。不带 + 或 - 的标签按添加处理。 |
| 参数 | 取值 | 默认值 | 含义 |
|---|---|---|---|
text | 文字 | 按钮类型 | 按钮文字。首尾空格会被去除。 |
[[button edit text="Edit this page"]] [[button set-tags +reviewed -needs-review text="Mark reviewed"]]其他类型显示错误。更改标签需要为页面加标签的权限,否则会显示错误提示。完整写法 [[module Button type="set-tags" tags="+a -b" text="…"]] 与简写等效。[[button ...]] 简写会在整个页面源代码中被替换,包括 [[code]] 块内部。
每个按钮都带有 class wiki-standalone-button,以及值为按钮类型的 data-button-type 属性,可供主题设置样式。
Input
显示不会提交到任何地方的表单控件,用于驱动 CSS 的控件,例如通过 :has(input.checkbox:checked) 设置样式的暗色模式复选框。输出使用 class mailform-box,以便为 Wikidot 的 MailForm 编写的主题继续生效,但 [[module MailForm]] 本身不可用。
正文用于定义字段。以 # 开头的行开始一个字段并为其命名;以 * 开头的行以 属性: 值 的形式设置属性。
| 属性 | 取值 | 默认值 | 含义 |
|---|---|---|---|
title | 文字 | 字段名 | 标签 |
type | text、textarea、select、checkbox | text | 控件类型 |
size | 整数 | 30 | 文本框宽度 |
default | 文字 | 无 | 初始值。复选框取值为 1、yes、true 或 checked 时为勾选状态。下拉框取值为选项的键。 |
hint | 文字 | 无 | 控件下方的说明文字 |
options | 键: 显示文字 | 无 | 下拉框的一个选项;每个选项写一行 |
[[input]] ... [[/input]] 是该模块的简写:
[[div class="dark-mode-button"]]
[[input]]
# dark
* title: Dark mode
* type: checkbox
[[/input]]
[[/div]]正文中没有字段时显示错误。简写会在整个页面源代码中被替换,包括 [[code]] 块内部。
ApplicationForm
显示向站点管理人员提交支持工单或入组申请的表单,管理人员在管理后台的“支持工单”或“入组申请”中处理(参阅站点管理)。
| 参数 | 取值 | 默认值 | 含义 |
|---|---|---|---|
type 或 kind | membershipapply,或其他值 | 工单 | membershipapply 提交入组申请;其他值提交支持工单。 |
title 或 subject | 开关或文字 | 显示标题框 | 开关值用于显示或隐藏标题框。其他文字会隐藏标题框,并以该文字作为标题。 |
正文必填,最多 20,000 个字符;标题最多 200 个字符。提交需要登录。
无法将标题设为字面上的 yes 或 no,因为这两个词会被当作开关值。
[[module ApplicationForm type="membershipapply" title="Membership application"]]MembershipByPassword
显示一个入组密码输入框。已登录的读者输入正确的入组密码后即获得一个身份组。入组密码与身份组在站点设置的“密码入组”中配置(参阅站点管理)。未启用密码入组时,模块不显示任何内容。输入密码需要登录。
| 参数 | 取值 | 默认值 | 含义 |
|---|---|---|---|
label 或 text | 文字 | 输入密码 | 输入框的标签 |
[[module MembershipByPassword label="Invitation password"]]Comments
放置一个指向当前页面评论的链接。该模块没有参数。
[[module Comments]]时间
Time
将正文中的日期与时间变量替换为当前时间,以读者时区显示。数值不足两位时补零。
| 变量 | 值 |
|---|---|
%%currentyear%% | 年 |
%%currentmonth%% | 月,01–12 |
%%currentday%% | 日,01–31 |
%%currenthour%% | 时,00–23 |
%%currentminute%% | 分 |
%%currentsecond%% | 秒 |
变量不区分大小写,少一个 r 的 curent 写法同样有效。
[[module Time]]
© 2019–%%currentyear%% Example Wiki
[[/module]]此模块是站点页脚授权说明文字中唯一可用的模块。
