„Modul:CSVParser” változatai közötti eltérés
Megjelenés
Nincs szerkesztési összefoglaló |
Nincs szerkesztési összefoglaló |
||
| 14. sor: | 14. sor: | ||
end | end | ||
local res = '{| class="wikitable sortable datatable-hook" style="width:100%; font-size:90%;"\n' | local res = '{| class="wikitable sortable datatable-hook" style="width:100%; font-size:90%;"\n' | ||
for i, sor in ipairs(adatok) do | for i, sor in ipairs(adatok) do | ||
res = res .. "|-\n" | res = res .. "|-\n" | ||
local jel = (i == 1) and "!" or "|" | local jel = (i == 1) and "!" or "|" | ||
-- 1. Sorszám oszlop | -- 1. Sorszám oszlop | ||
if i == 1 then | if i == 1 then | ||
res = res .. "! #\n" | res = res .. "! #\n" | ||
else | else | ||
res = res .. "| " .. (i - 1) .. "\n" | res = res .. "| " .. (i - 1) .. "\n" | ||
end | end | ||
-- 2. | -- 2. Összevont oszlopok meghatározása (latin indexek az eredeti sorban) | ||
for _, | -- Rend (1+2), Család (3+4), Alcsalád (5+6), Tribus (7), Subtribus (8), Nemzetség (9+10) | ||
local | -- Megjegyzés: A Tribusnak és Subtribusnak az eredetiben nincs külön magyar oszlopa a leírásod szerint. | ||
if | local oszlop_terv = { | ||
{lat = 1, hun = 2}, -- Rend | |||
{lat = 3, hun = 4}, -- Család | |||
{lat = 5, hun = 6}, -- Alcsalád | |||
{lat = 7, hun = nil}, -- Tribus | |||
{lat = 8, hun = nil}, -- Subtribus | |||
{lat = 9, hun = 10} -- Nemzetség | |||
} | |||
for _, mapping in ipairs(oszlop_terv) do | |||
local latin = sor[mapping.lat] or "" | |||
local magyar = mapping.hun and sor[mapping.hun] or "" | |||
-- Tisztítás | |||
latin = latin:gsub("^%s*(.-)%s*$", "%1") | |||
magyar = magyar:gsub("^%s*(.-)%s*$", "%1") | |||
local cella_ertek = "" | |||
if i == 1 then | |||
-- Fejléc esetén csak a latin oszlop nevét használjuk (pl. "Rend") | |||
cella_ertek = latin | |||
else | |||
-- Adatsorok esetén | |||
if latin == "" then | |||
cella_ertek = " " | |||
else | |||
-- Ha Nemzetség (9), akkor dőlt | |||
if mapping.lat == 9 then | |||
cella_ertek = "''" .. latin .. "''" | |||
else | |||
cella_ertek = latin | |||
end | |||
-- Ha van magyar név, zárójelben hozzáfűzzük | |||
if magyar ~= "" and magyar ~= " " then | |||
cella_ertek = cella_ertek .. " (" .. magyar .. ")" | |||
end | |||
end | |||
end | |||
res = res .. jel .. " " .. | res = res .. jel .. " " .. cella_ertek .. "\n" | ||
end | end | ||
end | end | ||
A lap 2026. január 4., 19:21-kori változata
A modult a Modul:CSVParser/doc lapon tudod dokumentálni
local p = {}
function p.megjelenit(frame)
local status, adatModul = pcall(require, 'Modul:SzukkulensTaxonok')
if not status then
return "Hiba: A 'Modul:SzukkulensTaxonok' nem található!"
end
local adatok = adatModul.getAdatok()
if not adatok or #adatok == 0 then
return "Hiba: Az adatok üresek!"
end
local res = '{| class="wikitable sortable datatable-hook" style="width:100%; font-size:90%;"\n'
for i, sor in ipairs(adatok) do
res = res .. "|-\n"
local jel = (i == 1) and "!" or "|"
-- 1. Sorszám oszlop
if i == 1 then
res = res .. "! #\n"
else
res = res .. "| " .. (i - 1) .. "\n"
end
-- 2. Összevont oszlopok meghatározása (latin indexek az eredeti sorban)
-- Rend (1+2), Család (3+4), Alcsalád (5+6), Tribus (7), Subtribus (8), Nemzetség (9+10)
-- Megjegyzés: A Tribusnak és Subtribusnak az eredetiben nincs külön magyar oszlopa a leírásod szerint.
local oszlop_terv = {
{lat = 1, hun = 2}, -- Rend
{lat = 3, hun = 4}, -- Család
{lat = 5, hun = 6}, -- Alcsalád
{lat = 7, hun = nil}, -- Tribus
{lat = 8, hun = nil}, -- Subtribus
{lat = 9, hun = 10} -- Nemzetség
}
for _, mapping in ipairs(oszlop_terv) do
local latin = sor[mapping.lat] or ""
local magyar = mapping.hun and sor[mapping.hun] or ""
-- Tisztítás
latin = latin:gsub("^%s*(.-)%s*$", "%1")
magyar = magyar:gsub("^%s*(.-)%s*$", "%1")
local cella_ertek = ""
if i == 1 then
-- Fejléc esetén csak a latin oszlop nevét használjuk (pl. "Rend")
cella_ertek = latin
else
-- Adatsorok esetén
if latin == "" then
cella_ertek = " "
else
-- Ha Nemzetség (9), akkor dőlt
if mapping.lat == 9 then
cella_ertek = "''" .. latin .. "''"
else
cella_ertek = latin
end
-- Ha van magyar név, zárójelben hozzáfűzzük
if magyar ~= "" and magyar ~= " " then
cella_ertek = cella_ertek .. " (" .. magyar .. ")"
end
end
end
res = res .. jel .. " " .. cella_ertek .. "\n"
end
end
res = res .. "|}"
return res
end
return p