Modul:Politisk parti
Skabelonløkke fundet: Modul:Politisk parti/dok
Modul:Politisk parti bruges til at hente standardiserede oplysninger om politiske partier på dansk Wikipedia. Modulet benyttes bl.a. af ValgInfoboks og andre skabeloner, der kræver partifarver, forkortelser og kortnavne.
Funktion
[rediger kildetekst]Modulet giver adgang til oplysninger via funktionen fetch eller den interne funktion _fetch.
Den finder automatisk partiets data i de relevante under-moduler:
Modul:Politisk parti/AModul:Politisk parti/B- …
Modul:Politisk parti/ØModul:Politisk parti/Å
Modulet håndterer også aliaser via alternate-tabeller (fx Socialdemokraterne → Socialdemokratiet).
Tilgængelige felter
[rediger kildetekst]Et opslag kan returnere følgende oplysninger:
color– partiets officielle farve (HTML-hex eller farvenavn)abbrev– partiets bogstavshortname– kort navn til visning i tabellercolour– alias forcolor- Fallbacks træder i kraft hvis data mangler
Brug
[rediger kildetekst]Simpel brug
[rediger kildetekst]Hent en farve for et parti:
{{#invoke:Politisk parti|fetch|Socialdemokratiet|color}}
Kortnavn:
{{#invoke:Politisk parti|fetch|Venstre|shortname}}
Med fejlbesked
[rediger kildetekst]{{#invoke:Politisk parti|fetch|Det Findes Ikke|color|error=Ukendt parti}}
Eksempler
[rediger kildetekst]Eksempel 1: Standard farve
[rediger kildetekst]{{#invoke:Politisk parti|fetch|Socialdemokratiet|color}}
Eksempel 2: Alias
[rediger kildetekst]{{#invoke:Politisk parti|fetch|Socialdemokraterne|color}}
Eksempel 3: Kortnavn og bogstav
[rediger kildetekst]{{#invoke:Politisk parti|fetch|Enhedslisten|shortname}}
{{#invoke:Politisk parti|fetch|Enhedslisten|abbrev}}
Fallbacks
[rediger kildetekst]Modulet håndterer manglende felter automatisk:
- Manglende farve
• Returnerer #F8F9FA (infoboks-baggrund)
- Manglende shortname
• Returnerer partiets bogstav eller partinavn
- Manglende abbrev
• Returnerer kortnavn eller partinavn
Fejlkategorier
[rediger kildetekst]Modulet kategoriserer sider automatisk, hvis nødvendige oplysninger mangler:
Pages using Political party with unknown partyPages using Political party with missing shortnamePages using Political party with missing color
Moduloversigt
[rediger kildetekst]Modulet består af følgende:
-- hent modul-data
p._fetch(args)
-- wrapper til skabelonbrug
p.fetch(frame)
Se også
[rediger kildetekst]Data sider
[rediger kildetekst]- Politisk parti/A
- Politisk parti/B
- Politisk parti/C
- Politisk parti/D
- Politisk parti/E
- Politisk parti/F
- Politisk parti/G
- Politisk parti/H
- Politisk parti/I
- Politisk parti/J
- Politisk parti/K
- Politisk parti/L
- Politisk parti/M
- Politisk parti/N
- Politisk parti/O
- Politisk parti/P
- Politisk parti/Q
- Politisk parti/R
- Politisk parti/S
- Politisk parti/T
- Politisk parti/U
- Politisk parti/V
- Politisk parti/W
- Politisk parti/X
- Politisk parti/Y
- Politisk parti/Z
local p = {}
local yesno = require('Module:Yesno')
local args = {}
local default_color = '#F8F9FA'
local categories = {
party_not_in_list = '[[Category:Pages using Political party with unknown party]]',
shortname_not_in_list = '[[Category:Pages using Political party with missing shortname]]',
color_not_in_list = '[[Category:Pages using Political party with missing color]]',
}
-- Hjælp til fejlvisning
local function create_error(error_message)
return string.format('<strong class="error">%s</strong>', error_message)
end
-- Første bogstav i partinavn (til submodul-navn)
local function getFirstLetter(party)
local index = mw.ustring.sub(party, 1, 1)
if string.match(index, '%A') then
return '1' -- ikke-bogstaver
end
return string.upper(index)
end
-- Trim, delink og fjern ekstra whitespace
local function stripToNil(text)
if type(text) == 'string' then
local delink = require('Modul:Delink')._delink
text = text:match('(%S.-)%s*$')
text = delink({ text, wikilinks = "target" })
text = mw.text.trim(text)
end
return text
end
-- Normaliser partinavne til sammenligninger
local function normalizePartyName(name)
if not name then return nil end
name = mw.ustring.lower(name)
name = mw.text.trim(name)
name = mw.ustring.gsub(name, '%s+', ' ')
name = mw.ustring.gsub(name, '%s*%(', '(')
name = mw.ustring.gsub(name, '%)%s*', ')')
name = mw.ustring.gsub(name, '[’‘`]', "'")
return name
end
-- Find party info i alle moduler
local function findPartyInfo(party)
local party_norm = normalizePartyName(party)
local index = getFirstLetter(party)
local data = mw.loadData('Modul:Politisk parti/' .. index)
-- Direkt match
if data.full and data.full[party] then
return data.full[party]
end
-- Alias match
for alias, real in pairs(data.alternate or {}) do
if normalizePartyName(alias) == party_norm then
if data.full[real] then
return data.full[real]
end
end
end
return nil
end
-- Hovedfunktion
function p._fetch(args)
if not args[1] then return create_error("parameter 1 should be a party name.") end
if not args[2] then return create_error("parameter 2 should be the output type.") end
local party = stripToNil(args[1])
local out_type = stripToNil(args[2])
if out_type == 'colour' then out_type = 'color' end
local party_info = findPartyInfo(party)
-- Hvis intet fundet
if not party_info then
if out_type == 'color' then
return args.error or default_color
else
return args.error or party
end
end
-- Hent ønsket felt
local return_value = party_info[out_type]
-- Håndter tomme felter
if return_value == "" or return_value == nil then
if out_type == 'color' then
return args.error or create_error("Value not in template. Please request that it be added.")
elseif out_type == 'abbrev' then
return (party_info.shortname ~= "" and party_info.shortname) or party
elseif out_type == 'shortname' then
return (party_info.abbrev ~= "" and party_info.abbrev) or party
else
return party
end
end
-- HTML-sikker farvekode
if out_type == 'color' and string.find(return_value, '#') then
return_value = string.gsub(return_value, '#', '#')
end
return return_value
end
-- Wrapper til Frame
function p.fetch(frame)
local getArgs = require("Modul:Arguments").getArgs
local args = getArgs(frame)
return p._fetch(args)
end
return p