Module:ColorParse: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
mNo edit summary |
||
Line 35: | Line 35: | ||
local b = normalize(frame.args[1],regextype) | local b = normalize(frame.args[1],regextype) | ||
local a = string.gsub(b, regex, function(_,color,text) | local a = string.gsub(b, regex, function(_,color,text) | ||
if text ~= nil | if text ~= nil and text ~= "" then | ||
local hexcolor = luatable.parse(color) | local hexcolor = luatable.parse(color) | ||
if hexcolor == nil then | if hexcolor == nil then |
Revision as of 20:13, 27 October 2019
Documentation
[purge]
This module parses the game's color codes in strings and formats them for the wiki. This shouldn't be directly called anymore. Use Template:Qud text instead. If the text in question has pronouns in syntax =pronouns.(pronountype)= or a similar style, use Template:Grammar.
Usage
{{#invoke: ColorParse | parse |(your text here)}}
Code:
{{#invoke: ColorParse | parse |&RS&rt&Ko&yp&Ys&Rv&ra&Kl&yi&Yn&Rn&y}}
Result:
Stopsvalinn
local p = {}
local luatable = require'Module:Color'
--[Utility stuff]--
function normalize(string, type)
type = type or ''
local b = string.gsub(string,"(~J211)", "")
if type == '' then
b = string.gsub(b,"([{}])", "")
elseif type == 'notxml' then
b = string.gsub(b,"(\\n)","\n")
end
return b
end
function p.linebreaks(frame)
local b = string.gsub(frame.args[1],"(~)","\n")
return b
end
--[ The main function. Takes the first argument and snips out stuff we don't need
--[ depending on regextype.
function p.parse(frame, regextype)
regextype = regextype or ''
--[Determine regex type]
local regex = "(&)(%w)([^&\n]*)"
if regextype == 'notxml' then
regex = "(&)(%w)([^&\n]*)"
end
local b = normalize(frame.args[1],regextype)
local a = string.gsub(b, regex, function(_,color,text)
if text ~= nil and text ~= "" then
local hexcolor = luatable.parse(color)
if hexcolor == nil then
error ("There was no specified color for color code: " .. color)
end
text = text or ""
return "<span style=\"color: " .. hexcolor .. ";\">" .. text .. "</span>"
else
return ""
end
end)
return a
end
function p.nonxmlparse(frame)
return p.parse(frame, 'notxml')
end
function p.moduleparse(frame)
return p.parse({["args"] = {frame}})
end
function p.modulenonxmlparse(frame)
return p.nonxmlparse({["args"] = {frame}})
end
return p