local p={}
function parse_colour(c)
return
tonumber(string.sub(c,1,2),16),
tonumber(string.sub(c,3,4),16),
tonumber(string.sub(c,5,6),16)
end
function fmt_colour(r,g,b)
return string.format("%02x%02x%02x",math.floor(r+0.5),math.floor(g+0.5),math.floor(b+0.5))
end
function p.rgb(frame)
local r,g,b = parse_colour(frame.args[1])
local r2,g2,b2 = parse_colour(frame.args[2])
local text = frame.args[3]
local n = mw.ustring.len(text)
local out = ""
local dr,dg,db = (r2-r)/n, (g2-g)/n, (b2-b)/n
for i=1,n do
local ch = mw.ustring.codepoint(text,i,i)
out = out.."<span style='color: #"..fmt_colour(r,g,b)..";'>"..mw.text.nowiki(mw.ustring.char(ch)).."</span>"