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