Mô đun:Check for unknown parameters
Tài liệu mô đun
-- This module may be used to compare the arguments passed to the parent-- with a list of arguments, returning a specified result if an argument is-- not on the listlocal p = {}local function trim(s)return s:match('^%s*(.-)%s*$')endlocal function isnotempty(s)return s and s:match('%S')endlocal function clean(text)-- Return text cleaned for display and truncated if too long.-- Strip markers are replaced with dummy text representing the original wikitext.local pos, truncatedlocal function truncate(text)if truncated thenreturn ''endif mw.ustring.len(text) > 25 thentruncated = truetext = mw.ustring.sub(text, 1, 25) .. '...'endreturn mw.text.nowiki(text)endlocal parts = {}for before, tag, remainder in text:gmatch('([^\127]*)\127[^\127]*%-(%l+)%-[^\127]*\127()') dopos = remaindertable.insert(parts, truncate(before) .. '<' .. tag .. '>...</' .. tag .. '>')endtable.insert(parts, truncate(text:sub(pos or 1)))return table.concat(parts)endfunction p._check(args, pargs)if type(args) ~= "table" or type(pargs) ~= "table" then-- TODO: error handlingreturnendlocal ignoreblank = isnotempty(args['ignoreblank'])local showblankpos = isnotempty(args['showblankpositional'])local knownargs = {}local unknown = args['unknown'] or 'Tìm thấy _VALUE_, 'local preview = args['preview']local values = {}local res = {}local regexps = {}-- create the list of known args, regular expressions, and the return stringfor k, v in pairs(args) doif type(k) == 'number' thenv = trim(v)knownargs[v] = 1elseif k:find('^regexp[1-9][0-9]*$') thentable.insert(regexps, '^' .. v .. '$')endendif isnotempty(preview) thenpreview = '<div class="hatnote" style="color:red"><strong>Cảnh báo:</strong> ' .. preview .. ' (thông báo này chỉ được hiển thị trong bản xem trước).</div>'elseif preview == nil thenpreview = unknownend-- loop over the parent args, and make sure they are on the listfor k, v in pairs(pargs) doif type(k) == 'string' and knownargs[k] == nil thenlocal knownflag = falsefor _, regexp in ipairs(regexps) doif mw.ustring.match(k, regexp) thenknownflag = truebreakendendif not knownflag and ( not ignoreblank or isnotempty(v) ) thentable.insert(values, clean(k))endelseif type(k) == 'number' andknownargs[tostring(k)] == nil and( showblankpos or isnotempty(v) )thentable.insert(values, k .. ' = ' .. clean(v))endend-- add results to the output tablesif #values > 0 thenif mw.getCurrentFrame():preprocess( "{{REVISIONID}}" ) == "" thenunknown = previewendfor _, v in pairs(values) doif v == '' then-- Fix odd bug for | = which gets stripped to the empty string and-- breaks category linksv = ' 'end-- avoid error with v = 'example%2' ("invalid capture index")local r = unknown:gsub('_VALUE_', {_VALUE_ = v})table.insert(res, r)endendreturn table.concat(res)endfunction p.check(frame)local args = frame.argslocal pargs = frame:getParent().argsreturn p._check(args, pargs)endreturn p
🔥 Top keywords: Đài Truyền hình Kỹ thuật số VTCTrang ChínhGiỗ Tổ Hùng VươngTrương Mỹ LanĐặc biệt:Tìm kiếmHùng VươngVương Đình HuệUEFA Champions LeagueKuwaitChiến dịch Điện Biên PhủFacebookĐài Truyền hình Việt NamTrần Cẩm TúĐội tuyển bóng đá quốc gia KuwaitGoogle DịchViệt NamCúp bóng đá U-23 châu ÁCúp bóng đá U-23 châu Á 2024Real Madrid CFBảng xếp hạng bóng đá nam FIFACleopatra VIITô LâmTim CookNguyễn Phú TrọngHồ Chí MinhHai Bà TrưngManchester City F.C.VnExpressChủ tịch nước Cộng hòa xã hội chủ nghĩa Việt NamNguyễn Ngọc ThắngĐền HùngCúp bóng đá trong nhà châu Á 2024Võ Văn ThưởngOne PieceLịch sử Việt NamCuộc đua xe đạp toàn quốc tranh Cúp truyền hình Thành phố Hồ Chí Minh 2024Phạm Minh ChínhTikTokĐinh Tiên Hoàng