„Modul:CactaceaeTaxonok” változatai közötti eltérés
Megjelenés
Nincs szerkesztési összefoglaló |
Nincs szerkesztési összefoglaló |
||
| 1. sor: | 1. sor: | ||
local p = {} | local p = {} | ||
-- | -- Gyorsított formázó: csak akkor fut le, ha a sor megjelenítésre kerül | ||
local function formazSzinonimak(szoveg) | local function formazSzinonimak(szoveg) | ||
if not szoveg or szoveg == "" then return "" end | if not szoveg or szoveg == "" then return "" end | ||
local tiszta = | |||
-- Gyorsabb karaktercsere | |||
tiszta = | local tiszta = szoveg:gsub("[đ÷]", ""):gsub("¤+", "") | ||
tiszta = tiszta:gsub(">−", "−"):gsub(">≡", "≡"):gsub(">=", "=") | |||
tiszta = | tiszta = tiszta:gsub("≡≡", "|≡"):gsub("==", "|="):gsub("−−", "|−"):gsub("%%-%%-", "|−") | ||
local lista_elemek = {} | local lista_elemek = {} | ||
local reszek = mw.text.split(tiszta, "|", true) | local reszek = mw.text.split(tiszta, "|", true) | ||
for | |||
local tiszta_resz = mw.text.trim( | for i=1, #reszek do | ||
local tiszta_resz = mw.text.trim(reszek[i]) | |||
if tiszta_resz ~= "" then | if tiszta_resz ~= "" then | ||
-- Hatékonyabb dőltetés | |||
local formazott = "''" .. tiszta_resz .. "''" | local formazott = "''" .. tiszta_resz .. "''" | ||
formazott = formazott:gsub("≡", "''≡''"):gsub("=", "''=''"):gsub("−", "''−''") | formazott = formazott:gsub("≡", "''≡''"):gsub("=", "''=''"):gsub("−", "''−''") | ||
formazott = formazott:gsub("Type:", "''Type:''"):gsub("var%.", "''var.''"):gsub("subsp%.", "''subsp.''"):gsub("f%.", "''f.''") | formazott = formazott:gsub("Type:", "''Type:''"):gsub("var%.", "''var.''") | ||
formazott = formazott:gsub("subsp%.", "''subsp.''"):gsub("f%.", "''f.''") | |||
formazott = formazott:gsub("''''", "") | formazott = formazott:gsub("''''", "") | ||
table.insert(lista_elemek, "<li>" .. formazott .. "</li>") | table.insert(lista_elemek, "<li>" .. formazott .. "</li>") | ||
end | end | ||
end | end | ||
if #lista_elemek == 0 then return "" end | |||
return '<ul style="margin-left: 1.1em; list-style-type: disc; padding: 0; margin: 0;">' .. table.concat(lista_elemek) .. "</ul>" | |||
end | end | ||
function p.tablazat(frame) | function p.tablazat(frame) | ||
local args = frame.args[1] and frame.args or frame:getParent().args | |||
local args = frame. | local szuroNemzettseg = args[1] and mw.text.trim(args[1]) or nil | ||
if szuroNemzettseg == "" then szuroNemzettseg = nil end | |||
local szuroNemzettseg = args[1] | |||
local status, adatModul = pcall(require, 'Modul:CactaceaeTaxonokData') | local status, adatModul = pcall(require, 'Modul:CactaceaeTaxonokData') | ||
| 41. sor: | 40. sor: | ||
local nyers_adat = adatModul.getAdatok() | local nyers_adat = adatModul.getAdatok() | ||
local | local rows = {} | ||
local sorszam = 0 | local sorszam = 0 | ||
local jelenlegiNemzettseg = "" | local jelenlegiNemzettseg = "" | ||
local megjelenit = true | local megjelenit = true | ||
for sor in | -- Soronkénti feldolgozás (a string.gmatch gyorsabb, mint az ustring, ha nincs szükség speciális Unicode match-re) | ||
for sor in nyers_adat:gmatch("[^\r\n]+") do | |||
local taxon_link = "" | local taxon_link = "" | ||
local | local szinonimak_nyers = "" | ||
local | local elotag = sor:sub(1, 2) -- Az első két karaktert nézzük (gyorsabb) | ||
if | if elotag:find("^ß") then | ||
local nemz, tip = | local nemz, tip = sor:match("^ß%s*([^:]+)::%s*(.+)") | ||
if nemz then | if nemz then | ||
jelenlegiNemzettseg = mw.text.trim(nemz):gsub("¤+", "") | |||
jelenlegiNemzettseg | if not szuroNemzettseg or szuroNemzettseg == jelenlegiNemzettseg then | ||
taxon_link = "'''[[:Kategória:" .. jelenlegiNemzettseg .. "|" .. jelenlegiNemzettseg .. "]]'''" | |||
szinonimak_nyers = tip | |||
megjelenit = true | |||
else | |||
megjelenit = false | |||
end | |||
end | end | ||
elseif | elseif elotag:find("^Ł") and megjelenit then | ||
local tiszta_sor = | local tiszta_sor = sor:gsub("^Ł%s*", "") | ||
local t, sz = | local t, sz = tiszta_sor:match("([^¤]+)¤¤¤(.*)") | ||
if t then | if t then | ||
tiszta_nev = mw.text.trim(t) | local tiszta_nev = mw.text.trim(t) | ||
taxon_link = "''[[" .. tiszta_nev .. "]]''" | taxon_link = "''[[" .. tiszta_nev .. "]]''" | ||
szinonimak_nyers = sz | |||
end | end | ||
end | end | ||
if taxon_link ~= "" | -- Csak akkor formázunk, ha a sor átment a szűrőn | ||
if taxon_link ~= "" then | |||
sorszam = sorszam + 1 | sorszam = sorszam + 1 | ||
table.insert(rows, "|-\n| " .. sorszam .. "\n| " .. taxon_link .. "\n| " .. formazSzinonimak(szinonimak_nyers)) | |||
end | end | ||
end | end | ||
return frame:preprocess( | local header = '{| class="wikitable sortable datatable-hook stripe hover compact" data-page-length="50" style="width:100%; font-size:90%;"\n! # !! Taxonnév !! Típusfaj, szinonima\n' | ||
return frame:preprocess(header .. table.concat(rows, "\n") .. "\n|}") | |||
end | end | ||
return p | return p | ||
A lap 2026. január 7., 08:31-kori változata
A modult a Modul:CactaceaeTaxonok/doc lapon tudod dokumentálni
local p = {}
-- Gyorsított formázó: csak akkor fut le, ha a sor megjelenítésre kerül
local function formazSzinonimak(szoveg)
if not szoveg or szoveg == "" then return "" end
-- Gyorsabb karaktercsere
local tiszta = szoveg:gsub("[đ÷]", ""):gsub("¤+", "")
tiszta = tiszta:gsub(">−", "−"):gsub(">≡", "≡"):gsub(">=", "=")
tiszta = tiszta:gsub("≡≡", "|≡"):gsub("==", "|="):gsub("−−", "|−"):gsub("%%-%%-", "|−")
local lista_elemek = {}
local reszek = mw.text.split(tiszta, "|", true)
for i=1, #reszek do
local tiszta_resz = mw.text.trim(reszek[i])
if tiszta_resz ~= "" then
-- Hatékonyabb dőltetés
local formazott = "''" .. tiszta_resz .. "''"
formazott = formazott:gsub("≡", "''≡''"):gsub("=", "''=''"):gsub("−", "''−''")
formazott = formazott:gsub("Type:", "''Type:''"):gsub("var%.", "''var.''")
formazott = formazott:gsub("subsp%.", "''subsp.''"):gsub("f%.", "''f.''")
formazott = formazott:gsub("''''", "")
table.insert(lista_elemek, "<li>" .. formazott .. "</li>")
end
end
if #lista_elemek == 0 then return "" end
return '<ul style="margin-left: 1.1em; list-style-type: disc; padding: 0; margin: 0;">' .. table.concat(lista_elemek) .. "</ul>"
end
function p.tablazat(frame)
local args = frame.args[1] and frame.args or frame:getParent().args
local szuroNemzettseg = args[1] and mw.text.trim(args[1]) or nil
if szuroNemzettseg == "" then szuroNemzettseg = nil end
local status, adatModul = pcall(require, 'Modul:CactaceaeTaxonokData')
if not status then return "Hiba: Adatmodul nem található!" end
local nyers_adat = adatModul.getAdatok()
local rows = {}
local sorszam = 0
local jelenlegiNemzettseg = ""
local megjelenit = true
-- Soronkénti feldolgozás (a string.gmatch gyorsabb, mint az ustring, ha nincs szükség speciális Unicode match-re)
for sor in nyers_adat:gmatch("[^\r\n]+") do
local taxon_link = ""
local szinonimak_nyers = ""
local elotag = sor:sub(1, 2) -- Az első két karaktert nézzük (gyorsabb)
if elotag:find("^ß") then
local nemz, tip = sor:match("^ß%s*([^:]+)::%s*(.+)")
if nemz then
jelenlegiNemzettseg = mw.text.trim(nemz):gsub("¤+", "")
if not szuroNemzettseg or szuroNemzettseg == jelenlegiNemzettseg then
taxon_link = "'''[[:Kategória:" .. jelenlegiNemzettseg .. "|" .. jelenlegiNemzettseg .. "]]'''"
szinonimak_nyers = tip
megjelenit = true
else
megjelenit = false
end
end
elseif elotag:find("^Ł") and megjelenit then
local tiszta_sor = sor:gsub("^Ł%s*", "")
local t, sz = tiszta_sor:match("([^¤]+)¤¤¤(.*)")
if t then
local tiszta_nev = mw.text.trim(t)
taxon_link = "''[[" .. tiszta_nev .. "]]''"
szinonimak_nyers = sz
end
end
-- Csak akkor formázunk, ha a sor átment a szűrőn
if taxon_link ~= "" then
sorszam = sorszam + 1
table.insert(rows, "|-\n| " .. sorszam .. "\n| " .. taxon_link .. "\n| " .. formazSzinonimak(szinonimak_nyers))
end
end
local header = '{| class="wikitable sortable datatable-hook stripe hover compact" data-page-length="50" style="width:100%; font-size:90%;"\n! # !! Taxonnév !! Típusfaj, szinonima\n'
return frame:preprocess(header .. table.concat(rows, "\n") .. "\n|}")
end
return p