Module:ColorParse: Difference between revisions

Jump to navigation Jump to search
31 bytes added ,  14:55, 20 January 2023
fix bordered shaders
m (strip out curlies again)
(fix bordered shaders)
 
(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
   end
   --b = b:gsub("(%*)", "*")
   b = b:gsub("(\\n)","\n")
    
   return b
end
 
 
function clean(input)
  local b = input:gsub("(~J211)", "")
   b = b:gsub("([{}])", "")
   b = b:gsub("([{}])", "")
  b = b:gsub("(\\n)","\n")
   return b
   return b
end
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 37: 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 77: Line 84:
return a
return a
end
end


function p.main(frame)
function p.main(frame)
Line 109: 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 140: Line 148:
       bordered = true
       bordered = true
       overflowbehavior = function(f)
       overflowbehavior = function(f)
         if f + #strtbl == 3 then return colorlist[2] else return colorlist[1] end
         if #strtbl - f == 0 then return colorlist[1] else return colorlist[2] end
         end
         end
     elseif type == 'chaotic' then
     elseif type == 'chaotic' then
Line 147: Line 155:
     local ci = 1
     local ci = 1
     if bordered == true then
     if bordered == true then
       ci = #colorlist
       ci = 1
     end
     end
     for i=1, #strtbl do
     for i=1, #strtbl do
Line 162: Line 170:
       if i%interval == 0 then
       if i%interval == 0 then
           if bordered == true then
           if bordered == true then
               ci = ci - 1
               ci = ci + 1
           else
           else
               ci = ci + 1
               ci = ci + 1
Line 170: 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 185: Line 194:
     end
     end
end
end


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


function p.shaderlist()
function p.shaderlist()
Line 204: 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()
     --return p.shader('Stopsvalinn', 'R-r-K-y-Y', 'sequence')
     return p.shader('Spiked', 'R-Y', 'bordered')
     return applytemplate('soul', 'soulcurding')
     --return applytemplate('soul', 'soulcurding')
end
end


return p
return p

Navigation menu