使用者:鐵拳無敵孫中山/萌百進階編輯教程
簡介
本條目面向閱讀了Help:萌娘百科編輯的快速養成方法-從入門到精通的編輯者。筆者默認讀者已經理解條目的基本編輯方法。
某些內容引用自https://www.mediawiki.org/wiki/Documentation,由於該文檔大量內容未漢化或漢化不完全,[1]
可能比較難以閱讀。
還請讀者在閱讀本文後養成多看官方文檔的習慣。包括mediawiki的官方文檔,各種工具的官方文檔。
基本原則
- 不要問為什麼沒有xx,自己去寫。如果不會寫可以學習怎麼寫,即使是問別人怎麼寫也好於要求別人來替你做這件事。
- 有效率的提問。提問前先用Google,mediawiki官方文檔等搜索一遍,再看看類似條目的代碼嘗試理解,無法解決再提問。
- 如果你不確定你在做什麼,使用沙盒。
- 不要抄襲。將萌娘百科內容與百度百科、維基百科等網站內容相互替換(Copy)屬版權侵犯。詳見萌娘百科:版權信息。複製他人的代碼以實現類似的功能而不是複製內容,不算抄襲。
進階教程
使用模板
https://www.mediawiki.org/wiki/Help:Templates
https://www.mediawiki.org/wiki/Help:Templates/zh
筆者利用C#寫了一個簡單的工具,可以根據一個模板的代碼自動生成調用模板的代碼。你只需要複製模板代碼粘貼,即可產生調用模板的代碼。工具會使用注釋標註帶有默認值的參數。
待補充
創建模板
您可以在地址欄輸入zh.moegirl.org/Template:templatename以創建名為templatename的模板。
在需要多次使用的固定結構方面,創建一個模板好於在不同地方反覆複製代碼。前者還可保證信息的同步性。
如果顯示無法更新,請使用強刷新功能。
例如創建模板Template:Example,裡面加入一系列代碼(可以是其他的模板,而且不會遞歸引用或循環引用),就可以在其他地方直接使用{{Example}}調用模板。
固定參數
您可能在看條目時看到:帶有髮色、瞳色這些可以改變的屬性的表格是怎麼製作的呢?難道需要每次複製一次代碼嗎?
答案是否定的,利用模板的參數可以有效的解決這個問題。參數是在調用模板時可以填上去的數據。參數也會被作為wiki文本使用,所以參數裡也可以正常使用各種語法。
參數不需要宣告,可以直接在模板內以{{{parametername}}}的方法使用。
例如我們要製作一個日期的模板:
{{{年}}}年,{{{月}}}月{{{日}}}日
調用這個模板的方法:
{{日期
|年=
|月=
|日=
}}
舉個例子,
{{日期
|年=1919
|月=8
|日=10
}}
的效果就是
1919年,8月10日
可選參數
如果你認為有些參數在不填寫時需要一個默認值,你可以這麼做:
{{{参数名|默认值}}}
這樣在調用模板時可以不寫|參數名=xxx這個結構,直接可以使用默認值代替。
有時候在這些情況里使用豎線|會導致解析程序出問題,此時可以用 {{!}}
代替。
if條件句
如果在可選參數外面需要加一些代碼,而在默認值時又完全不需要這些代碼,在這種情形下可使用if條件句。
if條件句的格式如下: {{#if: {{{需要检验的参数|}}} | 可选参数存在时的值 |可选参数不存在时的值 }}
範例:你需要建立一個帶有圖片的模板。圖片的寬度被限制為300px,因此你必須在代表圖片文件名的參數外面加上一些附加信息。不存在圖片時,如果用上面的默認值語法,會看到一串難看的紅色鏈接指向不存在的文件。此時你可以這麼寫:
{{#if: {{{图片|}}} | [[File:{{{图片|}}}{{!}}300px]] | 缺乏图片信息 }}
表格與CSS
表格往往是最複雜也是最令人頭疼的部分。在此筆者推薦一種方法可以讓您以較快的速度創建表格模板。
詳細信息請參考:https://www.mediawiki.org/wiki/Help:Tables
- Step 1 創建表格基本框架
請使用表格生成器 建立表格的基本框架。
您可以利用這個工具決定表格有多少行,多少列,還可以合併單元格,設置表格文本,調整並預覽單元格顏色。
- Step 2 設置文本和參數
在表格的對應單元格內填入文本和參數。請隨時保存和預覽,以免丟失工作進度或破壞工作進度。
- Step 3 通過CSS美化表格
如果想要調整整個表格,就在第一個|以後輸入css;如果想調整單個單元格,就在單元格所在的代碼里輸入css。
寫法是: style="参数1名:参数1值; 参数2名:参数2值;"
,更多參數也可,以此類推。
https://cssreference.io/ 這個網站可以提供大量css相關信息。不再贅述,請自行查閱。
具體用法可查閱和參考現有模板。複製並更改代碼也是一種有效的方式。
撰寫doc
在地址欄輸入zh.moegirl.org/Template:模板名/doc,即可創建模板的文檔。
文檔必須條理清晰,如果是帶有參數的模板應詳細說明各參數的用法以及編輯規範並附一個例子。
創建後在原模版里加入<includeonly> </includeonly>把模板代碼包圍可以讓模板頁不顯示它們而僅在調用時顯示。
用<noinclude> </noinclude>包圍調用模板時不出現的信息。例如{{Documentation}},可以自動顯示文檔頁的內容。
使用HTML標籤
<br>换行。
<nowiki> 這種代碼的用法顯而易見,是防止解析器把標籤包圍的內容解析為wikitext。點擊查看本頁面的代碼即可知道這是多麼有用。</nowiki>
<div style=" "></div>可以对包围的代码使用一系列css。注意,这遵循先进先出原则(div入栈,/div出栈,原谅笔者确实想不到如何用栈stack以外的术语描述div的配对方法)。
除此之外還有許多的標籤。您可以適度的嘗試和使用,但是不要把條目寫的過於花哨,一切應以簡潔和優化用戶體驗為目標。
使用代碼提高工作效率
查找與替換
使用vscode等文本編輯器的這一功能可以大幅減少重複操作。
正則表達式
如果看到了上一個編輯者使用過時的模板或者批量使用看似不符合強迫症的代碼,您應該怎麼做呢?
https://regexr.com/ 您可以用方便的創建和使用正則表達式,正則表達式(regular expression,regex)可以對特定類型的字符串進行查找替換,而且效率相當高。
https://www.jb51.net/tools/zhengze.html 這個教程可以讓你在幾小時內學會正則表達式的基本語法。
回到剛才的案例,依靠直覺和剛才學到的知識寫一個正則表達式以匹配看不順眼的代碼,批量替換就可以了。
使用編程語言
你可以通過調用api的方式批量執行一些操作。為了這麼做,你至少需要掌握一門編程語言。
選擇哪一門語言好是一個會引起宗教戰爭的問題,在此就不贅述了。如果你以前有某種語言的基礎,找一找有沒有封裝http相關功能的庫,例如c#的HttpRequest類。
豆知識
發現什麼補充什麼,不定期更新。
「施工中」模板
可以在編輯條目開始時放上這個模板,減少可能的編輯衝突,編輯完了再刪掉。
強刷新
作用效果相當於用purge清除緩存。參見 https://www.mediawiki.org/wiki/Manual:Purge
點擊用戶頭像所在工具欄,最右邊的按鈕即可。
例如,如果您需要在用戶頁刷新您的編輯量使其同步顯示,即可使用這個功能。
利用api獲取wikitext
使用圖床和外鏈圖片
段落上的「編輯」按鈕
有時你會和你自己產生編輯衝突,為什麼呢?這一般是因為你在編輯條目後使用段落上的編輯按鈕所致。此時wikitext不能及時更新。
解決它的辦法還是強刷新。沒有什麼是強刷新無法解決的。
瀏覽器問題
某些瀏覽器可能會出現各種顯示bug,chrome是最推薦的瀏覽器。
|