Help:显示代码文本

来自Terraria Wiki
跳到导航 跳到搜索

代码文本(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" ✔️ ✔️

范例

<code>
代码 结果
This is <code>code text</code>
This is code text
Over <code>multiple<br/>lines</code>
Over multiple
lines
Over <code>multiple

lines</code>
Over multiple

lines

<code>{{desktop}}</code>
电脑版 电脑版
<pre>
代码 结果
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}}
class="mw-code"
代码 结果
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# 语法写成的代码,那么可以使用的值包括 csharpc#cs

本 Wiki 的 CSS、JavaScript 和 Lua 页面会自动使用 <syntaxhighlight> 标签(例如MediaWiki:Gadget-previewTab.cssMediaWiki:Common.jsModule: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 片段:
/**
 * Handle wide tables
 */
$(function() {
	var handleWideTables = function(tables) {
		if(!tables){
			return;
		}
	}
}
<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 code text
Not over {{code|multiple<br/>lines}}
Not over multiple<br/>lines
Not over {{code|multiple

lines}}
Not over multiple lines
{{code|{{desktop}}}}
[[File:Desktop only.png|16x12px|电脑版|link=电脑版版本历史]][[电脑版版本历史|&nbsp;电脑版]]
{{code|{{=}} or {{)}} need escaping; not with &#61; HTML entities}}
= or }} need escaping; not with &#61; HTML entities
The CSS rule is {{code|lang=css|background-color:#fff;}}.
The CSS rule is background-color:#fff;.