檢視 Mediawiki 擴展標籤 的原始碼
←
Mediawiki 擴展標籤
跳轉到:
導覽
、
搜尋
根據以下的原因,您並無權限去做編輯這個頁面:
您剛才的請求只有這個使用者組的使用者才能使用:
使用者
你可以檢視並複製本頁面的原始碼。
[[分類:Mediawiki]] ==原理解說== ===一、撰寫=== 於 extension.json 中設定以下的勾子(hooks):<pre> ... "Hooks": { "ParserFirstCallInit": "ExampleExtension::onParserFirstCallInit" }, ...</pre> 新增程式:<pre> <?php class ExampleExtension { // 註冊實體化回傳外掛 public static function onParserFirstCallInit( Parser $parser ) { // 當解析器看到<sample>標記時,它會執行renderTagSample(見下文) $parser->setHook( 'sample', [ self::class, 'renderTagSample' ] ); } // 實體化 <sample> 的函式定義 public static function renderTagSample( $input, array $args, Parser $parser, PPFrame $frame ) { // 在本例中這個函數只是將用戶輸入中的轉義字符解析為原來的樣子並再次輸出它 return htmlspecialchars( $input ); } } ...</pre> ===二、使用=== 此範例為<sample>標籤註冊回傳函式。當用戶將標籤:<sample arg1='xxx' arg2='xxx'>...input...</sample>添加到頁面時,解析器將調用renderTagSample()函式,傳入四個參數: #$input:<sample>和</sample>標籤之間輸入。如果標籤是「開始與結束合體的」則輸入'null',即<sample /> #$args:標籤屬性,像 HTML 標籤屬性一樣輸入;這是一個以屬性名稱作鍵的陣列(鍵-值對)。 #$parser:父解析器(一個解析器物件);更上級的外掛,使用它來獲取上下文標題,解析維基文字、大括號,註冊鏈接關係和依賴關係等。 #$frame:父框架(PPFrame物件)。它與$parser一起使用,為解析器提供有關調用外掛的上下文的更完整資訊。 ===三、設定=== MediaWiki 1.25 之前外掛名和外觀的配置是在 PHP 檔名或外觀名稱一致的,如 MyExtension.php 或 MySkin.php。<pre> require_once "$IP/extensions/Hello/Hello.php"; require_once "$IP/extensions/FooBar/FooBar.php"; $wgFooBarEnable = true; require_once "$IP/skins/Baz/Baz.php";</pre> 也可以寫成:<pre> wfLoadExtensions( array( 'Hello', 'FooBar' ) ); $wgFooBarEnable = true; wfLoadSkin( 'Baz' );</pre> 如果您將外掛放在 $IP/extensions 以外的位置,您需要重設 $wgExtensionDirectory 。如果您的皮膚未在 $IP/skins 中,您需要重設 $wgStyleDirectory 。重設必須在您載入任何外掛或皮膚前完成。<pre> $wgExtensionDirectory = '/some/path'; wfLoadExtension('FooBar'); // 參看 /some/path/FooBar/extension.json $wgStyleDirectory = '/my/skins'; wfLoadSkins(array('BarBaz','BazBar')); // 參看 /my/skins/BarBaz/skin.json 及 /my/skins/BazBar/skin.json</pre> ===四、實例=== *LinkedImages.php *:LocalSettings.php 中 <pre>include_once("$IP/extensions/LinkedImages.php");</pre> ==參考資料== #[https://www.mediawiki.org/w/index.php?title=Manual:Tag_extensions/zh&variant=zh-tw 外掛標籤手冊] #[https://www.mediawiki.org/w/index.php?title=Manual:Extension_registration/zh&variant=zh-tw 外掛如何註冊] #[https://www.mediawiki.org/w/index.php?title=Manual:Extensions/zh&variant=zh-tw 各類外掛手冊] ==自行撰寫的外掛標籤== ===一、LinkedImages.php(已被封存)=== 原用於讓圖產生連結,是非常好的撰寫範例。 ====(一)已被封存==== #MediaWiki 1.14 版之後支援語法 [[Image:圖名|寬px|link=目的頁]],如<p align='right'>[[Image:Go_top.gif|link=#top]]</p>上述語法中,若 link= 留空,則該圖像將不再可點擊。 #也可以使用 CSS ,請參考:[https://www.mediawiki.org/wiki/Manual:Linked_images/zh#Site_CSS https://www.mediawiki.org/wiki/Manual:Linked_images/zh#Site_CSS] #有伺服器權限時,去啟用 $wgAllowExternalImages(允許來自任何域的外部圖像)或 $wgAllowExternalImagesFrom(限制域的列表),然後創建到「外部」圖像的「外部」鏈接。要使用完整 URL 而不是本地鏈接。<br/>也可以用 CSS plainlinks 類別來消除圖像,只留下該圖像的「外部鏈接」,如: #:<span class='plainlinks'>[http://jendo.org/wiki1231/images/4/49/Go_top.gif http://jendo.org/wiki1231/images/4/49/Go_top.gif]</span> #使用 Raw HTML,請參考:[https://www.mediawiki.org/wiki/Manual:Linked_images/zh#Raw_HTML https://www.mediawiki.org/wiki/Manual:Linked_images/zh#Raw_HTML] #使用 Via extensions,請參考:[https://www.mediawiki.org/wiki/Manual:Linked_images/zh#Via_extensions https://www.mediawiki.org/wiki/Manual:Linked_images/zh#Via_extensions] #您可以做一些更麻煩的事情,例如修改 /includes/Sanitizer.php (HTML標籤白名單在其中),然後將<img />添加到允許的標籤列表中。 ====(二)[https://www.mediawiki.org/w/index.php?oldid=603835 舊外掛標籤的說明]==== ====(三)使用範例==== 「跳至頁首」內容為:<pre> <p align='right'><linkedimage> wikipage=#top img_src=Go_top.gif tooltip=跳頁首 img_alt=跳頁首 </linkedimage></p></pre> ===二、videoflash.php(已被封存)=== 在 videoflash.php 最前面的多行註解中,有使用範例。 適應 HTML4 和 5 ,是解析標籤所夾內容與標籤屬性的參考範例。 ====(一)為 [https://www.mediawiki.org/wiki/Extension:EmbedVideo EmbedVideo] 所取代==== ====(二)[https://www.mediawiki.org/w/index.php?oldid=3455067 舊外掛標籤的說明]==== ===三、details.php(丁丁所寫)=== 用來使 HTML5 的 details、summary 兩標籤生效 ====(一)在 details 標籤內部==== #所有的 HTML 標籤不會再被過濾掉,如: summary 標籤 #暫無法在內部放入巢狀的 details 標籤,除非把外掛標籤改成 details 以外的字串 #列點 wiki 語法,「#,*,:」均會被解譯 #其他 wiki 語法:中括號、等號、單引號均不會被解譯 ====(二) details 標籤參考資料==== *[https://www.zhangxinxu.com/wordpress/2018/01/html5-details-summary-no-js-ux/ 借助HTML5 details,summary無JS實現各種交互效果] ===四、test.php(丁丁所寫)=== #用來研究新舊版本 mediawiki 的全域變數與相關物件之用。 #把要研究的東西賽進 renderTest 函式中 #去[http://nice-learning.tw/nlWiki/index.php?title=不錯學群/01/晨課/週三 不錯學群/01/晨課/週三]頁面觀察結果。 #須要登入後,重按「編輯」與「儲存變更」,才會顯示新的結果。 ===五、sqlTbl.php(丁丁所寫)=== #把資料表以 select 指令,輸出為 wiki 表格 #將參考 [http://home.jendo.org/printOut/平台化討論.html 平台化討論.html] 中 CSS .wikiInCell 類別的運用,改善表格內解析 #參考 home.jendo.org 中 ET 類別 wiki 資料夾中 wikiInCell.php ,將表格內的列點 doBlockLevels 解析,並將#,*解析成對 .wikiInCell 適應的形式。 #用[http://well-being-ng.net/wellBeingNg/index.php?title=平台化/簡表 平台化/簡表]當作開發測試對象 ===六、projectSchedule.php(丁丁所寫)=== #外觀請參考 [http://well-being-ng.net/wellBeingNg/index.php?title=Talk:「推動我國跨校選修平台」計畫書#projectSchedule 討論:「推動我國跨校選修平台」計畫書]之「projectSchedule」段。 撰寫格式:<pre> <projectSchedule> 年=第一年;第二年 第一年=幾月;幾月 第二年=幾月;幾月;幾月;幾月;幾月 項目=第一個工作項目;第二個工作項目;第三個工作項目;… 第一個工作項目=第幾年/幾月;第幾年/幾月;第幾年/幾月 第二個工作項目=第幾年/幾月;第幾年/幾月;第幾年/幾月 第三個工作項目=第幾年/幾月;第幾年/幾月;第幾年/幾月 列高=…(預設25) 項目寬=…(預設130) 月份寬=…(預設42) … </projectSchedule></pre> 可用屬性: #font-family=字體(預設標楷體) #font-size=字體大小(預設10pt) #background=著色的色碼或顏色名稱(預設#aaccf2) ===七、projectBudget.php(丁丁所寫)=== #外觀請參參考 [http://well-being-ng.net/wellBeingNg/index.php?title=Talk:「推動我國跨校選修平台」計畫書#projectBudget 討論:「推動我國跨校選修平台」計畫書]之「projectBudget」段。 #使用 DS218+ 上面 wiki 資料庫的「計畫經費」表,由「專案名稱」欄控制。 撰寫格式:<pre> <projectBudget> 專案名稱=○○○○○○○○○○ 計畫期程=□□□年□□月□□日至□□□年□□月□□日 列高=…(預設20) </projectBudget></pre> 可用屬性: #tWidth=預算表寬度(預設510pt,印出為 18cm ) #font-family=字體(預設標楷體) #font-size=字體大小(預設10pt) #background=著色的色碼或顏色名稱(預設#f2f0aa)
返回到
Mediawiki 擴展標籤
。
導航
個人工具
登入
名字空間
頁面
討論
變換
檢視
閱讀
檢視原始碼
檢視歷史
動作
搜尋
導覽
首頁
近期變動
隨機頁面
使用說明
工具箱
連入頁面
相關頁面修訂記錄
特殊頁面
頁面資訊