Module:Cite: Difference between revisions

From Phuketer
imported>Ahecht
simplify
 
ABC local final compatibility shim
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
require ('strict');
local p = {}


local cfg = mw.loadData ('Module:Cite/config');
setmetatable(p, {
 
__index = function(t, k)
 
local f = function(frame)
--[[--------------------------< S U B S T I T U T E >----------------------------------------------------------
return ''
 
end
Substitutes $1, $2, etc in <message> with data from <data_t>. Returns plain-text substituted string when
rawset(t, k, f)
<data_t> not nil; returns <message> else.
return f
 
end
]]
})
 
local function substitute (message, data_t)
return data_t and mw.message.newRawMessage (message, data_t):plain() or message;
end
 
 
--[[--------------------------< M A K E _ E R R O R _ M S G >--------------------------------------------------
 
Assembles an error message from module name, message text, help link, and error category.
 
]]
 
local function make_error_msg (frame, msg)
local module_name = frame:getTitle(); -- get the module name for prefix and help-link label
local namespace = mw.title.getCurrentTitle().namespace; -- used for categorization


local category_link = (0 == namespace) and substitute ('[[Category:$1]]', {cfg.settings_t.err_category}) or '';
function p.main(frame)
return substitute ('<span style="color:#d33">Error: &#x7B;{[[$1|#invoke:$2]]}}: $3 ([[:$4|$5]])</span>$6',
return ''
{
module_name, -- the module name with namespace
module_name:gsub ('Module:', ''), -- the module name without namespace
msg, -- the error message
cfg.settings_t.help_text_link, -- help wikilink to text at help page
cfg.settings_t.help, -- help wikilink display text
category_link -- link to error category (for main namespace errors only)
})
end
end
--[[--------------------------< C I T E >---------------------------------------------------------------------
Function to call Module:Citation/CS1/sandbox with appropriate parameters.  For use when an article exceeds the
post-expand include size limit.
{{#invoke:cite|book|title=Title}}
]]
local function cite (frame, template)
local args_t = require ('Module:Arguments').getArgs (frame, {frameOnly=true});
template = template:lower(); -- lowercase for table indexes
if not cfg.known_templates_t[template] then -- do we recognize this template name?
return make_error_msg (frame, substitute (cfg.settings_t.unknown_name, {template})); -- nope; abandon with error message
end


local config_t = {['CitationClass'] = cfg.citation_classes_t[template] or template}; -- set CitationClass value
function p._main(args)
return require ('Module:Citation/CS1')._citation (nil, args_t, config_t); -- go render the citation
return ''
end
end


 
return p
--[[--------------------------< E X P O R T S >---------------------------------------------------------------
]]
 
return setmetatable({}, {__index = -- returns an empty TABLE whose metatable has the __index set so that, for any given KEY, it returns
function(_, template) -- this anonymous function called as function(TABLE, KEY)
return function (frame) return cite (frame, template) end; -- which in turn returns a function that calls cite() with the KEY name
end
})

Latest revision as of 16:06, 16 June 2026

Documentation for this module may be created at Module:Cite/doc

local p = {}

setmetatable(p, {
	__index = function(t, k)
		local f = function(frame)
			return ''
		end
		rawset(t, k, f)
		return f
	end
})

function p.main(frame)
	return ''
end

function p._main(args)
	return ''
end

return p