<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://hmoegirl.com/index.php?action=history&amp;feed=atom&amp;title=Module%3AColour</id>
	<title>Module:Colour - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://hmoegirl.com/index.php?action=history&amp;feed=atom&amp;title=Module%3AColour"/>
	<link rel="alternate" type="text/html" href="https://hmoegirl.com/index.php?title=Module:Colour&amp;action=history"/>
	<updated>2026-06-10T21:04:18Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.39.0</generator>
	<entry>
		<id>https://hmoegirl.com/index.php?title=Module:Colour&amp;diff=60193&amp;oldid=prev</id>
		<title>imported&gt;850710247liu：​创建页面，内容为“local colorKeywords = {   aliceblue = { 240, 248, 255 },   antiquewhite = { 250, 235, 215 },   aqua = { 0, 255, 255 },   aquamarine = { 127, 255, 212 },   azure = {…”</title>
		<link rel="alternate" type="text/html" href="https://hmoegirl.com/index.php?title=Module:Colour&amp;diff=60193&amp;oldid=prev"/>
		<updated>2020-02-27T03:21:21Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“local colorKeywords = {   aliceblue = { 240, 248, 255 },   antiquewhite = { 250, 235, 215 },   aqua = { 0, 255, 255 },   aquamarine = { 127, 255, 212 },   azure = {…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local colorKeywords = {&lt;br /&gt;
  aliceblue = { 240, 248, 255 },&lt;br /&gt;
  antiquewhite = { 250, 235, 215 },&lt;br /&gt;
  aqua = { 0, 255, 255 },&lt;br /&gt;
  aquamarine = { 127, 255, 212 },&lt;br /&gt;
  azure = { 240, 255, 255 },&lt;br /&gt;
  beige = { 245, 245, 220 },&lt;br /&gt;
  bisque = { 255, 228, 196 },&lt;br /&gt;
  black = { 0, 0, 0 },&lt;br /&gt;
  blanchedalmond = { 255, 235, 205 },&lt;br /&gt;
  blue = { 0, 0, 255 },&lt;br /&gt;
  blueviolet = { 138, 43, 226 },&lt;br /&gt;
  brown = { 165, 42, 42 },&lt;br /&gt;
  burlywood = { 222, 184, 135 },&lt;br /&gt;
  cadetblue = { 95, 158, 160 },&lt;br /&gt;
  chartreuse = { 127, 255, 0 },&lt;br /&gt;
  chocolate = { 210, 105, 30 },&lt;br /&gt;
  coral = { 255, 127, 80 },&lt;br /&gt;
  cornflowerblue = { 100, 149, 237 },&lt;br /&gt;
  cornsilk = { 255, 248, 220 },&lt;br /&gt;
  crimson = { 220, 20, 60 },&lt;br /&gt;
  cyan = { 0, 255, 255 },&lt;br /&gt;
  darkblue = { 0, 0, 139 },&lt;br /&gt;
  darkcyan = { 0, 139, 139 },&lt;br /&gt;
  darkgoldenrod = { 184, 134, 11 },&lt;br /&gt;
  darkgray = { 169, 169, 169 },&lt;br /&gt;
  darkgreen = { 0, 100, 0 },&lt;br /&gt;
  darkgrey = { 169, 169, 169 },&lt;br /&gt;
  darkkhaki = { 189, 183, 107 },&lt;br /&gt;
  darkmagenta = { 139, 0, 139 },&lt;br /&gt;
  darkolivegreen = { 85, 107, 47 },&lt;br /&gt;
  darkorange = { 255, 140, 0 },&lt;br /&gt;
  darkorchid = { 153, 50, 204 },&lt;br /&gt;
  darkred = { 139, 0, 0 },&lt;br /&gt;
  darksalmon = { 233, 150, 122 },&lt;br /&gt;
  darkseagreen = { 143, 188, 143 },&lt;br /&gt;
  darkslateblue = { 72, 61, 139 },&lt;br /&gt;
  darkslategray = { 47, 79, 79 },&lt;br /&gt;
  darkslategrey = { 47, 79, 79 },&lt;br /&gt;
  darkturquoise = { 0, 206, 209 },&lt;br /&gt;
  darkviolet = { 148, 0, 211 },&lt;br /&gt;
  deeppink = { 255, 20, 147 },&lt;br /&gt;
  deepskyblue = { 0, 191, 255 },&lt;br /&gt;
  dimgray = { 105, 105, 105 },&lt;br /&gt;
  dimgrey = { 105, 105, 105 },&lt;br /&gt;
  dodgerblue = { 30, 144, 255 },&lt;br /&gt;
  firebrick = { 178, 34, 34 },&lt;br /&gt;
  floralwhite = { 255, 250, 240 },&lt;br /&gt;
  forestgreen = { 34, 139, 34 },&lt;br /&gt;
  fuchsia = { 255, 0, 255 },&lt;br /&gt;
  gainsboro = { 220, 220, 220 },&lt;br /&gt;
  ghostwhite = { 248, 248, 255 },&lt;br /&gt;
  gold = { 255, 215, 0 },&lt;br /&gt;
  goldenrod = { 218, 165, 32 },&lt;br /&gt;
  gray = { 128, 128, 128 },&lt;br /&gt;
  green = { 0, 128, 0 },&lt;br /&gt;
  greenyellow = { 173, 255, 47 },&lt;br /&gt;
  grey = { 128, 128, 128 },&lt;br /&gt;
  honeydew = { 240, 255, 240 },&lt;br /&gt;
  hotpink = { 255, 105, 180 },&lt;br /&gt;
  indianred = { 205, 92, 92 },&lt;br /&gt;
  indigo = { 75, 0, 130 },&lt;br /&gt;
  ivory = { 255, 255, 240 },&lt;br /&gt;
  khaki = { 240, 230, 140 },&lt;br /&gt;
  lavender = { 230, 230, 250 },&lt;br /&gt;
  lavenderblush = { 255, 240, 245 },&lt;br /&gt;
  lawngreen = { 124, 252, 0 },&lt;br /&gt;
  lemonchiffon = { 255, 250, 205 },&lt;br /&gt;
  lightblue = { 173, 216, 230 },&lt;br /&gt;
  lightcoral = { 240, 128, 128 },&lt;br /&gt;
  lightcyan = { 224, 255, 255 },&lt;br /&gt;
  lightgoldenrodyellow = { 250, 250, 210 },&lt;br /&gt;
  lightgray = { 211, 211, 211 },&lt;br /&gt;
  lightgreen = { 144, 238, 144 },&lt;br /&gt;
  lightgrey = { 211, 211, 211 },&lt;br /&gt;
  lightpink = { 255, 182, 193 },&lt;br /&gt;
  lightsalmon = { 255, 160, 122 },&lt;br /&gt;
  lightseagreen = { 32, 178, 170 },&lt;br /&gt;
  lightskyblue = { 135, 206, 250 },&lt;br /&gt;
  lightslategray = { 119, 136, 153 },&lt;br /&gt;
  lightslategrey = { 119, 136, 153 },&lt;br /&gt;
  lightsteelblue = { 176, 196, 222 },&lt;br /&gt;
  lightyellow = { 255, 255, 224 },&lt;br /&gt;
  lime = { 0, 255, 0 },&lt;br /&gt;
  limegreen = { 50, 205, 50 },&lt;br /&gt;
  linen = { 250, 240, 230 },&lt;br /&gt;
  magenta = { 255, 0, 255 },&lt;br /&gt;
  maroon = { 128, 0, 0 },&lt;br /&gt;
  mediumaquamarine = { 102, 205, 170 },&lt;br /&gt;
  mediumblue = { 0, 0, 205 },&lt;br /&gt;
  mediumorchid = { 186, 85, 211 },&lt;br /&gt;
  mediumpurple = { 147, 112, 219 },&lt;br /&gt;
  mediumseagreen = { 60, 179, 113 },&lt;br /&gt;
  mediumslateblue = { 123, 104, 238 },&lt;br /&gt;
  mediumspringgreen = { 0, 250, 154 },&lt;br /&gt;
  mediumturquoise = { 72, 209, 204 },&lt;br /&gt;
  mediumvioletred = { 199, 21, 133 },&lt;br /&gt;
  midnightblue = { 25, 25, 112 },&lt;br /&gt;
  mintcream = { 245, 255, 250 },&lt;br /&gt;
  mistyrose = { 255, 228, 225 },&lt;br /&gt;
  moccasin = { 255, 228, 181 },&lt;br /&gt;
  navajowhite = { 255, 222, 173 },&lt;br /&gt;
  navy = { 0, 0, 128 },&lt;br /&gt;
  oldlace = { 253, 245, 230 },&lt;br /&gt;
  olive = { 128, 128, 0 },&lt;br /&gt;
  olivedrab = { 107, 142, 35 },&lt;br /&gt;
  orange = { 255, 165, 0 },&lt;br /&gt;
  orangered = { 255, 69, 0 },&lt;br /&gt;
  orchid = { 218, 112, 214 },&lt;br /&gt;
  palegoldenrod = { 238, 232, 170 },&lt;br /&gt;
  palegreen = { 152, 251, 152 },&lt;br /&gt;
  paleturquoise = { 175, 238, 238 },&lt;br /&gt;
  palevioletred = { 219, 112, 147 },&lt;br /&gt;
  papayawhip = { 255, 239, 213 },&lt;br /&gt;
  peachpuff = { 255, 218, 185 },&lt;br /&gt;
  peru = { 205, 133, 63 },&lt;br /&gt;
  pink = { 255, 192, 203 },&lt;br /&gt;
  plum = { 221, 160, 221 },&lt;br /&gt;
  powderblue = { 176, 224, 230 },&lt;br /&gt;
  purple = { 128, 0, 128 },&lt;br /&gt;
  red = { 255, 0, 0 },&lt;br /&gt;
  rosybrown = { 188, 143, 143 },&lt;br /&gt;
  royalblue = { 65, 105, 225 },&lt;br /&gt;
  saddlebrown = { 139, 69, 19 },&lt;br /&gt;
  salmon = { 250, 128, 114 },&lt;br /&gt;
  sandybrown = { 244, 164, 96 },&lt;br /&gt;
  seagreen = { 46, 139, 87 },&lt;br /&gt;
  seashell = { 255, 245, 238 },&lt;br /&gt;
  sienna = { 160, 82, 45 },&lt;br /&gt;
  silver = { 192, 192, 192 },&lt;br /&gt;
  skyblue = { 135, 206, 235 },&lt;br /&gt;
  slateblue = { 106, 90, 205 },&lt;br /&gt;
  slategray = { 112, 128, 144 },&lt;br /&gt;
  slategrey = { 112, 128, 144 },&lt;br /&gt;
  snow = { 255, 250, 250 },&lt;br /&gt;
  springgreen = { 0, 255, 127 },&lt;br /&gt;
  steelblue = { 70, 130, 180 },&lt;br /&gt;
  tan = { 210, 180, 140 },&lt;br /&gt;
  teal = { 0, 128, 128 },&lt;br /&gt;
  thistle = { 216, 191, 216 },&lt;br /&gt;
  tomato = { 255, 99, 71 },&lt;br /&gt;
  turquoise = { 64, 224, 208 },&lt;br /&gt;
  violet = { 238, 130, 238 },&lt;br /&gt;
  wheat = { 245, 222, 179 },&lt;br /&gt;
  white = { 255, 255, 255 },&lt;br /&gt;
  whitesmoke = { 245, 245, 245 },&lt;br /&gt;
  yellow = { 255, 255, 0 },&lt;br /&gt;
  yellowgreen = { 154, 205, 50 },&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local module = {}&lt;br /&gt;
&lt;br /&gt;
local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
&lt;br /&gt;
function random(min, max)&lt;br /&gt;
  return mw.getCurrentFrame():expandTemplate{ title = &amp;#039;random&amp;#039;, args = { min, max } }&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function toRgb(color)&lt;br /&gt;
  local r, g, b, opacity&lt;br /&gt;
  &lt;br /&gt;
  if color:find(&amp;#039;^#&amp;#039;) then &lt;br /&gt;
    color = color:sub(2)&lt;br /&gt;
    if #color == 3 then&lt;br /&gt;
      r = color:sub(1, 1)&lt;br /&gt;
      g = color:sub(2, 2)&lt;br /&gt;
      b = color:sub(3, 3)&lt;br /&gt;
&lt;br /&gt;
      r = r..r&lt;br /&gt;
      g = g..g&lt;br /&gt;
      b = b..b&lt;br /&gt;
    elseif #color == 6 then&lt;br /&gt;
      r = color:sub(1, 2)&lt;br /&gt;
      g = color:sub(3, 4)&lt;br /&gt;
      b = color:sub(5, 6)&lt;br /&gt;
    else&lt;br /&gt;
      return nil&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if color:find(&amp;#039;^rgba?%(.+%)$&amp;#039;) then&lt;br /&gt;
    if color:find(&amp;#039;^rgb%(.+%)$&amp;#039;) then&lt;br /&gt;
      _, _, r, g, b = color:find(&amp;#039;^rgb%(%s-(%d-),%s-(%d-)%s-,%s-(%d-)%s-%)$&amp;#039;)&lt;br /&gt;
    else&lt;br /&gt;
      _, _, r, g, b, opacity = color:find(&amp;#039;^rgba%(%s-(%d-),%s-(%d-)%s-,%s-(%d-)%s-,%s-(.+)%s-%)$&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
      r = math.floor(r * opacity + 0.5)&lt;br /&gt;
      g = math.floor(g * opacity + 0.5)&lt;br /&gt;
      b = math.floor(b * opacity + 0.5)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return {&lt;br /&gt;
      tonumber(r),&lt;br /&gt;
      tonumber(g),&lt;br /&gt;
      tonumber(b)&lt;br /&gt;
    }&lt;br /&gt;
  end&lt;br /&gt;
  &lt;br /&gt;
  if r ~= nil then&lt;br /&gt;
    return {&lt;br /&gt;
      tonumber(r, 16),&lt;br /&gt;
      tonumber(g, 16),&lt;br /&gt;
      tonumber(b, 16)&lt;br /&gt;
    }&lt;br /&gt;
  else&lt;br /&gt;
    return colorKeywords[color]&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function toCssColor(rgbArr, opacity, isHex)&lt;br /&gt;
  local method = &amp;#039;rgb&amp;#039;&lt;br /&gt;
  if opacity then&lt;br /&gt;
  	method = &amp;#039;rgba&amp;#039;&lt;br /&gt;
  	table.insert(rgbArr, opacity)&lt;br /&gt;
  end&lt;br /&gt;
  &lt;br /&gt;
  function toHex(num)&lt;br /&gt;
  	local int, float = math.modf(num)&lt;br /&gt;
  	if float &amp;gt; 0.4 then int = int + 1 end&lt;br /&gt;
    local zero = &amp;#039;&amp;#039;&lt;br /&gt;
  	if int &amp;lt; 16 then zero = &amp;#039;0&amp;#039; end&lt;br /&gt;
  	return zero..string.format(&amp;#039;%X&amp;#039;, int)&lt;br /&gt;
  end&lt;br /&gt;
  &lt;br /&gt;
  if isHex then&lt;br /&gt;
  	return &amp;#039;#&amp;#039;..toHex(rgbArr[1])..toHex(rgbArr[2])..toHex(rgbArr[3])&lt;br /&gt;
  else&lt;br /&gt;
	return method..&amp;#039;(&amp;#039;..table.concat(rgbArr, &amp;#039;,&amp;#039;)..&amp;#039;)&amp;#039;&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function isLight(rgbArr)&lt;br /&gt;
  return rgbArr[1] * 0.299 + rgbArr[2] * 0.578 + rgb[3] * 0.114 &amp;gt;= 192&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function _main(args)&lt;br /&gt;
  local action = args[1]&lt;br /&gt;
  local arg1 = args[2]&lt;br /&gt;
  local arg2 = args[3]&lt;br /&gt;
  if action == &amp;#039;reverse&amp;#039; then&lt;br /&gt;
    local rgb = toRgb(arg1) &lt;br /&gt;
    for i, v in ipairs(rgb) do&lt;br /&gt;
      rgb[i] = math.abs(v - 255)&lt;br /&gt;
    end&lt;br /&gt;
    return toCssColor(rgb, false, arg2)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if action == &amp;#039;random&amp;#039; then&lt;br /&gt;
    local min = 0&lt;br /&gt;
    local max = 255&lt;br /&gt;
    if arg2 then&lt;br /&gt;
      min = arg1&lt;br /&gt;
      max = arg2&lt;br /&gt;
    elseif args1 then&lt;br /&gt;
      min = args1&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local rgb = {&lt;br /&gt;
      random(min, max),&lt;br /&gt;
      random(min, max),&lt;br /&gt;
      random(min, max)&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return toCssColor(rgb, false, arg2)&lt;br /&gt;
  end&lt;br /&gt;
  &lt;br /&gt;
  if action == &amp;#039;rgba&amp;#039; then&lt;br /&gt;
    local rgb = toRgb(arg1)&lt;br /&gt;
  	return toCssColor(rgb, arg2) &lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if action == &amp;#039;isLight&amp;#039; then&lt;br /&gt;
    return isLight(toRgb(arg1)) and 1 or &amp;#039;&amp;#039;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if action == &amp;#039;isDark&amp;#039; then&lt;br /&gt;
    return isLight(toRgb(arg1)) == false and 1 or &amp;#039;&amp;#039;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if action:find(&amp;#039;^[%+%-]&amp;#039;) or action == &amp;#039;test&amp;#039; then&lt;br /&gt;
    local rgb = toRgb(arg1)&lt;br /&gt;
    local tenth = {}&lt;br /&gt;
    for i, v in ipairs(rgb) do&lt;br /&gt;
      tenth[i] = {&lt;br /&gt;
        [&amp;#039;-&amp;#039;] = (255 - v) / 10,&lt;br /&gt;
        [&amp;#039;+&amp;#039;] = - v / 10&lt;br /&gt;
      }&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    function block(text, color)&lt;br /&gt;
      return &amp;#039;&amp;lt;ruby style=&amp;quot;color:&amp;#039;..color..&amp;#039;&amp;quot;&amp;gt;■&amp;lt;rt style=&amp;quot;color:black&amp;quot;&amp;gt;&amp;#039;..text..&amp;#039;&amp;lt;rt&amp;gt;&amp;lt;/ruby&amp;gt;&amp;amp;nbsp;&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    function compute(operator, degree)&lt;br /&gt;
      local rgbClone = { rgb[1], rgb[2], rgb[3] }&lt;br /&gt;
      for i, v in ipairs(rgbClone) do&lt;br /&gt;
        rgbClone[i] = v + tenth[i][operator] * degree&lt;br /&gt;
        if rgbClone[i] &amp;lt; 0 then rgbClone[i] = 0 end&lt;br /&gt;
        if rgbClone[i] &amp;gt; 255 then rgbClone[i] = 255 end&lt;br /&gt;
      end&lt;br /&gt;
      return rgbClone&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if action == &amp;#039;test&amp;#039; then&lt;br /&gt;
      local left = &amp;#039;&amp;#039;&lt;br /&gt;
      local right = &amp;#039;&amp;#039;&lt;br /&gt;
      for i=1, 9 do&lt;br /&gt;
        left = block(&amp;#039;-&amp;#039;..i, toCssColor(compute(&amp;#039;-&amp;#039;, i), false, arg2))..left&lt;br /&gt;
        right = right..block(&amp;#039;+&amp;#039;..i, toCssColor(compute(&amp;#039;+&amp;#039;, i), false, arg2))&lt;br /&gt;
      end&lt;br /&gt;
      return &amp;#039;&amp;lt;div style=&amp;quot;font-size:30px&amp;quot;&amp;gt;&amp;#039;..left..block(&amp;#039;▼&amp;#039;, toCssColor(rgb, false, arg2))..right..&amp;#039;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local level = 1&lt;br /&gt;
    if action:find(&amp;#039;%d$&amp;#039;) then&lt;br /&gt;
      local plus = tonumber(action:match(&amp;#039;(%d)$&amp;#039;))&lt;br /&gt;
      if plus &amp;gt; 9 then plus = 9 end&lt;br /&gt;
      level = plus&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local operator = action:sub(1, 1)&lt;br /&gt;
    return toCssColor(compute(operator, level), false, arg2)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function module.main(frame)&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	return _main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return module&lt;/div&gt;</summary>
		<author><name>imported&gt;850710247liu</name></author>
	</entry>
</feed>