8,756
edits
(can now parse notxml) |
(make linebreaks argument actually do things) |
||
(10 intermediate revisions by 3 users not shown) | |||
Line 4: | Line 4: | ||
function p.qudlook(frame) | function p.qudlook(frame) | ||
local bordercolor | local args | ||
local padding | local bordercolor | ||
local bottomtext | local padding | ||
local bottomtext | |||
local linebreaks | |||
--[determine notxml]-- | --[determine notxml]-- | ||
local notxml = false | local notxml = false | ||
local notxmlin = frame.args.notxml | local notxmlin = frame.args.notxml | ||
if notxmlin ~= nil then | if notxmlin ~= nil then | ||
if notxmlin == 'yes' then | |||
notxml = true | |||
end | |||
end | end | ||
if frame.args.linebreaks == "yes" then | |||
linebreaks = true | |||
else | |||
linebreaks = false | |||
end | |||
--[Determine border color]-- | --[Determine border color]-- | ||
local bordercolorin = frame.args.bordercolor | local bordercolorin = frame.args.bordercolor | ||
if bordercolorin == nil then | if bordercolorin == nil then | ||
bordercolor = '' | |||
elseif bordercolorin == 'c' then | elseif bordercolorin == 'c' then | ||
bordercolor = '' | |||
elseif bordercolorin == 'y' then | elseif bordercolorin == 'y' then | ||
bordercolor='white-border' | |||
else | else | ||
error('bordercolor not set to either "c" or "y"',0) | |||
end | end | ||
--[Determine Title Color]-- | --[Determine Title Color]-- | ||
local titlein= frame.args.title | local titlein = frame.args.title | ||
--[Determine qud text]-- | --[Determine qud text]-- | ||
local text = frame.args['text'] | local text = frame.args['text'] or "" | ||
if linebreaks then | |||
text = colorparse.linebreaks(text) | |||
end | |||
--[Determine body padding]-- | --[Determine body padding]-- | ||
local paddingin = frame.args.padding | local paddingin = frame.args.padding | ||
if paddingin == nil or paddingin == '' then | if paddingin == nil or paddingin == '' then | ||
padding = '0' | |||
else | else | ||
padding = paddingin | |||
end | end | ||
--[Determine bottomtext]-- | --[Determine bottomtext]-- | ||
local bottomin = frame.args.bottomtext | local bottomin = frame.args.bottomtext | ||
if bottomin == nil or bottomin == '' then | if bottomin == nil or bottomin == '' then | ||
bottomtext = 'Perfect' | |||
elseif bottomin == 'none' then | elseif bottomin == 'none' then | ||
bottomtext = '' | |||
else | else | ||
bottomtext = bottomin | |||
end | end | ||
--[parse color]-- | --[parse color]-- | ||
local title | local title | ||
local textcontent | local textcontent | ||
local parsedbottomtext | local parsedbottomtext | ||
if | if colorparse.determinexml(titlein) then | ||
title = colorparse.parse('&y'.. titlein, 'xml') | |||
else | |||
title = colorparse.parse('&y'..titlein, 'notxml') | |||
else | end | ||
if colorparse.determinexml(text) then | |||
textcontent=colorparse.parse('&y' .. text, 'xml') | |||
else | |||
end | textcontent=colorparse.parse('&y' .. text, 'notxml') | ||
end | |||
if colorparse.determinexml(bottomtext) then | |||
parsedbottomtext=colorparse.parse('&Y'..bottomtext, 'xml') | |||
else | |||
parsedbottomtext=colorparse.parse('&Y'..bottomtext, 'notxml') | |||
end | |||
local qudtext = frame:extensionTag{ name='poem', content=textcontent } | local qudtext = frame:extensionTag{ name='poem', content=textcontent } | ||
--[Return html]-- | --[Return html]-- | ||
local html = | local html = mw.html.create('div') | ||
html | |||
:addClass('qud-box-wrapper ' .. bordercolor) | |||
:node(mw.html.create('div') | |||
:addClass('qud-box') | |||
:node(mw.html.create('div') | |||
:addClass('qud-box-header') | |||
:wikitext('<b>' .. title .. '</b>')) | |||
:node(mw.html.create('div') | |||
:addClass('qud-box-content') | |||
:css({['font-weight']='bold', ['line-height']='1.5em', ['padding']='0em' .. padding .. 'em'}) | |||
:wikitext(qudtext)) | |||
:node(mw.html.create('span') | |||
:addClass('qud-box-footer-left') | |||
:wikitext(parsedbottomtext))) | |||
return | return tostring(html) .. '\n' | ||
end | end | ||
return p | return p |