Jump to content
Toggle menu
  • 8 articles
  • 75 files
  • 7 users
  • 37.8K edits
Neodyland Wiki
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Module:Color2dec: Difference between revisions

From Neodyland Wiki
m expansion
m typo
Line 68: Line 68:
elseif low == 'azure'    then  out = '#0F47AF'
elseif low == 'azure'    then  out = '#0F47AF'
elseif low == 'carnation' then  out = '#F2A772'
elseif low == 'carnation' then  out = '#F2A772'
elseif low == 'celeste'  then  out = '##89C5E3'
elseif low == 'celeste'  then  out = '#89C5E3'
elseif low == 'cendrée'  then  out = '#999'
elseif low == 'cendrée'  then  out = '#999'
elseif low == 'gules'    then  out = '#DA121A'
elseif low == 'gules'    then  out = '#DA121A'
Line 78: Line 78:
else  out = inp
else  out = inp
end
end
return out;
end
end



Revision as of 13:01, 26 August 2019

Module documentation[ create · purge ]
This documentation is transcluded from Module:Color2dec/doc.
--This function converts a valid hexadecimal colorcode into three decimal numbers: 
--	#bbccdd gives 187|187|204,  while #FF0 will give 255|255|0 
--The function "tbcgen" generates a complete 5-parameter string 
--Invalid color codes will give invalid or unpredictable results, or LUA errors.

local p = {}

--
local function hexdec ( arg )
	local dig  =  ( string.upper ( string.char ( arg ) ) );
	local dec  =  0;
	if     dig == 'F' then  dec = 0xF
	elseif dig == 'E' then  dec = 0xE
	elseif dig == 'D' then  dec = 0xD
	elseif dig == 'C' then  dec = 0xC
	elseif dig == 'B' then  dec = 0xB
	elseif dig == 'A' then  dec = 0xA
	else   dec = dig
	end
	return dec;
end  

-- 
local function convert ( arg )
	local hex  =  arg;
	local dec  =  {};
	if #hex == 7 then
		dec [1] = hexdec ( string.byte (hex, 2)) * 16 + hexdec (string.byte (hex, 3))
		dec [2] = hexdec ( string.byte (hex, 4)) * 16 + hexdec (string.byte (hex, 5))
		dec [3] = hexdec ( string.byte (hex, 6)) * 16 + hexdec (string.byte (hex, 7))
	else
		dec [1] = hexdec ( string.byte (hex, 2)) * 16 + hexdec (string.byte (hex, 2))
		dec [2] = hexdec ( string.byte (hex, 3)) * 16 + hexdec (string.byte (hex, 3))
		dec [3] = hexdec ( string.byte (hex, 4)) * 16 + hexdec (string.byte (hex, 4))
	end  
	return dec;
end


-- 
function p.tsthex ( frame )
    local args = frame.args
	local hexcod = args[1] or '#000000'  
	local septor = args[2] or '_'  
	local decval = {} 
	decval = convert ( hexcod )  
	return table.concat( decval, septor  )
end  

-- 
function p.hexval ( frame )
    local args = frame.args
	local hexcode = args[1] or '#000000'  
	local decval = {} 
	decval = convert ( hexcode )  
	return decval 
end

--
function p.tincture ( frame )
    local args = frame.args
    local inp  =  args[1] or '';
	local low  =  ( string.lower ( inp ) );
	local out  =  '';
	if     low == 'argent'    then  out = '#FFF'
	elseif low == 'argent-d'  then  out = '#E7E7E7'
	elseif low == 'azure'     then  out = '#0F47AF'
	elseif low == 'carnation' then  out = '#F2A772'
	elseif low == 'celeste'   then  out = '#89C5E3'
	elseif low == 'cendrée'   then  out = '#999'
	elseif low == 'gules'     then  out = '#DA121A'
	elseif low == 'or'        then  out = '#FCDD09'
	elseif low == 'purpure'   then  out = '#9116A1'
	elseif low == 'sable'     then  out = '#000'
	elseif low == 'tawny'     then  out = '#9D5333'
	elseif low == 'vert'      then  out = '#078930'
	else   out = inp
	end
	return out;
end

--
function p.decode ( frame )
    local args = frame.args
    local str  =  args[1] or '';
    if  mw.ustring.sub ( str, 1, 1 ) == '#' then 
         return '#' .. mw.ustring.sub( str, 2, #str );
    elseif mw.ustring.sub ( str, 1, 1 ) == '*' then 
         return '*' .. mw.ustring.sub( str, 2, #str );
    elseif mw.ustring.sub ( str, 1, 1 ) == ':' then 
         return ':' .. mw.ustring.sub( str, 2, #str );
    elseif mw.ustring.sub ( str, 1, 1 ) == ';' then 
         return '&#59;' .. mw.ustring.sub( str, 2, #str );
    elseif mw.ustring.sub ( str, 1, 1 ) == '|' then 
         return '|' .. mw.ustring.sub( str, 2, #str );
    else
         return str;
    end
end


--
function p.tbcgen ( frame )
    local args = frame.args;
	local hexcod = args[1] or '#000000'; 
	local decval = {};
	local tbctab = {};
	decval = convert ( hexcod ); 
	tbctab [1]   = '0';
	tbctab [2]   = decval [1];
	tbctab [3]   = decval [2];
	tbctab [4]   = decval [3];
	tbctab [5]   = args[2] or 'couleur';
	return mw.getCurrentFrame():expandTemplate{ title = 'Tbc', args =  tbctab };
end
	
return p;
Cookies help us deliver our services. By using our services, you agree to our use of cookies.