“模块:沙盒”的版本间的差异
来自希灵百科
(创建页面,内容为“local sandbox = { } local palette = { { 0xe9, 0xe7, 0x81 }, { 0xe2, 0x1d, 0x3a }, { 0xbb, 0x44, 0xb8 }, { 0x76, 0xf3, 0xf0 } } local function make_rainbow(str)...”) |
(没有差异)
|
2017年1月18日 (三) 22:53的最新版本
由于用户页无法建立Lua模块,因此为了不把维基百科希灵百科搞得乱七八糟,就把用户的测试模块组织到一起。
local sandbox = { } local palette = { { 0xe9, 0xe7, 0x81 }, { 0xe2, 0x1d, 0x3a }, { 0xbb, 0x44, 0xb8 }, { 0x76, 0xf3, 0xf0 } } local function make_rainbow(str) local n = mw.ustring.len(str) local m = #palette - 1 local ret = '' local dbg = '' for i = 1,n do local p = i - 0.5 local r = 1 while p * m > n * r do r = r + 1 end local l = r - 1 local pl = n * l / m local pr = n * r / m local wl = (pr - p) / (pr - pl) local wr = (p - pl) / (pr - pl) local cr = math.floor(palette[l + 1][1] * wl + palette[r + 1][1] * wr + 0.5) local cg = math.floor(palette[l + 1][2] * wl + palette[r + 1][2] * wr + 0.5) local cb = math.floor(palette[l + 1][3] * wl + palette[r + 1][3] * wr + 0.5) local color = string.format('#%02x%02x%02x', cr, cg, cb) ret = ret .. "<span style='color:" .. color .. ";'>'''" .. mw.ustring.sub(str, i, i) .. "'''</span>" end return ret end sandbox['rainbow'] = function (frame) return make_rainbow(frame.args[1]) end sandbox['debug'] = function(str) return make_rainbow(str) end return sandbox