Module:Page: Difference between revisions

Content deleted Content added
Remove out-of-date content fork of /doc
Tags: Mobile edit Mobile web edit
clean for style; fix error per talk
Line 2:
local result = { func(...) }
if not result[1] then
-- Return a string with error class detectable by #iferror.
error(mw.ustring.format('%s(%s) failed', funcName, join(', ', ...)), 0)
return string.format(
'<span class="error">Error: %s(%s) failed</span>',
funcName,
table.concat({...}, ', ')
)
end
return unpack(result)
end
 
local function main(frame, field)
local args, pargs = frame.args, ( frame:getParent() or {} ).args or {};
local makeTitle=args.makeTitle or pargs.makeTitle or "";
local namespace=args.namespace or pargs.namespace or "";
local fragment=args.fragment or pargs.fragment or "";
local interwiki=args.interwiki or pargs.interwiki or "";
local page=args.page or args[1] or pargs.page or pargs[1] or "";
local id= tonumber( args.id or pargs.id );
local pn = {};
local title -- holds the result of the mw.title.xxx call
 
for i = 1,9 do pn[i] = args['p'..i] or pargs['p'..i]; end
if not id and not mw.ustring.match( page, '%S' ) then page = nil; end
 
if id then
title = callAssert(mw.title.new, 'mw.title.new', id);
elseif not page then
title = callAssert(mw.title.getCurrentTitle, 'getCurrentTitle');
elseif makeTitle then
title = callAssert(mw.title.makeTitle, 'makeTitle', namespace, page, fragment, interwiki);
else
title = callAssert(mw.title.new, 'mw.title.new', page, namespace);
end
if type(resulttitle) =~= "function"'table' then
return tostring(result or ""title);
local result = title[field];
end
if type(result) == "function" then
 
local success;
success, local result = pcall( result, title, unpack(pn) );[field]
if type(result) == "function" then
if not success then
local success;
error(result, 0);
success, result = pcall( result, title, unpack(pn) )
end
if not success then
end
error(result, 0);
end
return tostring(result or "");
end
 
return tostring(result or "")
end
 
local p = {};
 
-- main function does all the work
local meta = {};
function meta.__index(tableself, key)
return function(frame)
return main(frame, key)
Line 55 ⟶ 63:
 
function p.getContent(frame)
local args, pargs = frame.args, ( frame:getParent() or {} ).args or {};
local fmt = args.as or pargs.as or false
local text = main(frame, "getContent")
 
if not fmt then
return frame:preprocess( "<pre>" .. text .. "</pre>" )
end
 
fmt = mw.text.split( fmt, ", ?" )
 
for _, how in ipairs( fmt ) do
if how == "pre" then