使用笔记/预备篇
在阅读这篇教程之前,你需要:
- 拥有一定的电脑操作水平
- 拥有一定的互联网搜索能力
- 接触过前端(HTML/CSS/JS,只是知道也可)
- 参与过一个MediaWiki网站
缺乏一些条件可能会使得阅读体验变得很吃力。
什么是MediaWiki
MediaWiki是一款自由的基于服务器的wiki系统,而wiki是指内容可以直接在浏览器中编辑,并且每个可编辑页面的版本历史都会被记录下来的网站。MediaWiki被设计用于像维基百科、萌娘百科和Fandom这样的大型协作网站,具有优秀的国际化和本地化机制,扩展性和可定制性极强,且自由免费。
MediaWiki使用Wikitext(维基文本)作为其储存内容的主要格式,这使得一般的编辑者不需要学习HTML或CSS就能快速上手,同时由于其支持嵌入极具扩展性的“模板”“解析器函数”等,Wikitext也可以在不改动其解析器代码的同时设计出非常复杂的页面(相对于Markdown这类更轻量的纯文本标记语言)。
你可以随便点开一个页面,然后点击“查看/编辑原始码”。一般情况下,这个页面所使用的Wikitext就会展示在弹出的页面上。这也使得借鉴变得十分方便。
基础语法
这个页面列出了一些基本的用法。
很多wiki也会有自己的一个类似于这样的页面,甚至比它还详细。
以下我们略去一些基础格式(粗体斜体标题这类)的介绍。编辑帮助里面写得还算清楚。
模板
模板(Template)是一类可以在页面内重复使用且可以在里面挖空以在使用时自行填写内容的页面。
比如,创建一个页面Template:Test,内容为:
Hello,{{{1}}},现在是{{{time}}}。{{{2}}}
在某个页面内(就比如沙盒)输入以下内容:
{{Test|time=05:41|远星|今天也要加油呀!}}
保存后,页面里面就会显示:
这里面,{{{time}}}
、{{{1}}}
和{{{2}}}
就是空(称为一个参数)。一般情况下,以数字为名的参数在使用时可以省去参数名,就像上面那样,第一个不写名字的就会填到{{{1}}}
里面,以此类推。除非你的内容里面有等于号(这样会导致系统认为出现的等于号前面的是参数名),否则匿名参数的名都可以不写出来。
魔术字与解析器函数
主条目介绍了很多魔术字与解析器函数。
这些东西有几种形式:__FOO__
、{{FOO}}
以及{{#foo:}}
或{{foo:}}
。
总之,遇到一个记一个。这些东西功能不一,没法一下子讲完。
比如这个页面上面的时间,就是用了{{CURRENTTIME}}
。
此外还有一类解析器函数标签,等价于{{#tag: <tag name> | <content> }}
。如果你发现解析器函数标签里面没法放置参数的话,就用这个去代替。
前端技术
除此之外,了解一些前端技术也是必要的。
除了网上的Runoobs啊,W3School啊等,我更推荐MDN Web Docs(简称MDN,全称为Mozilla开发者网络)。点击这里查看MDN学习区。
一个事实是,Wikitext最终还是要被解析成HTML的。因此,你有可能可以在你写的一大堆HTML里面塞上一个以Wikitext语法写的列表而无需使用<ul>
和<li>
。同样的,如果在某些模板参数中传入列表语法反而出了点问题(比如头一个星号没被解析),那么你写一个HTML无序列表可能就好了。
另一个事实是,大部分的模板编写都需要你掌握前端技术。对于更复杂的模板来说,除了使用扩展提供的一部分解析器函数以外,更有可能的情况是你需要使用模块(这一部分和lua有关,不算在前端必备之内但是如果你要编写复杂模板的话还是要掌握的),而模块的本质大体上也还是文本拼接和生成HTML。生成完HTML了就得要写样式让他长得好看一些,就得写CSS,如果需要一些可交互的功能甚至又需要写点JS。
当然啦,如果只是针对MediaWiki的模板编写的话,你只需要了解如何编写HTML片段而不是一整个HTML文档。对于站长来说的话,知道HTML文档的哪些部分是被MediaWiki的哪些东西控制的是很有必要的。比如<title>
的内容由MediaWiki:Pagetitle控制。
如果你本身就很了解HTML、CSS和JS(包括jQuery)的话,你可以去看看MediaWiki的JS有哪些轮子⸺比如mw对象,比如OOUI,这些。
边用边探索,越用就越会。
参与一个MediaWiki站点
参与一个MediaWiki站点的建设有助于你深入了解MediaWiki软件所支撑起的社区是怎么运作的。如果你打算自托管或者成为某个MediaWiki农场的某站台的主人,这是有必要的。
当然,只是看一看维基百科方针与论述也有所帮助,如果你没有时间/意愿去参与其他社区的话。
主要页面 | |
---|---|
正文 | |
外部链接 |