模块:PJBSClass/main/doc

这是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的中间过程,以便除错。