მოდული:Taxobox
Wikimedia module / From Wikipedia, the free encyclopedia
--local Cite = require('Module:Cite') local fb = require('Module:Fallback')
-- vim: set noexpandtab ft=lua ts=4 sw=4:
local ENABLE_DEBUG = true
local p = {} -- module exports local L = {} -- alias to local functions -- (so it can be iterated by p in debug mode) local _linkconfig -- use links from content language Wikipedia -- or from Wikidata, default to Wikidata local _contentlang local usereferences -- array of references to be prefered in the given order local usetaxa -- array of taxa to be preferred in the given order local hideranks -- array of ranks to be show or hide from display local code = false local subcode = false local visited = {}
-- biological nomenclatures NOMENCLATURE_ICZN = 13011 -- Zoo NOMENCLATURE_ICNafp = 693148 -- Algae, Fungi and Plants NOMENCLATURE_ICNCP = 764 -- Cultivated Plants NOMENCLATURE_ICNP = 743780 -- Prokaryota/Bacteria NOMENCLATURE_ICVCN = 14920640 -- Viruses
-- look for taxons for color selection ARCHAEA = 10872 -- ICNP FUNGI = 764 -- ICNafp SAR = 137323 HAROSA = 18397957 -- SAR CHROMALVEOLATA = 477950 -- SAR CHROMISTA = 862296 -- SAR RHIZARIA = 855740 -- SAR AMOEBOZOA = 473809 -- Eukaryota EXCAVATA = 691551 -- Eukaryota EUKARYOTA = 19088
-- background colors for each code local colors = { [false] = '#d3d3d3', [NOMENCLATURE_ICZN] = 'pink', [NOMENCLATURE_ICNafp] = 'lightgreen', [NOMENCLATURE_ICNCP] = 'lightgreen', [NOMENCLATURE_ICNP] = 'lightgrey', [NOMENCLATURE_ICVCN] = 'violet', [ARCHAEA] = '#c3f5fa', [FUNGI] = 'lightblue', [SAR] = '#c8fa50', [HAROSA] = '#c8fa50', [CHROMALVEOLATA] = '#c8fa50', [CHROMISTA] = '#c8fa50', [RHIZARIA] = '#c8fa50', [AMOEBOZOA] = '#f5d7ff', [EXCAVATA] = '#f5d7ff', [EUKARYOTA] = '#f5d7ff', } local virusgroups = { [2901600] = {group = 'I', shortlabel = 'dsDNA'}, [9094469] = {group = 'II', shortlabel = 'ssDNA'}, [3307900] = {group = 'III', shortlabel = 'dsRNA'}, [9094478] = {group = 'IV', shortlabel = 'ssRNA(+)'}, [9285327] = {group = 'V', shortlabel = 'ssRNA(-)'}, [9094482] = {group = 'VI', shortlabel = 'ssRNA-RT'}, [3754200] = {group = 'VII', shortlabel = 'dsDNA-RT'},
[44209729] = {group = nil, shortlabel = 'ssDNA(-)'}, [44209788] = {group = nil, shortlabel = 'ssDNA(+)'}, [44209909] = {group = nil, shortlabel = 'ssDNA(+/-)'}, [209917] = {group = nil, shortlabel = 'Viroid'}, [44209519] = {group = nil, shortlabel = 'ssRNA(+/-)'}, [45181439] = {group = nil, shortlabel = 'ssRNA'}, }
local i18nmessages = require("Module:I18n/taxobox")
-- readable taxon properties local P_IMAGE = "P18" local P_INSTANCE_OF = "P31" local P_TAXON_RANK = "P105" local P_IUCN_STATUS = "P141" local P_TAXON_PARENT = "P171" local P_SPREAD_MAP = "P181" local P_TAXON_NAME = "P225" local P_STATED_IN = "P248" local P_AUTHOR = "P405" local P_AUTHOR_ABBR_IPNI = "P428" local P_ERA_START = "P523" local P_ERA_END = "P524" local P_BASIONYM = "P566" local P_SYNONYM = "P1420" local P_REPLACED_SYNONYM ="P694" local P_ORIGINAL_COMBINATION = "P1403" local P_TAXON_YEAR = "P574" local P_START_TIME = "P580" local P_END_TIME = "P582" local P_EX_AUTHOR = "P697" local P_AUTHOR_ABBR_ZOOLOGY = "P835" local P_NOMENCLATURE_CODE = "P944" local P_COMMON_NAME = "P1843" local P_AUDIO = "P51" local P_INCERTAE_SEDIS = "P678" local P_TAXONOMIC_TYPE = "P427" local P_VIRUS_GENOME = "P4628" local P_SUBJECT_ROLE = "P2868" local P_OF = "P642" local COMMONS_CATEGORY="P373"
-- readable item local CLADE = 713623 local GENUS = 34740 local SUBGENUS = 3238261 local ZOOSECTIO = 10861426 local ZOOSUBSECTIO = 10861375 local RED_DATA_LIST = 32059 local MONOTYPIC_TAXON = 310890 local GEOLOGICAL_ERA = 630830 local SYSTEMATICS = 3516404 local RECOMBINATION = 14594740 local EXTINCT = 237350 local INCERTAE_SEDIS = 235536 local SYNONYM_TAXON = 1040689 local TYPE_GENUS = 842832 local TYPE_SPECIES = 252730 local VIRUS_CLASSIFICATION = 478216 local PROTONYM = 14192851 local BASIONYM = 810198 local FOSSIL_TAXON = 23038290 local ET_AL = 311624
local function capitalize(text)
return mw.ustring.gsub(text, "^%l", mw.ustring.upper)
end
local function mergeTable(a, b)
for _, value in ipairs(b) do
a[#a + 1] = value
end
return a
end
L.mergeTable = mergeTable
-- credit to http://lua-users.org/wiki/StringInterpolation
local function namedStringFormat(str, vars)
-- Allow replace_vars{str, vars} syntax as well as
-- replace_vars(str, {vars})
if not vars then
vars = str
str = vars[1]
end
return (string.gsub(str, "({([^}]+)})",
function(whole,i)
return vars[i] or whole
end))
end
L.namedStringFormat = namedStringFormat
local function setLang(contentlang)
_contentlang = contentlang or mw.language.getContentLanguage():getCode()
end
L.setLang = setLang
local function getLang()
return _contentlang
end
L.getLang = getLang
local function i18n(str)
local message = i18nmessages[str]
if type(message) == 'string' then
return message
end
return fb._langSwitch(message, getLang())
end
L.i18n = i18n
-- parse item-ids like argument (like config[references]) which is a space
-- separated list of item numbers like "Q1 Q2 Q3"
local function parseItemIds(itemids)
local items = {}
local priority = 0
if itemids then
for word in string.gmatch(itemids, "%w+") do
priority = priority + 1
item = "Q" .. tonumber(string.sub(word, 2))
items[item] = priority
end
end
items.size = priority
return items
end
L.parseItemIds = parseItemIds
-- parse config arguments passed by #invode:taxobox. below are all we
-- support currently:
-- - config[lang]: set content language (default: en)
-- - config[count]: maximum count of taxon to be recursively iterated
-- - config[references]: references to be preffered in the given order
-- - config[dryrun]: generate
Taxobox | ||||
---|---|---|---|---|
კლასიფიკაცია მითითებული არ არის! | ||||
| ||||
ლათინური სახელი | ||||
არ არის მითითებული საერთაშორისო სახელწოდება შეგიძლიათ დაეხმაროთ პროექტს, ლათ = სახელი ჩასმით თარგი:ტაქსოდაფის შიგნით სტატიის ტექსტში | ||||