跳转到内容

使用笔记/起步篇:修订间差异

添加的内容 删除的内容
マジやばくね
マジやばくね留言 | 贡献 →‎文档模板对分类树的影响:​ 跟DPL事实上无太多关系
第51行: 第51行:
分类树,则是把这些原本孤立的分类也分个类,比如各种各样的模板的分类都归属在[[:Category:模板|模板]]这个分类里面,这样就可以通过一个分类找到更多小分类。像这样把一个个点(单个分类)串成一个树/网(对分类进行分类),最终通过一个总分类就可以到达所有分类,这就是制作一个分类树的过程和结果。
分类树,则是把这些原本孤立的分类也分个类,比如各种各样的模板的分类都归属在[[:Category:模板|模板]]这个分类里面,这样就可以通过一个分类找到更多小分类。像这样把一个个点(单个分类)串成一个树/网(对分类进行分类),最终通过一个总分类就可以到达所有分类,这就是制作一个分类树的过程和结果。


文档模板为什么会影响分类树呢?这和每个文档模板的运作方式有关。我站的文档模板来自[[mcwzh:Template:Documentation|中文Minecraft Wiki]],这个文档模板使用了动态页面列表,在载入文档时可以做到“把所有分类写在模板文档里的同时正确地让模板处于模板的分类,模板文档处于模板文档的分类”,而其他的文档模板则可能需要把模板的分类写在模板代码里面,包上一层{{cd|<noinclude>}},没法做到把所有东西写在一处。因此,文档模板会影响一个wiki站点的模板/模块的文档格式,而如果你搬运的来源比较多,那么文档格式的统一就会变成一个比较难做的事情。
文档模板为什么会影响分类树呢?这和每个文档模板的运作方式有关。我站的文档模板来自[[mcwzh:Template:Documentation|中文Minecraft Wiki]],这个文档模板在载入文档时可以做到“把所有分类写在模板文档里的同时正确地让模板处于模板的分类,模板文档处于模板文档的分类”,而其他的文档模板则可能需要把模板的分类写在模板代码里面,包上一层{{cd|<noinclude>}},没法做到把所有东西写在一处。因此,文档模板会影响一个wiki站点的模板/模块的文档格式,而如果你搬运的来源比较多,那么文档格式的统一就会变成一个比较难做的事情。

==== 额外的注意事项 ====
==== 额外的注意事项 ====
就和上面说的一样,因为文档模板不一定只用于模板,所以对于模块的文档,有的文档模板要求更改Scribunto自带的系统消息才能正确显示模块文档。
就和上面说的一样,因为文档模板不一定只用于模板,所以对于模块的文档,有的文档模板要求更改Scribunto自带的系统消息才能正确显示模块文档。

2021年4月23日 (五) 11:23的版本

该页面的编辑正在进行中。 讨论

请帮助我们扩充或改进这篇文章。

在安装完MediaWiki后,事情并没有结束。如果你是一个熟练的wiki编者,你马上就会想把自己所熟悉的模板啊模块啊都搞过来。 没错,MediaWiki并不附带这些东西,都需要用户自己写(我的意思是,至少你所搬运的内容也得有人从零开始写)。

那么,该怎么做呢?

继续相关设置

啊,不是说要搬东西了吗?

不是,在这之前其实还有很多东西要做。比如,你想搬运的东西, 很可能其实需要MediaWiki自带功能以外的很多东西呢——比如动态页面列表

以下是一些常见的模板依赖项。

Scribunto

实现模块的扩展程序是Scribunto。根据官网,虽然他是个自带扩展程序,但是很可能其实并不能工作。

一些点包括Lua解释器没有可执行权限,PHP禁用函数导致MediaWiki无法新建进程以运算模块代码,以及防跨站设置open_basedir导致模块无法正常执行等。

Linux上文件的可执行权限相关问题可以查阅网络上关于chmod的相关教程,讲的比我详细。

PHP禁用函数和防跨站通常是面板导致的问题。面板安装PHP时,会“很贴心的考虑到安全问题”,把一些确实很危险的函数禁用掉,也会设置一些防跨站,但是这么做会导致模块这个需要额外可执行程序的功能无法正常使用。因此,你需要查阅PHP与面板的相关文档,让错误日志显示出来,并关闭防跨站与启用部分禁用函数。

动态页面列表

动态页面列表是一个十分强大,强大到大部分人都不会使用的扩展程序。这个扩展程序能够实现很多通过纯模块和纯Wikitext难以实现的功能。你所熟悉的wiki上,可能有一些关键模板是依赖这个扩展程序的。如果确认有的话,那么请务必装上。

模板样式与模板数据

模板样式是一个允许绕过系统消息而应用样式的扩展程序。部分wiki会把模板的样式拆分到这里面来,如果不想把这部分样式混到站点全局里面则需要。

模板数据是一个提供对模板使用的额外标记的扩展程序。这些数据对可视化编辑器的完整运作至关重要,其本身也可以在模板文档内通过机器生成出一个十分简明的参数表格。如果有模板的文档使用了它,则推荐安装。

开始搬运

第一个模板:文档模板

你要搬运的第一个模板,不是信息框,不是消息框,不是大家族模板,不是别的,就是{{Documentation}}(文档模板)。

文档模板是什么

文档模板是用于给模板/模块(当然包括它自己)提供文档的模板。有了这个模板,你就可以在不影响模板内容本身的情况下为模板提供一些使用方法等的说明。

文档模板对分类树的影响

文档模板也会影响到另一个要素:分类树。

一个wiki站点何以变得有序?分类树就是一个很重要的方式。

简单来说,分类可以把很多有相同的点的东西放在一起,比如我把所有关于格式的模板放在一个分类里面,这样我如果想对所有关乎格式的模板进行快速浏览或者修改,只需要对着这个分类自动生成的列表就好了。

但是如果分类们都是各分各的,有的时候还是很麻烦。比如,我想同时看到格式模板和通知模板以及更多种类的模板,就还得自己找找看有什么模板分类。

分类树,则是把这些原本孤立的分类也分个类,比如各种各样的模板的分类都归属在模板这个分类里面,这样就可以通过一个分类找到更多小分类。像这样把一个个点(单个分类)串成一个树/网(对分类进行分类),最终通过一个总分类就可以到达所有分类,这就是制作一个分类树的过程和结果。

文档模板为什么会影响分类树呢?这和每个文档模板的运作方式有关。我站的文档模板来自中文Minecraft Wiki,这个文档模板在载入文档时可以做到“把所有分类写在模板文档里的同时正确地让模板处于模板的分类,模板文档处于模板文档的分类”,而其他的文档模板则可能需要把模板的分类写在模板代码里面,包上一层<noinclude>,没法做到把所有东西写在一处。因此,文档模板会影响一个wiki站点的模板/模块的文档格式,而如果你搬运的来源比较多,那么文档格式的统一就会变成一个比较难做的事情。

额外的注意事项

就和上面说的一样,因为文档模板不一定只用于模板,所以对于模块的文档,有的文档模板要求更改Scribunto自带的系统消息才能正确显示模块文档。

正式搬运与可能出现的情况

对于数量不大的页面来说,你大可以点开每个页面的“编辑源代码”然后把内容复制到你的站点的同名页面里面。但是,我们有个特殊页面叫Special:Export,这么做其实更方便。使用特殊页面导出的XML文件需要在Special:Import里面上传,这样就可以把你选定内容传送到你的站点上。

如果有什么东西不对劲,那么肯定是漏了什么东西。

比如所有文字都在但是样式全丢了?如果那个站点没有TemplateStyles,那么看看MediaWiki:Common.cssMediaWiki:Mobile.cssSpecial:小工具,里面可能会有你需要的样式。如果CSS写的足够贴心,注释里面甚至会注明每一段对应哪一个模板。

比如出现红链了?有时可能说明你没有搬完(比如红链以“Template:”开头),把这些红链对应的内容也搬过来。如果是文档示例里面某个指向条目内容的,则可以考虑换个链接。如果是分类是红链,就创建这个分类。比如你搬运了文档模板,带来了一个分类文档模板,那么创建这个分类,且内容填写为这个分类对应的上一级分类,比如写入[[Category:模板]]。如果模板这个分类也没创建,那么把模板这个分类也创建了,写入上一级分类。我站在这里就把模板这个分类归到了上述所说的“总分类”,索引

比如出现Lua错误了?除了模块没搬完以外,也有可能你并没有配置好Lua。看看官网,或者搜一搜类似的情况可能会有帮助。

如果有的模板的显示正常,但是功能不运作,可能是JS没有搬运过来。小工具和上述所说的Common与Mobile都看看,如果注释写得好的话也会附带上“这个部分对应哪个模板所需的JS”。

总之,最终,第一个模板被你搬运来了——这样,其他的模板就照做即可了。

还有什么要搬运

一个wiki站点,最基础的几个模板,包括消息框(Msgbox/Mbox)、信息框(Infobox)、导航框/大家族模板(Navbox)、顶注(Hatnote)与底注(Footnote)等。这些模板的实现方式各有不同,名称也不大一样。

信息框

信息框(Infobox)是一类用于展示图片与信息点的表格状模板。比如,介绍某个城市的条目,通常在右侧会有一个框,里面会展示这个城市的某一张图片,它在其省中的位置,它的纬度和经度,它的人口数量,它的区域面积,等等。

这种模板可以让读者迅速知道这个条目的基础信息,可以提升阅读体验,也有利于条目格式。

在Fandom上,大部分信息框使用了扩展程序PortableInfobox,其模板内容会包含很多的XML标签。这种信息框必须使用这个扩展程序才能正确运作。

Cookie帮助我们提供我们的服务。通过使用我们的服务,您同意我们使用cookie。