|
|
| (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: {{[[$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
| |
| })
| |
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