문서 편집 권한이 없습니다. 다음 이유를 확인해주세요: 요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다: 사용자. 문서의 원본을 보거나 복사할 수 있습니다. local p = {} local function hexToRgb(hex) hex = hex:gsub("#", "") if #hex == 6 then return tonumber(hex:sub(1,2),16), tonumber(hex:sub(3,4),16), tonumber(hex:sub(5,6),16) end return 0, 0, 0 end local function rgbToHsl(r, g, b) r, g, b = r/255, g/255, b/255 local max, min = math.max(r,g,b), math.min(r,g,b) local h, s, l = 0, 0, (max + min) / 2 if max ~= min then local d = max - min s = l > 0.5 and d / (2 - max - min) or d / (max + min) if max == r then h = (g - b) / d + (g < b and 6 or 0) elseif max == g then h = (b - r) / d + 2 else h = (r - g) / d + 4 end h = h / 6 end return h * 360, s * 100, l * 100 end function p.main(frame) local args = frame:getParent().args local colorStr = args[1] or "" local r = tonumber(args['r']) local g = tonumber(args['g']) local b = tonumber(args['b']) if colorStr:match("^#%x%x%x%x%x%x$") then r, g, b = hexToRgb(colorStr) end if not (r and g and b) then return "Invalid RGB input" end local h, s, l = rgbToHsl(r, g, b) -- 🎯 새 기준에 따라 처리 if l < 17.5 then return "#c3beb6" elseif l < 64 then l = 75 end return string.format("HSL(%d, %d%%, %d%%)", math.floor(h + 0.5), math.floor(s + 0.5), math.floor(l + 0.5)) end return p 이 문서에서 사용한 틀: 모듈:HSL2/설명문서 (원본 보기) 모듈:HSL2 문서로 돌아갑니다.