Module:PJBSClass/TrackingCategory
跳转到导航
跳转到搜索
可在Module:PJBSClass/TrackingCategory/doc创建此模块的帮助文档
local p = {} local yesno = require('Module:Yesno') local class_normalize = require("Module:Class/convert")._main local TrackingCategory = require('Module:TrackingCategory') local templateExist = require("Module:TemplateExist").templateExist function p.cat_for_wpbs(frame) local args = frame local working_frame = frame if type(frame.args) == type({}) then args = frame.args end if type(frame.preprocess) ~= type(tostring) then working_frame = mw.getCurrentFrame() end --本模板是示例模板,不加分類 if yesno(args.demo) or not yesno(args.category) then return end local wpbs_class = mw.text.trim(args.class or '') local WPBS_count = templateExist({args={"WPBS",count=true}}) if wpbs_class == '' and wpbs_class ~= '¬' then --[[w:en:Category:Articles using WikiProject banner shell with empty class parameter]] TrackingCategory.append(working_frame, "含有空白class參數的WPBS") end if WPBS_count > 1 then TrackingCategory.append(working_frame, "重複放置WPBS模板的條目") end return '' end function p.cat_for_wpbm(frame) local args = frame local working_frame = frame if type(frame.args) == type({}) then args = frame.args end if type(frame.preprocess) ~= type(tostring) then working_frame = mw.getCurrentFrame() end local WPBS_exist = templateExist("WPBS") --本模板是示例模板,不加分類 if yesno(args.demo) or not yesno(args.category) then return '' end --取得WPBS資料 local WPBS_data = mw.loadData("Module:PJBSClass/page") --輸入於本專題橫幅的評級class值 local local_class = mw.text.trim(args.class or '') --輸入於WPBS的評級class值 local article_class = mw.text.trim(WPBS_data.class or '') local raw_class = mw.text.trim(args.raw_class or '¬') local norm_local_class = class_normalize({local_class}) local norm_article_class = class_normalize({article_class}) if WPBS_exist then --如果存在WPBS模板 if article_class == '' then --WPBS模板沒有給定評級 if local_class ~= '' and raw_class ~= '¬' then --但專題橫幅有給定評級 local success, auto_class = pcall(require("Module:PJBSClass/main").getClassAuto, nil, '', yesno(args.demo), args.napagens or '{{{napagens}}}') auto_class = class_normalize({auto_class or "unassessed"}) if auto_class == "unassessed" or auto_class == "" then --[[w:en:Category:Pages using WikiProject banner shell without a project-independent quality rating]] TrackingCategory.append(working_frame, "缺少獨立於專題評級的WPBS") end end elseif norm_local_class == norm_article_class then --專題橫幅的評級與WPBS完全一致 if norm_local_class ~= "unassessed" and raw_class ~= '¬' and raw_class ~= '' then --[[w:en:Category:WikiProject banners with redundant class parameter]] TrackingCategory.append(working_frame, "有不必要class參數的專題橫幅") end end else --如果不存在WPBS模板 --[[w:en:Category:WikiProject banners without banner shells]] TrackingCategory.append(working_frame, "沒有使用WPBS的專題橫幅") end return '' end return p