Module:Qud look: Difference between revisions

From Caves of Qud Wiki
Jump to navigation Jump to search
mNo edit summary
(make linebreaks argument actually do things)
 
(2 intermediate revisions by the same user not shown)
Line 41: Line 41:
--[Determine qud text]--
--[Determine qud text]--
local text = frame.args['text'] or ""
local text = frame.args['text'] or ""
if linebreaks then
text = colorparse.linebreaks(text)
end


--[Determine body padding]--
--[Determine body padding]--
Line 64: Line 67:
local textcontent
local textcontent
local parsedbottomtext
local parsedbottomtext
if notxml == true then
        if colorparse.determinexml(titlein) then
  title = colorparse.parse('&y'..titlein, 'notxml')
            title = colorparse.parse('&y'.. titlein, 'xml')
  textcontent=colorparse.parse('&y' .. text, 'notxml')
        else
  parsedbottomtext=colorparse.parse('&Y'..bottomtext, 'notxml')
            title = colorparse.parse('&y'..titlein, 'notxml')
        end
if colorparse.determinexml(text) then
        textcontent=colorparse.parse('&y' .. text, 'xml')
else
else
  title = colorparse.parse('&y'.. titlein, 'xml')
            textcontent=colorparse.parse('&y' .. text, 'notxml')
  textcontent=colorparse.parse('&y' .. text, 'xml')
end
  parsedbottomtext=colorparse.parse('&Y'..bottomtext, 'xml')
  if colorparse.determinexml(bottomtext) then
            parsedbottomtext=colorparse.parse('&Y'..bottomtext, 'xml')
        else
      parsedbottomtext=colorparse.parse('&Y'..bottomtext, 'notxml')
end
end



Latest revision as of 02:21, 29 December 2020


local p = {}
local colorparse = require'Module:ColorParse'

function p.qudlook(frame)

    local args
	local bordercolor
	local padding
	local bottomtext
	local linebreaks 

--[determine notxml]--
	local notxml = false
	local notxmlin = frame.args.notxml
	if notxmlin ~= nil then
  		if notxmlin == 'yes' then
    		notxml = true
  		end
	end
	if frame.args.linebreaks == "yes" then
		linebreaks = true
	else
		linebreaks = false
	end

--[Determine border color]--
	local bordercolorin = frame.args.bordercolor
	if bordercolorin == nil then
  		bordercolor = ''
	elseif bordercolorin == 'c' then
  		bordercolor = ''
	elseif bordercolorin == 'y' then
  		bordercolor='white-border'
	else
  		error('bordercolor not set to either "c" or "y"',0)
	end

--[Determine Title Color]--
	local titlein = frame.args.title

--[Determine qud text]--
	local text = frame.args['text'] or ""
	if linebreaks then
		text = colorparse.linebreaks(text)
	end

--[Determine body padding]--
	local paddingin = frame.args.padding
	if paddingin == nil or paddingin == '' then
  		padding = '0'
	else 
  		padding = paddingin
	end

--[Determine bottomtext]--
	local bottomin = frame.args.bottomtext
	if bottomin == nil or bottomin == '' then
  		bottomtext = 'Perfect'
	elseif bottomin == 'none' then
  		bottomtext = ''
	else
  		bottomtext = bottomin
	end

--[parse color]--
	local title
	local textcontent
	local parsedbottomtext
        if colorparse.determinexml(titlein) then
            title = colorparse.parse('&y'.. titlein, 'xml')
        else
            title = colorparse.parse('&y'..titlein, 'notxml')
        end
	if colorparse.determinexml(text) then
     	    textcontent=colorparse.parse('&y' .. text, 'xml')
	else
            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 }

--[Return 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 tostring(html) .. '\n'
end

return p