Module:ColorParse: Difference between revisions

Jump to navigation Jump to search
22 bytes added ,  02:22, 29 December 2020
m
no edit summary
(more obvious error message if no shader was found)
mNo edit summary
(3 intermediate revisions by the same user not shown)
Line 11: Line 11:
function normalize(input, type)
function normalize(input, type)
   type = type or 'xml'
   type = type or 'xml'
  local b = clean(input)
   local a = '&y'  
   local a = '&y'  
   if type == 'notxml' then
   if type == 'notxml' then
     a = '&y'
     a = '&y'
   end
   end
  local b = input:gsub("(~J211)", "")
   if not b:match('^%&') then
   if not b:match('^%&') then
     b = a .. b  
     b = a .. b  
  end
  --b = b:gsub("(%*)", "*")
  if type == 'xml' then
    b = b:gsub("([{}])", "")
   end
   end
   b = b:gsub("(\\n)","\n")
   b = b:gsub("(\\n)","\n")
   return b
   return b
end
end
function clean(input)
  local b = input:gsub("(~J211)", "")
  b = b:gsub("([{}])", "")
  return b
end


function p.determinexml(input)
function p.determinexml(input)
   return (input:match('&') ~= nil)
   return (input:match('&') ~= nil)
end
end


function strtotbl(str)
function strtotbl(str)
Line 38: Line 43:
     return tbl
     return tbl
end
end


function p.linebreaks(frame)
function p.linebreaks(frame)
   local b = string.gsub(frame,"(~)","\n\n")
   local b = string.gsub(frame,"(~)","\n")
   return b
   return b
end
end


--[ The main function. Takes the first argument and snips out stuff we don't need
--[ The main function. Takes the first argument and snips out stuff we don't need
--[ depending on regextype.
--[ depending on regextype.
function p.parse(frame, regextype)
function p.parse(frame, regextype)
   args = frame.args or {[1] = frame}
   args = frame.args or {[1] = frame}
Line 78: Line 84:
return a
return a
end
end


function p.main(frame)
function p.main(frame)
Line 110: Line 117:




-- Beta Parse --
-- Shader Parse --
function p.shader(text, colors, type, rasterize)
function p.shader(text, colors, type, rasterize)
     -- split the colors into a list  
     -- split the colors into a list  
Line 171: Line 178:
     return table.concat(finaltbl)
     return table.concat(finaltbl)
end
end


function p.shadermain(frame)
function p.shadermain(frame)
     local args = process_args.merge(true)
     local args = process_args.merge(true)
     if args[1] and args[2] then -- shader template
     if args[1] and args[2] then -- shader template
       output = applytemplate(args[1], args[2], (args['rasterize'] or 'true'))
       output = applytemplate(args[1], clean(args[2]), (args['rasterize'] or 'true'))
     else
     else
       output = p.shader(args['text'], args['colors'], args['type'], (args['rasterize'] or 'true'))
       output = p.shader(clean(args['text']), args['colors'], args['type'], (args['rasterize'] or 'true'))
     end
     end


Line 186: Line 194:
     end
     end
end
end


function applytemplate(shader, text, raster)
function applytemplate(shader, text, raster)
Line 194: Line 203:
   end
   end
end
end


function p.shaderlist()
function p.shaderlist()
Line 205: Line 215:
   return '<table class="wikitable sortable">' .. tblheader  .. table.concat(tr) .. '</table>'
   return '<table class="wikitable sortable">' .. tblheader  .. table.concat(tr) .. '</table>'
end
end


function p.test()
function p.test()

Navigation menu