建站/WIKI功能/樣式優化

出自Wired
跳至導覽 跳至搜尋

移動及PC端分別使用皮膚

默認隨帳戶設置應用於全局,PC端我更喜歡默認的Vector(2010),簡約又不古樸,但移動端適配很差(尤其是可視化編輯界面),閱讀都費力更別提編輯,而monobook移動端適配至少能正常使用,可UI明顯是00年代的產物,實在過於古樸不適合應用於全局,故使用拓展在PC及移動端分別使用兩種皮膚。

下載拓展:Extension:MobileFrontend

  • 注意兼容性問題,截止2024-12-22的最新版本不兼容MediaWiki 1.42.*,請升級Mediawiki版本或使用舊版本拓展,例如:git clone -b REL1_42 https://gerrit.wikimedia.org/r/mediawiki/extensions/MobileFrontend /var/www/html/wired/extensions/MobileFrontend

配置文件添加:

  • wfLoadExtension( 'MobileFrontend' );
  • $wgDefaultMobileSkin = 'monobook';
    • 設置移動端皮膚(不要大寫),桌面端仍舊使用配置文件設定的默認皮膚($wgDefaultSkin = 'vector';行);
    • 注意登陸用戶在控制台修改皮膚的優先級大於該拓展,會使設置失效。

其實我很喜歡vector2022的左側邊欄摺疊目錄樹,但以我的水平想在vector2010復刻是無望了,它主要是有兩個硬傷,一是文本區域寬度,二是UI的塑料感。前者有開關可取消限制,後者沒辦法,白的一塌糊塗;元素間距越來越大,長賜號當年從這走也不至於堵蘇伊士運河了;2010我就詬病做側邊欄太大無意義空區太多但moonbook又有些緊湊,2022寬了更多,多少內容啊占那麼大空間,右側邊欄不打開的話視覺中心就亂了,打開的話有側邊欄更是一堆與日用無關的選項,浪費更多空間。

編輯LocalSettings.php配置文件:

$wgLogos = [
'1x' => "$wgResourceBasePath/resources/assets/logo.png",
'icon' => "$wgResourceBasePath/resources/assets/ico.png",
];

將要設定為logo的圖片(不限格式)放置於該目錄下,並修改配置文件中的圖像名(或修改圖像名使其與配置文件指向的一致)即可。

原則上路徑什麼的都可以自定義(在配置文件中,$wgResourceBasePath參數指向了$wgScriptPath,而這個參數指向了空值,也就等同於網站根目錄),但為未來維護的便攜性計,不建議動參數。

對於網站圖標(網頁標題欄左上角),直接在根目錄下放置:favicon.ico文件即可。

 

首頁

MediaWiki:Mainpage

若「首頁」頁面已有內容,將其移動到設定的頁面即可,不必保留重定向。

 

左側邊欄

MediaWiki:Sidebar,參考:Manual:Interface/Sidebar

* 要显示的目录名
** 页面标题或url|要显示的文本

※ 查閱Category:Menu_extensions了解側邊欄的高級樣式及實現方式。

 

浮動目錄

MediaWiki:Common.css

代碼是網上抄的,來源忘了,加了一句「z-index: 999;」不然會被代碼框等樣式蓋住。

/*启用可折叠的浮动目录树 开始*/
#toc{
    display: block;
    position: fixed;
    top: 100px;
    right: 0px;
    min-width: 100px;
    max-width: 350px;
    max-height: 500px;
    overflow-y: scroll;
    border: 1px solid #aaa;
    border-radius: 0 0 1px 1px;
    -moz-border-radius: 0 0 1px 1px;
    background: rgba(249,249,249,0.75);
    padding: 12px;
    box-shadow: 0 1px 8px #000;
    -webkit-box-shadow: 0 1px 8px #000;
    -moz-box-shadow: 0 1px 8px #000;
    z-index: 999;
    }
#toc:hover{
    display: block;
    position: fixed;
    top: 100px;
    right: 0px;
    min-width: 100px;
    max-width: 350px;
    max-height: 500px;
    overflow-y: scroll;
    border: 1px solid #aaa;
    border-radius: 0 0 1px 1px;
    -moz-border-radius: 0 0 1px 1px;
    background: rgba(249,249,249,0.75);
    padding: 12px;
    box-shadow: 0 1px 8px #000;
    -webkit-box-shadow: 0 1px 8px #000;
    -moz-box-shadow: 0 1px 8px #000;
    z-index: 999;
    }
body { overflow-x: hidden;}
/*启用可折叠的浮动目录树 结束*/

 

隱藏「討論」選項卡

MediaWiki:Common.css

反正這個功能對於我來說除了難看沒啥效果,同理也可以查找其他元素的屬性名並設為不顯示:

/* 隐藏“讨论”选项卡 */
#ca-talk { display: none !important; }

 

隱藏分類

部分功能(如#選項卡)會自動給調用它的頁面添加一個分類,用以標識這個頁面使用了該功能。這就導致兩個問題:

  • 一是美觀上,頁面底部會有非我們自定義的分類存在,尤其是該分類為創建時的紅色文本甚是難看;
  • 二是組織內容上,不存在的分類會顯示在:特殊:需要的分類 中,而給其創建分類頁,又會多出非內容需求的冗餘頁面。

目前有兩種解決方案:

  • 隱藏分類:就是建立該分類並在分類原始碼中插入:__HIDDENCAT__,如此能在頁面不顯示分類。但分類頁自然也會出現於「特殊:所有頁面」中,其還歸屬於「分类:隐藏分类」,如此一來需求較小的情況下產生了更多無用的數據。
  • 特殊:追蹤分類:在該頁面的「消息名稱」列找到該擴展對應的追蹤分類(都有擴展名,對不上見:#Tracking_categories),點擊進去並編輯原始碼,刪掉其中的文本即可。這樣它就不會自動建立分類,如果想知道哪裡用了它們,可以通過特殊:替換文本搜對應功能的標籤關鍵詞。

如果只是想從外觀上隱藏分類,比如某個頁面使用了自定義的css時,分類欄或會顯得十分突兀,則在:Mediawiki:common.css 添加:

/* 不显示“老婆墙”页面的类别 */
body.page-老婆墙 #catlinks { display : none }
  • 在目標頁面查看原始碼/控制台審查元素,body標籤中的class屬性有參數:page-xxxx(通常为页面标题)
  • 這樣的好處是其分類設定仍舊有效,只是從渲染的html頁面中屏蔽了而已。

 

公告

※ 作用於所有頁面,因此無特殊需求不建議使用,比較影響閱讀體驗,要對單個頁面添加公告,除對單個頁面進行編輯外,可用#頁面橫幅曲線救國。

編輯:MediaWiki:Sitenotice,參考:Manual:Interface/Sitenotice

默認文本是居中顯示,可以使用部分html標籤來設定樣式,支持wikitext語法:

<p align="Left">公告(2024-04-20):WIKI现嵌入了51.la的[https://v6.51.la/s/6Zm4k1Na7UXbXaE 分析脚本],预期1个月。若您不喜可用[https://github.com/gorhill/uBlock|uBlock Origin]等拓展工具屏蔽,但建议添加白名单,因为此举(包括前几日的[[记一次站点访客量的分析(2024-03-22)|站内流量分析]])意在获悉系列站点客流量,以便于制定相关政策(因为WIKI的本意是“关于我”,但现在怕是其他用意的访客更多,我须用访客数据做参考以便在便捷与混沌的访客中做抉择)。</p>
<p align="Left">本声明近似于通知、免责声明,因为就预估体量来说还不到为了提纯内容与用户而放弃便捷的程度(主要服务器配置太低也吃消不起),但我需要知道目前的访客趋势又不想手动筛查log文件中的无效/垃圾ip,预计维持一个月或我去打工。</p>

還有個僅面對匿名用戶(未註冊及未登陸用戶)的公告:MediaWiki:Anonnotice(若設置了內容,則未登陸用戶只能看到該公告而看不到sitenoeice的公告)