Modul:Vorlage:IUCN
Die Dokumentation für dieses Modul kann unter Modul:Vorlage:IUCN/Doku erstellt werden
--[[
Modul für Hilfsfunktionen für Vorlage:IUCN
]]
TAG_ITALIC_START = '<span style="font-style:italic;">'
TAG_ITALIC_END = '</span>'
local p = { }
function p.formatScientificName(frame)
--[[
Wissenschaftlichen Namen für Arten und UNterarten formatieren (Kursivsetzung der pseudolateinischen Namensbestandteile)
Parameter:
* Unfomrmatierter wissenschaftlicher Name wie auf der IUCN-Seite angegeben
]]
local sciname_pure = frame.args[1]
sciname_pure = mw.ustring.gsub(sciname_pure, "''", "") -- Eventuelle Eigenformatierungen sicherheitshalber entfernen
local sciname_parts = mw.text.split(sciname_pure, "%s")
-- Teile, die Unterarten bzw. Varietäten kennzeichnen
local tab_keywords_subsp = { ["ssp."] = true
, ["subsp."] = true
, ["var."] = true
}
local anz_italic_parts_left = 2 -- Normalfall: Für Arten werden 2 Teile (die nicht mit Punkten enden) kursiv gesetzt
for key, part in ipairs(sciname_parts) do
local first_char = mw.ustring.sub(part, 1, 1)
local last_char = mw.ustring.sub(part, -1, -1)
if tab_keywords_subsp[part] == true then
anz_italic_parts_left = anz_italic_parts_left + 1 -- Unterart hat zus. Teil
end
if last_char ~= '.' then
if anz_italic_parts_left > 0 then
if first_char ~= "'" and last_char ~= "'" then -- siehe Pantanodon sp. nov. 'Manombo'
part = TAG_ITALIC_START .. part .. TAG_ITALIC_END
sciname_parts[key]=part
end
anz_italic_parts_left = anz_italic_parts_left - 1
end
end
end
local sciname_formatted = table.concat(sciname_parts, " ") -- wieder zusammensetzen
return sciname_formatted
end
return p