Модул:Taxonomy/classification
Ин модул ҳуҷҷатгузории кофӣ надорад. Вы можете помочь проекту, создав описание модуля: что он делает, как его использовать, какие параметры он принимает, в какие категории добавляет. Это поможет другим использовать его. P.S. Также не забываем про категорию и интервики. P.P.S. Некоторые советы по оформлению есть на странице проекта «Документирование шаблонов». |
local p = {}local Taxonomy_latin = require("Module:Taxonomy/latin")local Rangs = { --классификация рангов Osn = "/Домен/Реалм/Царство/Тип/Отдел/Класс/Отряд/Порядок/Семейство/Род/Вид/Ихнород/Ихновид/", --основные Prom = "/Субреалм/Подцарство/Надтип/Надотдел/Подтип/Подотдел/Инфратип/Надкласс/Подкласс/Инфракласс/Надотряд/Надпорядок/Подотряд/Подпорядок/Инфраотряд/Надсемейство/Подсемейство/Надтриба/Триба/Подтриба/Раздел/Подраздел/Подрод/Надсекция/Секция/Подсекция/Ряд/Подряд/Комплекс видов/Подвид/Вариетет/Разновидность/Подразновидность/Форма/Подформа/Наддомен/", --промежуточные Bez = "/Группа/Клада/Без ранга/", Ich = "/Ихнород/Ихновид/", --ихнотаксоны Err = "'''???'''", --в случае, если ранг не заполнен Spec = "/Вид/Подвид/Вариетет/Разновидность/Подразновидность/Форма/Подформа/Ихновид/Штамм/Биовар/Биотип/Cеровар/Серотип/Изолят/" --вид и ниже}local RangColors = {Osn = "inherit", Prom = "#007878", Dop = "DarkRed", Bez = "#6F6F00", Ich = "DarkViolet", Err = "Red"}local regnumlocal function RangClass(rang) -- class=NavContent для сворачивания всех неосновных рангов return (string.find(Rangs.Osn, "/" .. rang .. "/", 1, true) or (rang == Rangs.Err)) and "" or "class=NavContent"endlocal function RangColor(rang) -- эта функция возвращает цвет ранга (то же, что шаблон Rang/color) local srang = "/" .. rang .. "/" return (string.find(Rangs.Ich, srang, 1, true) and RangColors.Ich) or (string.find(Rangs.Osn, srang, 1, true) and RangColors.Osn) or (string.find(Rangs.Prom, srang, 1, true) and RangColors.Prom) or (string.find(Rangs.Bez, srang, 1, true) and RangColors.Bez) or ((rang == Rangs.Err) and RangColors.Err) or RangColors.Dopendlocal function NameString(args, last) -- форматирует название таксона local latlink = string.gsub(args.latin, " *|.*", "", 1) local latname = string.gsub(args.latin, ".*| *", "", 1) latname = "''" .. latname .. "''" local name = (args.name ~= "") and args.name or latname if last then return "'''" .. name .. "'''" elseif (args.monoaut == "") then return "[[" .. latlink .. "|" .. name .. "]]" else local aut = (args.monoaut == "1") and "" or " " .. Taxonomy_latin.author {args = {args.monoaut}} if args.name == "" then return "'''" .. name .. "'''" .. aut else return "'''" .. name .. "'''" .. " (" .. latname .. aut .. ")" end endendlocal function TaxString(args, last) -- форматирует строку классификации вида "Ранг: Таксон" (то же что шаблон TaxString)args.rang = mw.ustring.gsub(args.rang, ".", mw.ustring.upper, 1) -- на всякий случай первую букву делаем прописнойlocal rang = (args.rang ~= "") and args.rang or Rangs.Errreturn "<div " .. (last and "" or RangClass(rang)) .. ">" .. "<table width=100% cellpadding=0 cellspacing=0>" .. "<tr>" .. "<td class='ts-Taxonomy-rang-label' style='color:" .. RangColor(rang) .. "'>" .. rang .. ":</td>" .. "<td class='ts-Taxonomy-rang-name'>" .. ((args.ext ~= "") and "† " or "") .. NameString(args, last) .. (args.ref or "") .. "</td>" .. "</tr></table></div>"endlocal function NoTaxTempl(taxon)return '[[Шаблон:Таксон#Сомонаи новбарии орояшинохтӣ|шаблони орояшинохтӣ]] нест' .. mw.getCurrentFrame():expandTemplate({title = 'RedTaxLink', args = {taxon}})endlocal function ErrorText(text)return '<div style="background-color:Gainsboro;font-size:85%;color:Dimgray">ХАТО: ' .. text .. '</div>\n' .. ((mw.title.getCurrentTitle().namespace == 0) and "[[Гурӯҳ:Википедия:Мақолаҳои зистшинохтӣ бидуни таксошаблон]]" or "")endlocal function FormatOutput(text, ok)return '<div class="NavFrame' .. (ok and ' collapsed' or '') .. '" style="background-color: transparent; border:0;">' .. (ok and string.find(text, "NavContent", 1, true) and '<div class="NavHead nomobile" style="background-color: transparent; border:0;"><small style="display:block; margin-bottom:-15px;">рутбаҳои мобайнӣ</small></div>' or '' ) .. text .. '</div>'endlocal function getTaxPar(frame, taxon, parName) return mw.text.trim(frame:expandTemplate({title = taxon, args = {parName}}))endfunction p.TaxRecursion(frame) local i = 0 local args = {} local res = "" local taxon = frame.args["latin"] or "" regnum = frame.args["regnum"] if (taxon == "") then return ErrorText("параметри '''<big>latin</big>''' пур нашудааст.") end local ok, parent local lastTemplate = mw.title.new("Шаблон:" .. taxon) if lastTemplate and lastTemplate.exists then ok, parent = pcall(getTaxPar, frame, taxon, "parent") end if ok then -- есть шаблон {{{latin}}}, берём оттуда args = { latin = getTaxPar(frame, taxon, "latin"), rang = getTaxPar(frame, taxon, "rang"), ext = getTaxPar(frame, taxon, "ext"), name = getTaxPar(frame, taxon, "name"), } else -- шаблони {{{latin}}} нест, аз параметрҳо бигиред parent = frame.args["parent"] or "" args = { latin = frame.args["latin"], rang = frame.args["rang"] or "", ext = frame.args["Вымер"] or "", name = frame.args["name"] or "", } if (parent == "") then if ((args.rang == "") or string.find(Rangs.Spec, "/" .. args.rang .. "/", 1, true)) then res = ErrorText("Параметрҳои '''<big>parent</big>''' ва '''<big>rang</big>'''ро бояд пур кунед.") else res = ErrorText(NoTaxTempl(taxon) .. ". Параметрҳои '''<big>parent</big>''' ва '''<big>rang</big>'''ро пур кунед.") end return FormatOutput(res .. TaxString(args, "last"), false) end end res = TaxString(args, "last") local taxlist = {} while (parent ~= "Null") and (i < 100) do i = i + 1 taxon = parent taxlist[taxon] = true ok, parent = pcall(getTaxPar, frame, taxon, "parent") if not ok then -- error: no template res = ErrorText(NoTaxTempl(taxon) .. ", который должен описывать систематическое положение таксона ''[[" .. taxon .. "]]''.") .. res return FormatOutput(res, false) end if taxlist[parent] then -- error: loop res = ErrorText("обнаружена петля — [[Шаблон:Таксон#Система таксономической навигации|таксономический шаблон]] {{[[Шаблон:" .. taxon .. "|" .. taxon .. "]]}} ссылается на свой подчинённый таксон.") .. res return FormatOutput(res, false) end args = { latin = getTaxPar(frame, taxon, "latin"), rang = getTaxPar(frame, taxon, "rang"), ext = getTaxPar(frame, taxon, "ext"), name = getTaxPar(frame, taxon, "name"), monoaut = getTaxPar(frame, taxon, "monoaut"), ref = getTaxPar(frame, taxon, "ref"), } args.ref = (args.ref ~= "") and frame:extensionTag {name = "ref", content = args.ref} res = TaxString(args) .. res end return FormatOutput(res, ok)endreturn p
🔥 Top keywords: Саҳифаи аслӣПардаарӯсакКонститутсияи ТоҷикистонВижа:ҶустуҷӯИттиҳоди ШӯравӣКонвенсияи ҳуқуқи кудакАлюминийАтомҲуқуқ ва озодиҳои инсон ва шаҳрвандСозмони Милали МуттаҳидДавлати СомониёнТоҷикистонЭъломияҚоидаҳои имлои забони тоҷикӣКонститутсияи ҶШС ТоҷикистонРӯзи ваҳдати миллӣ (Тоҷикистон)Ҷумҳурии Шӯравии Сотсиалистии ТоҷикистонТаърихи ТоҷикистонАҳолии ТоҷикистонМаҷмаи Умумии Созмони Милали МуттаҳидҶумҳурии Мухтори Шӯравии Сотсиалистии ТоҷикистонЗаминВижа:Тағйироти охиринСаноати ТоҷикистонСадриддин АйнӣҶанги ҷаҳонии дувумИёлоти Муттаҳидаи АмрикоПрезиденти ТоҷикистонАлифбои тоҷикӣЗахираҳои табиъии ТоҷикистонФеъл (дастури забон)ФизикаНатурализатсияВикипедиа:Ошноӣ бо донишномаДавлатВилояти СуғдАбуҳанифа Нуъмон ибни СобитАгентии назорати давлатии молиявӣ ва мубориза бо коррупсияи Ҷумҳурии ТоҷикистонҲизбҳои сиёсии Тоҷикистон