Login.png
您还没有登录,请http://wiki.sosg.net/skins/monobook/user.gif点此登录后进行编辑。
如果您还没有在SOSG WIKI注册,请http://wiki.sosg.net/skins/monobook/user.gif点此注册
请注意SOSG WIKI的账号是不同于SOSG论坛账号的。


帮助:模板开发向导

来自SOSG Wiki
跳转至: 导航搜索
Inspiration.png
此条目处于α预览阶段。编辑由ph维护,请读者不要随意编辑。所写内容可能有大量错误。Logo.png
任何问题请留言或者PM

欢迎

本向导致力于浅显的讲解模板的开发要点。希望能使得各位编辑可以对模板的编辑有所了解,提升自己的业务能力。

限于编者水平,难免有疏漏之处。请联系pH报错。

分类

在wiki中,模板是可以带参数的。因此,模板就有两种。

一、不带参数的纯模板

  • 这类模板多用于一些大段并且需要重复引用的文字的处理。比如对于“编辑守则”、“分类提示”这类的东西。

二、是带有参数的模板

  • 这类模板有着广泛的应用,其目的都是为了简化操作、降低编辑门槛。这类模板类似于“填空题”。举个通俗的例子:

()是() 这其实就相当于一个模板,你在括号内填写的内容决定了这话的意思,但是它的句式始终是固定的。当然,这是一个最简单的例子,实际上的模板不可能是这么简单的句式,它通常是一个很复杂的代码群,这个代码群确定了一种空的框架,然后把模板内的参数填上就行。

编写思想

对于不带参数的模板,这里不作过多的阐述。主要讲讲带参数模板的编写。

  • 首先,你必须让你模板有实用性。如果只是个案,就直接使用代码。
  • 其次,要让你的模板易用。你得花足够的心思做防呆设计。多使用内部注释是一个很好的选择。最好附带一个简短的使用说明
  • 最后,让你的模板美观。大家都喜欢好看的东西,不是么?

编写指导

如何建立模板页

和建立一般页面的唯一区别在于,多了一个帮助:名字空间——模板(可使用英文Template)。 直接在搜索栏输入 模板:模板名 即可,注意,“:”是英文的冒号

编写不带参数的模板

这中类型的编辑方法和一般页面完全一致,不再赘述。下面重点讲解带参数模板的编写。

编写带有参数的模板

不得不解释的几个问题

  • Q1:什么是参数?
  • A1:换言之就是方程中的未知数。

比如三角形的面积公式:s=Lh/2 这里L和h便称为参数,或者说是变量。 在wiki中参数已{{{}}}来表示。

  • Q2:参数的种类?
  • Q2:在wiki中,参数有两种:其一是数字参数;其二是自定义参数。前者是按照一定的顺序赋值,后者则是自由的。有关详细内容会在后面的章节讲解。
  • Q3:什么可以作为参数?
  • Q3:在wiki中,任意字符都可以作为参数。其本质都是通过赋值进有效字符的方式。如你要控制字体颜色,那么就将“颜色”部分设定为参数好了;你要控制“文本内容”,就直接赋值“文字”。
  • Q3:我如何控制参数呢?
  • A3: 这个操作称为赋值。“=”是模板中的赋值符号。仍然以s=Lh/2为例。我们现在已知L为2,h为3。那么在模板中就是这样表示
L=2

h=3

注意,这个操作是在引用模板的过程中,编写的时候的赋值叫作默认值。

  • Q4:什么是默认值?
  • A4:这实际上是一种防呆设计。模板的编辑者通常会给模板的各个参数设定一个默认的效果。 在该参数没有赋值的情况下,则会以默认效果呈现。

实例

接下来开始正式讲解,我将指导编写一个实例。如下:

    • 此为一个简单模板。有关高级模板,将在后文有所讲解。



X

+

Y

=

?



下面我们就来编写这个模板。


准备阶段

  • 第一步,按照一般的编写方式将框架制作出来。需要定义参数的部分也请先不要定义。我们将在下面做这个工作。


定义参数

  • 第二步,定义你需要的参数。

在这个例子中,我们需要的参数是X、Y以及“运算的结果”。 我们有三种可选方式命名。

数字参数

  • 这种定义参数的方法适合于参数较少的情况。
  • 首先,我们将框架中的“X”、“Y”、“?”找出来,然后用{{{n}}},n为序数。在赋值的时候,系统将按照你定义的顺序赋值。如,X为第一顺位,则替换为{{{1}}},Y为第二顺位,则为{{{2}}}, 以此类推。

然后,我们需要为此设定一个默认值。其方法和调用模板赋值类似。使用“|”进行设定。如,我们设定{{{1}}}的默认值为“X”,则代码为


所有的参数默认值的设定方法都是如此,下面两种类型的参数默认值不再讲解。


  • 制作至此的代码


  • 下面来演示这个模板


输入输出
{{教学模板/数字参数}}


X

+

Y

=

 ?


{{教学模板/数字参数|1|2}}


1

+

2

=

 ?


{{教学模板/数字参数|1|2|3}}


1

+

2

=

3


自定参数

  • 这种自定义方式比较灵活,可以根据模板的需要自行拟订,其命名可以是任何语言。
Inspiration.png
命名请尽量简明易懂。


  • 方法和上面的数学参数类似,不同之处在于对参数的命名上。如,我们将上面的第一个参数定义为“第一个变量”则代码为这里包含了默认值{{{第一个变量|X}}}。其余各项分别命名为“第二个变量”、“结果”。
  • 制作至此的代码


  • 下面来演示这个模板


输入输出
{{教学模板/自定参数}}


X

+

Y

=

 ?


{{教学模板/自定参数
|input1=1
|input2=2
|result=3
}}


1

+

2

=

3
{{教学模板/自定参数
|input1=1
|input2=
|result=3
}}


X

+

Y

=

 ?


  • 相信明眼人已经看出了上述赋值的问题:
{{教学模板/自定参数
|input1=1
|input2=
|result=3
}}

这里虽然赋值了,但是空了一位,此时大家可以发现,后面的模板依然是默认方式。这个就是自定参数的缺陷,而数字参数并不会受到影响。并且对于混合参数,依然受此限制。


混合参数

  • 故名此意,wiki支持将上诉两种设置方式混合运用,这大大加强了一个模板的可操作性和易用性。并且,wiki中支持多个参数使用一样的名字
    • 关于混合运用,我们需要详细说明一下
1.对于同一参数的混合运用:对于本例来说,我可以将“X”处同时定义为数字变量和自定变量
{{{input1|{{{1|X}}}}}}

其实质是将“默认值”设定为“参数”即,这个代码也可以写成

{{{1|{{{input1|X}}}}}}

2.对于不同参数的混编:下来将详细讲解这点。

对于一个模板来说,我们有太多可以定义的东西,但是对于一般编辑来说,不一定有用,这时候,我们就可以将一些最常用的参数设置成数字参数,其他一下额外的变量,就设置成自定变量。这样的好处是不言而喻的。

对于本例,我们可以将“X”、“Y”、“?”设置成数字,然后再考虑增添额外变量。比如,我们可以考虑设定字体、背景的颜色

这里以背景为例,我们可以设定同时控制每一个框的背景色或者不同的框不同的颜色,容易想象,我们可以通过对这些参数的多重命名来实现。

将前者设定为“BG”后者分别为“BG1”、“BG2”、“BG3”。



下面来演示这个代码


输入输出
{{教学模板}}


X

+

Y

=

?


{{教学模板
|input1=1
|input2=2
|result=3
|BG1=red
|BG2=yellow
|BG3=green
}}


1

+

2

=

3


{{教学模板
|input1=1
|input2=2
|result=3
|BG=red
}}


1

+

2

=

3


  • 关于参数的设定就此告一段落

模板高级应用

嵌套模板

  • 待补完


关于

  • 修改了一个bug,感谢棉花反馈
  • α技术预览版