<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.nationen.org/w/index.php?action=history&amp;feed=atom&amp;title=Modul%3AVorlage%3AStandardfarbe</id>
	<title>Modul:Vorlage:Standardfarbe - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.nationen.org/w/index.php?action=history&amp;feed=atom&amp;title=Modul%3AVorlage%3AStandardfarbe"/>
	<link rel="alternate" type="text/html" href="https://wiki.nationen.org/w/index.php?title=Modul:Vorlage:Standardfarbe&amp;action=history"/>
	<updated>2026-04-17T11:33:01Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Enzyklopädie der Nationen</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.nationen.org/w/index.php?title=Modul:Vorlage:Standardfarbe&amp;diff=72&amp;oldid=prev</id>
		<title>Bigbrother: 1 Version importiert</title>
		<link rel="alternate" type="text/html" href="https://wiki.nationen.org/w/index.php?title=Modul:Vorlage:Standardfarbe&amp;diff=72&amp;oldid=prev"/>
		<updated>2026-01-07T16:30:19Z</updated>

		<summary type="html">&lt;p&gt;1 Version importiert&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 7. Januar 2026, 18:30 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;de&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(kein Unterschied)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wikinationenorg:diff:1.41:old-71:rev-72 --&gt;
&lt;/table&gt;</summary>
		<author><name>Bigbrother</name></author>
	</entry>
	<entry>
		<id>https://wiki.nationen.org/w/index.php?title=Modul:Vorlage:Standardfarbe&amp;diff=71&amp;oldid=prev</id>
		<title>de&gt;Hgzh: fix</title>
		<link rel="alternate" type="text/html" href="https://wiki.nationen.org/w/index.php?title=Modul:Vorlage:Standardfarbe&amp;diff=71&amp;oldid=prev"/>
		<updated>2025-04-01T13:32:16Z</updated>

		<summary type="html">&lt;p&gt;fix&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- module table&lt;br /&gt;
local Standardfarbe = {&lt;br /&gt;
	config = {&lt;br /&gt;
		colorJSON = &amp;quot;Vorlage:Standardfarbe/colors.json&amp;quot;,&lt;br /&gt;
		errorOutput = &amp;quot;&amp;lt;span class=\&amp;quot;error\&amp;quot;&amp;gt;Fehler in [[Vorlage:Standardfarbe]]: %s&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	colors = { },&lt;br /&gt;
	serial = &amp;quot;&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
local Failsafe = Standardfarbe&lt;br /&gt;
&lt;br /&gt;
Standardfarbe.formatError = function ( message )&lt;br /&gt;
	-- format error message&lt;br /&gt;
	-- parameters:&lt;br /&gt;
	--   message: (string) raw error message&lt;br /&gt;
	-- returns:&lt;br /&gt;
	--   (string) formatted error message&lt;br /&gt;
	return string.format( Standardfarbe.config.errorOutput, message )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Standardfarbe.iterateColorGroup = function ( group, key )&lt;br /&gt;
	-- return color value&lt;br /&gt;
	-- parameters:&lt;br /&gt;
	--   group: (table) color group&lt;br /&gt;
	--   key:   (string) key to find&lt;br /&gt;
	-- returns:&lt;br /&gt;
	--   (bool, table) color block found, color block table&lt;br /&gt;
	&lt;br /&gt;
	for _, block in ipairs( group ) do&lt;br /&gt;
		for _, k in ipairs( block.keys ) do&lt;br /&gt;
			if k == key then&lt;br /&gt;
				return true, block.colors&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return false, {}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Standardfarbe.loadColorsJson = function ( page )&lt;br /&gt;
	-- load colors from json page&lt;br /&gt;
	-- parameters:&lt;br /&gt;
	--   page: (string) path to color json page&lt;br /&gt;
	-- returns:&lt;br /&gt;
	--   (bool) true or false by success/fault&lt;br /&gt;
	&lt;br /&gt;
	local success, c = pcall( mw.loadJsonData, page )&lt;br /&gt;
	if type( c ) == &amp;quot;table&amp;quot; then&lt;br /&gt;
		Standardfarbe.colors = c&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return success&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Standardfarbe.getColor = function ( group, key, mode, ucase )&lt;br /&gt;
	-- return color value&lt;br /&gt;
	-- parameters:&lt;br /&gt;
	--   group:  (string) color group&lt;br /&gt;
	--   key:    (string) color key&lt;br /&gt;
	--   mode:   (string) display mode&lt;br /&gt;
	--   ucase:  (bool)   uppercase color codes&lt;br /&gt;
	-- returns:&lt;br /&gt;
	--   (string) hex color code&lt;br /&gt;
	&lt;br /&gt;
	local blockColors -- colors in block&lt;br /&gt;
	local groupColors -- colors in group&lt;br /&gt;
	local found       -- color block found&lt;br /&gt;
	local color       -- color value&lt;br /&gt;
&lt;br /&gt;
	-- load defined colors&lt;br /&gt;
	if Standardfarbe.loadColorsJson( Standardfarbe.config.colorJSON ) == false then&lt;br /&gt;
		return &amp;quot;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- find color group&lt;br /&gt;
	groupColors = Standardfarbe.colors[group]&lt;br /&gt;
	if type( groupColors ) ~= &amp;quot;table&amp;quot; then&lt;br /&gt;
		return Standardfarbe.formatError( &amp;quot;color group not found&amp;quot; )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- find color block with key&lt;br /&gt;
	found, blockColors = Standardfarbe.iterateColorGroup( groupColors, key )&lt;br /&gt;
	if found == false then&lt;br /&gt;
		return Standardfarbe.formatError( &amp;quot;color key not found&amp;quot; )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- find color in block&lt;br /&gt;
	if mode == &amp;quot;&amp;quot; then&lt;br /&gt;
		mode = &amp;quot;light&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	color = blockColors[mode]&lt;br /&gt;
	if color == nil then&lt;br /&gt;
		color = blockColors[&amp;quot;light&amp;quot;]&lt;br /&gt;
		if color == nil then&lt;br /&gt;
			return Standardfarbe.formatError( &amp;quot;no matching color mode&amp;quot; )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- uppercase, if wanted&lt;br /&gt;
	if ucase then&lt;br /&gt;
		color = string.upper( color )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- return color value&lt;br /&gt;
	return color&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- export table&lt;br /&gt;
local p = { }&lt;br /&gt;
&lt;br /&gt;
p.outputDefinedColors = function ( frame )&lt;br /&gt;
	-- return wikitable with defined colors&lt;br /&gt;
	-- parameters:&lt;br /&gt;
	--   frame: (table) wiki environment frame&lt;br /&gt;
	-- returns:&lt;br /&gt;
	--   (string) wikitable code&lt;br /&gt;
	&lt;br /&gt;
	local wtbmain -- main wikitable&lt;br /&gt;
	local wtbhead -- wikitable head&lt;br /&gt;
	local wtbrow  -- color row&lt;br /&gt;
	local wtbcol  -- color cell&lt;br /&gt;
	local keys    -- color keys&lt;br /&gt;
	local count   -- color count&lt;br /&gt;
&lt;br /&gt;
	-- load defined colors&lt;br /&gt;
	if Standardfarbe.loadColorsJson( Standardfarbe.config.colorJSON ) == false then&lt;br /&gt;
		return &amp;quot;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- create wikitable&lt;br /&gt;
	wtbmain = mw.html.create( &amp;quot;table&amp;quot; ):addClass( &amp;quot;wikitable&amp;quot; )&lt;br /&gt;
	&lt;br /&gt;
	-- create headline&lt;br /&gt;
	wtbhead = mw.html.create( &amp;quot;tr&amp;quot; )&lt;br /&gt;
		:node( mw.html.create( &amp;quot;th&amp;quot; ):wikitext( &amp;quot;Gruppe&amp;quot; ):attr( &amp;quot;rowspan&amp;quot;, 2 ) )&lt;br /&gt;
		:node( mw.html.create( &amp;quot;th&amp;quot; ):wikitext( &amp;quot;Schlüssel&amp;quot; ):attr( &amp;quot;rowspan&amp;quot;, 2 ) )&lt;br /&gt;
		:node( mw.html.create( &amp;quot;th&amp;quot; ):wikitext( &amp;quot;Farbe/Modus&amp;quot; ):attr( &amp;quot;colspan&amp;quot;, 4 ) )&lt;br /&gt;
	wtbmain:node( wtbhead )&lt;br /&gt;
	wtbhead = mw.html.create( &amp;quot;tr&amp;quot; )&lt;br /&gt;
		:node( mw.html.create( &amp;quot;th&amp;quot; ):wikitext( &amp;quot;Hell&amp;quot; ):attr( &amp;quot;colspan&amp;quot;, 2 ) )&lt;br /&gt;
		:node( mw.html.create( &amp;quot;th&amp;quot; ):wikitext( &amp;quot;Dunkel&amp;quot; ):attr( &amp;quot;colspan&amp;quot;, 2 ) )&lt;br /&gt;
	wtbmain:node( wtbhead )&lt;br /&gt;
	&lt;br /&gt;
	-- create lines for colors in groups&lt;br /&gt;
	for group, groupColors in pairs( Standardfarbe.colors ) do&lt;br /&gt;
		count = 0&lt;br /&gt;
		for _, _ in ipairs( groupColors ) do&lt;br /&gt;
			count = count + 1	&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		for i, color in ipairs( groupColors ) do&lt;br /&gt;
			wtbrow = mw.html.create( &amp;quot;tr&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
			-- create first cell that has the group name&lt;br /&gt;
			if i == 1 then&lt;br /&gt;
				wtbrow:node( mw.html.create( &amp;quot;td&amp;quot; ):attr( &amp;quot;rowspan&amp;quot;, count ):wikitext( group ) )&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			-- color keys&lt;br /&gt;
			keys = &amp;quot;&amp;quot;&lt;br /&gt;
			for _, key in ipairs( color.keys ) do&lt;br /&gt;
				code = mw.html.create( &amp;quot;code&amp;quot; ):wikitext( key )&lt;br /&gt;
				keys = keys .. tostring( code ) .. &amp;quot; &amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
			wtbrow:node( mw.html.create( &amp;quot;td&amp;quot; ):wikitext( keys ) )&lt;br /&gt;
			&lt;br /&gt;
			-- colors&lt;br /&gt;
			wtbcol = mw.html.create( &amp;quot;td&amp;quot; ):wikitext( &amp;quot;#&amp;quot; .. color.colors[&amp;quot;light&amp;quot;] )&lt;br /&gt;
			if color.colors[&amp;quot;dark&amp;quot;] == nil then&lt;br /&gt;
				wtbcol:attr( &amp;quot;colspan&amp;quot;, 3 )&lt;br /&gt;
				wtbcol:css( &amp;quot;text-align&amp;quot;, &amp;quot;center&amp;quot; )&lt;br /&gt;
			end&lt;br /&gt;
			wtbrow:node( wtbcol )&lt;br /&gt;
			wtbrow:node( mw.html.create( &amp;quot;td&amp;quot; ):css( &amp;quot;background-color&amp;quot;, &amp;quot;#&amp;quot; .. color.colors[&amp;quot;light&amp;quot;] ):wikitext(&amp;quot;&amp;amp;nbsp;&amp;quot;) )&lt;br /&gt;
			&lt;br /&gt;
			if color.colors[&amp;quot;dark&amp;quot;] ~= nil then&lt;br /&gt;
				wtbrow:node( mw.html.create( &amp;quot;td&amp;quot; ):wikitext( &amp;quot;#&amp;quot; .. color.colors[&amp;quot;dark&amp;quot;] ) )&lt;br /&gt;
				wtbrow:node( mw.html.create( &amp;quot;td&amp;quot; ):css( &amp;quot;background-color&amp;quot;, &amp;quot;#&amp;quot; .. color.colors[&amp;quot;dark&amp;quot;] ):wikitext(&amp;quot;&amp;amp;nbsp;&amp;quot;) )&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			-- add current row to table&lt;br /&gt;
			wtbmain:node( wtbrow )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- return wikitable&lt;br /&gt;
	return tostring( wtbmain )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.f = function ( frame )&lt;br /&gt;
	-- return color value, access from templates&lt;br /&gt;
	-- parameters:&lt;br /&gt;
	--   frame: (table) wiki environment frame&lt;br /&gt;
	-- returns:&lt;br /&gt;
	--   (string) hex color code&lt;br /&gt;
	&lt;br /&gt;
	local args	 -- arguments of template call&lt;br /&gt;
	local group  -- color group&lt;br /&gt;
	local key    -- color key&lt;br /&gt;
	local mode   -- display mode&lt;br /&gt;
	local ucase  -- uppercase color values&lt;br /&gt;
	local nowiki -- enclose in nowiki tags&lt;br /&gt;
	&lt;br /&gt;
	-- get template parameters&lt;br /&gt;
	args   = frame:getParent().args&lt;br /&gt;
	group  = args[1] or &amp;quot;&amp;quot;&lt;br /&gt;
	key    = args[2] or &amp;quot;&amp;quot;&lt;br /&gt;
	mode   = args[&amp;quot;mode&amp;quot;] or &amp;quot;light&amp;quot;&lt;br /&gt;
	ucase  = ( args[&amp;quot;ucase&amp;quot;] == &amp;quot;1&amp;quot; )&lt;br /&gt;
	nowiki = ( args[&amp;quot;nowiki&amp;quot;] == &amp;quot;1&amp;quot; )&lt;br /&gt;
	&lt;br /&gt;
	-- call main and return&lt;br /&gt;
	local success, r = pcall( Standardfarbe.getColor, group, key, mode, ucase )&lt;br /&gt;
	if not success then&lt;br /&gt;
		return Standardfarbe.formatError( &amp;quot;color call failed&amp;quot; )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- apply nowiki&lt;br /&gt;
	if nowiki then&lt;br /&gt;
		r = frame:extensionTag( &amp;quot;nowiki&amp;quot;, r )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- return&lt;br /&gt;
	return r&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
setmetatable( p,  { __call = function ( func, ... )&lt;br /&gt;
                                 setmetatable( p, nil )&lt;br /&gt;
                                 return Failsafe&lt;br /&gt;
                             end } )&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>de&gt;Hgzh</name></author>
	</entry>
</feed>