“LLWiki:模板指引”的版本间差异

删除81字节 、​ 2021年8月13日 (五) 04:32
→‎繁简转换:​ //使用页面/文本对比查看器快速编辑
 
(未显示3个用户的11个中间版本)
由于LLWiki处理模板文档繁简转换的方式特殊,这里单独列为一个章节。
 
模板文档繁简转换的需求来自于两个方面,其一是模板使用的中文参数都需配备简体和繁体两个互为替代的等效参数(详见[[#代码]]章节),其二是在说明参数或是展示示例时用到的中文表达。一般情况下MediaWiki会对中文自动进行繁简转换,但使用<code>&lt;code&gt;</code>和<code>&lt;pre&gt;</code>标签(或行首空格)时,内部文本通常不会执行繁简转换。如果需要让<code>&lt;pre&gt;</code>标签内的文本实现繁简转换,可以利用手工转换语法在開頭添加<code>--{}-{}-</code>,如{{code|<-{}-pre>--{}-{zh-hans:-{简体}-;zh-hant:-{繁體}-}-內容<-{}-/pre>}}。如果需要让<code>&lt;code&gt;</code>标签内的文本实现繁简转换可以通過给标签加上任意的语言属性來實現,如{{code|<nowiki><-{}-code lang="mw">字体<-{}-/code></nowiki>}},但注意这只适用于<code>&lt;code&gt;</code>标签内没有额外套<code>&lt;nowiki&gt;</code>的情形。
 
除了上述方法外,LLWiki还设立了{{tl|code}}和{{tl|pre}}两个模板作为对应的HTML标签的代用品,模板的参数仍会自动执行繁简转换。这两个模板都只有一个匿名参数,且参数一般需要使用<code>&lt;nowiki&gt;</code>标签包裹。
 
{{tl|code}}和{{tl|pre}}模板和对应的HTML标签有一个极大的区别,模板参数中的Wikitext仍旧会被执行,而且即使使用转义的字符实体也往往无效(特例见附表)。例如:{{pre|<nowikipre>
{{code|<-{}-&lt;nowiki>&-{}-amp;lt;span style="font-style:italic"&-{}-amp;gt;&-{}-amp;#39;&-{}-amp;#39;&-{}-amp;#39;{{color|red|文本}}&-{}-amp;#39;&-{}-amp;#39;&-{}-amp;#39;&-{}-amp;lt;/span&-{}-amp;gt;<-{}-&lt;/nowiki>}}
</nowikipre>}}的效果为{{code|<nowiki>&lt;span style="font-style:italic"&gt;&#39;&#39;&#39;{{color|red|文本}}&#39;&#39;&#39;&lt;/span&gt;</nowiki>}}。注意与此同时被<code>&lt;nowiki&gt;</code>标签包裹的模板仍旧不会被展开。为了解决这一问题,一般需要在Wikitext语法的内部插入<code><nowiki>-{}-</nowiki></code>进行破坏。下表给出了常用Wikitext作为{{tl|code}}和{{tl|pre}}模板的参数时的对应写法。
 
{| class="wikitable"
| 粗斜体文本 || {{code|'&apos;'&apos;'粗斜体'&apos;'&apos;'}} || {{code|'&-{}-amp;apos;'&-{}-amp;apos;'粗斜体'&-{}-amp;apos;'&-{}-amp;apos;'}}或<br>{{code|'--{}-{}-'--{}-{}-'--{}-{}-'--{}-{}-'粗斜体'--{}-{}-'--{}-{}-'--{}-{}-'--{}-{}-'}}
|-
| 章节标题 || {{<pre|<nowiki>-{}-
-{}-====4级标题====
</nowikipre>}}
| {{code|<nowiki>--{}-{}-====4级标题====</nowiki>}} || rowspan=7 | 只有位于行首时才生效,此种情况下在开头加上一个<code><nowiki>-{}-</nowiki></code>即可。
|-
| 分割线 || {{<pre|>
-{}-----
</pre>
}}
| <code><nowiki>-{}-----</nowiki></code>
|-
| 无序列表 || <pre>-{{pre|}-
-{}-*无序列表
</pre>
}}
| {{code|--{}-{}-*无序列表}}
|-
| 有序列表 || <pre>-{{pre|}-
-{}-#有序列表
</pre>
}}
| {{code|--{}-{}-#有序列表}}
|-
| 定义 || <pre>-{{pre|}-
-{}-;定义
</pre>
}}
| {{code|--{}-{}-;定义}}
|-
| 缩进文本 || <pre>-{{pre|}-
-{}-:缩进
</pre>
}}
| {{code|--{}-{}-:缩进}}
|-
| 预格式化文本(行首空格) || <pre>-{{pre|}-
-{}- 预格式化
</pre>
}}
| {{code|--{}-{}- 预格式化}}或<br>{{code|&-{}-amp;nbsp;预格式化}}
|-
| 段落 || <pre>-{{pre|}-
第一段<br>
 
第二段
</pre>
}}
| <pre>-{{pre|}-
第一段<-{}-br>
第二段
</pre>
}}
| 其中一次换行需使用<code><-{}-br></code>标签代替。
|-
| 有时本不应转换的内容(如日语)需要手动添加<code><nowiki>-{}-</nowiki></code>防转换。注意上例中也使用了这一技巧。
|-
| 表格 || {{<pre|<nowiki>-{}-
-{}-{|class="wikitable"
-{}-! 列标题
-{}-|-
-{}-| 内容
-{}-|}
</nowikipre>}}
| {{<pre|<nowiki>-{}-
--{}-{}--{&#123;}-{&#123;|class="wikitable"
--{}-{&#123;}-! 列标题
--{}-{&#123;}-|-
--{}-{&#123;}-| 内容
--{}-{&#123;}-|}
</nowikipre>}}
| 稳妥起见,可以在每一行的开头都插入<code><nowiki>-{}-</nowiki></code>破坏。
|}
! HTML标签 !! Wikitext !! 不使用模板 !! 使用模板
|-
| pre || {{<pre|<nowiki>-{}-
-{}-{| class="wikitable"
-{}-! 內容
-{}-|-
|
-{}-|
-{}-;定義
-{}-:縮進
小節<br>
小節
 
-{}-|}
小節
</nowiki>}}
}|}
| {{pre|<nowiki>
<-{}-/pre>
| <pre>-{}-
-{}-{| class="wikitable"
<pre>-&#123;}-
-{}-! --{}-{zh-hans:-{内容}-;zh-hant:-{內容}-}-
-{}-{| class="wikitable"
-{}-|-
! 内容
-{}-|
|-
-{}-;--{}-{zh-hans:-{定义}-;zh-hant:-{定義}-}-
|
-{}-:--{}-{zh-hans:-{缩进}-;zh-hant:-{縮進}-}-
;定义
--{}-{zh-hans:-{小节}-;zh-hant:-{小節}-}-<br>
:缩进
--{}-{zh-hans:-{小节}-;zh-hant:-{小節}-}-
小节
-{}-|}<-{}-/pre>
 
</nowiki>}}
小节
| {{pre|<nowiki>
-{}-|}<-{}-&lt;/pre>
{{pre|<-{}-nowiki>
</pre>
--{}-{}--{}-{| class="wikitable"
| <pre>-{}-
--{}-{}-! 內容
| {{pre|<&lt;nowiki>
--{}-{}-|-
--{}-{}--{&#123;}-{&#123;| class="wikitable"
--{}-{}-|
--{}-{&#123;}-! 內容
--{}-{}-;定義
--{&#123;}-{}|-:縮進
-&#123;}-|
小節<-{}-br>
--{}-{&#123;}-;定義
-&#123;}-:縮進
小節<br>
小節
--{}-{&#123;}-|}
<-{}-&lt;/nowiki>}-{}-}
</nowikipre>}}
|-
| code ||
{{code|<nowiki>{{pre|'-{}-'[-{}-[首頁]]'-{}-'<-{}-sup>&-{}-amp;copy;<-{}-/sup>}}</nowiki>}}
| {{<pre|<nowiki>-{}-
<-{}-code lang="mw">&-{}-amp;#123;{pre|&-{}-amp;apos;'[--{}-{}-[首頁]]{{ce|'-{}-'<-{}-sup>&-{}-amp;amp;copy;<-{}-/sup>}}}}<-{}-/code>
</nowikipre>}}
| {{<pre|<nowiki>-{}-
{{code|<-{}-&lt;nowiki>{{pre|'--{}-{&#123;}-'[--{}-{&#123;}-[首頁]]'--{}-{&#123;}-'<--{}-{&#123;}-sup>&--{}-{&#123;}-amp;copy;<--{}-{&#123;}-/sup>}}<-{}-/nowiki>}}
</nowikipre>}}
|}
 
:*[[:Category:辅助模板|辅助模板]]:这些模板用于辅助Wikitext的书写,如用{{tl|1==}}代替<code>=</code>等。
:*[[:Category:授权协议|授权协议]]:这些模板用于标注LLWiki存储的[[:Category:文件|文件]]的授权协议,如{{tl|Copyright}}等。
:*[[:Category:用户模板|用户模板]]:这些模板用于用户页面的自我展示,不可用于主空间,如{{tl|User infobox用户信息}}和各类[[:Category:ASLoveLive!学园偶像祭ALL STARS称号用户框|AS称号]]。
:*[[:Category:信息框模板|信息框模板]]:除{{tl|User infobox}}以外所有使用<code>infoboxtemplate</code>类的表格写成的模板,置于页面最上方,如{{tl|角色信息}}。
:*[[:Category:元模板|元模板]]:这些模板仅用于构建其他模板,由滥用过滤器禁止在模板空间以外使用,如{{tl|ArticleCategory}}。
:*[[:Category:讨论模板|讨论模板]]:这些模板用于讨论页,如{{tl|编辑请求}}和{{tl|Unsigned}}。
;以下分类的优先级较低,仅在不满足前述分类的情形下考虑。
:*[[:Category:内部链接模板|内部链接模板]]:这些模板用于生成内部链接,如各种[[:Category:消歧义模板|消歧义模板]]和{{tl|Tl}}。
:*[[:Category:外部链接模板|外部链接模板]]:这些模板用于生成外部链接,如{{tl|plain linkplainlinks}}和{{tl|Bili-link}}。
:*[[:Category:语言模板|语言模板]]:这些模板用于标注语言属性,如{{tl|Lang}}和{{tl|Ruby}}。
:*[[:Category:提示模板|提示模板]]:这些模板用于生成各类提示信息,如各种[[:Category:Info模板|Info模板]]和{{tl|BK}}。
 
==代码==
===有使用次数上限的解析器函数===
LLWiki在模板页面直接展示模板代码,且可以通过[[mw:extension:CodeMirror/zh|CodeMirror扩展]](需要开启“高亮模板代码”小工具)进行语法高亮,方便用户查阅。为了防止在模板引用时错误地嵌入<code>&lt;pre&gt;</code>标签,在模板实际代码之前添加<pre><includeonly><!--</includeonly><pre class="wiki-highlight">--></pre>在代码之后添加<pre><!--<​/pre><includeonly>--></includeonly></pre>
部分解析器函数在同一个页面内有使用次数限制,如<code>#loop</code>和<code>#regex</code>。如果一个模板需要反复调用这些解析器函数,或是一个用到这些解析器函数的模板可能会在同一个页面内反复引用,此时应当将模板改写为Lua模块。
但值得注意的是,<code>&lt;pre&gt;</code>标签内的<code><nowiki>-{}-</nowiki></code>和<code>&lt;nowiki&gt;</code>仍会被执行,可能造成看到的代码和实际代码不符。如果遇到这种情况,应当考虑首先将代码中的<code>&lt;nowiki&gt;</code>全部改写为等效的形式(如<code><nowiki>-{}-</nowiki></code>、<code>&lt;nowiki/&gt;</code>和{{tl|ce}}等),然后将外层的<code>&lt;pre class="wiki-highlight"&gt; + &lt;/pre&gt;</code>更换为<code>&lt;code class="wiki-highlight"&gt;&lt;nowiki&gt; + &lt;/nowiki&gt;&lt;/code&gt;</code>。
 
===代码展示===
LLWiki在模板页面直接展示模板代码,且可以通过[[mw:extension:CodeMirror/zh|CodeMirror扩展]](需要开启“高亮模板代码”小工具)进行语法高亮,方便用户查阅。为了防止在模板引用时错误地嵌入<code>&lt;pre&gt;</code>标签,在模板实际代码之前添加<pre><includeonly><!--</includeonly><pre class="wiki-highlight">--></pre>在代码之后添加<pre><!--<​&lt;/pre>&gt;<includeonly>--></includeonly></pre>
值得需要注意的是,<code>&lt;pre&gt;</code>标签内的<code><nowiki>-{}-</nowiki></code>和<code>&lt;nowiki&gt;</code>仍会被执行,可能造成看到的代码和实际代码不符。如果遇到这种情况,应当考虑首先将代码中的<code>&lt;nowiki&gt;</code>全部改写为等效的形式(如<code><nowiki>-{}-</nowiki></code>、<code>&lt;nowiki/&gt;</code>和{{tl|ce}}等),然后将外层的<code>&lt;pre class="wiki-highlight"&gt; + &lt;/pre&gt;</code>更换为<code>&lt;code class="wiki-highlight"&gt;&lt;nowiki&gt; + &lt;/nowiki&gt;&lt;/code&gt;</code>。
 
==结语==
为方便模板页面遵照既定格式编写,LLWiki在快速编辑工具中添加了模板页面的格式框架,请参考本指引和预加载的框架填入模板文档、分类和代码这三项主要内容。如有进一步的疑问或遇到技术困难,欢迎随时在[[LLWikiHelp:互助客]]提问,将会有管理员或是其他有经验的用户提供帮助和解答。也欢迎各位用户点击站内公告的链接加入[https://qm.qq.com/cgi-bin/qm/qr?k=w-qzkbXgke0xFvVzm6nuLSYK5TcOULms&authKey=FF5A/wvlhw6+kcjSfaczJPsvr70+pf4ZPfX6aSwNtQFpXFfBDThrOx2bWGi7wFJr&noverify=0 官方编辑群],在群内实时提问交流。
[[category:LLWiki指引]]
16,874

个编辑