建站/WIKI功能/樣式優化
移動及PC端分別使用皮膚
默認隨帳戶設置應用於全局,PC端我更喜歡默認的Vector(2010),簡約又不古樸,但移動端適配很差(尤其是可視化編輯界面),閱讀都費力更別提編輯,而monobook移動端適配至少能正常使用,可UI明顯是00年代的產物,實在過於古樸不適合應用於全局,故使用拓展在PC及移動端分別使用兩種皮膚。
- 注意兼容性問題,截止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寬了更多,多少內容啊占那麼大空間,右側邊欄不打開的話視覺中心就亂了,打開的話有側邊欄更是一堆與日用無關的選項,浪費更多空間。
logo
編輯LocalSettings.php
配置文件:
$wgLogos = [
'1x' => "$wgResourceBasePath/resources/assets/logo.png",
'icon' => "$wgResourceBasePath/resources/assets/ico.png",
];
將要設定為logo的圖片(不限格式)放置於該目錄下,並修改配置文件中的圖像名(或修改圖像名使其與配置文件指向的一致)即可。
原則上路徑什麼的都可以自定義(在配置文件中,$wgResourceBasePath
參數指向了$wgScriptPath
,而這個參數指向了空值,也就等同於網站根目錄),但為未來維護的便攜性計,不建議動參數。
對於網站圖標(網頁標題欄左上角),直接在根目錄下放置:favicon.ico
文件即可。
首頁
若「首頁」頁面已有內容,將其移動到設定的頁面即可,不必保留重定向。
左側邊欄
MediaWiki:Sidebar
,參考:Manual:Interface/Sidebar
* 要显示的目录名
** 页面标题或url|要显示的文本
※ 查閱Category:Menu_extensions了解側邊欄的高級樣式及實現方式。
浮動目錄
代碼是網上抄的,來源忘了,加了一句「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;}
/*启用可折叠的浮动目录树 结束*/
隱藏「討論」選項卡
反正這個功能對於我來說除了難看沒啥效果,同理也可以查找其他元素的屬性名並設為不顯示:
/* 隐藏“讨论”选项卡 */
#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的公告)