知行迭代
导航
首页
最近更改
随机页面
常用
分类目录
Linux命令
Mediawiki常用
电脑技巧
工具
链入页面
相关更改
特殊页面
页面信息
登录
查看“Mediawiki”的源代码
←
Mediawiki
页面
讨论
阅读
查看源代码
查看历史
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:[
[1]
]
您可以查看和复制此页面的源代码。
MediaWiki全球最著名的开源wiki程序,维基百科也使用该软件。MediaWiki采用[[PHP]]编程语言写成,可以使用[[MariaDB]]、[[MySQL]]、[[PostgreSQL]]或[[SQLite]]等[[数据库]]软件管理数据。 ==简介== ===时间轴=== *2001年1月15日,吉米·威尔士与拉里·桑格推出维基百科。使用UseModWiki软件,这是一个用Perl编写,使用CamelCase并将所有页面存储在单个文本文件中,没有任何更改历史记录。 *2001年1月下旬,UseModWiki开发人员和维基百科参与者Clifford Adams为UseModWiki添加了一项新功能:自由链接,例如能够使用特殊语法(双方括号)链接到页面。 *2001年夏天,基百科的参与者Magnus Manske,开始用PHP和MySQL支持编写新引擎,被称为PHP脚本。 *2001年8月,PHP脚本上市,9月,在SourceForge上共享。并测试到2001年末。 *2002年1月,维基百科从UseModWiki切换到PHP脚本。 *2002年,Lee Daniel Crocker重新编写代码,称新软件为Phase III。 *2002年7月,Phase III部署到英语维基百科。 *2003年初,Brion Vibber有效地接任了该软件的首席开发人员和发布经理。该代码现在由一个庞大且活跃的开发者组维护。 *2003年6月,维基百科的联合创始人吉米·威尔士创建了维基媒体基金会(Wikimedia Foundation)。 *2003年7月,维基百科软件被正式命名为MediaWiki。 *2003年7月,添加了新功能,例如自动生成的目录,以及编辑页面部分的功能,两者目前仍在使用。 *2003年8月,MediaWiki的第一个版本诞生,结束了一个应用程序的长期起源,其整体结构从那时起将保持相当稳定。 *2003年12月8日,发布MediaWiki 1.1 ,开始新的wiki表格语法,“魔术字”功能——特殊的变量和解析器指令。 *2006年10月10日,发布MediaWiki 1.8 ,开始完全支持PostgreSQL(8.1或更高版本)后台数据库。 *2019年12月19日,发布MediaWiki 1.34。 {{了解更多 |[https://www.mediawiki.org/wiki/MediaWiki_history Mediawiki:MediaWiki 历史] |[https://zh.wikipedia.org/wiki/MediaWiki版本歷史 维基百科:MediaWiki 版本历史] }} ===用户=== 以下一些使用Mediawiki的网站: *[https://www.wikipedia.org/ 维基百科] *[https://wikimediafoundation.org/ 维基媒体基金会]的其他项目(如[https://zh.wikibooks.org 维基教科书],[https://zh.wikibooks.org/ 维基辞典]等) *[https://www.fandom.com/ Fandom](原名Wikia) *[https://www.huijiwiki.com/wiki/ 灰机wiki] *[https://wiki.mbalib.com/wiki MBA智库百科] *[https://www.wikihow.com wikiHow] ===安装=== ====直接安装==== 下载地址:[https://www.mediawiki.org/wiki/Download MediaWiki 下载] #下载软件压缩包,上传到网站指定文件夹,解压缩。 #在浏览器输入该文件夹,进入配置页面,按照提示一步步操作。需要注意的是,虚拟主机MySQL先要在主机管理上配置,再在配置页面写入。 #设置完成后会生成LocalSettings.php,下载并上传到wiki的文件夹,完成安装。 {{了解更多|[https://www.mediawiki.org/wiki/Manual:Installation_guide/zh MediaWiki 手册:安装指南] }} ====使用Docker安装==== 使用[[Docker]]安装很简单,一条命令即可。其中--name指定容器名称,-p设置主机8080端口对应容器80端口,-d 后台运行。 docker run --name some-mediawiki -p 8080:80 -d mediawiki 接下来在浏览器打开:http://localhost:8080 或 http://host-ip:8080 进行初始化设置。数据库选[[SQLite]],可以省去连接其他容器。配置完成后,会生成LocalSettings.php文件,把该文件使用docker cp命令复制到容器的/var/www/html目录中即可。 docker cp /path/to/LocalSettings.php some-mediawiki:/var/www/html {{了解更多|[https://hub.docker.com/_/mediawiki Docker Hub:Mediawiki]}} ==编辑内容== 编辑维基时最重要的一条规则就是大胆。不要犹豫、动手编辑。其他人会来更正错误的,所以要有信心,尝试一下吧!在保存之前先用“显示预览”按钮看一下你的修改会怎样是个好主意。这也与追踪更改相关,因为你的每次保存都会显示为一条修改记录。“显示更改”按钮,它可以让你查看当前版本与你编辑后的版本之间的差异。 {{了解更多|[https://www.mediawiki.org/wiki/Help:Editing_pages/zh#编辑的规则、惯例与格式化 Mediawiki 帮助:编辑页面]}} ===创建新页面=== 创建新文章页面有多。常用在搜索输入页面名称,然后在搜索结果页面点击该红色名字创建。 {{了解更多|[https://www.mediawiki.org/wiki/Help:Starting_a_new_page/zh Mediawiki 帮助:创建新页面]}} ===Wiki标记语言=== Wiki标记语言,又称Wiki语法,包含了许多参数与关键字,可将MediaWiki软件内的页面进行格式的编排。如在文章中使用三个引号包裹<nowiki>'''粗体'''</nowiki>会转为'''粗体'''。 {{了解更多|[https://zh.wikipedia.org/wiki/Help:Wiki標記式語言 维基百科帮助:Wiki标记语言] [https://zh.wikipedia.org/wiki/Wikipedia:備忘單 维基百科:备忘单]}} ===文本格式=== {{了解更多|[https://www.mediawiki.org/wiki/Help:Formatting/zh Mediawiki 帮助:格式化文本]}} ====标题==== MediaWiki页面中的标题使用等号标记,用几对等号括起来则表示是几级标题。每篇文章只要章节标题超过三个,就会自动根据这些标题生成一个目录(table of contents,TOC)。标题标记使用如下: <nowiki>= 一级标题(文章) = == 二级标题(章) == === 三级标题(节)=== ==== 四级标题(小节) ==== ===== 五级标题(子小节) ===== ====== 六级标题 ====== </nowiki> 注:不要使用一级标题,表示页面本身。 ====粗体和斜体==== <nowiki>''斜体''</nowiki>两个单引号包围表示''斜体''。<br /> <nowiki>'''粗体'''</nowiki>三个单引号包围表示'''粗体'''。<br /> <nowiki>'''''粗斜体'''''</nowiki>五个单引号包围表示'''''粗斜体'''''。<br /> ====列表==== <nowiki>* 在行首表示无序列表,几个*表示几个层级。</nowiki><br /> <nowiki># 在行首表示有序列表,空行或其他用任何其他字符在段首将停止列表。</nowiki><br /> ====定义==== <nowiki>;事物一 </nowiki> <br /> <nowiki>: 事物一的定义</nowiki> <br /> 显示如下: ;事物一 : 事物一的定义 ====分割线==== <nowiki>----</nowiki>用4条横杆表示分割线,只能放在行头。 显示如下: ---- ====换行==== Mediawiki忽略单个换行。要想另起一段,留空一行。或使用HTML标记<nowiki><br /></nowiki>强制换行另起一段。如下: <nowiki>单个换行会忽略, 不会影响输出格式。 但空出一行代表新段落的开始, 或是某个列表或缩进内容的终止。<br /> 也可以使用html标记强制换行。</nowiki> 显示如下: 单个换行会忽略, 不会影响输出格式。 但空出一行代表新段落的开始, 或是某个列表或缩进内容的终止。<br /> 也可以使用html标记强制换行。 ====注释掉wiki标记==== 使用nowiki标记,标记中间的所有wiki标记都不会进行转换,直接显示。如: <nowiki><nowiki>wiki标记'''无效'''</nowiki></nowiki>,<nowiki>也可以使用单个nowiki标记<<nowiki/>br/>注释掉html标记。</nowiki> 显示效果: <nowiki>wiki标记'''无效'''</nowiki>,也可以使用单个nowiki标记<<nowiki/>br/>注释掉html标记。 ====代码块==== '''预格式化文本'''<br /> 在行首使用空格。文本被预格式化并且可以使用维基标记。使用如: <nowiki> 行首空格,代码行可以使用'''wiki标记'''</nowiki> 显示效果 行首空格,代码行可以使用'''wiki标记''' '''预格式化文本块'''<br /> <nowiki>在行首<nowiki> 之前使用空格,文本块的格式保留,wiki标记也不起作用,可用于源代码显示。显示效果如:</nowiki><br /> <nowiki>def function(): """documentation string""" if True: print True else: print False</nowiki> '''行内代码块'''<br /> 行内代码块好像只能使用[[HTML]]的<nowiki><code></nowiki>标记,使用如下: <nowiki>一行中的<code>代码,wiki'''标记'''</code>会起作用。</nowiki> 显示效果如: 一行中的<code>代码,wiki'''标记'''</code>会起作用。 ===HTML 标记=== <nowiki>在 MediaWiki 中允许使用一些HTML标记。比如<code>, <div>, <span> and <font>等。这些标记将在你插入它们的地方生效。</nowiki><br /> {{了解更多|[https://www.mediawiki.org/wiki/Help:Formatting/zh Mediawiki 帮助:格式化文本]}} ===链接=== 创建页面后,需要添加链接才能调转到对应页面。在MediaWiki中有5种类型的超文本链接,几种链接添加方法: #<nowiki>内部链接:链接到Wiki网站其他页面: [[页面名]] 或[[页面名|显示名称]]</nowiki>。注意:页面名不区分大小写。如果存在页面的话文字颜色显示蓝色,不存在的话就会显示红色。 #<nowiki>外部链接:链接到其他网站的链接。以百度为例:[http://www.baidu.com 百度] [网址+空格+链接名]</nowiki> {{了解更多|[https://www.mediawiki.org/wiki/Help:Links/zh Mediawiki 帮助:链接]}} ===表格=== 表格标记使<code><nowiki>{|</nowiki></code>开头,<code><nowiki>|}</nowiki></code>表示结束。表格标题可选,用<code><nowiki>|+</nowiki></code>表示,只能有一个且位于开头标记下面一行。行分隔线使用<code><nowiki>|-</nowiki></code> 。列分隔使用<code><nowiki>|</nowiki></code>标记。列标题使用<code><nowiki>!</nowiki></code>标记。这些标记都必须位于行首。使用如下: <nowiki>{| |橘子 |苹果 |- |面包 |饼 |- |奶油 |冰淇凌 |}</nowiki> 显示效果: {| |橘子 |苹果 |- |面包 |饼 |- |奶油 |冰淇凌 |} 要在一行表示表格的一行可以使用<code><nowiki>||</nowiki></code>来分隔列,列标题使用<code><nowiki>!!</nowiki></code>分隔。使用如下: <nowiki>{| !名称 !! 数量 |- |橘子 || 5 |- |苹果 || 3 |}</nowiki> 显示效果: {| !名称 !! 数量 |- |橘子 || 5 |- |苹果 || 3 |} 可以添加HTML属性到表格,如: <nowiki>{| class="wikitable" style="width: 100%; !colspan="6"|购物清单 |- |rowspan="2"|麵包和奶油 |派 |小圆面包 |丹麥甜糕餅 |colspan="2"|羊角麵包 |- |奶酪 |colspan="2"|冰淇凌 |奶油 |酸奶酪 |}</nowiki> 显示效果: {| class="wikitable" style="width: 100%; !colspan="6"|购物清单 |- |rowspan="2"|麵包和奶油 |派 |小圆面包 |丹麥甜糕餅 |colspan="2"|羊角麵包 |- |奶酪 |colspan="2"|冰淇凌 |奶油 |酸奶酪 |} class可选值: wikitable mw-collapsible sortable 相关工具: * [http://www.tablesgenerator.com/mediawiki_tables MediaWiki Tables Generator]是一个快速生成表格在线工具,可以可视化编辑表格生成代码,也可以从原有表格(Excel,网页,文本等)直接复制,粘贴到该工具,生成mediawiki表格代码。 {{了解更多|[https://www.mediawiki.org/wiki/Help:Tables/zh Mediawiki 帮助:表格]}} ===图片=== 图片被存储在MediaWiki服务器上通常通过使用File:名字空间前缀(但传统的Image:名字空间前缀仍然作为同义词受到支持)作为MediaWiki链接的目标。 Media:名字空间前缀也可以作为替代用于链接用于引用原始媒体文件内容(在任何MediaWiki页面之外单独呈现或下载)。图片默认支持.jpg 或 .jpeg、.png、.png。其他格式(.svg/.tiff /.ogg/.pdf/.djvu )参见帮助设置。 文件上传默认是禁止的,上传图片需要将LocalSettings.php文件中$wgEnableUploads设置为 true 。 <nowiki>$wgEnableUploads = true;</nowiki> 上传通过[[Special:Upload]]完成。 显示图像的完整语法是: <nowiki>[[File:filename.extension|options|caption]]</nowiki> options是可选项,通过管道符号(|)分隔: 链接到图像: 添加:作为前缀到您要创建的链接前: <nowiki>[[:File:Wiki.png]]</nowiki> [[:File:Wiki.png]] <nowiki>[[:File:Wiki.png|Wiki]]</nowiki> [[:File:Wiki.png|Wiki]] {{了解更多|[https://www.mediawiki.org/wiki/Help:Images/zh Mediawiki 帮助:图片] | [https://www.mediawiki.org/wiki/Manual:Image_administration/zh Mediawiki 帮助:图片管理]}} ===上传文件=== 设置文件种类: 您可以在LocalSettings.php中添加$wgFileExtensions以允许上传其他所需的文件类型。 例如,您可以将$wgFileExtensions行更改为类似的内容 <nowiki>$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'doc', 'xls', 'mpp', 'pdf', 'ppt', 'tiff', 'bmp', 'docx', 'xlsx', 'pptx' );</nowiki> {{了解更多|[https://www.mediawiki.org/wiki/Manual:Configuring_file_uploads/zh Mediawiki 手册:配置文件上传]}} ==扩展== ===数学公式=== '''官方插件:[https://www.mediawiki.org/wiki/Extension:Math/zh Math]''' 使用MathML、LaTeX等标记语言输出SVG或PNG图片格式,使用到了数据库,安装也麻烦些。 手动安装: *下载扩展文件,并上传到服务器wiki的extensions/文件夹中,解压缩。 *将下列代码放置在您的LocalSettings.php的底部: wfLoadExtension( 'Math' ); *运行[https://www.mediawiki.org/wiki/Manual:Update.php/zh 更新脚本],它将自动创建此扩展必须依赖的数据库,注意:Web updater方式升级不行,错误不会消失。 *要设置非纯文本输出的数学输出模式,请按照以下说明启用各种[https://www.mediawiki.org/wiki/Extension:Math/advancedSettings#Math_output_modes 数学输出模式]。 *在Special:MathStatus页面查看Math插件状况。 '''第三方插件:[https://www.mediawiki.org/wiki/Extension:SimpleMathJax SimpleMathJax]''' MathJax是一个跨浏览器的JavaScript库,它使用MathML、LaTeX和ASCIIMathML标记在Web浏览器中显示数学符号。MathJax使用文本排版显示,非图片。 手动安装: *下载扩展文件,并上传到服务器wiki的extensions/文件夹中,解压缩。 *将下列代码放置在您的LocalSettings.php的底部: wfLoadExtension( 'SimpleMathJax' ); *如果想要[https://www.mediawiki.org/wiki/Extension:SimpleMathJax#Configuration_settings 配置] *查看Special:Version页面是否安装成功。 用法:<nowiki>数学记号放在<math>与</math>的标记之间。</nowiki> 使用LaTeX在线编辑器,不用记代码格式,通过手写或输入即可生成代码,然后复制即可。 *[http://latex.91maths.com/mb/ 91数学网:在线LaTex数学公式编辑器]按分类点选然后编辑即可生成LaTeX格式。 *[http://www.wiris.com/editor/demo/en/developers wiris:MathType demo]在线编辑,支持手写,生成LaTeX和MathML。 代码: <nowiki><math>\sum_{k=1}^N k^2</math></nowiki> 显示:<math>\sum_{k=1}^N k^2</math> 如代码: <nowiki><math>x_{\color{Maroon}1,2}=\frac{-b\pm\sqrt{{\color{Maroon}b^2-4ac}}}{2a}</math></nowiki> 显示:<math>x_{\color{Maroon}1,2}=\frac{-b\pm\sqrt{{\color{Maroon}b^2-4ac}}}{2a}</math> {{了解更多|[https://www.mediawiki.org/wiki/Extension:Math/zh Mediawiki 扩展:数学]|[https://www.mediawiki.org/wiki/Extension:Math/advancedSettings#Math_output_modes Mediawiki 扩展:数学/高级设置]|[https://en.wikipedia.org/wiki/MathML 维基百科:MathML]|[https://zh.wikipedia.org/wiki/Help:%E6%95%B0%E5%AD%A6%E5%85%AC%E5%BC%8F 维基百科帮助:数学公式]}} ===图表=== 图表扩展允许基于[[Vega]]的图表被加入至Wiki页面中。图表可以是静态或互动式的。 安装: *安装[https://www.mediawiki.org/wiki/Extension:JsonConfig JsonConfig]扩展,下载插件:[https://www.mediawiki.org/wiki/Special:ExtensionDistributor/JsonConfig 最新版本],放入extensions/文件夹中解压缩。并在LocalSettings.php文件中加入如下代码: wfLoadExtension( 'JsonConfig' ); *安装图表插件,下载插件:[https://www.mediawiki.org/wiki/Special:ExtensionDistributor/Graph 最新版本],放入extensions/文件夹中解压缩。并在LocalSettings.php文件中加入如下代码: wfLoadExtension( 'Graph' ); 插入图表最简单的方法就是使用预先制作的模板,如利用<nowiki>{{Graph:Chart}}</nowiki>制作长条图。 这些模板隐藏了所有Vega复杂的部分。 开发者可借由图表沙盒开发图表。 (除了JSON格式,图表沙盒也支援维基语法) {{了解更多|[https://www.mediawiki.org/wiki/Extension:Graph/zh 帮助文档:扩展图表]|[https://www.mediawiki.org/wiki/Extension:Graph/Demo/zh Mediawiki 扩展:图表/范例]|[https://www.mediawiki.org/wiki/Extension:Graph/Guide Mediawiki 扩展:图表/指导]}} ==魔术字== 魔术字是MediaWiki软件所识别的特定字符串,它们可以返回特定的值或触发其他的功能:比如时间、站点设置或是页面名称等等。以下只解释标准魔术字的用法。 魔术字有三种常规类型: * 状态开关:通常写成以两个下划线为前后缀的大写单词,例如__FOO__。 * 变量:字符被两个大括号括起来,所有字母大写,例如<nowiki>{{FOO}}</nowiki>。用法与模板类似。 * 解析器函数:可以创造参数,<nowiki>既可以是格式{{foo:...}},也可以是{{#foo:...}},例如{{#invoke:}}</nowiki>。参见帮助:扩展:解析器函数和扩展:Scribunto。 {{了解更多| [https://www.mediawiki.org/wiki/Help:Magic_words/zh Mediawiki 帮助:魔术字]| [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Magic_words Mediawiki 手册:魔术字] }} ===状态开关=== 状态开关可以控制页面(只要受皮肤支持)的显示方式或其他行为。它往往用于排除或加入特定的页面内容。例如在页面中加入<code><nowiki>__NOTOC__</nowiki></code>会隐藏该页面的目录。 {| class="wikitable" style="width:100%;" |- !style="background-color: #DDDDDD;"|魔术字 !style="background-color: #DDDDDD;"|描述 !style="background-color: #DDDDDD;"|版本 |- !colspan="3" | 目录 |- | <nowiki>__NOTOC__</nowiki> | 隐藏目录(TOC)。 | |- |<nowiki>__FORCETOC__</nowiki> | 强制于默认位置(第一个章节标题上方,忽略<nowiki>__NOTOC__</nowiki>的设置)显示目录。 | |- | <nowiki>__TOC__</nowiki> | <nowiki>在魔术字的位置插入目录(忽略<nowiki>__NOTOC__</nowiki>的设置)。如果这个魔术字在一个页面内被多次使用,目录将出现在第一个词的位置。</nowiki> | |- !colspan="3"| 编辑 |- | <nowiki>__NOEDITSECTION__</nowiki> | 隐藏章节标题旁的编辑链接。 | |- | <nowiki>__NEWSECTIONLINK__</nowiki> |在非讨论页顶端“编辑”标签右侧加入一个按钮,用于在页面结尾加入新的章节(参见[在页面末尾加入新章节 在页面末尾加入新章节])。 | 1.7+ |- | <nowiki>__NONEWSECTIONLINK__</nowiki> | 移除讨论页顶端“编辑”右侧的加入新章节链接。 | 1.15+ |- !colspan="3"| 分类 |- | <nowiki>__NOGALLERY__</nowiki> | 用于分类页面。不显示分类中所包含文件的缩略图,而以普通链接代替。 | 1.7+ |- | <nowiki>__HIDDENCAT__</nowiki> | 用于分类页面。加入后此分类成为隐藏分类,将不会显示在上级分类其及成员页面的分类列表中(可以通过参数设置中的选项强制显示)。 | 1.13+ |- | <nowiki>__EXPECTUNUSEDCATEGORY__</nowiki> | 在分类页面上使用,从Special:UnusedCategories中删除分类。 | 1.33+ |- !colspan="3"| 语言转换 |- | <nowiki>__NOCONTENTCONVERT__</nowiki><br /><nowiki>__NOCC__</nowiki> | 在语言有不同变体时(如中文简体和繁体),不对当前页面进行字词转换。比如只显示中文,而不是显示大陆简体、台湾繁体、新加坡简体和香港繁体。 | |- | <nowiki>__NOTITLECONVERT__</nowiki><br /><nowiki>__NOTC__</nowiki> | 在语言有不同变体时(如中文简体和繁体),不对当前页面进行标题转换(其他内容照常转换)。 | |- !colspan="3"| 其他 |- |<del> <nowiki>__START__</nowiki></del> | <del>无影响。 曾用于指向不应被嵌入的注释之后开始的数据库消息。已被彻底废弃。</del> | -1.10 |- |<del> <nowiki>__END__</nowiki></del> |<del>明确标记条目的结尾,来防止MediaWiki移除文末的空格。在19213中移除。</del> |1.1-1.8 |- | <nowiki>__INDEX__</nowiki> | 允许搜索引擎检索本页(忽略$wgArticleRobotPolicies的参数设置但并无法忽略robots.txt)。服从$wgExemptFromUserRobotsControl的设定。 | 1.14+ |- | <nowiki>__NOINDEX__</nowiki> | 禁止搜索引擎检索本页(比如不可在搜索引擎列出指定页面)。服从变量$wgExemptFromUserRobotsControl的设定。 | 1.14+ |- | <nowiki>__STATICREDIRECT__</nowiki> | 用于一些重定向页面。当有人移动页面并勾选“更新所有指向原始标题的重定向”时,禁止MediaWiki更新本页的重定向(需要变量$wgFixDoubleRedirects)。 | 1.13+ |- |} ===变量=== 变量可以返回关于当前页面、wiki站点或日期的信息。变量的语法与模板类似。其中标记为“[高开销]”的变量会被软件记录,且在一个页面中可使用的总数会被限制。 如果某一模板名与变量名重复,软件会自动将其解释为变量(因此若要包含Template:PAGENAME,页面中需要写作<nowiki>{{Template:PAGENAME}}</nowiki>)。在某些情况下,加入参数会强制软件将变量视作一个模板,如<nowiki>{{CURRENTDAYNAME|x}}</nowiki>将会包含Template:CURRENTDAYNAME,而不是变量。 ====日期和时间==== 以下的变量返回当前的日期和UTC时间。 在MediaWiki与浏览器缓存的影响下,这些变量显示的往往是被缓存的值,而非当前的时间。 使用这些变量会使页面被缓存的时间变得更短,这可以通过[https://github.com/wikimedia/mediawiki/blob/master/includes/MagicWordFactory.php#L122 MagicWordFactory] 设置。 日期和时间魔术字被格式化为相应的语种。自1.19版本开始,它们取决于页面内容语言。 要使用所在服务器的日期与时间,将下面变量中的<code>CURRENT</code>改为<code>LOCAL</code>即可,如<code><nowiki>{{LOCALTIME}}</nowiki></code>表示服务器时间。 {|class = "wikitable" style="width:100%" |- !style="background-color: #DDDDDD;"|变量 !style="background-color: #DDDDDD;"|输出 !style="background-color: #DDDDDD;"|描述 !style="background-color: #DDDDDD;"|版本 |- ! colspan="4"| 年 |- | <nowiki>{{CURRENTYEAR}}</nowiki> | {{CURRENTYEAR}} | 年 | |- ! colspan="4"| 月 |- | <nowiki>{{CURRENTMONTH}}</nowiki> | {{CURRENTMONTH}} | 月(补足前导的0) | |- | <nowiki>{{CURRENTMONTH1}}</nowiki> | {{CURRENTMONTH1}} | 月(无前导的0) | |- | <nowiki>{{CURRENTMONTHNAME}}</nowiki> | {{CURRENTMONTHNAME}} | 月份名称 | |- | <nowiki>{{CURRENTMONTHNAMEGEN}}</nowiki> | {{CURRENTMONTHNAMEGEN}} | 月份(属格) | |- | <nowiki>{{CURRENTMONTHABBREV}}</nowiki> | {{CURRENTMONTHABBREV}} | 月份(缩写) | 1.5+ |- ! colspan="4"| 日 |- | <nowiki>{{CURRENTDAY}}</nowiki> | {{CURRENTDAY}} | 日(无前导的0) | |- | <nowiki>{{CURRENTDAY2}}</nowiki> | {{CURRENTDAY2}} | 日(补足前导的0) | 1.6+ |- | <nowiki>{{CURRENTDOW}}</nowiki> | {{CURRENTDOW}} | 星期(数字格式),0(星期日)到6(星期六)表示 | |- | <nowiki>{{CURRENTDAYNAME}}</nowiki> | {{CURRENTDAYNAME}} | 星期(名称) | |- ! colspan="4"| 时间 |- | <nowiki>{{CURRENTTIME}}</nowiki> | {{CURRENTTIME}} | 时间(24小时制HH:mm的格式) | |- | <nowiki>{{CURRENTHOUR}}</nowiki> | {{CURRENTHOUR}} | 时间(24小时制含前导0的数字) | |- ! colspan="4"| 其他 |- | <nowiki>{{CURRENTWEEK}}</nowiki> | {{CURRENTWEEK}} | 周数(数字) | |- | <nowiki>{{CURRENTTIMESTAMP}}</nowiki> | {{CURRENTTIMESTAMP}} | YYYYMMDDHHmmss时间戳 | 1.7+ |} ====技术元数据==== {|class = "wikitable" style="width:100%" |- !style="background-color: #DDDDDD;"|变量 !style="background-color: #DDDDDD;"|输出 !style="background-color: #DDDDDD;"|描述 !style="background-color: #DDDDDD;"|版本 |- ! colspan="4"| 站点 |- |<nowiki>{{SITENAME}}</nowiki> | {{SITENAME}} | 维基网站的名称($wgSitename)。 | |- |<nowiki>{{SERVER}}</nowiki> | {{SERVER}} | 域名URL($wgServer)。 | |- |<nowiki>{{SERVERNAME}}</nowiki> | {{SERVERNAME}} | 子域名和域名(自版本1.17后不再取决于$wgServerName)。 | |- |<nowiki>{{DIRMARK}}</nowiki><br /><nowiki>{{DIRECTIONMARK}}</nowiki> | {{DIRMARK}}<br />{{DIRECTIONMARK}} | 输出这个wiki默认语言所使用的Unicode文本方向控制字符(从左到右书写的语言使用<code>&lrm;</code> ,反之使用<code>&rlm;</code> ),这在多方向文本中很有用。它取决于页面语言。 | 1.7+ |- |<nowiki>{{SCRIPTPATH}}</nowiki> | {{SCRIPTPATH}} | 脚本相对路径($wgScriptPath)。 | |- |<nowiki>{{STYLEPATH}}</nowiki> | {{STYLEPATH}} | 样式相对路径($wgStylePath)。 | |- |<nowiki>{{CURRENTVERSION}}</nowiki> | {{CURRENTVERSION}} | 此维基站点的MediaWiki版本。 | 1.7+ |- |<nowiki>{{CONTENTLANGUAGE}}</nowiki><br /><nowiki>{{CONTENTLANG}}</nowiki> | {{CONTENTLANGUAGE}}<br />{{CONTENTLANG}} | 默认界面语言($wgLanguageCode)。 | 1.7+ |- ! colspan="4"| 页面 |- | <nowiki>{{PAGEID}}</nowiki> | {{PAGEID}} | 返回页面编号。 | 1.20+ |- | <nowiki>{{PAGELANGUAGE}}</nowiki><br><nowiki>{{#language:{{PAGELANGUAGE}}}}</nowiki> | {{PAGELANGUAGE}}<br>{{#language:{{PAGELANGUAGE}}}} | 返回当前页面的语言。此变量返回的语言代码可使用<nowiki>{{#language:...}}</nowiki>转换为语言名。 | 1.29+ |- | <nowiki>{{PROTECTIONLEVEL:行为}}</nowiki> | | 输出当前页面对于特定行为(比如edit,move)的保护级别(autoconfirm或sysop等)。若未保护则返回空字符串。 | 1.15+ |- | <nowiki>{{PROTECTIONEXPIRY:动作}}</nowiki> | | 根据给出的动作(如edit、move),返回当前页面的保护信息(例如:时间戳“20160418155030”,或“infinity”) 如果未被保护,则会返回"infinity"。 | 1.27+ |-style="background:#FED;" | <nowiki>{{CASCADINGSOURCES}}</nowiki> | | '''[高开销]''' 返回当前页面上的任意连锁保护操作来源。除非存在自我嵌入,否则页面将不会返回其各自标题。 | 1.23+ |- ! colspan="4"| 最近一次编辑版本 |- | <nowiki>{{REVISIONID}}</nowiki> | {{REVISIONID}} | 唯一的版本ID。 在预览中为空,因此能用来显示仅限于预览时的错误讯息。 可能在[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgMiserMode 吝啬模式]中被停用。 | 1.5+ |- | <nowiki>{{REVISIONDAY}}</nowiki> | {{REVISIONDAY}} | 最近一次编辑的日期(无前导0)。 | 1.8+ |- | <nowiki>{{REVISIONDAY2}}</nowiki> | {{REVISIONDAY2}} | 最近一次编辑的日期(前导0)。 | 1.8+ |- | <nowiki>{{REVISIONMONTH}}</nowiki> | {{REVISIONMONTH}} | 最近一次编辑的月份(1.17+有前导0,较早版本没有前导0)。 | 1.8+ |- | <nowiki> {{REVISIONMONTH1}} </nowiki> | | 最近一次编辑的月份(没有前导0)。 | 1.17+ |- | <nowiki> {{REVISIONYEAR}} </nowiki> | {{REVISIONYEAR}} | 最近一次编辑的年份 | 1.8+ |- | <nowiki> {{REVISIONTIMESTAMP}} </nowiki> | {{REVISIONTIMESTAMP}} | 最近一次编辑的时间戳。 | 1.8+ |- | <nowiki> {{REVISIONUSER}} </nowiki> | {{REVISIONUSER}} | 最近一个对指定页面作出编辑的用户,或者当前正在对其编辑进行预览的用户。 | 1.15+ |- | <nowiki> {{REVISIONSIZE}} </nowiki> | {{REVISIONSIZE}} | 当前版本页面的大小(维基文本) | 1.22+ |- ! colspan="4"| 影响页面内容 |- | <nowiki> {{DISPLAYTITLE:标题}} </nowiki> </br><nowiki> {{DISPLAYTITLE:标题|noerror}} </nowiki> </br><nowiki> {{DISPLAYTITLE:标题|noreplace}} </nowiki> | | 设置当前页面标题的显示格式。变量值须与标题等值:只允许对标题的特定部分(不是全部标题)的大小写变化和用下划线替换替换空格(这个设定可以通过$wgRestrictDisplayTitle改变)。可以通过$wgAllowDisplayTitle将其启用或禁用;在1.10+前默认禁用,之后的版本中默认启用。 可以使用第二个参数:“noerror”关闭使用多个本魔术字时导致错误信息提示。或“noreplace”如果displaytitle在前文已经设置,则关闭使用多个本魔术字时导致错误信息提示令displaytitle失效。 | 1.7+ </br> 1.24+ <br> (以无错误提示、不替换为目的) |- | <nowiki> {{DEFAULTSORT:排序关键字}}</nowiki> </br> <nowiki> {{DEFAULTSORTKEY:排序关键字}} </nowiki> </br> <nowiki> {{DEFAULTCATEGORYSORT:排序关键字}}</nowiki> </br> <nowiki> {{DEFAULTSORT:排序关键字|noerror}} </nowiki> </br><nowiki> {{DEFAULTSORT:|noreplace}} </nowiki> | | 在分类页面上使用,用来设置默认在分类中排序关键字。例如当你将<nowiki>{{DEFAULTSORT:Smith , John}}</nowiki>放到页面John Smith的结尾,该页面在分类页面上的列表中将默认排到“S”项下。可以使用第二个参数:“noerror”关闭使用多个本魔术字时导致错误信息提示。或“noreplace”如果defaultsort在前文已经设置,则关闭使用多个本魔术字时导致错误信息提示,令defaultsort失效。 | 1.10+ </br> 1.19+ <br> (以无错误提示、不替换为目的) |- |} ====统计==== 这些变量返回的数字往往包含分隔符(根据本地语言参数设置而可能是逗号或空格)。可以通过“:R”来返回无分隔号的数字(例如<nowiki>{{{NUMBEROFPAGES}} → 942,405和{{NUMBEROFPAGES:R}} → 942405</nowiki>)。 对于PAGESINCATEGORY等需要参数的变量则使用“|R”(例如<nowiki>{{PAGESINCATEGORY:Help}}和{{PAGESINCATEGORY:Help|R}}及{{PAGESINCATEGORY:Help|subcats}}和{{PAGESINCATEGORY:Help|subcats|R}})。并且也适用于前述{{PAGESIZE:页面名称}}</nowiki>。 返回数字的魔术字数字格式取决于内容语言的设定。自1.19开始,它取决于页面内容语言。 {|class = "wikitable" style="width:100%" |- !style="background-color: #DDDDDD;"|变量 !style="background-color: #DDDDDD;"|输出 !style="background-color: #DDDDDD;"|描述 !style="background-color: #DDDDDD;"|版本 |- | <nowiki>{{NUMBEROFPAGES}}</nowiki> | {{NUMBEROFPAGES}} | 页面总数 | 1.7+ |- | <nowiki>{{NUMBEROFARTICLES}}</nowiki> | {{NUMBEROFARTICLES}} | 在[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Using_custom_namespaces#content-ns 内容名字空间]中,作为条目的页面个数。 参见手册:[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgArticleCountMethod $wgArticleCountMethod]获得详情。 | |- | <nowiki>{{NUMBEROFFILES}}</nowiki> | {{NUMBEROFFILES}} | 上传的文件总数。 | 1.5+ |- | <nowiki>{{NUMBEROFEDITS}}</nowiki> | {{NUMBEROFEDITS}} | 总编辑次数 | 1.10+ |- | <del><nowiki>{{NUMBEROFVIEWS}}</nowiki></del> | | <del>页面浏览次数。通常对使用缓存的wiki无效。 在Gerrit change 150699被删除。</del> | 1.14 - 1.24 |- | <nowiki>{{NUMBEROFUSERS}}</nowiki> | {{NUMBEROFUSERS}} | 注册用户数量 | 1.7+ |- | <nowiki>{{NUMBEROFADMINS}}</nowiki> | {{NUMBEROFADMINS}} | 管理员(sysop)组用户数。 | 1.7+ |- | <nowiki>{{NUMBEROFACTIVEUSERS}}</nowiki> | {{NUMBEROFACTIVEUSERS}} | 活跃用户总数,其标准与[https://www.mediawiki.org/wiki/Special:Statistics Special:Statistics]中的标准相同。 | 1.15+ |-style="background:#FED;" | <nowiki>{{PAGESINCATEGORY:分类名称}}</nowiki><br /><nowiki>{{PAGESINCAT:分类名称}}</nowiki> | {{PAGESINCATEGORY:Help}} <br /> {{PAGESINCAT:Help}} |[高开销] 指定分类中的页面总数(包括子类和文件)。输出示例使用<code><nowiki>{{PAGESINCATEGORY:Help}}</nowiki></code>和<code><nowiki>{{PAGESINCAT:Help}} </nowiki></code> | 1.13+ |-style="background:#FED;" | <nowiki>{{PAGESINCATEGORY:分类名称|all}}</nowiki><br/> <nowiki>{{PAGESINCATEGORY:分类名称|pages}}</nowiki><br/> <nowiki>{{PAGESINCATEGORY:分类名称|subcats}}</nowiki><br/> <nowiki>{{PAGESINCATEGORY:分类名称|files}}</nowiki><br/> | {{PAGESINCATEGORY:Help|all}}<br/> {{PAGESINCATEGORY:Help|pages}}<br/> {{PAGESINCATEGORY:Help|subcats}}<br/> {{PAGESINCATEGORY:Help|files}} | [高开销] 返回指定分类的: *所有页面数 *所有非分类页和非文件页数 *所有子分类页数 *所有文件页数 (Category:Help 在此用于演示) |1.20+ |- | <nowiki>{{NUMBERINGROUP:用户组}}</nowiki><br /><nowiki>{{NUMINGROUP:用户组}}</nowiki> | {{NUMBERINGROUP:bureaucrat}}<br />{{NUMINGROUP:bureaucrat}} | 特定用户群组中的用户总数。输出示例使用<code><nowiki>({{NUMBERINGROUP:bureaucrat}}</nowiki></code>和{<code><nowiki>{NUMINGROUP:bureaucrat}}</nowiki></code> | 1.14+ |- style="background:#FED;" | <nowiki>{{PAGESINNS:索引编号}}</nowiki><br /><nowiki>{{PAGESINNAMESPACE:索引编号}}</nowiki> | 未启用 | [高开销] 指定名字空间中的页面总数。(将“索引编号”替换成相关名字空间编号)。例如<code><nowiki>{{PAGESINNAMESPACE:14}}</nowiki></code>返回分类页面总数。<nowiki>{{PAGESINNS:0}}与{{NUMBEROFARTICLES}}</nowiki>不同之处在于包括重定向页面和消除歧义页面。默认禁用,可以通过$wgAllowSlowParserFunctions设置启用。 | 1.7+ |} ====页面名称==== 以下变量不受<code><nowiki>{{DISPLAYTITLE:xxxx}}</nowiki></code> 影响,它们都会按原来的页面标题计算返回值。 <code><nowiki>{{BASEPAGENAME}}</nowiki></code> 和<code><nowiki>{{SUBPAGENAME}}</nowiki></code>这两个魔术字只在启用了子页面模式的名字空间才生效。关于启用子页面模式请看[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgNamespacesWithSubpages $wgNamespacesWithSubpages]。 在1.15+之后,以下魔术字可以接受一个参数,用于指定特定页面,来代替要处理的当前页面设定,如<code><nowiki>{{PAGENAME:Template:Main Page}}</nowiki></code> → Main Page 。 注意: 如果页面标题包含存在<code>.</code>或<code>..</code>的任意部分,魔术字不会返回任何东西。 页面标题如果包括特定字符,例如:单引号<code>'</code>、星号<code>*</code>, 会导致以下魔术字会有不正常的处理结果,一种简单的修复方法是使用解析器函数扩展的<nowiki>{{#titleparts:}}</nowiki>来处理标题。 以下使用Help:Magic words/zh页面为例输出 {|class = "wikitable" style="width:100%" |- !style="background-color: #DDDDDD;"|变量 !style="background-color: #DDDDDD;"|输出 !style="background-color: #DDDDDD;"|描述 !style="background-color: #DDDDDD;"|版本 |- | <nowiki>{{FULLPAGENAME}}</nowiki> | Help:Magic words/zh | 名字空间与完整页面标题(包括子页面级别)。 | 1.6+ |- | <nowiki>{{PAGENAME}}</nowiki> | Magic words/zh | 不包含名字空间的完整页面标题(包括子页面级别)。 | |- | <nowiki>{{BASEPAGENAME}}</nowiki> | Magic words | 页页面标题,不包括当前子页面标题及命名空间。 在Help:Title/Foo/Bar页面返回Title/Foo。 | 1.7+ |- | <nowiki>{{ROOTPAGENAME}}</nowiki> | Magic words | 获得当前页面的根页名。 在Help:Title/Foo/Bar页面返回Title。 | 1.22+ |- | <nowiki>{{SUBPAGENAME}}</nowiki> | zh | 子页面标题。 在Help:Title/Foo/Bar页面返回Bar。如果子页面不存在将会回传{{PAGENAME}}的值。如果需要使用更多匹配的话,请使用解析器函数扩充功能的{{#titleparts:}}。 | 1.6+ |- | <nowiki>{{SUBJECTPAGENAME}}</nowiki><br><nowiki>{{ARTICLEPAGENAME}}</nowiki> | Help:Magic words/zh<br>Help:Magic words/zh | 获得该页面的完整页面名。对讨论页十分有用。 | 1.7+ |- | <nowiki>{{TALKPAGENAME}}</nowiki> | Help talk:Magic words/zh | 关联讨论页的完整页面名称 | 1.7+ |- |} 要获取URL编码后的页面名称(就是空格替换为下划线,以及使用数字字符编码的一些HTML溢出字符),只需要将上面几个魔术字名称后面添加<code>E</code>即可,例如<code><nowiki>{{FULLPAGENAMEE}}</nowiki></code>就是<code><nowiki>{{FULLPAGENAME}}</nowiki></code>在URL中的等价编码。 注意<code><nowiki>{{PAGENAME:...}}</nowiki></code>、<code><nowiki>{{PAGENAMEE:...}}</nowiki></code>和<code><nowiki>{{urlencode:...}}</nowiki></code>有不同的实现方式。参见[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:PAGENAMEE_encoding 手册:PAGENAMEE编码]以获取详情。 ====命名空间==== 在1.15+开始,这些可以是完整页面名参数,并将返回与那个页面相关的请求名字空间,而不是在当前页面中。如<code><nowiki>{{NAMESPACE:Template:Main Page}}</nowiki></code> → Template 。注意:参数必须不是一个名字空间名称。 {|class = "wikitable" style="width:100%" |- !style="background-color: #DDDDDD;"|变量 !style="background-color: #DDDDDD;"|输出 !style="background-color: #DDDDDD;"|描述 !style="background-color: #DDDDDD;"|版本 |- | <nowiki>{{NAMESPACE}}</nowiki> | {{NAMESPACE}} | 命名空间的名称 | |- | <nowiki>{{NAMESPACENUMBER}}</nowiki> | {{NAMESPACENUMBER}} | 页面所在命名空间的ID |1.20+ |- | <nowiki>{{SUBJECTSPACE}}</nowiki><br /><nowiki>{{ARTICLESPACE}}</nowiki> | {{SUBJECTSPACE}}<br />{{ARTICLESPACE}} | 相关联的内容命名空间的名称 | 1.7+ |- | <nowiki>{{TALKSPACE}}</nowiki> | {{TALKSPACE}} | 相关联的讨论命名空间的名称 | 1.7+ |} 要获取URL编码后的命名空间名称(就是空格替换为下划线,一些字符替换为百分号编码),只需要将上面几个魔术字名称后面添加<code>E</code>即可,例如<code><nowiki>{{NAMESPACEE}}</nowiki></code>就是<code><nowiki>{{NAMESPACE}}</nowiki></code>在URL中的等价编码。 ====其他==== {|class = "wikitable" style="width:100%" |- !style="background-color: #DDDDDD;"|变量 !style="background-color: #DDDDDD;"|输出 !style="background-color: #DDDDDD;"|描述 !style="background-color: #DDDDDD;"|版本 |- | <nowiki>{{!}}</nowiki> | <nowiki>|</nowiki> | 用于在模板或者是表格内插入管道符号。在被添加为魔术字之前,许多wiki通过创建包含<nowiki>|</nowiki>内容的Template:!来实现。 | 1.24+ |} ===解析器函数=== 解析器函数与变量相似,但需要一个或多个参数(技术上讲,任何需要参数的魔术字都是解析器函数)。以下介绍一些MediaWiki重要的解析器函数,解析器函数还可以通过扩展添加,如下文的扩展:解析器函数。 ====指定页面的技术元数据==== {{PAGEID: 首页}} ====URL数据==== ====名字空间==== ====格式化==== ====本地化==== ====嵌入修改器==== ====杂项==== ====扩展:解析器函数==== 解析器函数(ParserFunctions)插件,提供一些函数加强了维基格式文本(wikitext)的解析能力。此扩展被用于一个或多个维基媒体项目上,这可能意味着扩展稳定且工作良好。 安装: * MediaWiki 1.18及以上版本已经包含该插件,开启即可使用 * 将下列代码放置在您的LocalSettings.php的底部: wfLoadExtension( 'ParserFunctions' ); * 完成 – 在您的wiki上导航至Special:Version,以验证扩展已成功安装。 解析器函数扩展提供11个附加解析器函数以补充MediaWiki固有的“魔术字”。<nowiki> 解析器函数格式:{{#函数名: 参数1 | 参数2 | 参数3... }},如{{#expr: 表达式 }}这个函数用来计算表达式并返回结果,{{#expr: 1+1 }}会输出2。</nowiki> {| class="wikitable" |- ! 函数名 !! 格式 !! 描述 !! 示例 !! 结果 |- | #expr || <nowiki>{{#expr: 表达式 }}</nowiki> || 计算并返回数学表达式的结果 || <nowiki>{{#expr: 1+1 }}</nowiki> || 2 |- | #if ||<nowiki> {{#if: 字符串 | 当字符串不是空值时的值 | 当字符串是空值(或只包括空格)时的值 }}</nowiki> || 判断一个字符串是否为空,根据结果返回不同值 || <nowiki>{{#if: | 不空显示 | 空时显示我}} </nowiki>|| 空时显示我 |- | #ifeq ||<nowiki> {{#ifeq: string 1 | string 2 | value if identical | value if different }}</nowiki> || 函数判断两个输入字符串是否相同,根据结果返回不同值 || <nowiki>{{#ifeq: foo | bar | 相等结果| 不等结果}} </nowiki>|| 不等结果 |- | #iferror || <nowiki>{{#iferror: test string | value if error | value if correct }} </nowiki>|| 函数以一个字符串为输入,根据字符串是否出错返回不同值 ||<nowiki> {{#iferror: {{#expr: 1 + X }}</nowiki> | 正确| 出错 }}</nowiki> || 出错 |- | #ifexpr || <nowiki>{{#ifexpr: expression | value if true | value if false }} </nowiki>|| 判断数学表达式并根据其布尔值结果返回对应的字符串 ||<nowiki> {{#ifexpr: 1 < 0 | 正确 | 错误}}</nowiki> || 错误 |- | #ifexist || <nowiki>{{#ifexist: page title | value if exists | value if doesn't exist }}</nowiki> || 将一组字符串作为输入,并翻译成页面标题,然后根据在本地wiki上是否存在该页面而返回对应的值。 || <nowiki>{{#ifexist: Help:Extension:ParserFunctions/zh | exists | doesn't exist }}</nowiki> || exists |- | #rel2abs || <nowiki>{{#rel2abs: path }} {{#rel2abs: path | base path }} </nowiki>|| 将相对文件路径转化为绝对文件路径 || <nowiki>{{#rel2abs: /quok | Help:Foo/bar/baz }}</nowiki> || Help:Foo/bar/baz/quok |- | #switch || <nowiki>{{#switch: comparison string | case1 = result | case2 = result | ...| default result}}</nowiki> || 根据输入的字符串,返回第一个匹配到的结果的值 ||<nowiki>{{#switch: 苹果 | 李子 = 你选了李子 | 苹果 = 你选了苹果 | 你选了水果}} </nowiki>|| 你选了苹果 |- | #time || <nowiki>{{#time: format string | date/time object | language code | local }} </nowiki>|| 格式化日期时间 || <nowiki>{{#time: Y-m-d }}</nowiki> || {{#time: Y-m-d }} |- | #timel || <nowiki>{{#timel: format string | date/time object | language code }}</nowiki> || 格式化日期时间,等同于time函数的local设置为true ||<nowiki> {{#timel:c|now|it}}</nowiki> || {{#timel:c|now|it}} |- | #titleparts || <nowiki>{{#titleparts: 文章名 | 返回片段的个数 | 返回的第一个片段的起始位置 }} </nowiki>|| 按斜线将文章名分解成不同片段,按需求返回内容 || <nowiki>{{#titleparts: Talk:Foo/bar/baz/quok | 2 | 2 }} </nowiki>|| bar/baz |- |} {{了解更多 |[https://www.mediawiki.org/wiki/Extension:ParserFunctions/zh Mediawiki 扩展:解析器函数]|[https://www.mediawiki.org/wiki/Help:Extension:ParserFunctions/zh Mediawiki 帮助:扩展:解析器函数] }} ==模板== 如果你需要在多个页面上包含同样格式的文本的话,MediaWiki 的模板功能就起到作用了。 ===创建模板=== 在搜索栏输入“Template:模板名称”,在结果中点击红色链接创建模板。 ===使用模板=== 模板使用有四种方法: *<nowiki>{{模板名称}}</nowiki>:引用模板 *<nowiki>{{subst:模板名称}}</nowiki>:页面保存时候,会把模板内容复制到当前页面。 *<nowiki>{{safesubst:模板名称}}</nowiki> *<nowiki>{{msgnw:模板名称}}</nowiki> ===模板参数=== 模板中可以放置变量,声明变量的方法是使用三组花括号:{{{变量名称}}}。变量名称可以是数字或字母,字母大小写敏感。如下模板<nowiki>Template:Thankyou</nowiki>:<br \> <nowiki>'''感谢你!''' 感谢 {{{1}}}。 来自 {{{2}}} </nowiki> 在调用模板时,需要为变量赋值,变量间用一个竖线符号(|)分隔。赋值方式有三种:隐式赋值、名称赋值。 隐式赋值:变量名称不写,按变量顺序赋值,这种变量顺序一定要对。如:<nowiki>{{Thankyou|你的努力|张三}}</nowiki> 名称赋值:写上变量名称和值,顺序可以颠倒。如:<nowiki>{{Thankyou|1=你的努力|2=张三}}</nowiki> 模板变量可以设置缺省值,当引用模板时候,这个变量没赋值,便会显示缺省值。如下模板: <nowiki>'''感谢你!''' 感谢{{{reason|一切}}}。 来自{{{signature|张三}}}</nowiki> 当调用模板时候,变量reason不赋值,如:<nowiki>{{Thankyou|signature=李四}}</nowiki>,这时候输出会变成:感谢你!感谢一切。来自张三 '''内容的显示和不显示''': *<nowiki><noinclude>:模板中<noinclude>和</noinclude>之间的内容</nowiki>只在查看模板时候显示,嵌入模板的页面不会显示。可用于:模板归类,模板的注释内容等。 *<nowiki><includeonly>:模板中<includeonly>和</includeonly>之间的内容只会在嵌入页面的时候才会被处理或显示,直接查看模板时不会显示。 两个标签之外的内容在模板和引用页面都会显示。</nowiki> ===模板示例=== 如下面制作一个公式模板,在搜索框输入“Template:公式”来查看模板内容,在文章中按下面方法使用: <nowiki>{{公式|公式名称|<math>表达式如:c=a+b</math>|编号|注释}}</nowiki> 显示效果: {{公式|公式名称|<math>表达式如:c=a+b</math>|编号|注释}} {{了解更多|[https://www.mediawiki.org/wiki/Help:Templates/zh Mediawiki 帮助:模板]}} ==管理== ===分类=== 分类是 MediaWiki 软件的一项功能,分类页面会自动索引该分类的所有页面,生成一个列表。您只需给页面的维基文本中加上一个或多个Category标记即可将页面归类。在分类页面可以很方便地查看相关文章。 所有分类页面都位于分类(category)名字空间,该页面中包含一组相关的页面以及该分类中子类的索引。 {{了解更多|[https://www.mediawiki.org/wiki/Help:Categories/zh Mediawiki 帮助:分类]}} ====将页面分类==== 在页面中添加 <code><nowiki>[[category:xxx]]</nowiki></code> 或 <code><nowiki>[[分类:xxx]]</nowiki></code> ,一般放置于文章结尾。表示该篇文章添加到xxx分类。你可以为页面添加多个Category标记,页面名称将列入所有这些分类页面中。 页面分类后,其分类一般显示于页面底端的分类框中(取决于皮肤),排列顺序取决于你输入时的顺序。默认只显示分类名“xxx”,可以通过设置 <code><nowiki>$wgUseCategoryBrowser=true</nowiki></code> 将每个分类与所有母类一起显示出来。页面也可以隐藏分类,MediaWiki 1.13 及后续版本中,只要在该页面加入“魔术字” <code><nowiki>__HIDDENCAT__</nowiki></code> 。读者可以在 "隐藏分类" 处查看隐藏的分类。只需在<code><nowiki>Special:Preferences</nowiki></code>的“显示”一节处点选 "显示隐藏分类" 即可。 页面在分类页面上的默认排序依据页面名称的首字(母),依据Unicode顺序排列。分组也是依据是首字(母)。可以通过“排序依据”来修改一个页面所属分组,即在管道字符后标记排序依据。如在页面中添加 <code><nowiki>[[Category:xxx|yyy]]</nowiki></code> ,将在分类页面上把”xxx“归于”y“组,而不是默认的”x“组。 ====创建分类页面==== 无论分类页面是否创建,分类都将存在。但是这样的分类将孤立于其他页面,并且在组织内容和导航方面作用有限。在分类(category)名字空间创建的页面都属于分类页面。分类页面的创建与创建普通页面没有什么不同,创建时注意在页面名称前加上 <code><nowiki>Category:</nowiki></code> 或 <code><nowiki>分类:</nowiki></code> 即可。 ====管理分类==== 分类可以是某分类的子分类。可将Category添加到分类页面的底端,从而将该分类归入某个母分类。如<code><nowiki>[[category:xxx]]</nowiki></code> 或 <code><nowiki>[[分类:xxx]]</nowiki></code>添加到分类页面“category:zzz”的底端,从而将分类“xxx”归入母分类“zzz”。 分类页面也可以被重定向到其他页面或者分类页面。但是,不建议这么做。因为被分类到重定向分类的页面将无法归入目标分类中。有些维基网站使用"分类重定向"模板来标记重定向分类,允许手工或者自动清除这些被分类到那里的页面。 特定的语法问题,比如失效的链接,或者过多的有过多昂贵解析器函数调用的页面,将导致页面被添加到“追踪分类”中。 ====链接到一个分类==== 要创建一个指向分类页面的链接,需要在“分类”前加上冒号(没有这个冒号,页面将被归入该分类)。如链接到分类“帮助”使用<code><nowiki>[[:分类:软件]]</nowiki></code>,将显示: [[:分类:软件]]。 要改变链接所显示的文本,使用管道符号“|”传递文本,如:<code><nowiki>[[:Category:软件|软件分类]]</nowiki></code>,将显示:[[:Category:软件|软件分类]]。 ===备份=== MediaWiki数据保存在两个地方: *'''数据库:页面和内容,用户和用户的偏好设置,原数据,搜索索引,等等。''' *'''文件系统:软件配置文件,自定外观,扩充功能,图像(包括已删除图像)等等。''' 备份步骤: *维基设置为只读,在LocalSettings.php文件中加入如下代码: $wgReadOnly = 'This wiki is currently being upgraded to a newer software version. Please check back in a couple of hours.'; *文件系统用FTP或打包下载等。 *数据库使用phpMyAdmin管理的话,点击导出即可。 {{了解更多|[https://www.mediawiki.org/wiki/Manual:Backing_up_a_wiki/zh Mediawiki 帮助:备份]}} ===升级=== *备份wiki网站,以防万一。 *下载最新版本,上传到服务器并解压缩。 *把之前版本的LocalSettings.php,图片文件夹,插件文件复制到新版本。把之前版本文件夹名称修改,新版文件夹名称改为之前。 *运行升级,小体量可以用web升级,将您的浏览器导航到/mw-config/,按向导升级。 {{了解更多|[https://www.mediawiki.org/wiki/Manual:Upgrading/zh Mediawiki 帮助:升级]}} ===错误调试=== 下面参数可以在页面显示错误信息,默认是关闭,可以在LocalSettings.php文件中设置为true: $wgShowExceptionDetails=true; Enable more details (like a stack trace) to be shown on the "Fatal error" page. $wgDebugToolbar=true; Shows a toolbar on the page with profiling, log messages and more. $wgShowDebug=true; Adds the "log messages" part of wgDebugToolbar as a raw list to the page. $wgDevelopmentWarnings=true; MediaWiki will throw notices for some possible error conditions and for deprecated functions. 数据库方面错误: $wgShowDBErrorBacktrace = true; $wgShowSQLErrors = true; {{了解更多|[https://www.mediawiki.org/wiki/Manual:How_to_debug/zh Mediawiki 帮助:如何调试]}} ==定制外观== ===侧边导航栏=== 在右上角搜索栏输入“mediawiki:sidebar”确认后进行编辑。 格式: <nowiki>*导航栏一 **链接|名称 **链接|名称 *导航栏二 **链接|名称 **链接|名称</nowiki> 链接有三种类型:1.http网址。2.文章页面标题。3.mediawiki名字空间的参数页。<br /> {{了解更多|[https://www.mediawiki.org/wiki/Manual:Interface/Sidebar/zh Mediawiki 手册:侧边栏] | [https://www.mediawiki.org/wiki/Extension:SideBarMenu Mediawiki 扩展:侧边栏菜单]}} ===皮肤安装使用=== 皮肤定义了 MediaWiki 界面的外观和感觉。 尽管外观和感觉随皮肤变化,不过一般而言所有的皮肤都有相同的界面组件。 同一个界面组件在每个皮肤中可能显示不同,例如不一样的颜色或在页面上位置不同。 要尝试可用的皮肤以及更改皮肤,在登录时点击我的参数设置链接,然后点击“皮肤”标签选择一个皮肤即可。MediaWiki提供了几款默认皮肤可供选择。 如果要安装其他皮肤,可以按下面步骤: * 下载文件,并将其放置在您skins/文件夹中的your_skins目录。 * 将下列代码放置在您的LocalSettings.php的底部: wfLoadSkin( 'your_skins' ); * 完成 - 在您的wiki上打开至Special:Version,以确认扩展已成功安装。 {{了解更多| [https://www.mediawiki.org/wiki/Help:Skins/zh Mediawiki 帮助:皮肤]}} ===安装移动版前端=== 1.下载[https://www.mediawiki.org/wiki/Special:ExtensionDistributor/MobileFrontend 插件文件],并将其放置在您extensions/文件夹中的MobileFrontend目录内。<br /> 2.将下列代码放置在您的LocalSettings.php的底部: <nowiki>wfLoadExtension( 'MobileFrontend' ); $wgMFAutodetectMobileView = true;</nowiki> 3.如果必要,在您方便的时候配置。<br /> 4.完成 – 在您的wiki上导航至Special:Version,以验证扩展已成功安装。<br /> 注意:如果没有移动皮肤,会报错,安装Minerva皮肤即可。安装后在LocalSettings.php文件中加入wfLoadSkin( 'MinervaNeue' );。<br /> {{了解更多|[https://www.mediawiki.org/wiki/Extension:MobileFrontend/zh Mediawiki 扩展:移动前端]}} ===自定义CSS=== 可以通过自定义[[CSS]]来修改外观。如MediaWiki:Common.css会改变所有用户所有皮肤的样式,该样式表会在加载完当前网站皮肤的样式表后再加载。要设置MediaWiki:Common.css,可以再搜索框输入MediaWiki:Common.css进入。在修改保存之后,可能需要清除浏览器缓存才能看到所作出的变更的影响。 分全局样式表和个人样式表,如下: {| class="wikitable" style="width: 100%; !类别 !Stylesheets !作用域 !示例 |- |rowspan="7"|全局CSS |MediaWiki:Common.css |所有皮肤,所有用户,除了MobileFrontend之外。 | |- |MediaWiki:skinname.css |某个皮肤,所有用户,除了MobileFrontend之外。 |Timeless皮肤样式表:MediaWiki:Timeless.css |- |User group CSS |某个组。 |MediaWiki:Group-sysop.css |- |MediaWiki:Noscript.css |不使用JavaScript的用户 | |- |MediaWiki:Print.css |页面打印 | |- |MediaWiki:Mobile.css |移动端主题, 用于Extension:MobileFrontend | |- |MediaWiki:Filepage.css | | |- |rowspan="3"|个人CSS |User:Example/common.css |某个用户,所有皮肤 | |- |User:Example/skinname.css |某个用户,某个皮肤 |User:Example/Timeless.css |- |User:Example/global.css |每个wiki family | |- |} {{了解更多| [https://www.mediawiki.org/wiki/Manual:Interface/Stylesheets MediaWiki 手册:界面/Stylesheets] | [https://www.mediawiki.org/wiki/Skin:Timeless MediaWiki 皮肤:Timeless] | [https://www.mediawiki.org/wiki/Skin_talk:Timeless MediaWiki 皮肤讨论:Timeless] | [https://www.mediawiki.org/wiki/Skin:Timeless-DarkCSS MediaWiki 皮肤:Timeless-DarkCSS]}} ==编程开发== ===自定义JavaScript=== {{了解更多|[https://www.mediawiki.org/wiki/Manual:Interface/JavaScript MediaWiki 手册:界面/JavaScript]}} ===皮肤制作修改=== MediaWiki手册皮肤制作分三部分,第一部分关于设计皮肤需要考虑的问题,第二部具体制作,第三部测试和其他。 一个简单皮肤基本框架为: <nowiki>YourSkin/ skin.json # mediawiki(v1.25以上)程序的接口,用于描述所有数据模板资源等位置,只有这个文件名不能修改。 YourCode.php # 皮肤实际代码 i18n/ # 多语言翻译文件夹</nowiki> Github上也有许多MediaWiki的开源皮肤。 {{了解更多| [https://www.mediawiki.org/wiki/Manual:Skins MediaWiki 手册:皮肤] | [https://www.mediawiki.org/wiki/Manual:Skinning_Part_1 MediaWiki 手册:皮肤制作第一部分] | [https://www.mediawiki.org/wiki/Manual:Skinning_Part_2 MediaWiki 手册:皮肤制作第二部分] | [https://www.mediawiki.org/wiki/Manual:Skinning_Part_3 MediaWiki 手册:皮肤制作第三部分]}} ==资源== ===官方网站=== * [https://www.mediawiki.org MediaWiki 官网] * [https://www.mediawiki.org/wiki/Help:Contents/zh MediaWiki 帮助] * [https://www.mediawiki.org/wiki/Manual MediaWiki 手册] * [https://phabricator.wikimedia.org/source/mediawiki/ MediaWiki 源代码] ===相关网站=== * [https://www.huijiwiki.com/wiki/CommunityCenter 灰机 wiki:帮助中心] * [https://www.ibm.com/developerworks/cn/opensource/os-mediawiki/index.html IBM Developer:Chris Herborth - 定制 MediaWiki] ==参考资料== * [https://www.mediawiki.org/wiki/Help:Contents/zh MediaWiki 帮助] * [https://www.mediawiki.org/wiki/Manual MediaWiki 手册] * [https://zh.wikipedia.org/wiki/MediaWiki 维基百科:MediaWiki] * [https://zh.wikipedia.org/wiki/Help:Wiki%E6%A8%99%E8%A8%98%E5%BC%8F%E8%AA%9E%E8%A8%80 维基百科帮助:Wiki标记语言] [[分类:软件]]
本页使用的模板:
模板:了解更多
(
查看源代码
)
模板:公式
(
查看源代码
)
返回至“
Mediawiki
”。