Home
Random
Log in
Settings
About YouTube Wiki
Disclaimers
YouTube Wiki
Search
Editing
Module:Cite
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
require ('strict'); local cfg = mw.loadData ('Module:Cite/config'); --[[--------------------------< S U B S T I T U T E >---------------------------------------------------------- Substitutes $1, $2, etc in <message> with data from <data_t>. Returns plain-text substituted string when <data_t> not nil; returns <message> else. ]] 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 ''; return substitute ('<span style="color:#d33">Error: {{[[$1|#invoke:$2]]}}: $3 ([[:$4|$5]])</span>$6', { 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 --[[--------------------------< 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 return require ('Module:Citation/CS1')._citation (nil, args_t, config_t); -- go render the citation end --[[--------------------------< 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 })
Summary:
Please note that all contributions to YouTube Wiki are considered to be released under the GNU Free Documentation License 1.3 or later (see
YouTubeWiki:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Page included on this page:
Module:Cite/doc
(
edit
)