𨀈𬧐內容
程單正
程單正
轉𨖅錆邊
隱
調向
張正
𠊝𢷮𧵆低
張偶然
助𢴇
顯示吧入 Hiển thị và Nhập
風𡨸漢喃 Phông chữ Hán Nôm
部𢫈漢喃 Bộ gõ Hán Nôm
工具轉字 Công cụ chuyển tự
𡨸漢喃準 Chữ Hán Nôm chuẩn
榜𡨸漢喃準常用 Bảng chữ Hán Nôm chuẩn Thường dùng
榜𡨸翻音 Bảng chữ Phiên âm
名冊各詞摱憑𡨸漢喃準 Danh sách các từ mượn bằng chữ Hán Nôm chuẩn
向引編輯 Hướng dẫn Biên tập
定樣排曰 Định dạng bài viết
捐𢵰 Quyên góp
衆碎懃伴𢴇扡 Chúng tôi cần bạn giúp đỡ
尋檢
尋檢
交面
造財款
登入
工具個人
造財款
登入
䀡碼源𧵑模庉:Unsubst-infobox
模庉
討論
English
讀
䀡碼源
䀡歷史
工具
工具
轉𨖅錆邊
隱
作務
讀
䀡碼源
䀡歷史
終
各連結𦤾低
𠊝𢷮連關
張特別
通信張
交面
轉𨖅錆邊
隱
←
模庉:Unsubst-infobox
伴空得權𢯢𢷮張尼、爲理由𢖖󠄁:
只仍成員𥪝𡖡
成員通常
㵋得寔現操作尼。
伴吻固体䀡吧抄劄碼源𧵑張尼。
local p = {} local specialParams = { ['$params'] = 'all parameters', ['$extra'] = 'extra parameters', ['$set1'] = 'parameter set 1', ['$set2'] = 'parameter set 2', ['$set3'] = 'parameter set 3', ['$aliases'] = 'parameter aliases', ['$indent'] = 'indent', ['$flags'] = 'flags', ['$B'] = 'template content' } p[''] = function ( frame ) if not frame:getParent() then error( '{{#invoke:Unsubst-infobox|}} makes no sense without a parent frame' ) end if not frame.args['$B'] then error( '{{#invoke:Unsubst-infobox|}} requires parameter $B (template content)' ) end if not frame.args['$params'] then error( '{{#invoke:Unsubst-infobox|}} requires parameter $params (parameter list)' ) end if mw.isSubsting() then ---- substing -- Combine passed args with passed defaults local args = {} if string.find( ','..(frame.args['$flags'] or '')..',', ',%s*override%s*,' ) then for k, v in pairs( frame:getParent().args ) do args[k] = v end for k, v in pairs( frame.args ) do if not specialParams[k] then if v == '__DATE__' then v = mw.getContentLanguage():formatDate( 'F Y' ) end args[k] = v end end else for k, v in pairs( frame.args ) do if not specialParams[k] then if v == '__DATE__' then v = mw.getContentLanguage():formatDate( 'F Y' ) end args[k] = v end end for k, v in pairs( frame:getParent().args ) do args[k] = v end end -- Build an equivalent template invocation -- First, find the title to use local titleobj = mw.title.new(frame:getParent():getTitle()) local title if titleobj.namespace == 10 then -- NS_TEMPLATE title = titleobj.text elseif titleobj.namespace == 0 then -- NS_MAIN title = ':' .. titleobj.text else title = titleobj.prefixedText end -- Remove empty fields for k, v in pairs( args ) do if v == '' then args[k] = nil end end -- Pull information from parameter aliases local aliases = {} if frame.args['$aliases'] then local list = mw.text.split( frame.args['$aliases'], '%s*,%s*' ) for k, v in ipairs( list ) do local tmp = mw.text.split( v, '%s*>%s*' ) aliases[(tonumber(mw.ustring.match(tmp[1], '^[1-9][0-9]*$'))) or tmp[1]] = ((tonumber(mw.ustring.match(tmp[2], '^[1-9][0-9]*$'))) or tmp[2]) end end for k, v in pairs( aliases ) do if args[k] and not args[v] then args[v], args[k] = args[k], nil end end -- Build the invocation body with numbered args first, then named local ret = '{{' .. title for k, v in ipairs( args ) do if mw.ustring.find( v, '=', 1, true ) then -- likely something like 1=foo=bar, we need to do it as a named arg break end if not aliases[k] then ret = ret .. '|' .. v args[k] = nil end end -- Pull lists from special parameters local params = mw.text.split( frame.args['$params'], '%s*,%s*' ) for k, v in ipairs( params ) do params[k] = (tonumber(mw.ustring.match(v, '^[1-9][0-9]*$'))) or v end local sets, setparams, extra = {{}, {}, {}}, {}, {} for k = 1, 3 do local v = frame.args['$set' .. k] if v then setparams[k] = mw.text.split( v, '%s*,%s*' ) for x, y in ipairs( setparams[k] ) do setparams[k][x] = (tonumber(mw.ustring.match(y, '^[1-9][0-9]*$'))) or y sets[k][setparams[k][x]] = true end end end if frame.args['$extra'] then local tmp = mw.text.split( frame.args['$extra'], '%s*,%s*' ) for k, v in ipairs( tmp ) do extra[(tonumber(mw.ustring.match(v, '^[1-9][0-9]*$'))) or v] = true end end -- Replace parameter list with short version if full version not necessary local tmp = {} for k, v in ipairs( sets ) do if next(v) then -- if table v is not empty for _, x in ipairs( params ) do if args[x] and not v[x] then tmp[k] = true break end end if not tmp[k] then params = setparams[k] end end end -- Align parameters correctly and remove extra ones local maxlength = 0 local discard = {} for k, v in ipairs( params ) do if (not extra[v]) or args[v] then local tmp = mw.ustring.len( tostring( v ) ) if tmp > maxlength then maxlength = tmp end else table.insert( discard, 1, k ) end end for k, v in ipairs( discard ) do table.remove( params, v ) end local indent = string.rep(' ', (tonumber(frame.args['$indent']) or 0)) local space, newline = ' ', '\n' if not next(params) then space, newline = '', '' end for k, v in ipairs( params ) do local tmp = space if mw.ustring.match( mw.ustring.sub( ( args[v] or '' ) .. ' ', 1, 1 ), '[%*:;#]' ) then tmp = '\n' end ret = ret .. newline .. indent .. '|' .. space .. v .. string.rep(' ', (maxlength - mw.ustring.len( v ))) .. space .. '=' .. tmp .. (args[v] or '') end ret = ret .. newline .. '}}' ret = mw.ustring.gsub(ret, '%s+\n', '\n') return ret else -- Not substing -- Just return the "body" return frame.args['$B'] end end return p
板㑄用𥪝張尼:
模庉:Unsubst-infobox/材料
(
䀡碼源
)
𢮿吏
模庉:Unsubst-infobox
。