Zum Inhalt springen

Modul:Formatierung

Aus Wikivoyage
Dokumentation für das Modul Formatierung[Ansicht] [Bearbeiten] [Versionsgeschichte] [Aktualisieren]

Dieses Modul enthält Funktionen für Vorlagen zur Textformatierung. Die Funktionen holen sich die Argumente aus der Vorlage und müssen beim Modulaufruf nicht nochmals übergeben werden. Vergessene Parameter werden mit Standardwerten belegt, unbekannte Parameter werden als Fehlermeldung zusätzlich mit im Artikel ausgegeben.

Allgemein gültige Parameter

Die allgemein gültigen Parameter kann man sowohl innerhalb der Vorlage in der Parserfunktion invoke benutzen, als auch innerhalb des Artikels der Vorlage selbst übergeben. Der Paramter, der bei der Einbindung der Vorlage benutzt wird, hat dabei Vorrang. So kann man bestimmte Funktionalitäten für den generellen Gebrauch der Vorlage aktivieren (über invoke) und im Einzelfall im Artikel abschalten (bei der Verwendung der Vorlage).

  • |ignore_errors= auf 1 oder true gesetzt, werden die Ausgabe der Fehlermeldungen der Funktionen unterdrückt. Standardmäßig werden die Fehler angezeigt.
  • |no_category= auf 1 oder true gesetzt, werden die Artikel bei Fehlermeldungen des Moduls einer Fehlerkategorie zugeordnet. Standardmäßig werden Fehlermeldungen in die Kategorie Fehlerberichte des Moduls Formatierung eingefügt. Wurden unbekannte Parameter verwendet landen die Artikel zusätzlich in der Kategorie Vorlagen mit unbekannten Parametern.
  • |error_category= gibt den Namen einer Fehlerkategorie an, in der der Artikel bei auftretenden Fehlern einsortiert wird. Standardmäßig ist das Fehlerberichte des Moduls Formatierung.

Submodule

  • Modul:Formatierung/Params – enthält ein mehrdimensionales Array mit allen erlaubten Parametern für jede Funktion/Vorlage und ihre Standardbelegung.

Vorlagen

  • Verwendung: Erzeugt rund um den übergebenen Text einen Kreis.
  • Syntax: {{Text im Kreis|Text|border-color=Kreisfarbe|text-color=Textfarbe|background-color=Hintergrundfarbe|styles=zusätzliche CSS-Stilanweisungen}}
  • Lua-Funktion: p.text_im_kreis
Hinweise
local htmlBuilder = require('Modul:HtmlBuilder')
local check = require('Modul:Check2')

local p = {}

function p.arguments ( qbFrame , qbParams, qbOption  )
	argsParent = qbFrame:getParent().args
	argsFrame = qbFrame.args
 
	local value = argsParent[qbOption]
	if value == nil then value = argsFrame[qbOption] end
	if value == nil then value = qbParams[qbOption] end
 
	return value
end

function p.text_im_kreis ( frame )
	
	params = mw.loadData('Modul:Formatierung/Params')
	funcParams = params['text_im_kreis']
	
	-- Modul zur HTML-Erzeugung einbinden
	local display = htmlBuilder.create()

	-- Argumente holen, die der Vorlage übergeben wurden
	args = frame:getParent().args

	-- Argumente auswerten, auf Vorhandensein prüfen und ggf. mit Standardwerten belegen
	local content = args[1]
	if content == nil then content = '1' end
	local border_color = p.arguments ( frame, funcParams, 'border_color')
	local background_color = p.arguments ( frame, funcParams, 'background_color')
	local text_color = p.arguments ( frame, funcParams, 'text_color')
	local styles = p.arguments ( frame, funcParams, 'styles')
	
	-- lokale Variablen initiieren
	local padding = ''

	-- Padding entsprechend Textlänge festlegen
	if string.len (content) == 0 then content = '1' end
	if string.len (content) == 1 then padding = '0.05em 0.3em 0.05em 0.3em' else padding = '0.1em 0.2em 0.1em 0.1em' end

	-- Inhalt erzeugen
	display
		.tag ( 'div' )
		.css ( 'display', 'inline' )
		.css ( 'border', '2px solid ' .. border_color )
		.css ( 'background', background_color )
		.css ( 'color', text_color )
		.css ( 'border-radius', '10em' )
		.css ( '-moz-border-radius', '10em' )
		.css ( '-webkit-border-radius', '10em' )
		.css ( '-khtml-border-radius', '10em' )
		.css ( '-o-border-radius', '10em' )
		.css ( 'font-weight', 'bold' )
		.css ( 'padding', padding )
		.cssText ( styles )
		.wikitext ( content )

	-- Fehlertext und Ausgabe zurückgeben
	return check._testParams ( args, funcParams, 'Formatierung' ) .. tostring ( display )

end

return p