Template:Pre

{{{1}}}
Template-info.svg 模板文档  [查看] [编辑] [历史] [刷新]

本模板使用了pre标签的相关特性,允许将其内部的文本显示为一个代码框,并借助MediaWiki的内建样式支持语法高亮。

用法

预览框

{{pre|【要预览的文本】}}
  • 预览框的嵌套

pre标签相同,预览文本中的大部分wiki代码将会被原封不动地显示出来,行内的空格和换行将会被保留,但文本内的pre标签会被处理成嵌套其中的预览框。

如下:

【要预览的文本】

上方所示的wiki代码为:

{{pre|{{pre|【要预览的文本】}}}}
  • pre标签混合使用

使用本模板等同于使用pre标签,因此可以混合使用。

代码框

{{pre|lang=【语言代号】|【要预览的代码】}}

{{pre|lang=【语言代号】|code=【要预览的代码】}}

例:

{{pre|lang=lua|code=
local i = 0
function module.main( frame )
  if i == 0 then
    return "yes"
  end
end
}}

效果如下:

  1. local i = 0
  2. function module.main( frame )
  3. if i == 0 then
  4. return "yes"
  5. end
  6. end

技术细节

本模板等同于:

<pre class="prettyprint linenums lang-【语言代号】">【要预览的代码】</pre>

支持的语言代号

  • css
  • jsjavascript
  • lua
  • wiki:虽然可以显示语法高亮,但完全不正确。
  • py
  • cpp
  • c

已知问题

  • 代码首尾的空格、换行无法保留

可以参考#技术细节中的说明将本模板改写成pre标签。

  • 为什么显示的内容永远都是{{{1}}}

请添加code=指定参数名称即可解决。原因是代码中含有=,与为模板参数赋值的=产生歧义。