Modul:Benutzer:Kpfiwa/Test
Die Dokumentation für dieses Modul kann unter Modul:Benutzer:Kpfiwa/Test/Doku erstellt werden
--[[ Offen:
1. externe Links unifizieren
2. mit img testen
--]]
local ERROR =''; local TEST='TEST = '
-- Generell zum Einlesen beliebiger Texte muss gegen wikifunktion ersetzt werden
-- Initialisierungen
local p = {}
local TEXT = '€€€€€'; local PIPE ='|'
local wtxt = ''
local tb, te, startpos, nix = 0, 0, 0, 0
local gtxt, gtxt1, gtxt2, gs0, gs1, gs2 = '', '', '', '', '', ''
local maske = '€€€€€'
local such1='%[%[([^]]+)]]' -- kompletter Inhalt Wikilink ohne [[ ]]
local such2='([^]^%|]+)|?(.*)'-- Ergebnis such1 aufgeteilt in Lemma, Linktext (falls vorhanden)
-------- Eigentliches Programm ----
local function linkexE(txt)-- verarbeitet die externen Links
-- Suchmuster für externe Links:
such = '%[((%S+)%s*(.*))]' -- magic characters are ( ) . % + - * ? [ ^ $
lnk = '[https://gadacz.de/gene#Start Start in die Gene-Datenbank]'
return txt
end -- linkexE
local function linkexW(txt) -- verarbeitet die internen Wikilinks
txt= string.gsub(txt,'%[%[Datei:','[' .. maske .. '[Datei:')
txt= string.gsub(txt,'%[%[File:','[' .. maske .. '[File:')
while true do
-- find ergibt textbeginn, textende, gefundener text(originaltext,suchmuster, startposition)
nix, nix, gtxt = string.find(txt, such1) -- find 'next' Suchmuster startpos wird auf suchende gesetzt
if gtxt == nil then break end -- ????
nix, nix, gtxt1, gtxt2 = string.find(gtxt, such2) -- gtxt teilen
if gtxt2 == '' then gtxt2 = gtxt1 end
gs0 = '%[%[' .. gtxt ..']]'
if gtxt1 == gtxt2 then gtxt = gtxt1 end
gs1 = '[' .. maske .. '[' .. gtxt ..']]'
gs2 = maske .. gtxt2 .. maske
txt = string.gsub(txt,gs0,gs2) -- Alle maskieren
txt = string.gsub(txt,gs2,gs1,1) -- erster Eintrag zurück auf maskiertes Original
end -- while true
txt = string.gsub(txt,maske .. '%{%{','') -- Textstart Start löschen
txt = string.gsub(txt,maske,'') -- maske(n) löschen
--return ' Kommt aus function linkex: ' .. txt .. TEST
return txt
end -- function linkexW
-----------------
function p.f(frame)
frame = frame:getParent()
for key, val in pairs(frame.args) do --[[eigentlich zu weit geschossen,
aber vielleicht kommen ja irgendwann noch weitere Parameter,
z.B. externe Links --]]
--if key <=1 then PIPE='' end
TEST = TEST .. "key=<big>".. (key or 0) .. '</big> val=' .. (val or 'NONE') .. '<' .. key .. '<<br>'
if type(key) == "number" then TEXT= TEXT .. PIPE .. val
--if key < 5 then TEST = TEST .. "key=<big>".. key .. ' val=>' .. val .. '<' .. key .. '<<br>' end
else TEXT= TEXT .. PIPE .. val
end
-- if tonumber(key) == 1 then wtxt = val end
wtxt = val
--ERROR = ERROR .. ' key=' .. key .. ' val=' .. val
end -- for key
wtxt=TEXT
ret = linkexW(wtxt)
ret = linkexE(ret)
-- return "Eingabe=" .. ERROR .. '<r>Ergebnis=' .. ret
return ret .. TEST
end -- p.f function
return p