本文翻譯自2020年5月7日的英文社群中心網誌(有改動)。
如果這是您第一次看到有關統一社區平台計劃的資訊,請在評論之前閱讀本文以了解有關計劃整個範圍的更多資訊。
隨著Fandom在今年繼續推出我們的統一社區平台,您看到我們對「為什麼建立這個新平台」這件事所引用的一個原因是:新平台可以讓我們整個wiki的網絡在同一版本的MediaWiki上共存。這意味着——尤其是對已在Fandom平台上的社區來說——我們將升級到MediaWiki 1.33版本。
這個解釋對於我們最資深、最有經驗的使用者而言可能意義非凡,但對於許多使用者而言,「MediaWiki」這個單詞仍是個謎。什麼是MediaWiki?為什麼Fandom對MediaWiki如此關注?Fandom不是有自己獨特的代碼嗎?為什麼升級MediaWiki要做那麼多工作?
這些都是我們今天要回答的重要問題。讓我們的社群了解Fandom和MediaWiki在何處、其如何交互和為什麼現代MediaWiki能轉變成現代Fandom平台至關重要。
什麼是MediaWiki?[]
MediaWiki是一個內容管理系統(Content Management System,簡稱CMS)。嗯哼……什麼是內容管理系統?

內容管理系統是允許技術水平不同的使用者建立網站的軟件應用程式。內容管理系統是大型軟件,因為其融合了所有架設成功網站需要的功能,包括但不限於:
- 允許您建立用於相同格式頁面的模板
- 能夠自訂和樣式化網站設計及顯示元素
- 可以添加或變更內容的使用者友善介面
- 管理工具
- 定義明確的內容結構
- 可以輕鬆擴充,允許第三方開發人員在軟件中添加額外的代碼以處理特殊的需求
CMS是所有發佈平台的標準組成部分,其中最受歡迎的是WordPress。如果您今天已經在網絡上待了一段時間,即便不包括您在使用CMS構建的這個網站上閱讀本文的事實,您仍可能訪問過一個使用CMS構建的網站。
MediaWiki於2001年開始開發,其完全是為了託管維基百科而設計的。wiki這一概念早在90年代中期就出現了。「wiki」一詞源自夏威夷語的「WikiWiki」,本是「快點快點」之意。之所以選擇這個單詞,是因其意在允許快速地編輯訪問網站時顯示的內容。
MediaWiki的獨特之處在於其能夠將現代版本控制(用wiki的術語來說,就是頁面歷史)和頁面的儲存結合到MySQL中。這使得wiki能夠以較其他系統更大的規模運行。這就是為什麼Fandom能夠在我們的平台上託管數十萬個wiki的原因。
MediaWiki於2002年1月在維基百科上成功推出。開發人員們的興趣促成了維基媒體基金會的成立,維基媒體基金會至今仍維護着該軟件。這使得人們可以使用該軟件建立獨立的wiki。
Fandom與MediaWiki的歷史[]
由於Fandom是由著名維基百科人吉米·威爾士(Jimmy Wales)和安吉拉·貝絲蕾·斯塔林(Angela Beesley Starling)於2004年成立的,所以MediaWiki顯然是託管我們所有wiki的最佳選擇。
在Fandom成立之初,我們基本上只是個wiki農場:為人們提供wiki託管服務,與一般「原版」形式的MediaWiki幾乎沒有任何區別。事實上,Fandom和維基媒體基金會在2000年代末和2010年代初的時候就曾在一系列的計劃中密切合作,包括兩個平台的首個視覺化編輯器。
但隨著時間的推移,Fandom的需求和維基媒體基金會的需求開始有所不同。維基媒體基金會仍主要致力於支援維基百科,專注於非常特定類型資源網站的需求。與此同時,Fandom發現我們社區的需求有很大的不同。此外,我們擁有數十萬個wiki的龐大規模意味着我們需要改變MediaWiki的代碼來優化我們的網站效能。每當原版MediaWiki發佈了新版本時,在進行升級之前我們都必須花費數周的工程時間比較代碼差異並使我們的自訂代碼相容。
因此在2013年年中,Fandom決定從MediaWiki「分支」。也就是說,我們保留了已有的MediaWiki軟件,但所有的代碼都朝着完全客製化的方向發展。就這樣,Fandom的wiki在MediaWiki的1.19版本停留了近7年之久。
是什麼讓MediaWiki與眾不同[]
一般情況下,您和其他任何人都可以添加或編輯頁面!!!……說真的,就這樣。這幾乎是MediaWiki與眾不同的原因。
MediaWiki是唯一允許眾包編輯的主流CMS。一般情況下,任何其他類似軟件都可以將內容添加到網站,但僅限於網站所有者和其他手動添加的貢獻者才行。
因為MediaWiki是圍繞着這個獨特的前提設計核心的,所以能夠在一些方面做得非常出色:

MediaWiki具有扁平、靈活的分類系統,便於組織。
- 編輯
- MediaWiki有預設的權限結構,允許終端使用者自由添加和編輯內容。
- 具有相當簡單的速寫標記式語言——Wiki語法,使您無需學習HTML或PHP即可連結頁面、添加圖片以及執行許多其他的操作。
- MediaWiki的解析器——解釋標記並將其轉化為實際在瀏覽器顯示HTML的引擎可以更好地處理複雜的標記,讓編輯者們可以開發出非常詳細的頁面,而無需花費大量精力讓其顯示。
- 結構
- 原版MediaWiki有意在內容的結構和組織方式上沒有太多的預設。
- 這是一個優勢,因為其允許社區以適合其需求的方式對頁面進行分類和組織。
- 大多數的頁面分類是透過MediaWiki的「分類」工具添加的,使用者可以輕鬆將一篇文章放入相似頁面的集合中。頁面的分類數量不限。
- 此外,MediaWiki自帶的「特殊頁面」工具可以收集具有特定品質的頁面,例如:Special:LongPages(特殊:長頁面)。
- 最後,命名空間允許在wiki上明確劃分頁面的類型。
- 管理工具——管理員可以執行以下操作:
- 在前端封鎖使用者。
- 使用特殊工具檢查編輯,例如最近修改(RecentChanges)和最近修改巡查(RecentChangesPatrol)。
- 使用版本控制功能快速撤消和還原編輯。
- 設定某些使用者無法編輯的特定頁面。
- 電子郵件監視列表
- 客製化
- 網站管理員可以輕鬆設定頂層導航元素。
- 使用者可以添加個人使用的CSS和JS代碼片段,以使網站編輯或閱讀更加有趣。管理員可以在全域範圍添加這些代碼片段。
- 可以透過編輯MediaWiki系統訊息變更介面的一些標籤。
- 模板
- 為了避免使用者必須跨頁面手動添加設計相同的、結構化的元素,MediaWiki允許您將這些元素的基本代碼儲存在「模板」頁面中,然後在條目頁面面上調用。
- 例如,在星球大戰角色頁面上,您可以調用角色模板,向其傳入一些參數,然後儲存該頁面以顯示類似於其他角色頁面的表格。
- 最常見的模板類型稱為「資訊框」。
- 由於其開源特性,MediaWiki的發展比其他CMS軟件要快。
為何Fandom要重新與MediaWiki保持一致?[]
Fandom之所以承諾遷移至統一社區平台,是有多個技術、商業和社會原因的。維護高度客製化代碼所需的工程工作量遠大於我們與現代MediaWiki保持一致的程度。Fandom和Curse Media合併後,Gamepedia也加入到了Fandom。因此像Gamepedia一直堅持的那樣,運行在現代MediaWiki的平台上很有意義。多年來,我們一直聽到了wiki編輯者希望我們升級的意見回饋。
一旦我們做出了這個決定,我們就必須決定我們希望的代碼庫工程方向。Gamepedia與原版MediaWiki非常貼近,這意味着最快的方法就是讓Fandom趕上。但是升級現有的Fandom平台會有很多技術問題,因此在MediaWiki 1.33上建立一個新的平台來託管Fandom和Gamepedia的wiki是最有意義的。
此外,有些Fandom的使用者認為我們從MediaWiki分叉是錯誤的,是公司朝錯誤方向發展的典型例證。有很長一段時間,我們太過專注於其他體驗而犧牲了wiki平台,使用者們大聲疾呼我們過時的MediaWiki版本是如何讓他們覺得我們不關心wiki編輯或wiki編輯者的。
升級到目前的MediaWiki意味着使用者可以從2013年以來的核心軟件中獲得一些新的修改和內容功能(比如MediaWiki非常重要的集成流動版編輯器),這也讓Fandom成為一個現代的wiki平台。更加簡潔的代碼庫也意味着我們將更容易構建許多使用者多年來一直要求的功能。
話雖如此,但升級MediaWiki仍非常困難。
Fandom維護着超過100萬行代碼。為了與MediaWiki代碼相容,我們必須檢查每一行代碼,並確保已棄用的功能(現已過時且不受支援的軟件功能)已被替換。Fandom還有一系列的微服務,比如使用者權限和討論,這些微服務必須能夠與MediaWiki正常「溝通」。
正如威爾(Will)在UCP推出階段已經明確表示的那樣,我們的工程團隊目前正在逐一確認每個擴充、檢查代碼、然後將其移植到新平台上。這就是為什麼在審核結束之前等待UCP處於完全完成狀態是不切實際的原因——我們可以在站點上實時測試較簡單的代碼,並在後端上添加更複雜的功能和擴充時驗證其是否正常運行。
最後,我們理論上將會得到您所熟悉和喜愛的wiki平台。雖然有些功能需要調整、有些功能需要替換,但我們會在第一階段結束後建立一個為未來而生的、更強大的平台。第二階段將是我們開始在您的幫助下建設未來的時候。在我們為大家完善wiki體驗時,您的意見回饋將至關重要。