2023年政策修订增补工作正在进行中,欢迎参与!
  • Moegirl.ICU:萌娘百科流亡社群 581077156(QQ),欢迎对萌娘百科运营感到失望的编辑者加入
  • Moegirl.ICU:账号认领正在试运行,有意者请参照账号认领流程

用户:铁拳无敌孙中山/萌百进阶编辑教程

萌娘百科,万物皆可萌的百科全书!转载请标注来源页面的网页链接,并声明引自萌娘百科。内容不可商用。
跳转到导航 跳转到搜索

简介

本条目面向阅读了Help:萌娘百科编辑的快速养成方法-从入门到精通的编辑者。笔者默认读者已经理解条目的基本编辑方法。

某些内容引用自https://www.mediawiki.org/wiki/Documentation,由于该文档大量内容未汉化或汉化不完全,[1]

可能比较难以阅读。

还请读者在阅读本文后养成多看官方文档的习惯。包括mediawiki的官方文档,各种工具的官方文档。

基本原则

  • 不要问为什么没有xx,自己去写。如果不会写可以学习怎么写,即使是问别人怎么写也好于要求别人来替你做这件事。
  • 有效率的提问。提问前先用Google,mediawiki官方文档等搜索一遍,再看看类似条目的代码尝试理解,无法解决再提问。
  • 如果你不确定你在做什么,使用沙盒。
  • 不要抄袭。将萌娘百科内容与百度百科、维基百科等网站内容相互替换(Copy)属版权侵犯。详见萌娘百科:版权信息。复制他人的代码以实现类似的功能而不是复制内容,不算抄袭。

进阶教程

使用模板

https://www.mediawiki.org/wiki/Help:Templates
https://www.mediawiki.org/wiki/Help:Templates/zh
笔者利用C#写了一个简单的工具,可以根据一个模板的代码自动生成调用模板的代码。你只需要复制模板代码粘贴,即可产生调用模板的代码。工具会使用注释标注带有默认值的参数。 待补充

创建模板

您可以在地址栏输入zh.moegirl.org/Template:templatename以创建名为templatename的模板。

在需要多次使用的固定结构方面,创建一个模板好于在不同地方反复复制代码。前者还可保证信息的同步性。

如果显示无法更新,请使用强刷新功能。

例如创建模板Template:Example,里面加入一系列代码(可以是其他的模板,而且不会递归引用或循环引用),就可以在其他地方直接使用{{Example}}调用模板。

固定参数

您可能在看条目时看到:带有发色、瞳色这些可以改变的属性的表格是怎么制作的呢?难道需要每次复制一次代码吗?

答案是否定的,利用模板的参数可以有效的解决这个问题。参数是在调用模板时可以填上去的数据。参数也会被作为wiki文本使用,所以参数里也可以正常使用各种语法。

参数不需要宣告,可以直接在模板内以{{{parametername}}}的方法使用。

例如我们要制作一个日期的模板: {{{年}}}年,{{{月}}}月{{{日}}}日

调用这个模板的方法: {{日期 |年= |月= |日= }}

举个例子,

{{日期 |年=1919 |月=8 |日=10 }}

的效果就是

1919年,8月10日

可选参数

如果你认为有些参数在不填写时需要一个默认值,你可以这么做:

{{{参数名|默认值}}}

这样在调用模板时可以不写|参数名=xxx这个结构,直接可以使用默认值代替。

有时候在这些情况里使用竖线|会导致解析程序出问题,此时可以用 {{!}}代替。

if条件句

如果在可选参数外面需要加一些代码,而在默认值时又完全不需要这些代码,在这种情形下可使用if条件句。

if条件句的格式如下: {{#if: {{{需要检验的参数|}}} | 可选参数存在时的值 |可选参数不存在时的值 }}

范例:你需要建立一个带有图片的模板。图片的宽度被限制为300px,因此你必须在代表图片文件名的参数外面加上一些附加信息。不存在图片时,如果用上面的默认值语法,会看到一串难看的红色链接指向不存在的文件。此时你可以这么写:

{{#if: {{{图片|}}} | [[File:{{{图片|}}}{{!}}300px]] | 缺乏图片信息 }}

表格与CSS

表格往往是最复杂也是最令人头疼的部分。在此笔者推荐一种方法可以让您以较快的速度创建表格模板。

详细信息请参考:https://www.mediawiki.org/wiki/Help:Tables

  • Step 1 创建表格基本框架

请使用表格生成器 建立表格的基本框架。

您可以利用这个工具决定表格有多少行,多少列,还可以合并单元格,设置表格文本,调整并预览单元格颜色。

  • Step 2 设置文本和参数

在表格的对应单元格内填入文本和参数。请随时保存和预览,以免丢失工作进度或破坏工作进度。

  • Step 3 通过CSS美化表格

如果想要调整整个表格,就在第一个|以后输入css;如果想调整单个单元格,就在单元格所在的代码里输入css。

写法是: style="参数1名:参数1值; 参数2名:参数2值;" ,更多参数也可,以此类推。

https://cssreference.io/ 这个网站可以提供大量css相关信息。不再赘述,请自行查阅。

具体用法可查阅和参考现有模板。复制并更改代码也是一种有效的方式。

撰写doc

在地址栏输入zh.moegirl.org/Template:模板名/doc,即可创建模板的文档。

文档必须条理清晰,如果是带有参数的模板应详细说明各参数的用法以及编辑规范并附一个例子。

创建后在原模版里加入<includeonly> </includeonly>把模板代码包围可以让模板页不显示它们而仅在调用时显示。

用<noinclude> </noinclude>包围调用模板时不出现的信息。例如{{Documentation}},可以自动显示文档页的内容。

使用HTML标签

<br>换行。

<nowiki> 这种代码的用法显而易见,是防止解析器把标签包围的内容解析为wikitext。点击查看本页面的代码即可知道这是多么有用。</nowiki>

<div style=" "></div>可以对包围的代码使用一系列css。注意,这遵循先进先出原则(div入栈,/div出栈,原谅笔者确实想不到如何用栈stack以外的术语描述div的配对方法)。

除此之外还有许多的标签。您可以适度的尝试和使用,但是不要把条目写的过于花哨,一切应以简洁和优化用户体验为目标。

使用代码提高工作效率

查找与替换

使用vscode等文本编辑器的这一功能可以大幅减少重复操作。

正则表达式

如果看到了上一个编辑者使用过时的模板或者批量使用看似不符合强迫症的代码,您应该怎么做呢?

https://regexr.com/ 您可以用方便的创建和使用正则表达式,正则表达式(regular expression,regex)可以对特定类型的字符串进行查找替换,而且效率相当高。

https://www.jb51.net/tools/zhengze.html 这个教程可以让你在几小时内学会正则表达式的基本语法。

回到刚才的案例,依靠直觉和刚才学到的知识写一个正则表达式以匹配看不顺眼的代码,批量替换就可以了。

使用编程语言

你可以通过调用api的方式批量执行一些操作。为了这么做,你至少需要掌握一门编程语言。

选择哪一门语言好是一个会引起宗教战争的问题,在此就不赘述了。如果你以前有某种语言的基础,找一找有没有封装http相关功能的库,例如c#的HttpRequest类。

豆知识

发现什么补充什么,不定期更新。

“施工中”模板

可以在编辑条目开始时放上这个模板,减少可能的编辑冲突,编辑完了再删掉。

强刷新

作用效果相当于用purge清除缓存。参见 https://www.mediawiki.org/wiki/Manual:Purge

点击用户头像所在工具栏,最右边的按钮即可。

例如,如果您需要在用户页刷新您的编辑量使其同步显示,即可使用这个功能。

利用api获取wikitext

使用图床和外链图片

段落上的“编辑”按钮

有时你会和你自己产生编辑冲突,为什么呢?这一般是因为你在编辑条目后使用段落上的编辑按钮所致。此时wikitext不能及时更新。

解决它的办法还是强刷新。没有什么是强刷新无法解决的。

浏览器问题

某些浏览器可能会出现各种显示bug,chrome是最推荐的浏览器。