WIKI编辑教程
阅读
2021-01-06更新
最新编辑:游山也
阅读:
更新日期:2021-01-06
最新编辑:游山也
基础编辑
修改页面
- 如果想要编辑一个已经存在的页面,请点击到页面右上角的WIKI功能按钮,在弹出的下拉菜单中点击编辑菜单项,也可以按下Ctrl+Shift+E进入源代码编辑框,在源代码编辑框内可按下Ctrl+F,使用编辑框搜索功能定位到你要修改的位置,进行修改。
- 如果想要编辑页面内的某一个章节,可点击子标题旁的[编辑]按钮编辑页面内的指定章节。
创建页面
- 在WIKI页面右上方或上方的本WIKI中搜索中输入所要创建的页面名称,此时若不存在页面名称的子页面,在搜索结果页面中会提示在本Wiki上新建名为“页面名称”的页面!,点击页面名称后进行攻略编辑。
- 也可以在浏览器地址栏输入https://wiki.biligame.com/yanyu/页面名称,再点击页面右上角的WIKI功能按钮,在弹出的下拉菜单中点击创建菜单项或按下Ctrl+Shift+E进入源代码编辑框后进行攻略编辑。
- 当某个已经存在的页面中,包含指向某个不存在的页面的链接时,你也可以通过点击这个链接来创建页面。
基础编辑
章节
你输入的内容 | 你看到的显示 |
---|---|
==二级标题== 一级标题是页面名称,所以请从二级标题开始用起。 有四个以上标题的页面会自动生成一个目录。 这个自动生成的目录可以通过书写<code>__NOTOC__</code>来隐藏。 ===三级标题=== 输入更多的“等于号”(=)可以创建更多下一级标题。 ====四级标题==== 请不要跳跃标题等级,例如二级标题之下直接就是四级标题,而没有三级标题。 =====五級标题===== |
|
行与段落
你输入的内容 | 你看到的显示 |
---|---|
另起一行并不会导致换行, 而只是会增加一个空格。 空一个空行虽然可以换行, 但其实是开始了一个新的段落。 如果你对空一个空行产生的行间距不满, 你可以空两个空行<del>,或者空更多行</del>。 |
另起一行并不会导致换行, 而只是会增加一个空格。 空一个空行虽然可以换行, 但其实是开始了一个新的段落。
|
另一种换行方式是使用<code><br/></code>标记来换行。<br/> 这样换行后的内容仍在'''同一段落'''内。 |
另一种换行方式是使用 |
* 星号(*)其实是符号列表。 ** 星号(*)会在文章内容前生成○, *** 下级星号(*)会生成□。 **** 这很好用。 *但糟糕的是一些人通过符号列表来对文章换行。 ** '''请务必不要这么做!''' |
|
# 井号(#)是数字列表。 ## <del>曾经</del>每一行前面都有一个数字序号。 ##* 甚至可以将数字列表与符号列表混用。 ##*# <del>然并卵。</del> 同样,'''请勿用数字列表来换行和缩进!''' |
同样,请勿用数字列表来换行和缩进! |
: 冒号(:)最大的贡献是 :: 缩进! ::: 可以缩进到让你满意。 '''请用冒号(:)来缩进''',而不是用星号(*)或井号(#)! |
请用冒号(:)来缩进,而不是用星号(*)或井号(#)! |
如果一些行的开始是空格, 那么这些行将被'''预格式化''', 不会被换行。 通常是用来显示一段代码之类的东西。 也可以使用<pre>...</pre>。 |
如果一些行的开始是空格, 那么这些行将被预格式化, 不会被换行。 通常是用来显示一段代码之类的东西。 也可以使用<pre>...</pre>。 |
我以前和你一样也是个江湖大侠 ---- 直到我的膝盖中了一箭 |
我以前和你一样也是个江湖大侠 直到我的膝盖中了一箭 |
文字样式
你输入的内容 | 你看到的显示 |
---|---|
''斜体'' '''粗体''' '''''粗斜体''''' |
斜体 粗体 粗斜体 |
<b>粗体</b> <i>斜体</i> <strong>强调</strong> <s>划掉</s> <del>删除线</del> <kbd>键盘输入</kbd> <code>代码</code> <big>大字号</big> <small>小字号</small> |
粗体 斜体 强调
键盘输入
大字号 小字号 |
<nowiki>不进行''wiki''解析</nowiki> |
不进行''wiki''解析 |
<font color="red">应用CSS样式</font> |
应用CSS样式 |
<div style="text-align:left">居左</div> <div style="text-align:right">居右</div> <div style="text-align:center">居中</div> |
居左
居右
居中
|
文字修饰
文字颜色
你输入的内容 | 你看到的显示 |
---|---|
|
大家都是欧洲人... 大家都是欧洲人... 大家都是欧洲人... 大家都是欧洲人... 大家都是欧洲人... 大家都是欧洲人... |
|
大家都是欧洲人... |
文字背景
你输入的内容 | 你看到的显示 |
---|---|
|
哇哇哇... 哇哇哇... 哇哇哇... 哇哇哇... 哇哇哇... |
|
啊啊啊啊...
啊啊啊啊...
啊啊啊啊...
啊啊啊啊...
|
链接
你输入的内容 | 你看到的显示 |
---|---|
[[天刀门]]是一个站内链接。 也可以修改链接的显示文字,比如[[天刀门|天刀无双!]]。 |
天刀门是一个站内链接。 也可以修改链接的显示文字,比如天刀无双!。 |
[[金古梁黄温]]是一个指向不存在页面的链接。 |
金古梁黄温是一个指向不存在页面的链接。 |
其他命名空间的页面的链接,比如[[特殊:上传文件]]或[[文件:活脉法.jpg]] |
其他命名空间的页面的链接,比如特殊:上传文件或 |
站外链接: * https://tieba.baidu.com/f?kw=%E7%83%9F%E9%9B%A8%E6%B1%9F%E6%B9%96&ie=utf-8 * [https://tieba.baidu.com/f?kw=%E7%83%9F%E9%9B%A8%E6%B1%9F%E6%B9%96&ie=utf-8] * [https://tieba.baidu.com/f?kw=%E7%83%9F%E9%9B%A8%E6%B1%9F%E6%B9%96&ie=utf-8 烟雨江湖贴吧] |
站外链接: |
引用
- 说明:文章引用内容,对应内容外链。
- 用途:适用于页面部分内容引用外部内容(如一段话,引用了一篇文章),使你的文章有参考资料可查,内容更具可信度。
- 写法:<ref>[链接 链接页面名]</ref>
- 需要在页面最底部添加标题栏==外链与注释==。
插入图片
你输入的内容 | 你看到的显示 |
---|---|
[[文件:活脉法.jpg]] |
- 效果说明:普通插入
你输入的内容 | 你看到的显示 |
---|---|
[[文件:活脉法.jpg|50px]] |
- 效果说明:限制宽度插入
你输入的内容 | 你看到的显示 |
---|---|
[[文件:活脉法.jpg|50px|center|link=活脉法]] [[文件:活脉法.jpg|50px|居中|link=活脉法]] |
- 效果说明:居中、链接到页面活脉法
你输入的内容 | 你看到的显示 |
---|---|
[[文件:活脉法.jpg|frame|50px|right]] [[文件:活脉法.jpg|边框|50px|右]] |
- 效果说明:加边框、居右
你输入的内容 | 你看到的显示 |
---|---|
[[文件:活脉法.jpg|thumb|right|活脉法]] [[文件:活脉法.jpg|缩略图|右|活脉法]] |
- 效果说明:加边框、居右、加入说明文字“活脉法”
- 你可以在源代码编辑器中蓝框区域拖入图片上传,也可在上传文件中上传文件,或者点击文件列表来查看已有的图片。
- 详细可以参考维基百科-帮助:图像和MediaWiki-帮助:图像
表格编辑
{| class="wikitable" |- ! 烟 ! 雨 ! 江 |- | 湖 | WI | KI |- | 攻 | 略 | 组 |}
提交编辑后,表格显示为:
烟 | 雨 | 江 |
---|---|---|
湖 | WI | KI |
攻 | 略 | 组 |
- 其中
{|
开头,|}
结尾,!
为表头,|
为单元格,|-
表示表格行的开始。
- 详细可以参考添加表格
合并单元格
- 合并行(colspan="行数"|)
{| class="wikitable" |- ! colspan="4"|试问门派哪家强 |- | 天 | 刀 | 无 | 双 |}
提交编辑后,表格显示为:
试问门派哪家强 | |||
---|---|---|---|
天 | 刀 | 无 | 双 |
- 合并列(rowspan="列数"|)
{| class="wikitable" |- ! rowspan="4"|试问门派哪家强 | 天 |- | 刀 |- | 无 |- | 双 |}
提交编辑后,表格显示为:
试问门派哪家强 | 天 |
---|---|
刀 | |
无 | |
双 |
可折叠表格
表格折叠使用方法 |
---|
|
添加表格样式
{| class="wikitable" style="color:white" |- ! 烟 ! 雨 ! 江 |- | 湖 | WI | KI |- | 攻 | 略 | 组 |}
提交编辑后,表格显示为:(更改了全体表格字体颜色)
烟 | 雨 | 江 |
---|---|---|
湖 | WI | KI |
攻 | 略 | 组 |
{| class="wikitable" |- ! style="color:white"|烟 ! 雨 ! 江 |- | 湖 | WI | KI |- | 攻 | 略 | 组 |}
提交编辑后,表格显示为:(更改了单格字体颜色)
烟 | 雨 | 江 |
---|---|---|
湖 | WI | KI |
攻 | 略 | 组 |
- style内可填写更多CSS样式,例如background(背景色)、margin、padding(内外边距)等
进阶编辑
基础模板
- 打开文章源代码页面,下方会显示该页面使用的模板(如果该页面有使用模板)
- 如活动日历页面用到了以下模板
- 如下所述,是一个设计好模板,将需要填充的数据,以{{{XXX}}}的字样代替
- 在其它页面使用该模板时,用{{模板名|XXX|XXX|XXX}}的方式填写数据。
- 效果如下
- 在使用编辑功能时,快速插入下菜单可以看到文本格式、基础模板、文章模板、表格,里面包含了能用到的绝大多数模板,不熟悉的同学可以多多练手,以下是详细功能说明
面包屑
你输入的内容 | 你看到的显示 |
---|---|
{{面包屑|游戏攻略}} |
|
- 用于文章头部,生成一个导航链接,推荐使用,详细查看模板:面包屑
黑幕
你输入的内容 | 你看到的显示 |
---|---|
{{黑幕|天刀无双!}} |
天刀无双! |
- 详细查看模板:黑幕
悬浮框
你输入的内容 | 你看到的显示 |
---|---|
{{悬浮框|玄不救非|氪不改命}} |
玄不救非 |
- 详细查看模板:悬浮框
- 此模板手机端无效
划掉重说
你输入的内容 | 你看到的显示 |
---|---|
{{划掉重说|玄不救非|氪不改命}} |
- 详细查看模板:划掉重说
注音
你输入的内容 | 你看到的显示 |
---|---|
{{注音|烟雨江湖|yān yǔ jiāng hú}} |
- 模板:注音有更详细的使用说明,这里不再赘述
马赛克
你输入的内容 | 你看到的显示 |
---|---|
{{马赛克|眼前的黑不是黑|<!--模糊度(默认10)-->}} |
眼前的黑不是黑 |
- 模板:马赛克有更详细的使用说明,这里不再赘述
B站视频
你输入的内容 | 你看到的显示 |
---|---|
{{B站视频|712898792}} |
- 模板:B站视频有更详细的使用说明,这里不再赘述
计时
你输入的内容 | 你看到的显示 |
---|---|
{{计时|2019|10|30|显示时间=烟雨江湖安卓公测|禁用时=是|禁用分=是|禁用秒=是}} |
- 模板:计时有更详细的使用说明,这里不再赘述
提示
你输入的内容 | 你看到的显示 |
---|---|
{{提示|玄不救非}} |
玄不救非
|
- 详细查看模板:提示
注意
你输入的内容 | 你看到的显示 |
---|---|
{{注意|氪不改命}} |
氪不改命
|
- 详细查看模板:注意
警告
你输入的内容 | 你看到的显示 |
---|---|
{{警告|肝帝永生}} |
肝帝永生
|
- 详细查看模板:警告
折叠面板
你输入的内容 | 你看到的显示 |
---|---|
{{折叠面板|开始|主框=1}} {{折叠面板|标题=天刀无双|选项=1|主框=1|样式=info|展开=是}} 不存在的 {{折叠面板|内容结束}} {{折叠面板|标题=苍狼无敌|选项=2|主框=1|样式=info}} 不存在的 {{折叠面板|内容结束}} {{折叠面板|结束}} |
- 这里一定一定注意标题与开始的主框参数必须一致,选项不能相同
- 模板:折叠面板有更详细的使用说明,这里不再赘述
选项卡面板
你输入的内容 | 你看到的显示 |
---|---|
{{#invoke: 选项卡面板| 开始 | 样式=success | 标签样式=font-weight:bolder; | 标签1=天 | 标签2=刀 | 标签3=无 | 标签4=双 | 选中=1 | ID1=Tian | ID2=Dao | ID3=Wu | ID4=Shuang }} {{#invoke:选项卡面板|开始内容|1| ID=Tian|选中=1}} 不 {{#invoke:选项卡面板|开始内容|2| ID=Dao}} 存 {{#invoke:选项卡面板|开始内容|3| ID=Wu}} 在 {{#invoke:选项卡面板|开始内容|4| ID=Shuang}} 的 {{#invoke:选项卡面板|结束}} |
不 存 在 的 |
- 这里一定一定注意ID不能相同
- 模块:选项卡面板有更详细的使用说明,这里不再赘述
引用
你输入的内容 | 你看到的显示 |
---|---|
<blockquote>我没说过<br/>——鲁迅</blockquote> |
|
Bili图标
你输入的内容 | 你看到的显示 |
---|---|
{{bili图标}} |
页面模板
文章模板
{{文章模板 |文章名=(必填) |作者=(选填) |更新时间=(选填) |攻略前缀=(选填公告、新闻、投票、攻略、视频攻略、置顶、同人、文章、漫画、视频、副本、资源) |AV号=(攻略前缀为【视频攻略】时使用,其他可不填) }}
活动日历
你输入的内容 | 你看到的显示 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
{{:活动日历}} |
|
- 当前只在首页页面中用到了模板:活动日历,该模板用于标注活动的起始截止日期,修改活动前往MediaWiki:Huodongrili.js页面
武学模板
{{武学 |武学名称=(必填) |品阶=(选填【基础武学】、【一般武学】、【进阶武学】、【上乘武学】、【镇派武学】) |所属=(选填【少林寺】、【天刀门】、【太乙教】、【苍狼门】、【泠月宫】、【江湖武学】等) |大分类=(选填【套路】、【内功】、【轻功】) |小分类=(选填【拳法】、【剑法】、【刀法】、【棍法】、【混元】、【阳】、【阴】、【轻功】) |所需修为=(仅填写数字) |攻击=(仅套路需填写) |招架=(仅套路需填写) |气血=(仅内功需填写) |聚气=(仅内功需填写) |速度=(仅轻功需填写) |闪避=(仅轻功需填写) |距离=(仅轻功需填写) |描述=(非必填) |武学招式1=(填写招式名称,招式图片要求png格式,图片名称要求{{{武学名称}}}-{{{招式名称}}}) |武学招式1类型=(选填【主动招式】、【被动招式】) |武学招式1描述=(非必填) |武学招式1内力消耗=(仅填写数字) |武学招式1调息时间=(仅填写数字,若调息时间为∞,则填写99) |武学招式1影响因素=(非必填) |武学招式1领悟重数=(仅填写数字) |武学招式2=(若有则同上) |武学招式2类型=(若有则同上) |武学招式2描述=(若有则同上) |武学招式2内力消耗=(若有则同上) |武学招式2调息时间=(若有则同上) |武学招式2影响因素=(若有则同上) |武学招式2领悟重数=(若有则同上) |武学招式3=(若有则同上) |武学招式3类型=(若有则同上) |武学招式3描述=(若有则同上) |武学招式3内力消耗=(若有则同上) |武学招式3调息时间=(若有则同上) |武学招式3影响因素=(若有则同上) |武学招式3领悟重数=(若有则同上) |武学招式4=(若有则同上) |武学招式4类型=(若有则同上) |武学招式4描述=(若有则同上) |武学招式4内力消耗=(若有则同上) |武学招式4调息时间=(若有则同上) |武学招式4影响因素=(若有则同上) |武学招式4领悟重数=(若有则同上) |武学招式5=(若有则同上) |武学招式5类型=(若有则同上) |武学招式5描述=(若有则同上) |武学招式5内力消耗=(若有则同上) |武学招式5调息时间=(若有则同上) |武学招式5影响因素=(若有则同上) |武学招式5领悟重数=(若有则同上) |武学招式6=(若有则同上) |武学招式6类型=(若有则同上) |武学招式6描述=(若有则同上) |武学招式6内力消耗=(若有则同上) |武学招式6调息时间=(若有则同上) |武学招式6影响因素=(若有则同上) |武学招式6领悟重数=(若有则同上) |武学招式7=(若有则同上) |武学招式7类型=(若有则同上) |武学招式7描述=(若有则同上) |武学招式7内力消耗=(若有则同上) |武学招式7调息时间=(若有则同上) |武学招式7影响因素=(若有则同上) |武学招式7领悟重数=(若有则同上) |武学招式8=(若有则同上) |武学招式8类型=(若有则同上) |武学招式8描述=(若有则同上) |武学招式8内力消耗=(若有则同上) |武学招式8调息时间=(若有则同上) |武学招式8影响因素=(若有则同上) |武学招式8领悟重数=(若有则同上) |武学招式9=(若有则同上) |武学招式9类型=(若有则同上) |武学招式9描述=(若有则同上) |武学招式9内力消耗=(若有则同上) |武学招式9调息时间=(若有则同上) |武学招式9影响因素=(若有则同上) |武学招式9领悟重数=(若有则同上) |武学招式10=(若有则同上) |武学招式10类型=(若有则同上) |武学招式10描述=(若有则同上) |武学招式10内力消耗=(若有则同上) |武学招式10调息时间=(若有则同上) |武学招式10影响因素=(若有则同上) |武学招式10领悟重数=(若有则同上) |获取方式=(非必填,若多种途径获取则用中文分号隔开) }}
物品模板
{{物品 |物品名称= |图片名称=(可为空,默认为:物品·{{{物品名称}}},若有多个相同名称的物品,则需填写此项,图片类型要求png,图片名称要求物品·{{{自定义名称}}},上传完图片后,此处只需填写{{{自定义名称}}}即可) |物品分类=(选填【材料】、【丹药】、【酒食】、【秘籍】、【杂项】、【秘籍,武器图样】、【秘籍,护腕图样】、【秘籍,腰带图样】、【秘籍,内甲图样】、【秘籍,戒指图样】、【秘籍,挂坠图样】) |描述= |获取方式=(可为空,多途径获取用中文分号隔开) |秘籍所需修为=(可为空) |图样等级=(可为空) |图样属性1=(可为空) |图样属性2=(可为空) |图样限制=(可为空,选填【主角】) |酒食备注=(可为空) }}
装备模板
{{装备 |装备名称= |图片名称=(图片名称与网页名称统一,例:图片名为:松木刀【上传图片名称格式为:装备·松木刀】,网页名称为:装备/松木刀) |装备种类=(选填【刀类】、【剑类】、【徒手】、【长兵】、【内甲】、【腰部】、【腕部】、【戒指】、【挂件】) |装备品级=(可为空,默认为【普通】,选填【橙装】) |装备等级=(填写装备穿戴等级) |橙装归属=(可为空,选填【苍狼门】、【太乙教】、【泠月宫】、【天刀门】、【少林寺】、【拘魂阁】、【六扇门】、【墨门遗迹】等) |穿戴需求=(可为空,选填【男性】、【主角】) |装备属性1=(不可为空) |装备属性2=(不可为空) |附加属性1=(可为空) |附加属性1效果=(可为空,若有则填写文字,例如【破招架】) |附加属性2=(可为空) |附加属性2效果=(可为空,若有则填写文字,例如【破招架】) |附加属性3=(可为空) |附加属性3效果=(可为空,若有则填写文字,例如【破招架】) |附加属性4=(可为空) |附加属性4效果=(可为空,若有则填写文字,例如【破招架】) |特殊效果=(可为空) |装备描述=(可为空) |获取方式=(可为空,多种获取途径用中文分号隔开) }}
伙伴模板
{{伙伴 |姓名= |性别= |背景= |攻击= |防御= |气血= |聚气= |命中= |招架= |速度= |躲闪= |真元= |韧性= |初始套路= |初始内功= |初始轻功= |拳脚= |剑术= |刀术= |枪棍= |轻功= |内功= |原画=(填写图片名称+后缀) |臂力资质= |根骨资质= |身法资质= |内息资质= |天赋1= |天赋1效果= |天赋2= |天赋2效果= |天赋3= |天赋3效果= }}
商品模板
{{商品|商品名称|商品价格|商品数量(填写0即为唯一)|商品分类(限制填写装扮or装备,若不填写则默认为物品)}}
高级编辑
SMW
SMW简介
- Semantic MediaWiki(SMW)是一个免费、开源的MediaWiki扩展。它可以帮助wiki进行搜索、组织、标记、浏览、计算和共享数据。传统wiki只包含文本信息,计算机无法对其进行理解和计算。SMW为wiki添加了语义注释(Semantic Annotations)数据,从而使wiki具有数据库的功能。
- SMW首次发布于2005年,目前有超过十名开发者,数以百计的站点使用了SMW。另外,目前已有许多相关扩展可以扩充SMW的编辑、显示和浏览数据的功能。Semantic MediaWiki有时也指整个SMW和其相关扩展系列。
前言
- BWIKI提倡大家多使用SMW语义来处理一些数据向的内容。
机制
- 语义注释函数:通过语义注释,给页面定义属性,给属性赋值。例如:#set等(其他略)
- 行内查询函数:主要用途为检索所需的页面,并显示所需的属性值。例如:#ask,#show
- 其他功能性函数:提供一些便利功能的,例如:#info等(其他略)
- 主要使用逻辑:使用语义注释函数(#set)在页面上储存数据,然后使用行内查询函数(#ask、#show)按照一定的定义和分类进行行内查询,最后输出结果。分页面储存便于多人协作,但同时也增加了维护的总量。
属性与类型
属性和类型是在SMW中输入语义数据的基本方式。
属性可以认为是“页面数据的分类”。
它们可以用很简单的方式来标注,语法格式与MediaWiki的链接很类似:
[[属性名::属性值]]
上面这个语句给名称为“属性名”的属性定义了“属性值”。写了这个语句的页面将只会显示“属性值”,而不会把这个标注显示出来。
属性名
属性命名十分重要。属性名称需要避免出现歧义和混乱。
这里是一个简单的命名属性的例子:
33是一个[[种族::机娘]]
- 不要使用数据类型的名字
- 数据类型的名字见特殊:类型,关于数据类型的详细介绍见数据类型。
- 不要使用保留符号
::
(半角双冒号):单个冒号则不会有问题。-
(连字符):连字符不可作为首字母,因为它是反向属性的操作符号。.
(点):用于链接级联属性。|
(管道符)#
(数字符):在页面类型中,用于声明子对象。
声明属性
Semantic MediaWiki内置了若干数据类型,用户可以根据需要为属性选择合适的数据类型。
为了能为属性定义类型,SMW还内置了一个特殊属性——属性:设有类型(Has type)。
这里举22的例子。对于她的“发色”属性,我们需要定义它为文字类型。
只需到属性:发色页面,添加下面这行代码:
[[has type::文本型]]
SMW有内置若干种类似“设有类型”这样的特殊属性,不论这些特殊属性是否有属性页面,它们都能起作用,并且与一般的属性作用不同。
- 数据类型在属性判定时十分重要。
- 首先,数据类型决定工具如何处理给出的属性值。比如如何显示这些值、查询时如何排序这些值。
- 其次,数据类型能够帮助工具理解哪些值是相等的,比如“1234567”、“1,234,567”、“1.234567e6”都表示同一个数值。
- 最后,一些数据类型具有特殊的行为,在下方有详细描述。
- 由于以上原因,每个属性都应被定义合适的数据类型。
之前段落内举的例子之所以没有特别声明数据类型(如22的“发色”),是因为这个属性使用的就是默认数据类型页面,显示为一个链接。
但即使页面类型是默认类型,最好也在属性页上声明一下,以免在万一更改了默认类型时出现混淆。
SMW管理员可以改变默认类型。
数据类型的声明与显示效果如下:
语义注释函数:#set
- 语法格式
{{#set: |属性名1=值1,值2|+sep=, |属性名2=值1;值2;值3;|+sep=; |属性名3=值1 |属性名3=值2 |属性名4=值1|值2|值3 |属性名5=值1 … }}
- 语法解释:
- 允许单行声明单个属性名的单个属性值或多个属性值。例如例子中的属性名5和属性名1/2/4的写法
- 允许多行声明单个属性名的多个属性值。例如例子中过的属性名3的写法
|+sep=
用来声明单行属性名多个属性值中间的分隔符。如果不通过|+sep=
来声明,默认使用|
为分隔符。例如例子中的属性名1用|+sep=
声明了多个属性值之间的分隔符为,
;属性名2中用|+sep=
声明了多个属性值之间的分隔符为;
;而属性名4直接使用了默认分隔符|
来分割多个属性值。- 查看声明是否生效
- BWIKI页面上的"WIKI功能按钮"中点击浏览属性按钮,就可以看到该页面已经声明的属性有哪些。
行内查询函数:#ask
解析函数#ask用于基本行内查询,可以指定查询的条件,并按照给定的格式显示。
此处仅说明函数的结构,关于查询条件的写法,见检索页面;关于显示格式的写法,见显示信息与结果格式。
下面是一个简单的使用#ask函数的例子:
{{#ask:[[分类:你想检索的分类]] [[属性::属性值(用于缩小查询范围)]] |?你想查询的属性1(在展示模板中为{{{2}}}) |?你想查询的属性2(在展示模板中为{{{3}}}) |link=none |sort=你想用于排序的属性 |order=desc |template=最后展示用的模板 |headers=hide |format=template |limit=1000 }}
- 查询所有属性必须在分类所属的页面有声明(set)
- 查询条件放在
#ask:
的后面,作为第一个参数,其他控制显示的参数用管道符|
隔开。 - 虽然并不需要严格按照上方那样写,但分行书写更易读,对其他编辑者更友好。
- 在日常编写中,不论是本功能还是其他模板,每个参数起一行,每行从管道符
|
开始,是一个好习惯。
输出结果式
SMW为大家提供了一个用于查询和输出的特殊页面:特殊:询问(特殊:特殊页面里寻找语义搜索),提供多种输出方式。
- 设定查询条件:
- 设定输出的属性:这里在特殊页面上需要使用
?属性名
的用法,如果有弹出属性勾选之后?
会消失 - 设定参数:输出结果根据选择的结果式不同而需要设定不同的参数,这个结果式会在代码里以
format=
形式展示。一般为了自由输出样式大家会采用format=template
也就是以模板输出参数的意思。 - 使用输出的代码:
变量
前言
变量可以返回关于当前页面、WIKI站点或日期的信息。变量的语法与模板类似。其中标记为“[高开销]”的变量会被软件记录,且在一个页面中可使用的总数会被限制。
如果某一模板名与变量名重复,软件会自动将其解释为变量(因此若要包含Template:PAGENAME,页面中需要写作{{Template:PAGENAME}})。在某些情况下,加入参数会强制软件将变量视作一个模板,如{{CURRENTDAYNAME|x}}将会包含Template:CURRENTDAYNAME,而不是变量。
语法:字符被两个大括号括起来,所有字母大写,例如{{FOO}}。用法与模板类似。
日期和时间
变量 | 输出 | 描述 | 版本 |
---|---|---|---|
年 | |||
{{CURRENTYEAR}} | 2024 | 年 | |
月 | |||
{{CURRENTMONTH}} | 11 | 月(补足前导的0) | |
{{CURRENTMONTH1}} | 11 | 月(无前导的0) | |
{{CURRENTMONTHNAME}} | 11月 | 月份名称 | |
{{CURRENTMONTHNAMEGEN}} | 11月 | 月份(属格) | |
{{CURRENTMONTHABBREV}} | 11月 | 月份(缩写) | ≥1.5 |
日 | |||
{{CURRENTDAY}} | 21 | 今天是几日(不补齐) | |
{{CURRENTDAY2}} | 21 | 今天是几日(以0补齐) | ≥1.6 |
{{CURRENTDOW}} | 4 | 周内一日(无填充),0(即星期日)到6(即星期六) | |
{{CURRENTDAYNAME}} | 星期四 | 周内一日(名称) | |
时间 | |||
{{CURRENTTIME}} | 01:55 | 时间(24小时制HH:mm的格式) | |
{{CURRENTHOUR}} | 01 | 时间(24小时制含前导0的数字) | |
其他 | |||
{{CURRENTWEEK}} | 47 | 第几周(数字) | |
{{CURRENTTIMESTAMP}} | 20241121015516 | YYYYMMDDHHmmss时间戳 | ≥1.7 |
- 如下变量和上列变量功能相同,但是使用的是所在服务器的时间或者$wgLocaltimezone。
{{LOCALYEAR}}
{{LOCALMONTH}}
{{LOCALMONTH1}}
{{LOCALMONTHNAME}}
{{LOCALMONTHNAMEGEN}}
{{LOCALMONTHABBREV}}
{{LOCALDAY}}
{{LOCALDAY2}}
{{LOCALDOW}}
{{LOCALDAYNAME}}
{{LOCALTIME}}
{{LOCALHOUR}}
{{LOCALWEEK}}
{{LOCALTIMESTAMP}}
统计
这些变量返回的数字往往包含分隔符(根据本地语言参数设置而可能是逗号或空格)。可以通过“:R”来返回无分隔号的数字(例如{{NUMBEROFPAGES}} → 908,684和{{NUMBEROFPAGES:R}} → 908684)。
变量 | 输出 | 描述 | 版本 |
---|---|---|---|
{{NUMBEROFPAGES}} | 7,160 | 维基页面数量 | |
{{NUMBEROFARTICLES}} | 1,523 | 在内容名字空间中,作为条目的页面个数。 | |
{{NUMBEROFFILES}} | 4,703 | 上传文件的个数。 | |
{{NUMBEROFVIEWS}} | 页面浏览次数。通常对使用缓存的wiki无效。在当前版本无效 | 1.14 – 1.24 | |
{{NUMBEROFUSERS}} | 628,806 | 注册用户数量 | |
{{NUMBEROFADMINS}} | 27 | 管理员组用户数量 | |
{{NUMBEROFACTIVEUSERS}} | 131 | 活跃用户总数,其标准与特殊:统计信息中的标准相同。 |
技术元数据
变量 | 输出 | 描述 | 版本 |
---|---|---|---|
站点 | |||
{{SITENAME}} | 烟雨江湖WIKI_BWIKI_哔哩哔哩 | 维基网站的名称($wgSitename) | |
{{SERVER}} | https://wiki.biligame.com | 域名URL($wgServer) | |
{{SERVERNAME}} | wiki.biligame.com | 子域名和域名(自版本1.17后不再取决于$wgServerName)。 | |
{{DIRMARK}} {{DIRECTIONMARK}} |
|
输出这个wiki默认语言所使用的Unicode文本方向控制字符(从左到右书写的语言使用,反之使用),这在多方向文本中很有用。它取决于页面语言。 | ≥1.7 |
{{SCRIPTPATH}} | /yanyu | 脚本相对路径($wgScriptPath) | |
{{STYLEPATH}} | https://staticwiki.biligame.com/skins | 样式相对路径($wgStylePath) | ≥1.16 |
{{CURRENTVERSION}} | 1.37.0 | 此维基站点的MediaWiki版本 | ≥1.7 |
{{CONTENTLANGUAGE}} {{CONTENTLANG}} |
zh-cn zh-cn |
默认界面语言($wgLanguageCode) | ≥1.7 |
页面 | |||
{{PAGEID}} | 6858 | 返回页面编号 | ≥1.20 |
{{PAGELANGUAGE}} {{#language:{{PAGELANGUAGE}}}} |
zh-cn 中文(中国大陆) |
返回当前页面的语言。此变量返回的语言代码可使用{{#language:...}} 转换为语言名。 |
≥1.29 |
{{PROTECTIONLEVEL:操作}} | 输出当前页面对于特定行为(比如edit,move)的保护级别(autoconfirm或sysop等)。若未保护则返回空字符串。 | ≥1.15 | |
{{PROTECTIONEXPIRY:动作}} | 根据给出的动作(如edit、move),返回当前页面的保护信息(例如:时间戳“20160418155030”,或“infinity”) 如果未被保护,则会返回"infinity"。 | ≥1.27 | |
{{CASCADINGSOURCES}} | [高开销] 返回当前页面上的任意连锁保护操作来源。除非存在自我嵌入,否则页面将不会返回其各自标题。 | ≥1.23 | |
最近一次编辑版本号 | |||
{{REVISIONID}} | 38397 | 唯一的版本ID。 在预览中为空,因此能用来显示仅限于预览时的错误讯息。 可能在吝啬模式中被停用。 | ≥1.5 |
{{REVISIONDAY}} | 15 | 最近一次编辑的日期(无前导0) | ≥1.8 |
{{REVISIONDAY2}} | 15 | 最近一次编辑的日期(前导0) | ≥1.8 |
{{REVISIONMONTH}} | 05 | 最近一次编辑的月份(1.17+有前导0,较早版本没有前导0) | ≥1.8 |
{{REVISIONMONTH1}} | 5 | 最近一次编辑的月份(没有前导0) | ≥1.17 |
{{REVISIONYEAR}} | 2024 | 最近一次编辑的年份 | ≥1.8 |
{{REVISIONTIMESTAMP}} | 20240515172605 | 最近一次编辑的时间戳 | ≥1.8 |
{{REVISIONUSER}} | 485792141 | 最近一个对指定页面作出编辑的用户,或者当前正在对其编辑进行预览的用户。 | ≥1.15 |
{{REVISIONSIZE}} | 78195 | 当前版本页面的大小(维基文本)。 | ≥1.22 |
页面名称
变量 | 对于当前页面 | 描述 | 版本 |
---|---|---|---|
{{FULLPAGENAME}} | WIKI编辑教程 | 名字空间与完整页面标题(包括子页面级别)。 | |
{{PAGENAME}} | WIKI编辑教程 | 不包含名字空间的完整页面标题(包括子页面级别)。 | |
{{BASEPAGENAME}} | WIKI编辑教程 | 页面标题,不包括当前子页面标题及命名空间。 | |
{{ROOTPAGENAME}} | WIKI编辑教程 | 获得当前页面的根页名。 在 Help:Title/Foo/Bar 页面返回 Title。 | |
{{SUBPAGENAME}} | WIKI编辑教程 | 子页面标题。 在Help:Title/Foo/Bar页面返回Bar。 如果子页面不存在将会回传{{PAGENAME}}的值。 |
|
{{SUBJECTPAGENAME}} {{ARTICLEPAGENAME}} |
WIKI编辑教程 WIKI编辑教程 |
获得该页面的完整页面名。对讨论页十分有用。 | |
{{TALKPAGENAME}} | 讨论:WIKI编辑教程 | 关联讨论页的完整页面名称 |
- 以上魔术字可以接受一个参数,用于指定特定页面,来代替要处理的当前页面设定:
- {{PAGENAME:Template:Main Page}} → Main Page
- {{PAGENAME:模板:面包屑}} → 面包屑
名字空间
变量 | 输出 | 描述 | 版本 |
---|---|---|---|
{{NAMESPACE}} | 名字空间的名称 | ||
{{NAMESPACENUMBER}} | 0 | 页面所在名字空间的ID | |
{{SUBJECTSPACE}} {{SUBJECTSPACE}} |
相关联的内容名字空间的名称 | ||
{{TALKSPACE}} | 讨论 | 相关联的讨论名字空间的名称 |
- 关于名字空间详见:帮助:名字空间
其他
变量 | 输出 | 描述 | 版本 |
---|---|---|---|
{{!}} | | | 用于在模板或者是表格内插入管道符号。 |
解析函数
所有函数均适用的注意事项
以下是一个解析函数的基本格式:
{{#函数名: 参数1 | 参数2 | ... | 参数n }}
在页面中写上如此一般的代码后,后台解析页面是就会呼叫解析函数“函数名”,并传入相应的参数。如果输入的参数内同样的含有函数(或模板等需要展开运算的代码),解析器将会先运算和展开参数里的代码。这种先后次序与数学公式中的括号是同等效果,由内至外逐一展开运算。
其他注意事项:
- 某些函数对“该参数的值为空白”及“缺少该参数”的理解会有差异,导致运算处理和最终输出出现差错,需要留意该函数有没有这种设定。例如regex就有这种设定。
- 字符本身和对应的HTML实体(HTML Entity[1])不一定会受到一致的处理,甚至不会相互等于,需要留意函数是否会将输入解码或将输出编码。
- 如果函数突然出现不符合预期的输出,那很有可能是你忘记了对某些特殊字符转义。
- 参数内容的前后可以随意添加空格和换行,可以适当使用让排版更整齐易懂。
expr
类型 | 运算符 |
---|---|
组合(括号) | ( )
|
数字 | 1234.5 、 e (2.718) 、 pi (3.142)
|
科学计数法(二元) e 、 正负号(一元) + ,-
| |
一元运算符 | not ceil trunc floor abs exp ln sin cos tan acos asin atan
|
二元运算符 | ^
|
* / div mod
| |
+ -
| |
四舍五入 | round
|
逻辑运算符 | = != <> > < >= <=
|
and
| |
or
|
来自ParserFunctions。
用于验证一个数学表达式,并返回它的计算值。
此函数在Scribunto扩展中也可用,函数名为mw.ext.ParserFunctions.expr
。
- 格式
{{#expr: 表达式 }}
- 支持的运算符如右方表格所示,表格从上到下按运算符的计算优先顺序排列。
- 每个运算符的详细功能见Help:Calculation。
- 计算结果的精度和格式取决于wiki服务器的操作系统,和网站语言的数字格式。
- 例子
- 当用于计算布尔代数值(Boolean algebra)时,零值表示
false(假)
,任何非零值,无论正负,都表示ture(真)
:{{#expr: 1 and -1 }}
→1
{{#expr: 1 and 0 }}
→0
{{#expr: 1 or -1 }}
→1
{{#expr: -1 or 0 }}
→1
{{#expr: 0 or 0 }}
→0
- 输入空的表达式会返回一个空字串。输入不正确的表达式会返回其中一个错误消息,错误可以被解析函数#iferror|iferror]]函数捕捉到:
{{#expr: }}
→{{#expr: 1+ }}
→表达式错误:缺少+的操作数。
{{#expr: 1 = }}
→表达式错误:缺少=的操作数。
{{#expr: 1 foo 2 }}
→表达式错误:无法识别的词语“foo”。
- 加减运算符在数字之前与之后的意义不同,它们有可能被当作正负号,而不会被当作不正确的表达式:
{{#expr: +1 }}
→1
{{#expr: -1 }}
→-1
{{#expr: + 1 }}
→1
{{#expr: - 1 }}
→-1
- 注意
- 如果使用魔术字的输出值,必须使用其原始格式,如:移除所有分割逗号,转换为数字。
- 比如
{{NUMBEROFUSERS}}
输出的是628,806
,但是实际需要的是628806
,原始格式可以用{{formatnum:{{NUMBEROFUSERS}}|R}}
来得到,详见formatnum。例子如下:{{#expr:{{NUMBEROFUSERS}}+100}}
→表达式错误:无法识别的符号“,”。
{{#expr:{{formatnum:{{NUMBEROFUSERS}}|R}}+100}}
→628906
- 注意
- 运算符
mod
会在某些除数值下给出错误的结果:{{#expr: 123 mod (2^64-1)}}
→零除。
(返回空字串,结果本应是123
)
- 补充
- 若想要进行关于日期的计算(比如:将当前日期与某日期进行比较),首先应将时间转化为“1970年1月1日之后多少秒”的结构,可以使用
{{#time: xNU }}
来转换(详见time),然后就可以把日期当作数字来进行计算和比较了。 - 关于四舍五入
- 将运算符
round
左边的数四舍五入,使其小数位数为round
右边的数。 - 如需进一取整(向上舍入),使用
ceil
;如需舍去取整(向下舍入),使用floor
。
例子 | 结果 | 舍入方法 |
---|---|---|
{{#expr: 1/3 round 5 }} |
0.33333 | 保留5位小数。舍去的部分首位数值<5,则不会进一。 |
{{#expr: 1/6 round 5 }} |
0.16667 | 保留5位小数。舍去的部分首位数值≥5,则进一。 |
{{#expr: 8.99999/9 round 5 }} |
1 | 同上方法,结果是进一得到的。 |
{{#expr: 1234.5678 round -2 }} |
1200 | 此处保留到百位。要保留到小数点左侧,应使用负的位数。 |
{{#expr: 1234.5678 round 2 }} |
1234.57 | 此处保留到百分位。要保留到小数点右侧,应使用正的位数。 |
{{#expr: 1234.5678 round 2.3 }} |
1234.57 | 位数值如果输入了带小数的数值,小数部分不起作用。 |
{{#expr: trunc 1234.5678 }} |
1234 | 保留到整数可以使用trunc 。
|
保留到整数的舍入规则: | ||
{{#expr: 1/3 round 0 }} |
0 | 保留到最近的整数,向下舍入至零。 |
{{#expr: 1/2 round 0 }} |
1 | 保留到最近的整数,向上舍入至一。 |
{{#expr: 3/4 round 0 }} |
1 | 保留到最近的整数,向上舍入至一。 |
{{#expr: -1/3 round 0 }} |
-0 | 保留到最近的整数,向上舍入至零。 |
{{#expr: -1/2 round 0 }} |
-1 | 保留到最近的整数,向下舍入至负一。 |
{{#expr: -3/4 round 0 }} |
-1 | 保留到最近的整数,向下舍入至负一。 |
使用ceil 和floor 时的舍入规则:
| ||
{{#expr: ceil(1/3) }} |
1 | 向上舍入至一。 |
{{#expr: floor(1/3) }} |
0 | 向下舍入至零。 |
{{#expr: ceil(-1/3) }} |
-0 | 向上舍入至零。 |
{{#expr: floor(-1/3) }} |
-1 | 向下舍入至负一。 |
{{#expr: ceil 1/3 }} |
0.33333333333333 | 没有被舍入处理,因为1 就是整数注意:上述表达式含义为 (ceil 1)/3 ,而不是ceil(1/3) ,应注意。
|
- 关于字符串
- 表达式只能用于数字值,不能比较字串或者字符。如需比较字串和字符,请使用ifeq。例子:
{{#expr: "a" = "a" }}
→表达式错误:无法识别的符号“"”。
{{#expr: a = a }}
→表达式错误:无法识别的词语“a”。
{{#ifeq: a | a | 1 | 0 }}
→1
lc
MediaWiki原生函数。
把输入的字串中所有字母变成小写。
- 格式
{{lc: 字串 }}
- 例子
{{lc: A字串 BC }}
→a字串 bc
lcfirst
MediaWiki原生函数。
把输入的字串中第一个字母变成小写。
- 格式
{{lcfirst: 字串 }}
- 例子
{{lcfirst: A字串 BC }}
→a字串 BC
{{lcfirst: 字串 BC }}
→字串 BC
if
来自ParserFunctions。
用于鉴别一个测试字串是否为空。一个只含有空白字符的字串会被判定为空。
- 格式
{{#if: 测试字串 | 字串非空输出值 | 字串空(或只有空白字符)输出值 }}
{{#if: 参数1 | 参数2 | 参数3 }}
- 说明
- 这个函数首先检查'参数1'是否为空。如果'参数1'不为空,则显示'参数2'。如果'参数1'为空或只含有空白字符(如空格,换行符等),则显示'参数3'。
- 例子
{{#if: | yes | no}}
→no
{{#if: string | yes | no}}
→yes
{{#if: | yes | no}}
→no
{{#if:
→
| yes | no}}no
- 测试字串总是被解释为纯文本,所以数学表达式不会被鉴别。
{{#if: 1==2 | yes | no }}
→yes
{{#if: 0 | yes | no }}
→yes
- 最后一个参数(字串空输出值)可以省略。
{{#if: foo | yes }}
→yes
{{#if: | yes }}
→{{#if: foo | | no}}
→
- 这个函数可以被嵌套。嵌套时,需用完整格式的
#if
函数,替代外层#if
函数的某个参数。最大可以嵌套七层,具体取决于网站和存储限制。{{#if: 测试字串1 | 字串1非空输出值 | {{#if: 测试字串2 | 字串2非空输出值 | 字串2空(或只有空白字符)输出值 }} }}
- 可以用一个参数当作#if函数的测试字串。必须在变量名的后面加上管道符
|
。{{#if:{{{1|}}}| 变量1中输入了文本 | 变量1中没有文本 }}
- 对于在模板中的应用,更多例子可参照:Help:Parser functions in templates
ifeq
来自ParserFunctions。
用于比较两个字串是否相同。
- 格式
{{#ifeq: 测试字串1 | 测试字串2 | 相同时输出值 | 不相同时输出值 }}
- 例子
- 如果两个字串都是有效的数值,则会按照数值进行比较。
{{#ifeq: 01 | 1 | equal | not equal}}
→equal
{{#ifeq: 0 | -0 | equal | not equal}}
→equal
{{#ifeq: 1e3 | 1000 | equal | not equal}}
→equal
{{#ifeq: {{#expr:10^3}} | 1000 | equal | not equal}}
→equal
- 否则会按照文本进行比较,区分大小写。
{{#ifeq: foo | bar | equal | not equal}}
→not equal
{{#ifeq: foo | Foo | equal | not equal}}
→not equal
{{#ifeq: "01" | "1" | equal | not equal}}
→not equal
(注意与上方不带引号的区别){{#ifeq: 10^3 | 1000 | equal | not equal}}
→not equal
(注意与上方使用了#expr
函数的区别)
- 注意
#ifeq
和#switch
的数值比较与使用#expr
进行比较不同:{{#ifeq: 12345678901234567 | 12345678901234568 | equal | not equal}}
→not equal
{{#switch: 12345678901234567 | 12345678901234568 = equal | not equal}}
→not equal
- 因为PHP以整数型比较两个数字,然而:
{{#ifexpr: 12345678901234567 = 12345678901234568 | equal | not equal}}
→equal
- 因为MediaWiki转换文本数字为浮点型,对于比较大的整数,会导致末尾被舍去。
- 注意
- 在解析函数内部的标签和解析函数(如
<nowiki>
)会被暂时替换为一个唯一的代码。这会影响到比较结果:{{#ifeq: <nowiki>foo</nowiki> | <nowiki>foo</nowiki> | equal | not equal}}
→not equal
{{#ifeq: <math>foo</math> | <math>foo</math> | equal | not equal}}
→not equal
{{#ifeq: {{#tag:math|foo}} | {{#tag:math|foo}} | equal | not equal}}
→not equal
{{#ifeq: [[foo]] | [[foo]] | equal | not equal}}
→equal
- 如果被比较的字串 是由等价调用 含有这类标签的 同一模板 得到的,则值为真;但如果为 含有相同的这类标签的 两个模板,则值为假。
- 注意
- 在用页面名变量(如:
{{FULLPAGENAME}}
)比较当前页面标题时,应小心。这些变量会将特殊字符转换为数字HTML实体。这会造成具有误导性的结果。比如,在一个标题为“L'Aquila”的页面上:{{#ifeq: L'Aquila | {{FULLPAGENAME}} | equal | not equal}}
→not equal
- 上面的结果实际是错误的。经过改进之后,现在它会返回“
equal
”。但是对于其他情况可能不会如此。如{{FULLPAGENAME}}
,在部分网站,可能会将第一个字母替换为大写,可能会将所有下划线替换为空格。 - 为了解决这个问题,可以在两个参数上都应用变量:
{{#ifeq: {{FULLPAGENAME: L'Aquila}} | {{FULLPAGENAME}} | equal | not equal}}
→equal
padleft
将参数1通过在左侧补上参数3指定的字符串(默认为0)补足到参数2指定的长度,例如 044
生成 044。参数3指定的字符串可能被截断以保证补足后的字符串长度满足要求。
- 例子&输出
{{padleft:xyz|5}}
→ 00xyz
{{padleft:xyz|5|_}}
→ __xyz
{{padleft:xyz|5|abc}}
→ abxyz
{{padleft:xyz|2}}
→ xyz
{{padleft:|1|xyz}}
→ x
switch
来自ParserFunctions。
这个函数将一个输入值与若干个情况值对比,如果找到了相符的情况,则返回该情况下的输出字串。
- 格式
{{#switch: 比较字串 | 情况字串1 = 返回结果1 | 情况字串2 = 返回结果2 | ... | 情况字串n = 返回结果n | 默认结果 }}
- 例子
{{#switch: baz | foo = Foo | baz = Baz | Bar }}
→Baz
{{#switch: foo | foo = Foo | baz = Baz | Bar }}
→Foo
{{#switch: zzz | foo = Foo | baz = Baz | Bar }}
→Bar
#switch
和部分转换标签可以作用于配置文件,从而可以使不熟悉模板代码的编辑者编辑可配置元素。- 关于默认结果
- 在当没有'情况字串'与'比较字串'相符时,会返回'默认结果':
{{#switch: test | foo = Foo | baz = Baz | Bar }}
→Bar
- 按这个函数的句法,'默认结果'必须是最后一个参数,并且不能包含原始等号符。
{{#switch: test | Bar | foo = Foo | baz = Baz }}
→{{#switch: test | foo = Foo | baz = Baz | B=ar }}
→
- 或者'默认结果'可以用'情况字串'
#default
来特别声明。
{{#switch: 比较字串 | 情况字串1 = 返回结果1 | 情况字串2 = 返回结果2 | ... | 情况字串n = 返回结果n | #default = 默认结果 }}
- 用这种方式声明的'默认结果'可以放在函数内的任何位置:
{{#switch: test | foo = Foo | #default = Bar | baz = Baz }}
→Bar
- 如果'默认结果'被省略,当没有相符情况时,不会返回结果:
{{#switch: test | foo = Foo | baz = Baz }}
→
- 一组情况的结果
- 可以使用“fallthrough”值,即若干'情况字串'返回相同的'返回结果'。这能减少重复。
{{#switch: 比较字串 | 情况字串1 = 返回结果1 | 情况字串2 | 情况字串3 | 情况字串4 = 返回结果234 | 情况字串5 = 返回结果5 | 情况字串6 | 情况字串7 = 返回结果67 | #default = 默认结果 }}
- 在这里情况2、3、4都会返回'返回结果234',情况6、7都会返回'返回结果67'。
- 关于比较
- 与
#ifeq
相同,如果'比较字串'和'情况字串'都为数值,则会按照数值进行比较。以上情况外,区分大小写:{{#switch: 0 + 1 | 1 = one | 2 = two | three}}
→three
{{#switch: {{#expr: 0 + 1}} | 1 = one | 2 = two | three}}
→one
{{#switch: a | a = A | b = B | C}}
→A
{{#switch: A | a = A | b = B | C}}
→C
- '情况字串'可以是空:
{{#switch: | = Nothing | foo = Foo | Something }}
→Nothing
- 当出现一个相符情况后,之后的'情况字串'会被忽略:
{{#switch: b | f = Foo | b = Bar | b = Baz | }}
→Bar
- 注意
#switch
和#ifeq
的数值比较方法与表达式比较不同:{{#switch: 12345678901234567 | 12345678901234568 = A | B}}
→B
{{#ifexpr: 12345678901234567 = 12345678901234568 | A | B}}
→A
- 具体见
ifeq
处的第一条“注意”。 - 关于原始等号符
- '情况字串'不能包含原始等号符。为了解决这个问题,创建了一个只包含一个等号符
=
的模板{{=}}
。 - 应用的例子:
{{#switch: 1=2 | 1=2 = raw | 1=2 = nowiki | 1=2 = html | 1{{=}}2 = template | default }}
→ html
- 关于替换
#ifeq
#switch
可以用来减少扩展深度。- 比如:
{{#switch:{{{1}}} |情况1=分支1 |情况2=分支2 |情况3=分支3 |分支4}}
- 等价于:
{{#ifeq:{{{1}}}|情况1 |分支1 |{{#ifeq:{{{1}}}|情况2 |分支2 |{{#ifeq:{{{1}}}|情况3 |分支3 |分支4}}}}}}
- 写成便于阅读的格式即为:
{{#ifeq:{{{1}}}|情况1
|<!--then-->分支1
|<!--else-->{{#ifeq:{{{1}}}|情况2
|<!--then-->分支2
|<!--else-->{{#ifeq:{{{1}}}|情况3
|<!--then-->分支3
|<!--else-->分支4}}}}}}
uc
MediaWiki原生函数。
把输入的字串中所有字母变成大写。
- 格式
{{uc: 字串 }}
- 例子
{{uc: a字串 bc }}
→A字串 BC
ucfirst
MediaWiki原生函数。
把输入的字串中第一个字母变成大写。
- 格式
{{ucfirst: 字串 }}
- 例子
{{ucfirst: a字串 bc }}
→A字串 bc
{{ucfirst: 字串 bc }}
→字串 bc
状态开关
前言
- 状态开关:通常写成以两个下划线“__”为前后缀的大写单词,例如__FOO__。
- 状态开关可以控制页面(只要受皮肤支持)的显示方式或其他行为。它往往用于排除或加入特定的页面内容。
文字 | 描述 | 版本 |
---|---|---|
目录 | ||
__NOTOC__ | 隐藏目录(TOC)。 | |
__FORCETOC__ | 强制于默认位置(第一个章节标题上方,忽略的设置)显示目录。 | |
__TOC__ | 在魔术字的位置插入目录(忽略的设置)。如果这个魔术字在一个页面内被多次使用,目录将出现在第一个词的位置。 | |
编辑 | ||
__NOEDITSECTION__ | 隐藏章节标题旁的编辑链接。这个特别有用,当章节标题在模板中被创建时,普通的编辑链接将会把用户带到编辑模板代码界面,这与用户的直觉不符。 在模板中使用它将扩充对模板嵌入页面的影响,以及任何包含在同一页面的其他模板。 | |
__NEWSECTIONLINK__ | 在非讨论页顶端“编辑”标签右侧加入一个按钮,用于在页面结尾加入新的章节(参见在页面末尾加入新章节)。 | |
__NONEWSECTIONLINK__ | 移除讨论页顶端“编辑”右侧的加入新章节链接。 | |
分类 | ||
__NOGALLERY__ | 用于分类页面。不显示分类中所包含文件的缩略图,而以普通链接代替。 | |
__HIDDENCAT__ | 用于分类页面。加入后此分类成为隐藏分类,将不会显示在上级分类其及成员页面的分类列表中(可以通过参数设置中的选项强制显示)。 | |
__EXPECTUNUSEDCATEGORY__ | 在分类页面上使用,从Special:UnusedCategories中删除分类。 | |
语言转换 | ||
__NOCONTENTCONVERT__ __NOCC__ |
在语言有不同变体时(如中文简体和繁体),不对当前页面进行字词转换。 | |
__NOTITLECONVERT__ __NOTC__ |
在语言有不同变体时(如中文简体和繁体),不对当前页面进行标题转换(其他内容照常转换)。 |
分移动端和PC端隐藏内容
前言
MobileDetect是一个基于插件才能使用的函数钩,在使用此钩之前请确定WIKI上安装了MobileDetect插件。通过特殊:版本页面可查看是否有装有该插件。
使用方法
- 语法
<nomobile>在移动端不显示的内容</nomobile>
- 使用场景
- 隐藏掉不想在移动设备上显示的内容。该内容在PC端是显示的。
- 语法
<mobileonly>只在移动端显示的内容</mobileonly>
- 使用场景
- 只在移动端显示的内容。该内容在PC端是不显示的。
注意
- 该函数隐藏和显示的内容里无法支持变量写法,请酌情使用。
插入一个b站用户的关注模块
- 语法:<bilicontributors>用户UID</bilicontributors>
- 示例:<bilicontributors>57078402</bilicontributors>
- 输出:
顶级编辑
- 将之前的内容融会贯通,熟练WIKI各种语言、魔术字,可以调用数据
- 套用各种模板、模块、数据;会创建并改写模板、模块
- CSS、JS张手就来
后记(可以不看)
- 本篇教程在编写的时候参考了帮助:SMW、帮助:变量、帮助:解析函数、帮助:标签、帮助:状态开关、碧蓝航线WIKI编辑教程,在此对文章作者表示感谢~
- 有些小伙伴说想编辑wiki但是不会用,我便写了这篇教程。文章提及的内容都比较简单,足够大家基本的编辑,相信各位练习几次后就能上手了。
- 最后,欢迎各位小伙伴加入凤鸣书院
外链与注释