local p={}function p.append(frame, category, display_category) --fork from [[Module:If_empty]]if mw.isSubsting() then return '' endlocal cat,display_cat = '',''if type(frame) == type('string') then --type('string') avoid version changecat = mw.text.trim(frame)display_cat = mw.text.trim(category or display_cat)elseif type((frame or {}).args) ~= type({}) then frame.args = {} endcat = mw.text.trim(category or frame.args['1'] or frame.args[1] or frame.args.cat orframe['1'] or frame[1] or frame.cat or '')display_cat = mw.text.trim(display_category or frame.args['2'] or frame.args[2] or frame.args.display or frame['2'] or frame[2] or frame.display or '')endif cat ~= '' then--if call from a fake frame object, use Current Frame.if not xpcall(function()frame:getTitle()end,function()end) then frame = mw.getCurrentFrame() end--fork from [[Module:If_empty]]frame:extensionTag('ref', string.format('[[Category:%s]]', cat .. (display_cat ~= '' and ('|' .. display_cat) or '')), {group = 'TrackingCategory'})frame:extensionTag('references', '', {group = 'TrackingCategory'})endreturn ''endfunction p.hideText(frame)if mw.isSubsting() then return '' endlocal text = ''if type(frame) == type('string') then --type('string') avoid version changetext = mw.text.trim(frame)elseif type((frame or {}).args) ~= type({}) then frame.args = {} endtext = mw.text.trim(frame.args['1'] or frame.args[1] or frame.args.text orframe['1'] or frame[1] or frame.text or '')endtext = mw.text.trim(text)if text ~= '' then--if call from a fake frame object, use Current Frame.if not xpcall(function()frame:getTitle()end,function()end) then frame = mw.getCurrentFrame() end--fork from [[Module:If_empty]]frame:extensionTag('ref', text, {group = 'TrackingCategory'})frame:extensionTag('references', '', {group = 'TrackingCategory'})endreturn ''endreturn p