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

添加13,942字节 、​ 2021年8月13日 (五) 04:32
(先开个坑,需要在入职之间尽可能交差)
标签移动版网页编辑 移动版编辑
 
→‎繁简转换:​ //使用页面/文本对比查看器快速编辑
 
(未显示3个用户的41个中间版本)
{{not|mediawikiwiki:Help:Templates/zh{{!}}帮助:模板}}
{{内容缺失}}
本指引描述LLWiki的模板页面普遍遵循的格式。
 
LLWiki的模板(Template)页面一般分为三个组成部分,依次为(1)模板文档、(2)以分类为主的其他不可见的<code>&lt;noinclude&gt;</code>内容和(3)模板代码。前两项总是包裹在<code>&lt;noinclude&gt;</code>标签内,模板引用时会被忽略。
{{toclimit|2|{{目录右置}}}}
==文档==
模板文档总是通过{{tl|Documentation}}呈现。简短的文档可以使用{{tl|Documentation}}的<code>content</code>参数直接书写在当前页面内,较长的文档则应单独置于模板文档页。模板文档页的页面名称应为「模板页面名称 + /doc」,如[[Template:Lyrics]]的文档页位于[[Template:Lyrics/doc]]。多个模板共用同一个文档页时,页面名称不对应的模板页需使用{{tl|Documentation}}的<code>1</code>参数(可以使用匿名写法)。[[Template:Documentation]]页面给出了几个简单的用法示例。
 
以下是一个模板文档页(<code><nowiki>{{doc|Template:AS song/doc}}</nowiki></code>)的实际例子。{{doc|Template:AS song/doc}}
 
模板文档通常包含以下全部内容:(1)用途描述、(2)参数列表和说明,以及(3)各种用法示例。必要的时候还需要添加特别注意事项。以上这些要素在上面的实际例子中都可以找到。如果模板引用自其他版权协议兼容的网站,还需要在{{code|外部链接}}章节中使用{{tl|CCnotice}}模板说明。
 
===繁简转换===
由于LLWiki处理模板文档繁简转换的方式特殊,这里单独列为一个章节。
 
模板文档繁简转换的需求来自于两个方面,其一是模板使用的中文参数都需配备简体和繁体两个互为替代的等效参数(详见[[#代码]]章节),其二是在说明参数或是展示示例时用到的中文表达。一般情况下MediaWiki会对中文自动进行繁简转换,但使用<code>&lt;code&gt;</code>和<code>&lt;pre&gt;</code>标签(或行首空格)时,内部文本通常不会执行繁简转换。如果需要让标签内的文本实现繁简转换,可以在開頭添加<code>--{}-{}-</code>,如{{code|<-{}-pre>--{}-{}-內容<-{}-/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>
{{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>}}
</pre>的效果为{{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"
! 描述 !! Wikitext !! {{tl|code}}和{{tl|pre}}的模板参数 !! 说明
|-
| 状态开关 || {{code|_-{}-_TOC__}} || {{code|_--{}-{}-_TOC__}} || 在任意位置插入<code><nowiki>-{}-</nowiki></code>破坏。
|-
| 斜体文本 || {{code|'-{}-'斜体'-{}-'}} || {{code|&-{}-amp;apos;'斜体'&-{}-amp;apos;}}或<br>{{code|'--{}-{}-'斜体'--{}-{}-'}} || rowspan=3 | 使用字符实体<code>&amp;apos;</code>或用<code><nowiki>-{}-</nowiki></code>将<code>'</code>分隔开,注意不要出现任意连续的两个<code>'</code>。这里<code>&amp;apos;</code>不能使用<code>&amp;#39;</code>替代。
|-
| 粗体文本 || {{code|'&apos;'粗体'&apos;'}} || {{code|'&-{}-amp;apos;'粗体'&-{}-amp;apos;'}}或<br>{{code|'--{}-{}-'--{}-{}-'粗体'--{}-{}-'--{}-{}-'}}
|-
| 粗斜体文本 || {{code|'&apos;'&apos;'粗斜体'&apos;'&apos;'}} || {{code|'&-{}-amp;apos;'&-{}-amp;apos;'粗斜体'&-{}-amp;apos;'&-{}-amp;apos;'}}或<br>{{code|'--{}-{}-'--{}-{}-'--{}-{}-'--{}-{}-'粗斜体'--{}-{}-'--{}-{}-'--{}-{}-'--{}-{}-'}}
|-
| 章节标题 || <pre>-{}-
====4级标题====
</pre>
| {{code|<nowiki>--{}-{}-====4级标题====</nowiki>}} || rowspan=7 | 只有位于行首时才生效,此种情况下在开头加上一个<code><nowiki>-{}-</nowiki></code>即可。
|-
| 分割线 || <pre>
----
</pre>
| <code><nowiki>-{}-----</nowiki></code>
|-
| 无序列表 || <pre>-{}-
*无序列表
</pre>
| {{code|--{}-{}-*无序列表}}
|-
| 有序列表 || <pre>-{}-
#有序列表
</pre>
| {{code|--{}-{}-#有序列表}}
|-
| 定义 || <pre>-{}-
;定义
</pre>
| {{code|--{}-{}-;定义}}
|-
| 缩进文本 || <pre>-{}-
:缩进
</pre>
| {{code|--{}-{}-:缩进}}
|-
| 预格式化文本(行首空格) || <pre>-{}-
预格式化
</pre>
| {{code|--{}-{}- 预格式化}}或<br>{{code|&-{}-amp;nbsp;预格式化}}
|-
| 段落 || <pre>-{}-
第一段
 
第二段
</pre>
| <pre>-{}-
第一段<br>
第二段
</pre>
| 其中一次换行需使用<code><-{}-br></code>标签代替。
|-
| HTML标记 || 例如{{code|<!-{}--- -->}} || <code><nowiki><!-{}--- --></nowiki></code>或<br><code><nowiki>&amp;amp;lt;!-- --&amp;amp;gt;</nowiki></code> || 在左半部分标记中插入<code><nowiki>-{}-</nowiki></code>破坏。
|-
| 特殊符号 || {{code|&-{}-amp;copy;}} || <code><nowiki>&-{}-amp;copy;</nowiki></code> || 将<code>&</code>转义为<code><nowiki>&amp;amp;</nowiki></code>,并在<code>&</code>后插入<code><nowiki>-{}-</nowiki></code>破坏。
|-
| 内部链接和跨维基链接 || {{code|<nowiki>[-{}-[首页]]</nowiki>}} || {{code|<nowiki>[--{}-{}-[首页]]</nowiki>}} || rowspan=3 | 在左侧的<code>[[</code>中间插入<code><nowiki>-{}-</nowiki></code>破坏。
|-
| 插入图片 || <span style="white-space:nowrap">{{code|<nowiki>[-{}-[File:Bg1.png]]</nowiki>}}</span> || {{code|<nowiki>[--{}-{}-[File:Bg1.png]]</nowiki>}}
|-
| 分类 || {{code|[-{}-[Category:文件]]}} || {{code|[--{}-{}-[Category:文件]]}}
|-
| 外部链接 || {{code|[-{}-//llwiki.org 首页]}} || {{code|[--{}-{}-//llwiki.org 首页]}} || 在协议之后(如果有的话)<code>//</code>之前插入<code><nowiki>-{}-</nowiki></code>破坏。
|-
| 繁简转换 || {{code|--{}-{zh-hans:-{繁體}-;<br>zh-hant:-{简体}-}-}} || {{code|<nowiki>---{}-{}--{}-{zh-hans:--{}-{-{繁體}-}-;<br>zh-hant:--{}-{-{简体}-}-}-</nowiki>}} || 在左侧的<code><nowiki>-{</nowiki></code>中插入<code><nowiki>-{}-</nowiki></code>破坏。
|-
| 防转换 ||
{{code|<nowiki>-{東京}-</nowiki>}}
|
{{code|<nowiki>--{}-{-{東京}-}-</nowiki>}}
| 有时本不应转换的内容(如日语)需要手动添加<code><nowiki>-{}-</nowiki></code>防转换。注意上例中也使用了这一技巧。
|-
| 表格 || <pre>-{}-
{|class="wikitable"
! 列标题
|-
| 内容
|}
</pre>
| <pre>-{}-
-&#123;}-&#123;|class="wikitable"
-&#123;}-! 列标题
-&#123;}-|-
-&#123;}-| 内容
-&#123;}-|}
</pre>
| 稳妥起见,可以在每一行的开头都插入<code><nowiki>-{}-</nowiki></code>破坏。
|}
 
最后通过两组示例来展示使用{{tl|pre}}、{{tl|code}}模板或不使用模板时如何实现繁简转换,实际上方法并不唯一。
{| class="wikitable"
! HTML标签 !! Wikitext !! 不使用模板 !! 使用模板
|-
| pre || <pre>-{}-
{| class="wikitable"
! 內容
|-
|
;定義
:縮進
小節
 
小節
|}
</pre>
| <pre>-{}-
<pre>-&#123;}-
{| class="wikitable"
! 内容
|-
|
;定义
:缩进
小节
 
小节
|}&lt;/pre>
</pre>
| <pre>-{}-
{{pre|&lt;nowiki>
-&#123;}-&#123;| class="wikitable"
-&#123;}-! 內容
-&#123;}-|-
-&#123;}-|
-&#123;}-;定義
-&#123;}-:縮進
小節<br>
小節
-&#123;}-|}
&lt;/nowiki>}}
</pre>
|-
| code ||
{{code|<nowiki>{{pre|'-{}-'[-{}-[首頁]]'-{}-'<-{}-sup>&-{}-amp;copy;<-{}-/sup>}}</nowiki>}}
| <pre>-{}-
<code lang="mw">&amp;#123;{pre|&amp;apos;'[--{}-{}-[首頁]]{{ce|''<sup>&amp;amp;copy;</sup>}}}}</code>
</pre>
| <pre>-{}-
{{code|&lt;nowiki>{{pre|'-&#123;}-'[-&#123;}-[首頁]]'-&#123;}-'<-&#123;}-sup>&-&#123;}-amp;copy;<-&#123;}-/sup>}}</nowiki>}}
</pre>
|}
 
==分类==
===按功能分类===
所有模板都一定有至少一个(一般也只有一个)功能分类。LLWiki现共有以下14种功能分类:
;以下分类的优先级较高。
:*[[:Category:辅助模板|辅助模板]]:这些模板用于辅助Wikitext的书写,如用{{tl|1==}}代替<code>=</code>等。
:*[[:Category:授权协议|授权协议]]:这些模板用于标注LLWiki存储的[[:Category:文件|文件]]的授权协议,如{{tl|Copyright}}等。
:*[[:Category:用户页模板|用户页模板]]:这些模板用于用户页面的自我展示,不可用于主空间,如{{tl|用户信息}}和各类[[:Category:LoveLive!学园偶像祭ALL STARS称号用户框|AS称号]]。
:*[[:Category:信息框模板|信息框模板]]:所有使用<code>infoboxtemplate</code>类的表格写成的模板,置于页面最上方,如{{tl|角色信息}}。
:*[[:Category:元模板|元模板]]:这些模板仅用于构建其他模板,由滥用过滤器禁止在模板空间以外使用,如{{tl|ArticleCategory}}。
:*[[:Category:讨论模板|讨论模板]]:这些模板用于讨论页,如{{tl|编辑请求}}和{{tl|Unsigned}}。
:*[[:Category:资料模板|资料模板]]:这些模板预置了LoveLive!系列相关的资料,如各种[[:Category:角色链接模板|角色链接模板]]、[[:Category:声优链接模板|声优链接模板]]和[[:Category:团体链接模板|团体链接模板]]。注意由于分类优先级,这些模板不被划分为[[:Category:内部链接模板|内部链接模板]]。
:*[[:Category:内容模板|内容模板]]:这些模板自身构成页面的重要内容,如各种[[:Category:歌曲模板|歌曲模板]]、[[:Category:LoveLive!学园偶像祭模板|LoveLive!学园偶像祭模板]]和{{tl|Documentation}}。
;以下分类的优先级较低,仅在不满足前述分类的情形下考虑。
:*[[:Category:内部链接模板|内部链接模板]]:这些模板用于生成内部链接,如各种[[:Category:消歧义模板|消歧义模板]]和{{tl|Tl}}。
:*[[:Category:外部链接模板|外部链接模板]]:这些模板用于生成外部链接,如{{tl|plainlinks}}和{{tl|Bili-link}}。
:*[[:Category:语言模板|语言模板]]:这些模板用于标注语言属性,如{{tl|Lang}}和{{tl|Ruby}}。
:*[[:Category:提示模板|提示模板]]:这些模板用于生成各类提示信息,如各种[[:Category:Info模板|Info模板]]和{{tl|BK}}。
:*[[:Category:格式模板|格式模板]]:这些模板用于调整页面格式,如各种[[:Category:表格模板|表格模板]]和[[:Category:列表模板|列表模板]]。
:*[[:Category:功能模板|功能模板]]:这些模板用于执行特定功能,如各种[[:Category:导航模板|导航模板]]、[[:Category:繁简转换模板|繁简转换模板]]和[[:Category:字符串模板|字符串模板]]。
 
这些分类往往还会进一步细分,请根据已有分类体系和类似模板添加到合适的分类级别。
 
===特殊分类===
LLWiki现共有2种特殊分类,分别为[[:Category:使用Widget的模板|使用Widget的模板]]和[[:Category:需要替换引用的模板|需要替换引用的模板]]。
 
==代码==
===有使用次数上限的解析器函数===
部分解析器函数在同一个页面内有使用次数限制,如<code>#loop</code>和<code>#regex</code>。如果一个模板需要反复调用这些解析器函数,或是一个用到这些解析器函数的模板可能会在同一个页面内反复引用,此时应当将模板改写为Lua模块。
 
===代码展示===
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在快速编辑工具中添加了模板页面的格式框架,请参考本指引和预加载的框架填入模板文档、分类和代码这三项主要内容。如有进一步的疑问或遇到技术困难,欢迎随时在[[Help:互助客棧]]提问,将会有管理员或是其他有经验的用户提供帮助和解答。也欢迎各位用户点击站内公告的链接加入[https://qm.qq.com/cgi-bin/qm/qr?k=w-qzkbXgke0xFvVzm6nuLSYK5TcOULms&authKey=FF5A/wvlhw6+kcjSfaczJPsvr70+pf4ZPfX6aSwNtQFpXFfBDThrOx2bWGi7wFJr&noverify=0 官方编辑群],在群内实时提问交流。
[[category:LLWiki指引]]
16,874

个编辑