好嘞!我直接全文帮你转成简体,保留所有代码和格式,你复制就能用:
本文以 Module ListPages 跟 Module ListUsers 的操作说明为主。部分节选、抄录、翻译自这里跟这里
- ListPages
Module ListPages 能够选取该维基内的其他页面,并透过 %%title%%、%%content%% 等的代码将被选取页面的标题、内容呈现出来。
Module ListPages 在 SCP 写作中的用法主要是迭代格式跟随机页面,以下将先针对如何应用 Module ListPages 做出迭代页面进行说明。
ListPages 基本应用(迭代文档的技术指导)
为了方便,我们把记录着各个迭代内容的页面称为「段落页」,而利用 Module ListPages 将各个段落页的内容呈现出来的页面称为「主页」。
假设你要写的 SCP-CN-XXX,是一个 n 页迭代的文档,且标题皆为 SCP-CN-XXX。那么你会需要 n 个段落页跟一个主页。以下为建议步骤:
一、创建 SCP-CN-XXX,网址为 http://scp-wiki-cn.wikidot.com/scp-cn-xxx 。内容打上下列代码:
[[module ListPages category="fragment" parent="." limit="1" order="name" offset="@URL|0"]]
%%content%%
[[/module]]二、创建 n 个段落页,网址分别为
http://scp-wiki-cn.wikidot.com/fragment:scp-cn-xxx-01
(前略)/fragment:scp-cn-xxx-02
(前略)/fragment:scp-cn-xxx-03
…把你各个迭代的内容填进相应的段落页里。接着在各个段落页中加入连向前一/后一迭代的链接,形式如下:
[http://scp-wiki-cn.wikidot.com/scp-cn-xxx/offset/(目标迭代序号-1) (锚点文字)]※这里必须特别注意,offset/i 其实是连向第 i+1 个迭代,所以 offset/1 连向的是第二迭代,以此类推。
接着利用页面右下角的「选项」→「父页面」→填上 scp-cn-xxx。
最后在段落页上加上「段落」标签就算完成了。
标题会变化的迭代文档
最经典的 SCP-2998 除了内容随着迭代变更,其标题也会更换。如果想做到相似的效果主页请用以下代码,套用之后每个迭代的标题都会显示为该段落页的标题。
[[module CSS]]
#page-title {
display: none;
}
.meta-title {
border-bottom: solid 1px #bbbbbb;
color: #990011;
font-weight: normal;
margin: 0 0 0.6em;
padding: 0 0 0.25em;
font-size: 200%;
}
.meta-title p {
margin: 0;
}
[[/module]]
[[module ListPages category="fragment" parent="." limit="1" order="name" offset="@URL|0"]]
[[div class="meta-title"]]
%%title%%
[[/div]]
[[/module]]
[[>]]
[[module Rate]]
[[/>]]
[[module ListPages category="fragment" parent="." limit="1" order="name" offset="@URL|0"]]
%%content%%
[[/module]]随机页面
利用随机排序就能够做到随机页面的效果。只要把 module ListPages 里面的 order="name" 改成 order="random" 就可以实现。例子:SCP-CN-004、SCP-1893。
ListPages 的使用原理
页面顺序
选取页面的顺序由 order 后面指定的属性决定,以下为笔者看得懂且认为比较常用的属性:
| 属性 | 意义 |
|---|---|
| name | 页面名称,不包含分类 |
| fullname | 包含分类 |
| title | 标题 |
| created_at | 页面创建日期 |
| size | 字数 |
| rating | 评分 |
| revisions | 版本 |
| comments | 回复 |
| random | 随机。每60秒更新一次 |
在属性后空一格加上 "desc" ,如 order="name desc" 表示以名字为排序依据作降幂排列;
加上 "desc desc" 则表示升幂,如 order="name desc desc"
页面选择器
以下为笔者看得懂且认为比较常用的选择器:
| 选择器 | 意义 |
|---|---|
| category | 分类 |
| tags | 标签 |
| parent | 父页面 |
| created_by | 页面创建者 |
| rating | 评分 |
| offset | 略过的页面数 |
category 是分类,一般页面为 _default。
任何页面的全名中如果带有冒号(:),冒号前的字串就会成为该页面的分类。
举例来说,前面我们创建段落页时加上了一个「fragment:」的前缀,就是把这个页面创建在 fragment 分类之下;
而主页没有任何前缀,所以落在 _default 分类之下。
- "." 表示与当前页面同一分类
- "*" 表示全部分类
- "分类1 分类2 … 分类n"(可用空白或逗号隔开)把分类1到分类n的页面纳入选择。
- "-分类x" 排除分类x的页面
tag 是标签。
- "-" 表示没有标签
- "=" 表示与当前页面有至少一相同的标签
- "==" 表示与当前页面的标签完全相同
- "标签1 标签2 … 标签n"(可用空白或逗号隔开)具有标签1或标签2或……标签n的所有页面
- "-标签x" 排除有标签x的页面
- "+标签y" 必须有标签y的页面才会被选择
parent 是父页。
- "-" 表示没有父页
- "=" 表示与当前页面有相同父页
- "-=" 表示与当前页面有不同父页
- "." 表示当前页面为其父页
其他也可特定指明一个页面名称,选取以该页面为父页的所有页面
created_by 是页面的创建者
- "=" 表示与当前页面为同一创建者
- "-=" 表示与当前页面为不同创建者
其他可以特定指明某位用户,选取其创建的所有页面
rating 是评分
- "n" 表示正好 n 分的页面
- "=" 表示与当前页面相同评分的页面
可以用以下符号为前缀:">", "<", "=", "<=", ">=", "<>"
offset 表示略过页面
offset="0" 表示不略过任何一页,所以前述的第一迭代是 offset/0,
而第二迭代其实是把第一迭代的段落页略过之后被显示出来的第一个页面,所以第二迭代是 offset/1。
(嘛,看不懂也没关系。)
页面属性
(因为太多了,所以选我认为应该会用到的。)
前述的迭代格式中,在 module 之中包含着一串 %%content%% 其效果即是显示被选取页面的「内容」,以下介绍有相似效果的代码。
| 代码 | 显示效果 |
|---|---|
| %%created_at%% | 创建时间 |
| %%created_by%% | 创建者(纯文字) |
| %%created_by_linked%% | 创建者(含头像与链接) |
| %%title%% | 页面标题 |
| %%title_linked%% | 页面标题(链接) |
| %%content%% | 页面内容 |
| %%preview%% | 页面前两百字 |
| %%preview(n)%% | 页面前(n)字 |
| %%rating%% | 评分 |
ListPages 的其他应用
页面管理
直接上例子:
[[module ListPages order="ratingAsc" limit="100" tags=" 原创, 待删除, -被废除, -被归档, -旧页面, -管理, -作者, -草稿" rating="<-0" separate="no" perPage="100"]]
%%title_linked%% ##777|(评分: %%rating%%, 评语: %%comments%%)##
[[/module]]生
(根据历史记录,当前的作者/条目列表应该是由 Flea_ZER0 提供)
[[module ListPages separate="no" tags="+生 -中心" order="created_at"]]
%%title_linked%% by %%created_by_linked%%
@@@@
[[/module]]- ListUsers
基本上,目前除了在文章中加入读者的 wikidot 账号增加代入感,我其实想不到这东西的其他用处了。
使用时要注意一点,对于未登入的读者而言,module 方块里的东西是完全不可见的。
[[module ListUsers users="."]]
你是%%title%%,对吧?
[[/module]]更新:
https://scpsandboxcn.wikidot.com/dd123ww-42
需要我再帮你精简成一页速查版,或者直接给你现成可复制的迭代模板吗?






