本WIKI由osoras申请于2020年01月21日创建,编辑权限开放,如遇Chrome浏览器登陆后无法编辑点这里 BWIKI反馈留言板
全站通知:

解析器函数/设定对象(未完成)

阅读

  ·  

2021-08-07更新

  ·  

最新编辑:史诗级的肉卷丝

阅读:

  

更新日期:2021-08-07

  

最新编辑:史诗级的肉卷丝

刷新 历史
编辑WIKI
来自克鲁赛德战记WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索
页面贡献者 :
史诗级的肉卷丝

这个页面还没有完成,或仍有细节有待商榷。

总述

设定对象及内联查询是wiki最重要的功能之一,可以使得用户快速进行大量内容的查询整理,并且占用的内存非常小不至于出现性能问题。无论是从省事还是保护服务器的角度来看,相关的函数是非常值得一名萌新编辑者学习的。

设定一个可查询的对象是进行内联查询的基础,是wiki中解析器函数的一部分。
除了文本注释以外,相关的函数主要包括#set、#declare和#subobject。

文本注释

文本注释(In-text annotation)是个功能较多的注释方式。其作用包括:

在本页面对象中,将某个值分配给某个属性。
例如,[[属性名::内容]]可以将“内容”赋予“属性名”。
如果不想将内容展示出来,需要在内容后使用管道符和半角空格来隐藏之。例如[[属性名::内容| ]]。

为某个链接设定一个替代文本。
例如,[[蕊儿|【蕊儿的页面】]]将显示为【蕊儿的页面】,链接至蕊儿

创建一个超链接。
例如[[:解析器函数]]将显示为解析器函数
这个冒号可以省略掉。但如果页面名称中包括双冒号“::”,则不可省略。如[[:C++::运算符号]]将显示为C++::运算符号

#set

#set,也称为静默注释,其功能和文本注释的功能1基本一致,用于将某个值分配给某个属性。该函数没有输出,属性的内容不会被展示。

常规

{{#set:【属性1】=【内容1】
|【属性2】=【内容2】
|【属性3】=【内容3】
|...
|【属性n】=【内容n】
}}
【属性】:属性的名字。
【内容】:该属性的值。

进阶

使用separator参数
|+sep=...可以为内容的输入增加分隔符,允许为一个属性同时赋多个值。

示例:将“内容1”和“内容2”赋予“属性1”,下面四种方法都是可行的。
1、使用分隔符参数,{{#set:属性1=内容1,内容2|+sep=,}}
2、使用管道符分隔属性,{{#set:属性1=内容1|内容2}}
3、重复声明两次,{{#set:属性1=内容1|属性1=内容2}}
4、文本注释,[[内容1::属性1| ]][[内容1::属性2| ]]

使用template参数(未完成)
|template=...可以为单个#ask函数设定某个模板的参数。
该参数提供下列的保留名参数(用于该模板),允许自定义链接与查询。

  • {{{property}}}:属性的名称。
  • {{{value}}}:赋予该属性的值。
  • {{{#}}}:已经赋值的属性数。
  • {{{last-element}}}:该值是否为本属性的最后一个值。是则返回1,否则返回0。

#declare

这个函数用于将某个模板的参数设定为某个属性的值,局限性比#set要大得多。

常规

{{#declare:【属性1】=【参数1】
|【属性2】=【参数2】
|【属性3】=【参数3】
|...
|【属性n】=【参数n】
}}
【属性】:属性的名字。
【参数】:将要作为该属性的值的模板参数。

该函数只能用于模板页面中。下面三串文字的效果是完全一致的。

{{#set:
名称={{{勇士名称}}}
星级={{{勇士星级}}}
}}
{{#declare:
名称=勇士名称
星级=勇士星级
}}
[[名称::{{{勇士名称}}}| ]]
[[星级::{{{勇士星级}}}| ]]

#subobject

#subobject用于设定一个子对象。子对象和页面对象是基本等价的。

常规

{{#subobject:【子对象名】
|【属性1】=【内容1】
|【属性2】=【内容2】
|【属性3】=【内容3】
|...
|【属性n】=【内容n】
|@category=【分类】
}}

【子对象名】:用于具体定义这个类的名字。最终设定的类名为 页面名#子对象名
【属性】:属性的名字。
【内容】:该属性的值。
【分类】:为这个子对象设定的分类。