Help:显示代码文本
代码文本(Code text)通常会以某种方式格式化,以便从视觉上将其与普通的文本区分开来。在泰拉瑞亚 Wiki中,有很多方式能将代码文本格式化,它们被列在下方。
HTML 标签
标准的 HTML <code></code>
标签,最常被用于显示代码文本。文本会以等宽字体显示,并用淡化的边框加以表示。这主要用于显示单行文本、以及普通文本中的代码。而 <pre></pre>
标签则可以用于显示跨行的代码文本。使用该标签时,会显示出一个单独的文本框,并占据更多的空间。<code>
会识别并正常显示出 Wiki 代码的语法,而 <pre>
则会将其完全忽略。第三种方法是使用 <div class="mw-code"></code>
,它模仿了 <pre></pre>
的外观,但仍然会保留 Wiki 代码。此时,最好避免人为的换行,换行应当使用 <br/>
标签,以避免与空格、换行及间距相关的一系列问题出现。
保留 Wiki 代码 | 多行 | |
---|---|---|
<code>
|
✔️ | ❌ |
<pre>
|
❌ | ✔️ |
class="mw-code"
|
✔️ | ✔️ |
范例
代码 | 结果 |
---|---|
This is <code>code text</code> |
This is code text
|
Over <code>multiple<br/>lines</code> |
Over multiple
|
Over <code>multiple lines</code> |
Over multiple
|
<code>{{desktop}}</code> |
电脑版
|
代码 | 结果 |
---|---|
This is <pre>code text</pre> |
This is code text |
Over <pre>multiple<br/>lines</pre> |
Over multiple<br/>lines |
Over <pre>multiple lines</pre> |
Over multiple lines |
<pre>{{desktop}}</pre> |
{{desktop}} |
代码 | 结果 |
---|---|
This is <div class="mw-code">code text</div> |
This is code text
|
Over <div class="mw-code">multiple<br/>lines</div> |
Over multiple
lines |
Over <div class="mw-code">multiple lines</div> |
Over multiple
lines
|
<div class="mw-code">Many manual linebreaks cause weird spacing issues</div> |
Many
manual linebreaks cause weird spacing issues |
<div class="mw-code">It's better<br/>to use<br/><!-- -->HTML tags<br/><!-- -->for linebreaks</div> |
It's better
to use HTML tags for linebreaks |
<div class="mw-code">{{desktop}}</div> |
扩展标签
MediaWiki 的代码高亮(SyntaxHighlight)扩展提供了 <syntaxhighlight></syntaxhighlight>
标签,它在格式化代码的基础上,又增加了根据相应编程语言的种类高亮文本的功能。<source></source>
标签与其意思相同,但该标签已经过时了,不应当继续使用(参见使用过时标签的页面列表以获取仍在使用该标签的页面列表)。与 <pre>
类似,它会忽略所有的维基语法。
此标签可以接受若干种参数,参见相应的文档以便获取其使用细节和示例。其语法高亮功能支持的完整的编程语言列表,可以在 Pygments 文档中找到;在 “Short names” 下列出的每种语言,都可以用作该标签的 lang
参数。例如,如要高亮使用 C# 语法写成的代码,那么可以使用的值包括 csharp
、c#
和 cs
。
本 Wiki 的 CSS、JavaScript 和 Lua 页面会自动使用 <syntaxhighlight>
标签(例如MediaWiki:Gadget-previewTab.css、MediaWiki:Common.js 或 Module:Bananas页面)。如果页面太长(如MediaWiki:Common.css页面),那么会放弃使用语法高亮,而会改为使用默认的文本格式)。
范例
代码 | 结果 |
---|---|
The CSS rule is <syntaxhighlight lang="css" inline>background-color:#fff;</syntaxhighlight>. |
The CSS rule is background-color:#fff; .
|
<syntaxhighlight lang="text" inline>{{desktop}}</syntaxhighlight> |
{{desktop}}
|
JavaScript excerpt: <syntaxhighlight lang="js" line linelinks="jsexcerpt1" start="71" highlight="2,6-7"> /** * Handle wide tables */ $(function() { var handleWideTables = function(tables) { if(!tables){ return; } } } </syntaxhighlight> |
JavaScript 片段: |
<syntaxhighlight lang="text">Over multiple lines</syntaxhighlight> |
Over multiple
lines
|
模板
模板 {{code}}
也会将代码文本格式化。它也受其他模板的使用限制的约束,例如,|
或 =
之类的字符必须要进行转义(escape)。它的优势在于,{{code|text}}
的速度要比 <code>text</code>
略快,但由于它使用起来比较麻烦、有些反直觉,因此通常使用的是后者。
它在内部使用了 <syntaxhighlight>
标签,因此也支持使用它的部分参数。
范例
代码 | 结果 |
---|---|
This is {{code|code text}} |
This is
|
Not over {{code|multiple<br/>lines}} |
Not over
|
Not over {{code|multiple lines}} |
Not over
|
{{code|{{desktop}}}} |
|
{{code|{{=}} or {{)}} need escaping; not with = HTML entities}} |
|
The CSS rule is {{code|lang=css|background-color:#fff;}}. |
The CSS rule is .
|