<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Modul%3AVorlage%3AFarbtabelle</id>
	<title>Modul:Vorlage:Farbtabelle - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Modul%3AVorlage%3AFarbtabelle"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Modul:Vorlage:Farbtabelle&amp;action=history"/>
	<updated>2026-06-07T04:40:53Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Modul:Vorlage:Farbtabelle&amp;diff=2910850&amp;oldid=prev</id>
		<title>imported&gt;PerfektesChaos: 2020-08-17</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Modul:Vorlage:Farbtabelle&amp;diff=2910850&amp;oldid=prev"/>
		<updated>2020-08-16T22:58:44Z</updated>

		<summary type="html">&lt;p&gt;2020-08-17&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local ClrTbl = { suite   = &amp;quot;ClrTbl&amp;quot;,&lt;br /&gt;
                 serial  = &amp;quot;2020-08-17&amp;quot;,&lt;br /&gt;
                 item    = 98412751 }&lt;br /&gt;
--[=[&lt;br /&gt;
generate colour tables / Vorlage:Farbtabelle&lt;br /&gt;
]=]&lt;br /&gt;
local Failsafe  = ClrTbl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function faith( aR, aG, aB )&lt;br /&gt;
    -- Check websafe code&lt;br /&gt;
    -- Precondition:&lt;br /&gt;
    --     aR   -- number, with code red&lt;br /&gt;
    --     aG   -- number, with code green&lt;br /&gt;
    --     aB   -- number, with code blue&lt;br /&gt;
    -- Postcondition:&lt;br /&gt;
    --     Returns true if websafe&lt;br /&gt;
    return ( aR % 3  +  aG % 3  +  aB % 3   ==   0 )&lt;br /&gt;
end -- faith()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function first()&lt;br /&gt;
    -- Initalize&lt;br /&gt;
    if not ClrTbl.hex then&lt;br /&gt;
        local s&lt;br /&gt;
        ClrTbl.hex = { [false] = { },&lt;br /&gt;
                       [true]  = { }&lt;br /&gt;
                     }&lt;br /&gt;
        for i = 0, 15 do&lt;br /&gt;
            s = string.format( &amp;quot;%X&amp;quot;, i )&lt;br /&gt;
            table.insert( ClrTbl.hex[false], i, s )&lt;br /&gt;
            table.insert( ClrTbl.hex[true],  i, s .. s )&lt;br /&gt;
        end -- for i&lt;br /&gt;
    end&lt;br /&gt;
end -- first()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ClrTbl.f = function ( abbr )&lt;br /&gt;
    -- Generate page content&lt;br /&gt;
    -- Precondition:&lt;br /&gt;
    --     abbr   -- number or boolean, with true or 3 for abbreviated&lt;br /&gt;
    -- Postcondition:&lt;br /&gt;
    --     Returns true if websafe&lt;br /&gt;
    local long = ( abbr ~= true  and  abbr ~= 3 )&lt;br /&gt;
    local r    = &amp;quot;&amp;quot;&lt;br /&gt;
    local iR, iG, iB, hR, hG, hB, hRhG, h, s, table, td, tr&lt;br /&gt;
    first()&lt;br /&gt;
    for iR = 0, 15 do&lt;br /&gt;
        hR = ClrTbl.hex[ long ][ iR ]&lt;br /&gt;
        if long then&lt;br /&gt;
            h = &amp;quot;xxxx&amp;quot;&lt;br /&gt;
        else&lt;br /&gt;
            h = &amp;quot;xx&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
        r = string.format( &amp;quot;%s\n=== %s%s ===\n&amp;quot;, r, hR, h )&lt;br /&gt;
        table = mw.html.create( &amp;quot;table&amp;quot; )&lt;br /&gt;
                       :css( { [&amp;quot;text-align&amp;quot;] = &amp;quot;center&amp;quot;,&lt;br /&gt;
                               [&amp;quot;width&amp;quot;]      = &amp;quot;100%&amp;quot; } )&lt;br /&gt;
        for iG = 0, 15 do&lt;br /&gt;
            hG   = ClrTbl.hex[ long ][ iG ]&lt;br /&gt;
            hRhG = hR .. hG&lt;br /&gt;
            tr   = mw.html.create( &amp;quot;tr&amp;quot; )&lt;br /&gt;
            for iB = 0, 15 do&lt;br /&gt;
                hB = ClrTbl.hex[ long ][ iB ]&lt;br /&gt;
                h  = hRhG .. hB&lt;br /&gt;
                hB = &amp;quot;#&amp;quot; .. h&lt;br /&gt;
                if iR + iG + iB  &amp;lt;  24 then&lt;br /&gt;
                    s = &amp;quot;#FFF&amp;quot;&lt;br /&gt;
                else&lt;br /&gt;
                    s = &amp;quot;#000&amp;quot;&lt;br /&gt;
                end&lt;br /&gt;
                td = mw.html.create( &amp;quot;td&amp;quot; )&lt;br /&gt;
                            :attr( { title = hB } )&lt;br /&gt;
                            :css( { [&amp;quot;background&amp;quot;] = hB,&lt;br /&gt;
                                    [&amp;quot;color&amp;quot;]      = s } )&lt;br /&gt;
                            :wikitext( h )&lt;br /&gt;
                if faith( iR, iG, iB ) then&lt;br /&gt;
                    td:css( { [&amp;quot;font-weight&amp;quot;] = &amp;quot;bold&amp;quot; } )&lt;br /&gt;
                end&lt;br /&gt;
                tr:newline()&lt;br /&gt;
                  :node( td )&lt;br /&gt;
            end -- for iB&lt;br /&gt;
            table:newline()&lt;br /&gt;
                 :node( tr )&lt;br /&gt;
        end -- for iG&lt;br /&gt;
        r = r .. tostring( table )&lt;br /&gt;
    end -- for iR&lt;br /&gt;
    return r&lt;br /&gt;
end -- ClrTbl.f()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Failsafe.failsafe = function ( atleast )&lt;br /&gt;
    -- Retrieve versioning and check for compliance&lt;br /&gt;
    -- Precondition:&lt;br /&gt;
    --     atleast  -- string, with required version&lt;br /&gt;
    --                         or &amp;quot;wikidata&amp;quot; or &amp;quot;~&amp;quot; or &amp;quot;@&amp;quot; or false&lt;br /&gt;
    -- Postcondition:&lt;br /&gt;
    --     Returns  string  -- with queried version/item, also if problem&lt;br /&gt;
    --              false   -- if appropriate&lt;br /&gt;
    -- 2020-08-17&lt;br /&gt;
    local since = atleast&lt;br /&gt;
    local last    = ( since == &amp;quot;~&amp;quot; )&lt;br /&gt;
    local linked  = ( since == &amp;quot;@&amp;quot; )&lt;br /&gt;
    local link    = ( since == &amp;quot;item&amp;quot; )&lt;br /&gt;
    local r&lt;br /&gt;
    if last  or  link  or  linked  or  since == &amp;quot;wikidata&amp;quot; then&lt;br /&gt;
        local item = Failsafe.item&lt;br /&gt;
        since = false&lt;br /&gt;
        if type( item ) == &amp;quot;number&amp;quot;  and  item &amp;gt; 0 then&lt;br /&gt;
            local suited = string.format( &amp;quot;Q%d&amp;quot;, item )&lt;br /&gt;
            if link then&lt;br /&gt;
                r = suited&lt;br /&gt;
            else&lt;br /&gt;
                local entity = mw.wikibase.getEntity( suited )&lt;br /&gt;
                if type( entity ) == &amp;quot;table&amp;quot; then&lt;br /&gt;
                    local seek = Failsafe.serialProperty or &amp;quot;P348&amp;quot;&lt;br /&gt;
                    local vsn  = entity:formatPropertyValues( seek )&lt;br /&gt;
                    if type( vsn ) == &amp;quot;table&amp;quot;  and&lt;br /&gt;
                       type( vsn.value ) == &amp;quot;string&amp;quot;  and&lt;br /&gt;
                       vsn.value ~= &amp;quot;&amp;quot; then&lt;br /&gt;
                        if last  and  vsn.value == Failsafe.serial then&lt;br /&gt;
                            r = false&lt;br /&gt;
                        elseif linked then&lt;br /&gt;
                            if mw.title.getCurrentTitle().prefixedText&lt;br /&gt;
                               ==  mw.wikibase.getSitelink( suited ) then&lt;br /&gt;
                                r = false&lt;br /&gt;
                            else&lt;br /&gt;
                                r = suited&lt;br /&gt;
                            end&lt;br /&gt;
                        else&lt;br /&gt;
                            r = vsn.value&lt;br /&gt;
                        end&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    if type( r ) == &amp;quot;nil&amp;quot; then&lt;br /&gt;
        if not since  or  since &amp;lt;= Failsafe.serial then&lt;br /&gt;
            r = Failsafe.serial&lt;br /&gt;
        else&lt;br /&gt;
            r = false&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return r&lt;br /&gt;
end -- Failsafe.failsafe()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Export&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.f( frame )&lt;br /&gt;
    local k = frame.args.bytes&lt;br /&gt;
    local lucky, r&lt;br /&gt;
    if k then&lt;br /&gt;
        k = tonumber( k )&lt;br /&gt;
    end&lt;br /&gt;
    lucky, r = pcall( ClrTbl.f, k )&lt;br /&gt;
    return r or lucky&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.failsafe = function ( frame )&lt;br /&gt;
    -- Versioning interface&lt;br /&gt;
    local s = type( frame )&lt;br /&gt;
    local since&lt;br /&gt;
    if s == &amp;quot;table&amp;quot; then&lt;br /&gt;
        since = frame.args[ 1 ]&lt;br /&gt;
    elseif s == &amp;quot;string&amp;quot; then&lt;br /&gt;
        since = frame&lt;br /&gt;
    end&lt;br /&gt;
    if since then&lt;br /&gt;
        since = mw.text.trim( since )&lt;br /&gt;
        if since == &amp;quot;&amp;quot; then&lt;br /&gt;
            since = false&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return Failsafe.failsafe( since )  or  &amp;quot;&amp;quot;&lt;br /&gt;
end -- p.failsafe&lt;br /&gt;
&lt;br /&gt;
p.ClrTbl = function ()&lt;br /&gt;
    -- Module interface&lt;br /&gt;
    return ClrTbl&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;PerfektesChaos</name></author>
	</entry>
</feed>