LLWiki正在建設中,歡迎加入我們!
「User:Bhsd」修訂間的差異
跳至導覽
跳至搜尋
小 |
小 (→经验总结) |
||
第37行: | 第37行: | ||
===JavaScript=== |
===JavaScript=== |
||
{{#vardefine:content|<code class="prettyprint" lang="js">mw.hook( 'wikipage.content' )</code>}}{{#vardefine:ready|<code>$.ready</code>}} |
|||
试着整理下本站各主要JS脚本(全局JS和Gadgets)的合理执行时机: |
试着整理下本站各主要JS脚本(全局JS和Gadgets)的合理执行时机: |
||
{| class="wikitable sortable" style="padding-bottom:1px;text-align:center;" |
{| class="wikitable sortable" style="padding-bottom:1px;text-align:center;" |
||
! JS文件 !! 桌面版 !! 移动版 |
! JS文件 !! 桌面版 !! 移动版 |
||
|- |
|- |
||
| data-sort-value="*" | [[mediawiki:common.js|common.js]] || |
| data-sort-value="*" | [[mediawiki:common.js|common.js]] || {{#var:content}} 或 {{#var:ready}} || {{n/a|3=}} |
||
|- |
|- |
||
| data-sort-value="*" | [[mediawiki:mobile.js|mobile.js]] || {{n/a|3=}} || |
| data-sort-value="*" | [[mediawiki:mobile.js|mobile.js]] || {{n/a|3=}} || {{#var:content}}或移动版菜单生成后 |
||
|- |
|- |
||
| [[mediawiki:gadget-exlinks.js|exlinks]] || |
| [[mediawiki:gadget-exlinks.js|exlinks]] || {{#var:content}} || {{#var:content}} |
||
|- |
|- |
||
| [[mediawiki:gadget-sharelink.js|sharelink]] || |
| [[mediawiki:gadget-sharelink.js|sharelink]] || {{#var:ready}} || {{#var:ready}} |
||
|- |
|- |
||
| [[mediawiki:gadget-toc-custom.js|toc-custom]] || |
| [[mediawiki:gadget-toc-custom.js|toc-custom]] || {{#var:ready}} || {{n/a|3=}} |
||
|- |
|- |
||
| [[mediawiki:gadget-UTCLiveClock.js|UTCLiveClock]] || |
| [[mediawiki:gadget-UTCLiveClock.js|UTCLiveClock]] || {{#var:ready}} || {{#var:ready}} |
||
|- |
|- |
||
| [[mediawiki:gadget-hideConversionTab.js|hideConversionTab]] || {{n/a|3=}} || 移动版语言选单生成后 |
| [[mediawiki:gadget-hideConversionTab.js|hideConversionTab]] || {{n/a|3=}} || 移动版语言选单生成后 |
||
|- |
|- |
||
| [[mediawiki:gadget-mobile-Backtotop.js|mobile-Backtotop]] || |
| [[mediawiki:gadget-mobile-Backtotop.js|mobile-Backtotop]] || {{#var:ready}} || {{#var:ready}} |
||
|- |
|- |
||
| [[mediawiki:gadget-code-prettify.js|code-prettify]] || |
| [[mediawiki:gadget-code-prettify.js|code-prettify]] || {{#var:content}} || {{#var:content}} |
||
|- |
|- |
||
| [[mediawiki:gadget-ReferenceTooltips.js|ReferenceTooltips]] || |
| [[mediawiki:gadget-ReferenceTooltips.js|ReferenceTooltips]] || {{#var:content}} || {{n/a|3=}} |
||
|- |
|- |
||
| [[mediawiki:gadget-MobileCategories.js|MobileCategories]] || {{n/a|3=}} || |
| [[mediawiki:gadget-MobileCategories.js|MobileCategories]] || {{n/a|3=}} || {{#var:ready}} |
||
|- |
|- |
||
| [[mediawiki:gadget-copyLyrics.js|copyLyrics]] || |
| [[mediawiki:gadget-copyLyrics.js|copyLyrics]] || {{#var:content}} || {{#var:content}} |
||
|- |
|- |
||
| [[mediawiki:gadget-noteTA.js|noteTA]] || |
| [[mediawiki:gadget-noteTA.js|noteTA]] || {{#var:content}} || {{#var:content}} |
||
|- |
|- |
||
| [[mediawiki:gadget-CommentsInLocalTime-core.js|CommentsInLocalTime]] || |
| [[mediawiki:gadget-CommentsInLocalTime-core.js|CommentsInLocalTime]] || {{#var:content}} || {{#var:content}} |
||
|- |
|- |
||
| [[mediawiki:gadget-TalkHelper.js|TalkHelper]] || CommentsInLocalTime执行完后 || CommentsInLocalTime执行完后 |
| [[mediawiki:gadget-TalkHelper.js|TalkHelper]] || CommentsInLocalTime执行完后 || CommentsInLocalTime执行完后 |
||
|- |
|- |
||
| [[mediawiki:gadget-stickyHeading.js|stickyHeading]] || |
| [[mediawiki:gadget-stickyHeading.js|stickyHeading]] || {{#var:content}} || {{#var:content}} |
||
|- |
|- |
||
| [[mediawiki:gadget-custommenu.js|custommenu]] || |
| [[mediawiki:gadget-custommenu.js|custommenu]] || {{#var:ready}} || 移动版菜单生成后 |
||
|- |
|- |
||
| [[mediawiki:gadget-editCount.js|editCount]] || |
| [[mediawiki:gadget-editCount.js|editCount]] || {{#var:ready}} || 移动版菜单生成后 |
||
|- |
|- |
||
| [[mediawiki:gadget-HotCat.js|HotCat]] || |
| [[mediawiki:gadget-HotCat.js|HotCat]] || {{#var:ready}} || {{n/a|3=}} |
||
|- |
|- |
||
| [[mediawiki:gadget-mobile-HotCat.js|mobile-HotCat]] || {{n/a|3=}} || MobileCategories执行完后 |
| [[mediawiki:gadget-mobile-HotCat.js|mobile-HotCat]] || {{n/a|3=}} || MobileCategories执行完后 |
||
|- |
|- |
||
| [[mediawiki:gadget-Cat-a-lot.js|Cat-a-lot]] || |
| [[mediawiki:gadget-Cat-a-lot.js|Cat-a-lot]] || {{#var:ready}} || {{n/a|3=}} |
||
|- |
|- |
||
| [[mediawiki:gadget-Wikiplus.js|Wikiplus]] || |
| [[mediawiki:gadget-Wikiplus.js|Wikiplus]] || {{#var:ready}} || {{n/a|3=}} |
||
|- |
|- |
||
| [[mediawiki:gadget-PreviewWithVariant.js|PreviewWithVariant]] || |
| [[mediawiki:gadget-PreviewWithVariant.js|PreviewWithVariant]] || {{#var:ready}} || {{#var:ready}} |
||
|- |
|- |
||
| [[mediawiki:gadget-notEditTopSection.js|notEditTopSection]] || {{n/a|3=}} || |
| [[mediawiki:gadget-notEditTopSection.js|notEditTopSection]] || {{n/a|3=}} || {{#var:ready}} |
||
|- |
|- |
||
| [[mediawiki:gadget-mobileEdit.js|mobileEdit]] || {{n/a|3=}} || 移动版JS加载完成后,具体时间不好确定,暂定为 |
| [[mediawiki:gadget-mobileEdit.js|mobileEdit]] || {{n/a|3=}} || 移动版JS加载完成后,具体时间不好确定,暂定为{{#var:ready}}再延迟0.5秒 |
||
|- |
|- |
||
| [[mediawiki:gadget-pxruler-core.js|pxruler]] || |
| [[mediawiki:gadget-pxruler-core.js|pxruler]] || {{#var:ready}} || {{n/a|3=}} |
||
|- |
|- |
||
| [[mediawiki:gadget-SearchNamespace-core.js|SearchNamespace]] || |
| [[mediawiki:gadget-SearchNamespace-core.js|SearchNamespace]] || {{#var:ready}} || 移动版搜索框生成后 |
||
|- |
|- |
||
| [[mediawiki:gadget-CleanDeleteReasons.js|CleanDeleteReasons]] || |
| [[mediawiki:gadget-CleanDeleteReasons.js|CleanDeleteReasons]] || {{#var:ready}} || {{#var:ready}} |
||
|- |
|- |
||
| [[mediawiki:gadget-patrolPlus.js|patrolPlus]] || |
| [[mediawiki:gadget-patrolPlus.js|patrolPlus]] || {{#var:ready}} || {{n/a|3=}} |
||
|- |
|- |
||
| [[mediawiki:gadget-patrolRevisions.js|patrolRevisions]] || |
| [[mediawiki:gadget-patrolRevisions.js|patrolRevisions]] || {{#var:ready}} || {{#var:ready}} |
||
|- |
|- |
||
| [[mediawiki:gadget-confirmationRollback.js|confirmationRollback]] || |
| [[mediawiki:gadget-confirmationRollback.js|confirmationRollback]] || {{#var:ready}} || {{#var:ready}} |
||
|- |
|- |
||
| [[mediawiki:gadget-mobileBlock.js|mobileBlock]] || {{n/a|3=}} || |
| [[mediawiki:gadget-mobileBlock.js|mobileBlock]] || {{n/a|3=}} || {{#var:ready}} |
||
|- |
|- |
||
| [[mediawiki:gadget-site-lib.js|site-lib]] || 无条件 || 无条件 |
| [[mediawiki:gadget-site-lib.js|site-lib]] || 无条件 || 无条件 |
||
第109行: | 第110行: | ||
===繁简转换=== |
===繁简转换=== |
||
{{#vardefine:wgULS|<code>wgUserLanguage</code>}}{{#vardefine:wgUCS|<code>wgUserVariant</code>}} |
|||
{| class="wikitable sortable" style="padding-bottom:1px;text-align:center;" |
{| class="wikitable sortable" style="padding-bottom:1px;text-align:center;" |
||
! 全局JS !! 转换方式 !! 参数 |
! 全局JS !! 转换方式 !! 参数 |
||
|- |
|- |
||
| [[mediawiki:common.js|common.js]] || 自动 || |
| [[mediawiki:common.js|common.js]] || 自动 || {{#var:wgUCS}} |
||
|- |
|- |
||
| [[mediawiki:mobile.js|mobile.js]] || 自动 + 手动 || |
| [[mediawiki:mobile.js|mobile.js]] || 自动 + 手动 || {{#var:wgUCS}} 或 {{#var:wgULS}} |
||
|} |
|} |
||
{| class="wikitable sortable" style="padding-bottom:1px;text-align:center;" |
{| class="wikitable sortable" style="padding-bottom:1px;text-align:center;" |
||
! Gadgets !! 转换方式 !! 参数 |
! Gadgets !! 转换方式 !! 参数 |
||
|- |
|- |
||
| [[mediawiki:gadget-exlinks.js|exlinks]] || 手动 || |
| [[mediawiki:gadget-exlinks.js|exlinks]] || 手动 || {{#var:wgULS}} |
||
|- |
|- |
||
| [[mediawiki:gadget-sharelink.js|sharelink]] || 手动 || |
| [[mediawiki:gadget-sharelink.js|sharelink]] || 手动 || {{#var:wgULS}} |
||
|- |
|- |
||
| [[mediawiki:gadget-toc-custom.js|toc-custom]] || 自动 + 手动 || |
| [[mediawiki:gadget-toc-custom.js|toc-custom]] || 自动 + 手动 || {{#var:wgUCS}} |
||
|- |
|- |
||
| [[mediawiki:gadget-UTCLiveClock.js|UTCLiveClock]] || {{n/a|2=2|3=}} |
| [[mediawiki:gadget-UTCLiveClock.js|UTCLiveClock]] || {{n/a|2=2|3=}} |
||
第133行: | 第135行: | ||
| [[mediawiki:gadget-code-prettify.js|code-prettify]] || {{n/a|2=2|3=}} |
| [[mediawiki:gadget-code-prettify.js|code-prettify]] || {{n/a|2=2|3=}} |
||
|- |
|- |
||
| [[mediawiki:gadget-ReferenceTooltips.js|ReferenceTooltips]] || 自动 + 手动 || |
| [[mediawiki:gadget-ReferenceTooltips.js|ReferenceTooltips]] || 自动 + 手动 || {{#var:wgUCS}} 或 {{#var:wgULS}} |
||
|- |
|- |
||
| [[mediawiki:gadget-MobileCategories.js|MobileCategories]] || 自动 + 手动 || |
| [[mediawiki:gadget-MobileCategories.js|MobileCategories]] || 自动 + 手动 || {{#var:wgUCS}} 或 {{#var:wgULS}} |
||
|- |
|- |
||
| [[mediawiki:gadget-copyLyrics.js|copyLyrics]] || {{n/a|2=2|3=}} |
| [[mediawiki:gadget-copyLyrics.js|copyLyrics]] || {{n/a|2=2|3=}} |
||
|- |
|- |
||
| [[mediawiki:gadget-noteTA.js|noteTA]] || 自动 + 手动 || |
| [[mediawiki:gadget-noteTA.js|noteTA]] || 自动 + 手动 || {{#var:wgUCS}} 或 {{#var:wgULS}} |
||
|- |
|- |
||
| [[mediawiki:gadget-CommentsInLocalTime-core.js|CommentsInLocalTime]] || 手动 || |
| [[mediawiki:gadget-CommentsInLocalTime-core.js|CommentsInLocalTime]] || 手动 || {{#var:wgUCS}} |
||
|- |
|- |
||
| [[mediawiki:gadget-TalkHelper.js|TalkHelper]] || {{n/a|2=2|3=}} |
| [[mediawiki:gadget-TalkHelper.js|TalkHelper]] || {{n/a|2=2|3=}} |
||
第147行: | 第149行: | ||
| [[mediawiki:gadget-stickyHeading.js|stickyHeading]] || {{n/a|2=2|3=}} |
| [[mediawiki:gadget-stickyHeading.js|stickyHeading]] || {{n/a|2=2|3=}} |
||
|- |
|- |
||
| [[mediawiki:gadget-custommenu.js|custommenu]] || 自动 + 手动 || |
| [[mediawiki:gadget-custommenu.js|custommenu]] || 自动 + 手动 || {{#var:wgULS}} |
||
|- |
|- |
||
| [[mediawiki:gadget-editCount.js|editCount]] || {{n/a|2=2|3=}} |
| [[mediawiki:gadget-editCount.js|editCount]] || {{n/a|2=2|3=}} |
||
|- |
|- |
||
| [[mediawiki:gadget-HotCat.js|HotCat]] || 手动 || |
| [[mediawiki:gadget-HotCat.js|HotCat]] || 手动 || {{#var:wgUCS}} |
||
|- |
|- |
||
| [[mediawiki:gadget-mobile-HotCat.js|mobile-HotCat]] || {{n/a|2=2|3=}} |
| [[mediawiki:gadget-mobile-HotCat.js|mobile-HotCat]] || {{n/a|2=2|3=}} |
||
|- |
|- |
||
| [[mediawiki:gadget-Cat-a-lot.js|Cat-a-lot]] || 手动 || |
| [[mediawiki:gadget-Cat-a-lot.js|Cat-a-lot]] || 手动 || {{#var:wgULS}} |
||
|- |
|- |
||
| [[mediawiki:gadget-Wikiplus.js|Wikiplus]] || 手动 || |
| [[mediawiki:gadget-Wikiplus.js|Wikiplus]] || 手动 || {{#var:wgULS}} |
||
|- |
|- |
||
| [[mediawiki:gadget-PreviewWithVariant.js|PreviewWithVariant]] || 不转换 || {{n/a|3=}} |
| [[mediawiki:gadget-PreviewWithVariant.js|PreviewWithVariant]] || 不转换 || {{n/a|3=}} |
||
第163行: | 第165行: | ||
| [[mediawiki:gadget-notEditTopSection.js|notEditTopSection]] || {{n/a|2=2|3=}} |
| [[mediawiki:gadget-notEditTopSection.js|notEditTopSection]] || {{n/a|2=2|3=}} |
||
|- |
|- |
||
| [[mediawiki:gadget-mobileEdit.js|mobileEdit]] || 手动 || |
| [[mediawiki:gadget-mobileEdit.js|mobileEdit]] || 手动 || {{#var:wgULS}} |
||
|- |
|- |
||
| [[mediawiki:gadget-pxruler-core.js|pxruler]] || 手动 || |
| [[mediawiki:gadget-pxruler-core.js|pxruler]] || 手动 || {{#var:wgULS}} |
||
|- |
|- |
||
| [[mediawiki:gadget-SearchNamespace-core.js|SearchNamespace]] || 手动 || |
| [[mediawiki:gadget-SearchNamespace-core.js|SearchNamespace]] || 手动 || {{#var:wgULS}} |
||
|- |
|- |
||
| [[mediawiki:gadget-CleanDeleteReasons.js|CleanDeleteReasons]] || {{n/a|2=2|3=}} |
| [[mediawiki:gadget-CleanDeleteReasons.js|CleanDeleteReasons]] || {{n/a|2=2|3=}} |
||
|- |
|- |
||
| [[mediawiki:gadget-patrolPlus.js|patrolPlus]] || 手动 || |
| [[mediawiki:gadget-patrolPlus.js|patrolPlus]] || 手动 || {{#var:wgULS}} |
||
|- |
|- |
||
| [[mediawiki:gadget-patrolRevisions.js|patrolRevisions]] || 手动 || |
| [[mediawiki:gadget-patrolRevisions.js|patrolRevisions]] || 手动 || {{#var:wgULS}} |
||
|- |
|- |
||
| [[mediawiki:gadget-confirmationRollback.js|confirmationRollback]] || 手动 || |
| [[mediawiki:gadget-confirmationRollback.js|confirmationRollback]] || 手动 || {{#var:wgULS}} |
||
|- |
|- |
||
| [[mediawiki:gadget-mobileBlock.js|mobileBlock]] || 手动 || |
| [[mediawiki:gadget-mobileBlock.js|mobileBlock]] || 手动 || {{#var:wgULS}} |
||
|- |
|- |
||
| [[mediawiki:gadget-site-lib.js|site-lib]] || {{n/a|2=2|3=}} |
| [[mediawiki:gadget-site-lib.js|site-lib]] || {{n/a|2=2|3=}} |
||
第184行: | 第186行: | ||
! Widgets !! 转换方式 !! 参数 |
! Widgets !! 转换方式 !! 参数 |
||
|- |
|- |
||
| [[widget:bilibili|bilibili]] || 自动 || |
| [[widget:bilibili|bilibili]] || 自动 || {{#var:wgUCS}} |
||
|- |
|- |
||
| [[widget:bgimage|bgimage]] || {{n/a|2=2|3=}} |
| [[widget:bgimage|bgimage]] || {{n/a|2=2|3=}} |
||
|- |
|- |
||
| [[widget:countdown|countdown]] || 自动 || |
| [[widget:countdown|countdown]] || 自动 || {{#var:wgUCS}} |
||
|- |
|- |
||
| [[widget:lyrics|lyrics]] || 自动 || |
| [[widget:lyrics|lyrics]] || 自动 || {{#var:wgUCS}} |
||
|} |
|} |
||
{| class="wikitable sortable" style="padding-bottom:1px;text-align:center;" |
{| class="wikitable sortable" style="padding-bottom:1px;text-align:center;" |
||
第197行: | 第199行: | ||
| [[module:arguments|arguments]] || {{n/a|2=2|3=}} |
| [[module:arguments|arguments]] || {{n/a|2=2|3=}} |
||
|- |
|- |
||
| [[module:lyrics|lyrics]] || 自动 || |
| [[module:lyrics|lyrics]] || 自动 || {{#var:wgUCS}} |
||
|} |
|} |
於 2020年8月30日 (日) 11:00 的修訂
簡歷
- 2019年12月開始學習JavaScript(無關LL的GitHub項目)。
- 2020年4月開始學習Wikitext(萌娘百科)。
- 2020年6月開始學習CSS(萌娘百科)。
- 2020年7月(本站建站以後)開始學習jQuery。
待辦事項
- CSS
- JavaScript(全局和Gadgets)
- 濫用過濾器
- 模板和Widgets
- 幫助頁面
經驗總結
CSS
移動版已知會自動添加以下樣式:
table, caption, tbody, tfoot, thead, tr, th, td {
font-size: 100%;
}
table {
border-collapse: collapse;
}
.content table {
margin: 1em 0;
overflow: auto;
overflow-y: hidden;
overflow-x: auto;
}
@media only screen and (max-width: 720px) {
.content table {
display: block;
width: 100% !important;
}
}
JavaScript
試着整理下本站各主要JS腳本(全局JS和Gadgets)的合理執行時機:
JS文件 | 桌面版 | 移動版 |
---|---|---|
common.js | mw.hook( 'wikipage.content' ) 或 $.ready |
|
mobile.js | mw.hook( 'wikipage.content' ) 或移動版菜單生成後
| |
exlinks | mw.hook( 'wikipage.content' ) |
mw.hook( 'wikipage.content' )
|
sharelink | $.ready |
$.ready
|
toc-custom | $.ready |
|
UTCLiveClock | $.ready |
$.ready
|
hideConversionTab | 移動版語言選單生成後 | |
mobile-Backtotop | $.ready |
$.ready
|
code-prettify | mw.hook( 'wikipage.content' ) |
mw.hook( 'wikipage.content' )
|
ReferenceTooltips | mw.hook( 'wikipage.content' ) |
|
MobileCategories | $.ready
| |
copyLyrics | mw.hook( 'wikipage.content' ) |
mw.hook( 'wikipage.content' )
|
noteTA | mw.hook( 'wikipage.content' ) |
mw.hook( 'wikipage.content' )
|
CommentsInLocalTime | mw.hook( 'wikipage.content' ) |
mw.hook( 'wikipage.content' )
|
TalkHelper | CommentsInLocalTime執行完後 | CommentsInLocalTime執行完後 |
stickyHeading | mw.hook( 'wikipage.content' ) |
mw.hook( 'wikipage.content' )
|
custommenu | $.ready |
移動版菜單生成後 |
editCount | $.ready |
移動版菜單生成後 |
HotCat | $.ready |
|
mobile-HotCat | MobileCategories執行完後 | |
Cat-a-lot | $.ready |
|
Wikiplus | $.ready |
|
PreviewWithVariant | $.ready |
$.ready
|
notEditTopSection | $.ready
| |
mobileEdit | 移動版JS加載完成後,具體時間不好確定,暫定為$.ready 再延遲0.5秒
| |
pxruler | $.ready |
|
SearchNamespace | $.ready |
移動版搜索框生成後 |
CleanDeleteReasons | $.ready |
$.ready
|
patrolPlus | $.ready |
|
patrolRevisions | $.ready |
$.ready
|
confirmationRollback | $.ready |
$.ready
|
mobileBlock | $.ready
| |
site-lib | 無條件 | 無條件 |
繁簡轉換
全局JS | 轉換方式 | 參數 |
---|---|---|
common.js | 自動 | wgUserVariant
|
mobile.js | 自動 + 手動 | wgUserVariant 或 wgUserLanguage
|
Gadgets | 轉換方式 | 參數 |
---|---|---|
exlinks | 手動 | wgUserLanguage
|
sharelink | 手動 | wgUserLanguage
|
toc-custom | 自動 + 手動 | wgUserVariant
|
UTCLiveClock | ||
hideConversionTab | ||
mobile-Backtotop | ||
code-prettify | ||
ReferenceTooltips | 自動 + 手動 | wgUserVariant 或 wgUserLanguage
|
MobileCategories | 自動 + 手動 | wgUserVariant 或 wgUserLanguage
|
copyLyrics | ||
noteTA | 自動 + 手動 | wgUserVariant 或 wgUserLanguage
|
CommentsInLocalTime | 手動 | wgUserVariant
|
TalkHelper | ||
stickyHeading | ||
custommenu | 自動 + 手動 | wgUserLanguage
|
editCount | ||
HotCat | 手動 | wgUserVariant
|
mobile-HotCat | ||
Cat-a-lot | 手動 | wgUserLanguage
|
Wikiplus | 手動 | wgUserLanguage
|
PreviewWithVariant | 不轉換 | |
notEditTopSection | ||
mobileEdit | 手動 | wgUserLanguage
|
pxruler | 手動 | wgUserLanguage
|
SearchNamespace | 手動 | wgUserLanguage
|
CleanDeleteReasons | ||
patrolPlus | 手動 | wgUserLanguage
|
patrolRevisions | 手動 | wgUserLanguage
|
confirmationRollback | 手動 | wgUserLanguage
|
mobileBlock | 手動 | wgUserLanguage
|
site-lib |
Widgets | 轉換方式 | 參數 |
---|---|---|
bilibili | 自動 | wgUserVariant
|
bgimage | ||
countdown | 自動 | wgUserVariant
|
lyrics | 自動 | wgUserVariant
|
Modules | 轉換方式 | 參數 |
---|---|---|
arguments | ||
lyrics | 自動 | wgUserVariant
|