如何在三分钟内弄好迭代?(新人向)
评分: +2+x

迭代文怎么发?看中分有的几个教程都云里雾里的,好像很复杂的样子,而且弄不懂步骤,尤其是竞赛期间,大家时间都很紧张,到处问人也略感尴尬,作为代码小白该怎么办?找这里就对了。

本文作者在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是什么原理,请参阅其它人的讲解文章,比如文首推荐的那篇。


第三步:最后连接起来

返回第一步里你开的三个迭代页。

看页面最底下的工具栏:点“+ 选项”,

1.png

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

2.png

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

3.png

这里的例子就是scp-cn-4000。三个迭代都这么操作一下,然后全部保存。

没有问题的话,弄完回到主页,刷新一下,你的文应该能正常显示了。

总结

  1. 建立各个迭代需要的fragment:页,以数字标号排序,不要加评分模块;
  2. 确保各个迭代里有正确的跳转到下一迭代的链接;
  3. 保存各个子页面;
  4. 去建立文章主页,加入包括评分模组在内的那段神奇代码,保存
  5. 返回第一步的各个迭代页,把所有迭代页的父页面都设置成刚才开的那个主页,保存
  6. 收工,刷新主页验收成果。
  7. 给人推文的时候注意别复制成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也不会改。其它网址当然也可以,但新手为了保险起见,还是这样起名字比较方便区分。

如果还有任何问题,可以在本页面留言,不过留言需要入站可能有点麻烦。日后这篇指南也许会发中分去,但因为感觉内容比较水,也不一定会发(

除非特别注明,本页内容采用以下授权方式: Creative Commons Attribution-ShareAlike 3.0 License