Ugrás a tartalomhoz

„Modul:CactaceaeTaxonok” változatai közötti eltérés

Innen: MKOE wiki
A lap tartalmának cseréje erre: local p = {} local nyers_adat = [[ ß Acanthocalycium :: Type: Acanthocalycium spiniflorum ¤¤¤¤ Ł Acanthocalycium glaucum ¤¤¤ ÷ ≡≡ Lobivia thionantha var. glauca đ >≡ Echinopsis thionantha subsp. glauca ¤ >≡ Acanthocalycium thionanthum subsp. glaucum ¤¤ ÷ == Echinopsis glaucina đ Ł Acanthocalycium leucanthum ¤¤¤ ÷ == Melocactus ambiguus đ ÷ == Cereus incurvispinus đ ÷ == Melocactus elegans đ ÷ == Echinonyctanthus leu…
Címke: Oldal nagy része eltávolítva
Nincs szerkesztési összefoglaló
13. sor: 13. sor:
Ł Acanthocalycium thionanthum subsp. thionanthum ¤¤¤
Ł Acanthocalycium thionanthum subsp. thionanthum ¤¤¤
]]
]]
-- Segédfüggvény a nevek formázásához
local function formalNev(szoveg)
    if not szoveg or szoveg == "" then return "" end
   
    local szavak = {}
    -- Szétbontjuk szavakra, de megtartjuk a relációs jeleket
    for szo in szoveg:gmatch("%S+") do
        if szo == "≡" or szo == "=" or szo == "−" then
            table.insert(szavak, szo)
        elseif szo:match("^[A-Z][a-z]+$") then
            -- Ha egyetlen nagybetűvel kezdődő szó (Nemzetség)
            table.insert(szavak, "'''''" .. szo .. "'''''")
        else
            -- Minden más (fajnév, var., subsp. stb.) dőlt
            -- A 'var.' és 'subsp.' szavakat általában nem dőltetik, de a kérésed szerint mindent dőltetünk
            table.insert(szavak, "''" .. szo .. "''")
        end
    end
    return table.concat(szavak, " ")
end


function p.tablazat(frame)
function p.tablazat(frame)
    -- Osztályok és adatok a DataTable-hook számára
     local result = '{| class="wikitable datatable stripe hover cell-border" data-page-length="50" style="width:100%;"\n'
     local result = '{| class="wikitable datatable stripe hover cell-border" data-page-length="50" style="width:100%;"\n'
     result = result .. "! Taxonnév !! Szinonima\n"
     result = result .. "! Taxonnév !! Szinonima\n"
24. sor: 44. sor:


         if sor:match("^ß") then
         if sor:match("^ß") then
            -- Tisztítás a ß sorra
             taxon = sor:gsub("^ß%s*", ""):gsub("%s*::%s*", " "):gsub("¤+", "")
             taxon = sor:gsub("^ß%s*", ""):gsub("%s*::%s*", " "):gsub("¤+", "")
             szinonimak = ""
             szinonimak = ""
         elseif sor:match("^Ł") then
         elseif sor:match("^Ł") then
            -- Tisztítás és bontás a Ł sorra
             local tiszta = sor:gsub("^Ł%s*", "")
             local tiszta = sor:gsub("^Ł%s*", "")
             taxon, szinonimak = tiszta:match("([^¤]+)¤¤¤(.*)")
             taxon, szinonimak = tiszta:match("([^¤]+)¤¤¤(.*)")
34. sor: 52. sor:


         if taxon and taxon ~= "" then
         if taxon and taxon ~= "" then
            -- Taxonnév formázása
             taxon = mw.text.trim(taxon)
             taxon = mw.text.trim(taxon)
           
            -- BOTANIKAI FORMÁZÁS LOGIKÁJA
            -- Megnézzük, hány szóból áll a taxonnév
             local szavak_szama = 0
             local szavak_szama = 0
             for _ in taxon:gmatch("%S+") do szavak_szama = szavak_szama + 1 end
             for _ in taxon:gmatch("%S+") do szavak_szama = szavak_szama + 1 end
              
              
             if szavak_szama == 1 then
             if szavak_szama == 1 then
                -- Nemzetség: Vastag és dőlt
                 taxon = "'''''" .. taxon .. "'''''"
                 taxon = "'''''" .. taxon .. "'''''"
             else
             else
                -- Faj vagy alacsonyabb rang: Csak dőlt
                 taxon = "''" .. taxon .. "''"
                 taxon = "''" .. taxon .. "''"
             end
             end


             -- SZINONIMA TISZTÍTÁS
             -- Szinonimák tisztítása és formázása
             szinonimak = szinonimak or ""
             szinonimak = szinonimak or ""
             szinonimak = szinonimak:gsub("[¤đ>÷Ł]", "")
             szinonimak = szinonimak:gsub("[¤đ>÷Ł]", "")
            -- Jelösszevonás (≡≡ -> ≡, == -> =, −− -> −)
             szinonimak = szinonimak:gsub("≡≡", "≡"):gsub("==", "="):gsub("−−", "−")
             szinonimak = szinonimak:gsub("≡≡", "≡"):gsub("==", "="):gsub("−−", "−")
             -- Felesleges szóközök
           
             szinonimak = szinonimak:gsub("%s%s+", " ")
             -- Alkalmazzuk a dőlt/vastag formázást a szinonimákra is
             szinonimak = formalNev(szinonimak)


             result = result .. "|-\n| " .. taxon .. " || " .. mw.text.trim(szinonimak) .. "\n"
             result = result .. "|-\n| " .. taxon .. " || " .. szinonimak .. "\n"
         end
         end
     end
     end

A lap 2026. január 5., 11:08-kori változata

A modult a Modul:CactaceaeTaxonok/doc lapon tudod dokumentálni

local p = {}

local nyers_adat = [[
ß Acanthocalycium :: Type: Acanthocalycium spiniflorum ¤¤¤¤
Ł Acanthocalycium glaucum ¤¤¤ ÷  ≡≡ Lobivia thionantha var. glauca đ >≡ Echinopsis thionantha subsp. glauca ¤ >≡ Acanthocalycium thionanthum subsp. glaucum ¤¤ ÷  == Echinopsis glaucina đ
Ł Acanthocalycium leucanthum ¤¤¤ ÷  == Melocactus ambiguus đ ÷  == Cereus incurvispinus đ ÷  == Melocactus elegans đ ÷  == Echinonyctanthus leucanthus đ ÷  == Echinocactus salpigophorus đ ÷  == Echinopsis campylacantha var. leucantha đ ÷  == Echinopsis campylacantha var. stylodes đ ÷  == Echinopsis simplex đ ÷  == Cereus campylacanthus đ >≡ Echinopsis campylacantha ¤¤ ÷  == Echinopsis baldiana đ ÷  == Echinopsis cordobensis đ ÷  == Echinopsis intricatissima đ ÷  == Echinopsis melanopotamica đ ÷  == Echinopsis molesta đ ÷  == Echinopsis shaferi đ ÷  == Echinopsis spegazziniana đ ÷  == Echinopsis leucantha var. brasiliensis đ ÷  == Echinopsis gladispina đ ÷  == Echinopsis leucantha var. volliana đ
Ł Acanthocalycium rhodotrichum ¤¤¤ ÷  ≡≡ Echinopsis rhodotricha đ >− Acanthocalycium rhodotricum ¤¤ ÷  == Echinocactus forbesii đ ÷  == Echinopsis forbesii đ >≡ Echinopsis pentlandii var. forbesii ¤ >≡ Echinopsis pentlandii var. forbesii ¤ >≡ Lobivia pentlandii var. forbesii ¤¤ ÷  == Echinopsis valida var. forbesii đ ÷  == Cereus validissimus đ ÷  == Echinopsis rhodotricha var. roseiflora đ ÷  == Echinopsis spegazzinii đ ÷  == Echinopsis rhodotricha var. argentinensis đ ÷  == Echinopsis rhodotricha var. robusta đ ÷  == Echinopsis robinsoniana đ ÷  == Echinopsis chacoana var. spinosior đ >≡ Echinopsis rhodotricha var. spinosior ¤¤ ÷  == Echinopsis rhodotricha var. brevispina đ
Ł Acanthocalycium rhodotrichum subsp. chacoanum ¤¤¤ ÷  ≡≡ Echinopsis chacoana đ >≡ Echinopsis rhodotricha var. chacoana ¤ >≡ Echinopsis rhodotricha subsp. chacoana ¤¤ ÷  == Echinopsis klingleriana đ
Ł Acanthocalycium rhodotrichum subsp. rhodotrichum ¤¤¤ ÷  == Echinopsis minuana đ ÷  == Echinopsis meyeri đ
Ł Acanthocalycium spiniflorum ¤¤¤ ÷  ≡≡ Echinocactus spiniflorus đ >≡ Echinopsis spiniflora ¤ >≡ Lobivia spiniflora ¤¤ ÷  == Echinopsis klimpeliana đ >≡ Lobivia klimpeliana ¤ >≡ Acanthocalycium klimpelianum ¤ >≡ Lobivia spiniflora var. klimpeliana ¤¤ ÷  == Echinopsis violacea đ >≡ Acanthocalycium violaceum ¤ >≡ Lobivia spiniflora var. violacea ¤ >− Acanthocalycium spiniflorum f. violaceum ¤¤ ÷  == Acanthocalycium peitscherianum đ >≡ Echinopsis peitscherana ¤ >≡ Lobivia spiniflora var. peitscheriana ¤ >− Acanthocalycium spiniflorum f. peitscherianum ¤¤ ÷  == Acanthocalycium variiflorum đ ÷  == Lobivia spiniflora var. macrantha đ >≡ Acanthocalycium klimpelianum var. macranthum ¤¤
Ł Acanthocalycium thionanthum ¤¤¤ ÷  ≡≡ Echinocactus thionanthus đ >≡ Lobivia thionantha ¤ >≡ Echinopsis thionantha ¤ >≡ Echinopsis thionantha ¤ >− Lobivia thionanthus ¤¤ ÷  == Echinocactus chionanthus đ >≡ Lobivia chionanthus ¤ >≡ Echinopsis chionantha ¤ >≡ Acanthocalycium chionanthum ¤ >≡ Lobivia thionantha var. chionantha ¤¤ ÷  == Acanthocalycium griseum đ ÷  == Acanthocalycium brevispinum đ >≡ Echinopsis brevispina ¤ >≡ Lobivia thionantha var. brevispina ¤¤ ÷  == Acanthocalycium aurantiacum đ >≡ Echinopsis aurantiaca ¤ >≡ Lobivia thionantha var. aurantiaca ¤¤ ÷  == Acanthocalycium catamarcense đ >≡ Lobivia thionantha var. catamarcensis ¤¤ ÷  == Lobivia thionantha var. erythrantha đ
Ł Acanthocalycium thionanthum subsp. ferrarii ¤¤¤ ÷  ≡≡ Acanthocalycium ferrarii đ >≡ Lobivia thionantha var. ferrarii ¤ >≡ Echinopsis thionantha subsp. ferrarii ¤¤ ÷  == Lobivia thionantha var. munita đ >≡ Acanthocalycium thionanthum var. munitum ¤¤ ÷  == Lobivia thionantha var. variiflora đ
Ł Acanthocalycium thionanthum subsp. thionanthum ¤¤¤
]]

-- Segédfüggvény a nevek formázásához
local function formalNev(szoveg)
    if not szoveg or szoveg == "" then return "" end
    
    local szavak = {}
    -- Szétbontjuk szavakra, de megtartjuk a relációs jeleket
    for szo in szoveg:gmatch("%S+") do
        if szo == "≡" or szo == "=" or szo == "−" then
            table.insert(szavak, szo)
        elseif szo:match("^[A-Z][a-z]+$") then
            -- Ha egyetlen nagybetűvel kezdődő szó (Nemzetség)
            table.insert(szavak, "'''''" .. szo .. "'''''")
        else
            -- Minden más (fajnév, var., subsp. stb.) dőlt
            -- A 'var.' és 'subsp.' szavakat általában nem dőltetik, de a kérésed szerint mindent dőltetünk
            table.insert(szavak, "''" .. szo .. "''")
        end
    end
    return table.concat(szavak, " ")
end

function p.tablazat(frame)
    local result = '{| class="wikitable datatable stripe hover cell-border" data-page-length="50" style="width:100%;"\n'
    result = result .. "! Taxonnév !! Szinonima\n"

    for sor in nyers_adat:gmatch("[^\r\n]+") do
        local taxon = ""
        local szinonimak = ""

        if sor:match("^ß") then
            taxon = sor:gsub("^ß%s*", ""):gsub("%s*::%s*", " "):gsub("¤+", "")
            szinonimak = ""
        elseif sor:match("^Ł") then
            local tiszta = sor:gsub("^Ł%s*", "")
            taxon, szinonimak = tiszta:match("([^¤]+)¤¤¤(.*)")
        end

        if taxon and taxon ~= "" then
            -- Taxonnév formázása
            taxon = mw.text.trim(taxon)
            local szavak_szama = 0
            for _ in taxon:gmatch("%S+") do szavak_szama = szavak_szama + 1 end
            
            if szavak_szama == 1 then
                taxon = "'''''" .. taxon .. "'''''"
            else
                taxon = "''" .. taxon .. "''"
            end

            -- Szinonimák tisztítása és formázása
            szinonimak = szinonimak or ""
            szinonimak = szinonimak:gsub("[¤đ>÷Ł]", "")
            szinonimak = szinonimak:gsub("≡≡", "≡"):gsub("==", "="):gsub("−−", "−")
            
            -- Alkalmazzuk a dőlt/vastag formázást a szinonimákra is
            szinonimak = formalNev(szinonimak)

            result = result .. "|-\n| " .. taxon .. " || " .. szinonimak .. "\n"
        end
    end

    result = result .. "|}"
    return result
end

return p