忍者必须死3卷轴藏室(忍者必须死3WIKI),是一个由玩家共建的编辑权限开放的WIKI,现由卷轴藏室编委会维护。 忍忍们都可以在卷轴藏室中填入卷轴哦,希望卷轴藏室的内容可以帮助更多忍忍! 移动端建议通过哔哩哔哩客户端游戏中心进入WIKI;点此阅读BWIKI收藏到桌面的方法说明。
忍3WIKI入门教程/页面、模板与文件
阅读
2022-05-09更新
最新编辑:忍者必须死3卷轴藏室
阅读:
更新日期:2022-05-09
最新编辑:忍者必须死3卷轴藏室
页面、模板与文件
在上一篇教程中,我们介绍了HTML的基本语法和部分调整文本样式用的标签。这些知识可以让大家在编辑WIKI时,让文本的样式丰富起来。但想要更多的参与到WIKI的编辑,甚至是自己进行页面排版、做一个大的模块,这些知识往往还不够。下面,我们将带领大家了解WIKI代码的容器,同时也是用户阅读内容的媒介——页面。
WIKI页面
我们在MediaWiki中编写的WIKI代码(Wikitext),到最终我们看到的页面,中间有一个什么样的过程呢?在上一篇教程中我们提到过,网页是浏览器解析HTML代码,得到HTML中各元素属性、各元素之间的关系等信息并加以处理后,整合给我们的一个可视化的页面。
那么,我们看到的网页所代表的HTML,又来自哪里呢?来自星星的HTML。这就是这节教程中需要为大家解决的内容。关于这个过程,虽然不难理解,但是涉及到的概念比较多,可能一时间难以消化。所以现阶段有一个大概的了解就可以了。
从WIKI代码到HTML网页
首先是关于服务器软件,也就是BWIKI平台使用的WIKI系统——MediaWiki。它是一个集PHP、MySQL等技术或软件为一体的软件系统。其中有几个可供我们访问的PHP文件,包括index.php、api.php等。我们平时访问的本WIKI的页面,其实都是通过访问index.php返回的。关于这一点,可能需要一点网络技术知识才能理解。我们输入的页面名实际上作为了访问这个index.php的title参数。举个例子,以下两个链接都是可以访问首页的:
https://wiki.biligame.com/nmd3/首页 https://wiki.biligame.com/nmd3/index.php?title=首页
访问index.php时,页面名作为title参数,PHP就会开始通过数据库查询,这个页面名和哪个页面是对应的。这意味着,在MediaWiki的数据库中,页面名是一个候选码(每个页面还有一个唯一的curid),这也是为什么WIKI中不允许页面名出现重复。
访问页面的同时,我们还可以携带一个action参数,这个参数的含义是访问页面的行为。action=edit时就是要请求编辑此页面,例如:
https://wiki.biligame.com/nmd3/index.php?title=首页&action=edit
这个链接用于请求编辑首页的页面。当然,出于安全考虑,首页已经受到保护,需要一定用户权限才能编辑。
当我们编辑完某个页面的WIKI代码后,点击“存储页面”(在本WIKI中修改成了“存储卷轴”)即可上传编辑的WIKI代码。然后index.php会去解析这份WIKI代码,执行这份WIKI代码的命令,查询这份WIKI代码里引用的其他数据库数据,以及其他操作。最终将解析这份WIKI代码得到的HTML代码缓存到数据库中,以便以后访问该页面时直接引用。
而这份HTML代码,则会在用户访问该页面时,返回给用户的浏览器。浏览器解析这份HTML代码,链接相关的脚本和样式,以及其他文件,再根据所有的文件所展示的信息,整合成我们最终看到的网页。
小结
简单归纳一下上述内容:
①服务器软件MediaWiki,是一个集PHP、MySQL等技术或软件为一体的软件系统。[1]
②MediaWiki的其中一个PHP文件,index.php,是我们在WIKI中主要访问的文件。[2]
③我们通过index.php上传、解析页面的WIKI代码,得到页面的HTML代码。[3]
④访问某一页面时,服务器返回页面的HTML给用户浏览器,浏览器解析HTML并整合为网页。[4]
WIKI代码简单来说,就是一种处理HTML的语言。
WIKI模板
在编程语言中,为了提高代码的重用率,“函数”(function)应运而生。在WIKI代码中,也出现了类似编程语言中函数的定义,它就是本节标题中的“模板”(template)。
既然说模板是类似函数的定义,那么显而易见的,模板也是为了提高代码的重用率而出现的。
这里给不理解代码的重用率这一概念的读者简单解释一下。我们都知道现在编写程序几乎都是写代码,那什么样的代码是更有价值的呢?自然是那些“短而精”的代码。也就是说,那些可以实现同样作用的代码,我们就提炼出来,包装起来,然后给包装起个名字,在需要实现这个作用的地方只需要“喊”(调用)这个包装的名字,就可以实现同样作用啦。
这么做的好处是什么呢?反过来想,如果我们将具有同样效果的代码分散到各处,那么需要更新调整时,我们就需要在各处调整,而且可能调整起来还很麻烦。编程语言中的函数、W3C规范中的叠层样式表,以及WIKI代码中的模板等等,都体现出了这一思想。
模板的调用
在WIKI代码中,通过“{{模板名}}”调用模板,例如调用首页热门活动模板:
{{首页热门活动}}
效果如下:
这里就调用了模板:首页热门活动的WIKI代码,只需要按格式写出模板的名称,即可调用模板(当然前提是模板已经写好并且存储了)。
默认情况下,“{{模板名}}”调用的是“模板”命名空间(又冒出来一个新概念呢)下的页面的WIKI代码。自然,也有不默认的情况。在模板名的前面,加上其他命名空间,即可调用其他命名空间的页面WIKI代码了,例如:
{{忍者必须死3:示例}}
上示代码调用了忍者必须死3:示例的WIKI代码,效果如下:
今天是1月3号。(服务器时间是零时区,也就是比北京时间晚8小时)
如果要调用主命名空间下的页面的WIKI代码,则只需要在页面名前加一个“:”即可。关于命名空间的概念,会在后续教程中详细介绍。
向模板中传入参数
编程语言中的函数是可以接受参数的,WIKI代码中的模板也可以。同时WIKI代码中有两种参数。
第一种是没有命名的参数,直接按照顺序传入值即可,如下例:
{{忍阶大全列表|幻术使}}
这段代码调用了模板:忍阶大全列表,并传入了第1个参数,值为“幻术使”,效果如下:
接受顺序参数的语法是“{{{索引数}}}”或“{{{索引数|默认值}}}”,索引数从1开始。具体应用可查看该页面代码理解。
还有一种是有命名的参数,需要以赋值的格式来写,如下:
{{首页周年庆计时|编号=1}}
此例传入了一个参数,参数名为编号,值为“1”,效果如下:
接受命名参数的语法是“{{{参数名}}}”或“{{{参数名|默认值}}}”,参数名在模板的页面代码内可重复(相当于重复使用同一参数嘛),但是在调用模板时只能传一次值,否则会错误。具体应用可查看该页面(模板:首页周年庆计时)代码理解。
WIKI文件
熬不动了 晚点来写


沪公网安备 31011002002714 号