Ugrás a tartalomhoz

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

Innen: MKOE wiki
Nincs szerkesztési összefoglaló
Nincs szerkesztési összefoglaló
 
(2 közbenső módosítás ugyanattól a felhasználótól nincs mutatva)
4. sor: 4. sor:
     local text = frame.args[1] or frame:getParent().args[1] or ""
     local text = frame.args[1] or frame:getParent().args[1] or ""
      
      
     -- Minden felesleges soremelés és szóköz takarítása a legvégéről és legelejéről
     -- Tisztítás a kód elejéről és végéről
     text = text:gsub("^%s+", ""):gsub("%s+$", "")
     text = text:gsub("^%s+", ""):gsub("%s+$", "")
      
      
     -- HTML struktúra felépítése
     -- 1. A normál szóközöket fix HTML szóközökké alakítjuk, hogy a parser ne bántsa őket
     local html = '<div style="font-family: monospace; font-size: 0.95em; line-height: 1.4; background-color: #f8f9fa; border: 1px solid #eaecf0; border-left: 4px solid #36c; padding: 1em; margin: 1em 0; overflow-x: auto; white-space: pre-wrap;">' .. text .. '</div>'
     local processed = text:gsub(" ", "&#x20;")
      
      
     -- A trükk: a preprocess segítségével átfuttatjuk a linkeket,
     -- 2. A soremeléseket lecseréljük HTML sortörésre (<br>), így a parser nem generál <p> tageket
    -- de az egészet egy <nowiki> blokkba rejtjük, így a parser nem fog <p> vagy <pre> tageket gyártani.
     processed = processed:gsub("\n", "<br>")
     return frame:preprocess('<nowiki>' .. html .. '</nowiki>')
   
    -- HTML wrapper összeállítása
    local html = '<div style="font-family: monospace; line-height: 1.4; background-color: #f8f9fa; border: 1px solid #eaecf0; border-left: 4px solid #36c; padding: 1em; margin: 1em 0; overflow-x: auto; white-space: pre-wrap;">' .. processed .. '</div>'
   
    -- Átfuttatjuk a preprocessen, hogy a kategórialinkek működjenek
    return frame:preprocess(html)
end
end


return p
return p

A lap jelenlegi, 2026. június 20., 11:28-kori változata

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

local p = {}

function p.render(frame)
    local text = frame.args[1] or frame:getParent().args[1] or ""
    
    -- Tisztítás a kód elejéről és végéről
    text = text:gsub("^%s+", ""):gsub("%s+$", "")
    
    -- 1. A normál szóközöket fix HTML szóközökké alakítjuk, hogy a parser ne bántsa őket
    local processed = text:gsub(" ", "&#x20;")
    
    -- 2. A soremeléseket lecseréljük HTML sortörésre (<br>), így a parser nem generál <p> tageket
    processed = processed:gsub("\n", "<br>")
    
    -- HTML wrapper összeállítása
    local html = '<div style="font-family: monospace; line-height: 1.4; background-color: #f8f9fa; border: 1px solid #eaecf0; border-left: 4px solid #36c; padding: 1em; margin: 1em 0; overflow-x: auto; white-space: pre-wrap;">' .. processed .. '</div>'
    
    -- Átfuttatjuk a preprocessen, hogy a kategórialinkek működjenek
    return frame:preprocess(html)
end

return p