模組:PJBSClass/main/doc
< Module:PJBSClass | main
此頁面為 Module:PJBSClass/main 的說明文件
此頁面是Module:PJBSClass/main的模組文件。 此頁面可能包含了模板的使用說明、分類和其他內容。 |
本模組的功能:
- 透過調用Module:PJBSClass/page間接調用Module:PJBSClass
- 讀取{{PJBS}}中的評級值
- 自動透過命名空間盼判斷評級值
- 進階自動評級
- 透過解析頁面內容判斷頁面是否為軟重新導向
- 透過解析頁面內容判斷頁面是否為消歧義
- 判斷專題橫幅是繼承{{PJBS}}中的評級值還是自訂評級值並加入維護分類
- 輔助{{PJBS}}中的一些與專題評級值相關的功能
用法
本模組主要用於讀取頁面中定義於{{PJBS}}或專題橫幅中的評級值,或自動根據命名空間或維基代碼判斷評級。
判斷種類 | 判斷依據 | 對應的評級 |
---|---|---|
典範條目 | 典範條目模板(如{{Featured article}}) | 典範 |
優良條目 | 優良條目模板(如{{Good article}}) | 優良 |
特色列表 | 特色列表模板(如{{Featured list}}) | 特色列表 |
特色圖片 | 特色圖片模板(如{{Featured picture}}) | 特色圖片 |
重新導向 | 頁面物件的isRedirect 欄位。
| 重新導向 |
軟重新導向 | 軟重新導向模板(如{{軟重新導向}}) | 重新導向 |
沙盒 | 沙盒模板(如{{Sandbox}}) | 沙盒 |
消歧義 | 消歧義模板(如{{消歧義}}) 以及相關魔術字(如 __DISAMBIG__ )
| 消歧義 |
列表 | 名稱以「列表」結尾的頁面 | 列表 |
同類索引 | 同類索引模板(如{{同類索引}}) | 同類索引 |
小作品 | 條目的位元組數是否小於2000 (2000~3000間的過渡數值不自動評) | 小作品 |
命名空間 | 前綴 | 對應的評級 |
---|---|---|
模板 | Template: | 模板 |
模組 | Module: | 模組 |
分類 | Category: | 分類 |
檔案 | File: | 檔案 |
草稿 | Draft: | 草稿 |
主題 | Portal: | 主題 |
專題 | PJ: | 專題 |
使用者 | User: | 使用者 |
說明 | Help: | 使用說明 |
MediaWiki | MediaWiki: | 介面 |
字幕 | TimedText: | 非條目 |
媒體 | Media: | 非條目 |
特殊 | Special: | 非條目 |
模組中的主要函數
- getClass
-
- 模組調用:
p.getClass(class_name)
- 模板調用:
{{#invoke:PJBSClass/main|getClass| class_name | auto=yes/no | inheritance=yes/no | demo=yes/no }}
- 模組調用:
- 間接調用Module:PJBSClass#getClassByPage。
- 取得所在頁面的評級,可以輸入一個評級值(class_name)作為覆蓋與否的判斷依據。auto為是否要以自動判斷的評級為優先;inheritance為是否要以繼承值為優先;demo為是否為模板演示。
- getClassAuto
-
- 模組調用:
p.getClassAuto(page_name, class_default, demo)
- 模板調用:
{{#invoke:PJBSClass/main|getClassAuto| class_name | class=class_default | demo=yes/no }}
- 模組調用:
- 間接調用Module:PJBSClass#getAutoClass,並額外加入了從維基代碼判斷評級的功能,見維基代碼可判斷的評級值。
- 自動判斷名為「page_name」頁面的評級,若「page_name」未輸入則判斷所在頁面的評級。若無法判斷則回傳「class_default」。
- class_json
-
- 模組調用:
p.class_json()
- 模板調用:
{{#invoke:PJBSClass/main|class_json}}
- 模組調用:
- 提供Module:PJBSClass#{{Module:PJBSClass/page}}轉換Lua到JSON的函數。此函數沒有參數,僅回傳所在條目
mw.loadData("Module:PJBSClass/page")
的JSON結果。模板調用應使用{{Module:PJBSClass/page|json=yes}}
。
- getPageType
- 判斷該級別的分類頁面種類。
模組中的元函數
- _getClass
-
- 模組調用:
p._getClass(class_name, auto, inheritance, demo)
- 模板調用:
{{#invoke:PJBSClass/main|_getClass| class_name | auto=yes/no | inheritance=yes/no | demo=yes/no }}
- 模組調用:
- 同#getClass。
- _getProjects
-
- 模組調用:
p._getProjects(html)
- 模板調用:(無法使用)
- 模組調用:
- 解析「html」中的評級模板,列出當中的所有專題名稱。
專題橫幅內部函數
- subjectPageTitle
-
- 模組調用:
p.subjectPageTitle(page_name)
- 模板調用:
{{#invoke:PJBSClass/main|subjectPageTitle| page_name }}
- 模組調用:
- 無論名為「page_name」頁面是否是討論頁都會回傳其所對應之主要頁面的名稱。如果「page_name」不是討論頁,則回傳原頁面名稱。如果「page_name」未輸入則輸出所在頁面(無論是否是討論頁)所對應之主要頁面的名稱。如果所在頁面不是討論頁,則回傳所在頁面名稱。
- listProjects
-
- 模組調用:
p.listProjects(html, code, comma, max_num)
- 模板調用:
{{#invoke:PJBSClass/main|listProjects| html | code=code | comma=comma | tail=tail | max_num=max_num }}
- 模組調用:
- 列舉「html」中所有專題橫幅的專題,主要由{{PJBS}}調用。「code」為輸出的格式,
$1
代表專題名稱、$2
代表分隔符號。「comma」為分隔符號。「tail」為自動加在尾端的文字,預設為專題
。「max_num」為最大列舉數量。
- checkClassInput
- 檢查是否評級繼承與否
- wrongClass
- 檢查是否誤將橫幅與評級輸入在一起
- hasCustomClassName
- 檢查專題橫幅有無自訂評級級別
- customClassName
- 處理專題橫幅的自訂評級級別
- processNotice
- 將輸入到{{PJBS}}的專題橫幅處理成符合{{PJBS}}的樣式,並移除專題橫幅內自帶的提示模板,{{PJBS}}會使用#getNotice將之統一加入。同時解析內容添加適當的維護分類。
- getNotice
- 解析輸入到{{PJBS}}的專題橫幅有無橫幅內自帶的提示模板,移除重複的提示模板後,加以顯示。
判斷頁面屬性函數
- is_softredirect
- 判斷頁面是否為軟重新導向。
- is_disambiguation
- 判斷頁面是否為消歧義頁。
- is_sandbox
- 判斷頁面是否為沙盒。
可供其他模組調用的私有函數
- _re_softredirect_template
- 匹配軟重新導向模板的正則函數。
- _re_disambiguation_title
- 匹配消歧義標題的正則函數。
- _re_disambiguation_template
- 匹配消歧義模板的正則函數。
- _re_sandbox_template
- 匹配沙盒模板的正則函數。
- _remove_wikiproject_flag
- 用於避免消歧義判斷模板循環的跳脫函數,會破壞輸入的內容、移除魔術字,僅保留模板,以供展看測試有無消歧義魔術字。
除錯用函數
- _checker
- 檢查函數是否會出錯的函數。如無出錯,將頁面加入分類:可以正常讀取評級的條目;如出錯,將頁面加入分類:無法正常讀取評級的條目。
- check_disambig_process
- 列出#is_disambiguation的中間過程,以便除錯。