迭代文怎么发?看中分有的几个教程都云里雾里的,好像很复杂的样子,而且弄不懂步骤,尤其是竞赛期间,大家时间都很紧张,到处问人也略感尴尬,作为代码小白该怎么办?找这里就对了。
本文作者在cn2k竞赛的时候曾经想发迭代文(只有2个迭代,虽然后来干脆没搞迭代),当时弄了半天才搞懂,但理解之后发现其实核心步骤极其简单,大部分教程往往从底层原理开始讲解,虽然干货肯定比本文要多,但不太适用于江湖救急。之前作者想录屏录一个视频教程,但因为懒+剪辑麻烦,一直没有做,就直接写文字教程了。
如果时间充裕,可以看看香草的这篇《Listpages再次入门》,因为listpages这个东西不仅仅可以用来做迭代,还可以做竞赛排名、人事页作品列表、针对不同用户显示不同内容等等五花八门的功能,如果认真学一学会大有裨益。但如果你只想先把迭代文弄好,可以先参考本文。
简单来说,含有迭代的页面的结构分为两部分:主页和迭代页。迭代页属于实际主页的子页面,也就是次级页面。
比如你需要加三个迭代,那这三个迭代的内容就要依次放在“迭代页”里。
而主页其实只是一个显示器,负责显示各个迭代里的内容。你的文的评分模块、共用版式(如果每个迭代都用这同一个版式)都要放在主页上。这就是为什么你打开有迭代的文的源代码,发现只有短短几段乱七八糟的东西。
至于子页面,它不会参与实际评分,也不会显示在网站主页的“最新发布的原创作品”里,相当于隐形的组成要素。
废话少说,下面开始实操讲解怎么在官网上发迭代文:
比如假如我想发SCP-CN-4000,需要3个迭代。(只是示范,等到真的发文的时候别搞错编号了)
第一步:先建迭代子页面
输入url,分别建立3个页面,网址后缀分别命名为:
/fragment:scp-cn-4000-1
(网址就是https://scp-wiki-cn.wikidot.com/fragment:scp-cn-4000-1,下同)
/fragment:scp-cn-4000-2
/fragment:scp-cn-4000-3
(虽然大部分教程都说要按照迭代的顺序依次创建,但其实没必要,只要这里的url按照123的数字顺序排列三个迭代就行。)
(因为迭代显示的核心——listpages模块有很多种排序方法,可以按照创建时间从早到晚排序,也可以按照页面名的数字和字母顺序排序。)
(注意,url前面必须加fragment:,冒号前面的单词表示页面的分类,可以理解为wiki方便管理的方式。fragment意为“碎片”,这种页面是不会作为正式文章显示的。)
把你每个迭代的内容依次复制粘贴到/fragment:scp-cn-4000-1、/fragment:scp-cn-4000-2、/fragment:scp-cn-4000-3里,这三个里不需要加标题和评分模块。
文中需要跳转到下一迭代的链接,代码格式应该是:
[https://scp-wiki-cn.wikidot.com/scp-cn-4000/offset/1 前往第二迭代。(这里内容可以改,下同)]
[https://scp-wiki-cn.wikidot.com/scp-cn-4000/offset/2 前往第三迭代。]
[https://scp-wiki-cn.wikidot.com/scp-cn-4000/offset/0 返回第一迭代。]
注意,offset是从/0开始算第一迭代的!!
| url后缀 | 迭代计数 |
|---|---|
| /offset/0 | 第一迭代(不加后缀也可以) |
| /offset/1 | 第二迭代 |
| /offset/2 | 第三迭代 |
| /offset/3 | 第四迭代 |
| 以此类推 | |
然后保存,给每个fragment加上“段落”这个tag。
不要在你的浏览器里关掉这三个标签页,保持开启,后面马上会用到。
第二步:再建主页
开个新标签页,输入url建立你的主页。还是以我们的cn4000为例,那url就是/scp-cn-4000。
这一步的流程和平时发文类似,需要带上评分模块,并且把标题Scp Cn 4000改对。
主页的内容,请复制以下神奇核心代码进去(我每次也都是复制的):
[[>]]
[[module Rate]]
[[/>]]
[[module ListPages category="fragment" parent="." limit="1" order="name" offset="@URL|0"]]
%%content%%
[[/module]]
[!--
--]
[[footnoteblock]]
[[div class="footer-wikiwalk-nav"]]
[[=]]
<< [[[SCP-CN-XXXW]]] | SCP-CN-XXXX | [[[SCP-CN-XXXY]]] >>
[[/=]]
[[/div]]
为了以后自己维护方便,以及别人找起来方便,最好在下面的注释区([!-- 和 --]之间的区域)附上你第一步里建的三个迭代页的网址。
如果好奇这段代码中间那段module listpages是什么原理,请参阅其它人的讲解文章,比如文首推荐的那篇。
第三步:最后连接起来
返回第一步里你开的三个迭代页。
看页面最底下的工具栏:点“+ 选项”,

然后选里面的“父页面”。

看到这个之后,在框里输入你文的主页url,

这里的例子就是scp-cn-4000。三个迭代都这么操作一下,然后全部保存。
没有问题的话,弄完回到主页,刷新一下,你的文应该能正常显示了。
总结
- 建立各个迭代需要的fragment:页,以数字标号排序,不要加评分模块;
- 确保各个迭代里有正确的跳转到下一迭代的链接;
- 保存各个子页面;
- 去建立文章主页,加入包括评分模组在内的那段神奇代码,保存;
- 返回第一步的各个迭代页,把所有迭代页的父页面都设置成刚才开的那个主页,保存;
- 收工,刷新主页验收成果。
- 给人推文的时候注意别复制成fragment页的链接了。
常见问题
好像还是没看懂……
也许是作者讲解能力有限,之前我看过后室wiki评论区有人发的一个比本文还简短的教程,可以参考一下:
如果也看不懂的话,那真的爱莫能助了。也许考虑一下让别人帮忙,或者一步步问?
我的迭代页好像跑到wiki首页“最近发布的翻译作品”里了,而且名字很奇怪。。
看看你是不是没有在url上加fragment:,fragment分类里的文不应该显示在主页。显示在翻译作品里的原因是你没有“原创”tag,当然没必要加这个tag,只需要“段落”tag即可。
显示出来怎么有上下两个并排的评分模块?
迭代页里不需要评分模块,应该删掉,只保留主页的唯一一个。否则你文的评分将无法正常计算,尤其是在竞赛期间!请务必注意。
文中去往下一迭代的链接好像走错地方了?
点开之后进入了迭代次级页面?说明你在源代码里面写错了。只有/offset/1这种格式的链接才能保证读者一直待在主页里,否则会导致当读者看到后面几个迭代,准备评分或者评论的时候无从下手,或者评到子页面去了。
我想在每个迭代用不一样的版式!
完全可以,主页不要include版式,分别在不同迭代子页面里include你想要的版式即可。这个不会冲突。
我想在沙盒里建迭代,为什么用不了?
中分沙盒存在特殊的技术限制,你必须把主页url改成collab:(合著沙盒),迭代才能正常显示。否则会遇到迭代页无法设置父页面的问题。
各个迭代页一定要加上“段落”tag吗?
段落这个tag只是方便管理,即使不加,迭代也可以用,但建议加上。
各个迭代页url地址一定要是fragment:scp-cn-xxxx-1的格式吗?
不一定,只要按照字母a-z顺序排列即可。比如,很多整k竞赛期间的文都会叫cnx000blabla,即使竞赛结束了,迭代页的url也不会改。其它网址当然也可以,但新手为了保险起见,还是这样起名字比较方便区分。
如果还有任何问题,可以在本页面留言,不过留言需要入站可能有点麻烦。日后这篇指南也许会发中分去,但因为感觉内容比较水,也不一定会发(







