Module:SimpleFormula: Difference between revisions

From Caves of Qud Wiki
Jump to navigation Jump to search
mNo edit summary
(add comments)
 
Line 22: Line 22:
     end
     end


    -- use times symbol
     formula = formula:gsub('*', '×')
     formula = formula:gsub('*', '×')
    -- unbold words (2 letters or longer)
     formula = formula:gsub('(%a%a+)', '<span style="font-weight:normal;">%1</span>')
     formula = formula:gsub('(%a%a+)', '<span style="font-weight:normal;">%1</span>')
    -- convert powers (^X) into a superscript
     formula = formula:gsub('%^(%d)', '<sup>%1</sup>')
     formula = formula:gsub('%^(%d)', '<sup>%1</sup>')
    -- format the entire formula with size, color, and bolding
     formula = '<div style="display:inline-block;font-size:' .. size .. '%;color:' .. color .. ';font-weight:bold">' .. formula .. '</div>'
     formula = '<div style="display:inline-block;font-size:' .. size .. '%;color:' .. color .. ';font-weight:bold">' .. formula .. '</div>'
      
      
     return formula
     return formula
end
end


return p
return p

Latest revision as of 21:38, 4 October 2020

See Template:Simple formula for documentation.


local p = {}

local process_args = require'Module:ProcessArgs'

function p.simpleformula(frame)
    local args = process_args.merge(true)

    local formula = frame:preprocess(args['formula'])

    local size = args['size']
    if size ~= nil then
        size = size
    else
        size = '130'
    end

    local color = args['color']
    if color ~= nil then
        color = color
    else
        color = '#009403'
    end


    -- use times symbol
    formula = formula:gsub('*', '×')

    -- unbold words (2 letters or longer)
    formula = formula:gsub('(%a%a+)', '<span style="font-weight:normal;">%1</span>')

    -- convert powers (^X) into a superscript
    formula = formula:gsub('%^(%d)', '<sup>%1</sup>')

    -- format the entire formula with size, color, and bolding
    formula = '<div style="display:inline-block;font-size:' .. size .. '%;color:' .. color .. ';font-weight:bold">' .. formula .. '</div>'
    

    return formula
end

return p