This is the module sandbox page for Module:Based on (diff). |
This Lua module is used on approximately 28,000 pages and changes may be widely noticed. Test changes in the module's /sandbox or /testcases subpages, or in your own module sandbox. Consider discussing changes on the talk page before implementing them. |
This module implements {{Based on}}
Usage
editTo directly call this module (all arguments except work name optional):
{{#invoke:Based on|lua_main|Work name|Writer 1|Writer 2|...}}
To call it from a template, passing on the arguments from it:
{{#invoke:Based on|main}}
local p = {}
function p._main(args)
local s = args[1]
if args[2] then
s = mw.html.create()
:wikitext(s .. ' ')
:tag('br')
:done()
:tag(args[3] and 'div' or 'span')
:addClass('nowrap')
:tag('span')
:css('vertical-align', 'top')
:wikitext('by ')
:done()
:tag(args[3] and 'div' or 'span')
:addClass('wrap')
:addClass(args[3] and 'plainlist')
:css('display', 'inline-block')
-- Prevents the text from spilling out
:css('padding-right', '1.25em')
:wikitext(args[3] and
'\n* ' .. table.concat(args, '\n* ', 2) .. '\n'
or args[2])
:done()
:done()
end
return s
end
function p.main(frame)
-- mw.clone makes table.concat possible
return p._main(mw.clone(frame:getParent().args))
end
return p