Modulo:Linkutil
Aspekto
Dokumentado por ĉi tiu modulo povas esti kreata ĉe Modulo:Linkutil/dokumentado
-- Jen modulo Linkutil, kiu okupiĝas pri ligiloj -- 2020-04-14
local p = {}
-- parto por eksporteblaj funkcioj
-- por aliaj moduloj
-- por la funkcioj "enkonduko" kaj "informkesto", ĉar tie ligiloj eble devus esti aldonata
-- komparu la funkcion "link" en la modulo Listutil
function p._chuligilo1(teksto)
-- analizo, ĉu jam estas ligilo. se jes, ŝanĝu nenion.
-- kodopeco el Modulo:Listutil, funcio link
local s = teksto:match( "%[%[[^|%]]*| *([^%]]+) *%]%]" )
if not s then
s = teksto:match( "%[%[%s*([^%]]+)%s*%]%]" )
end
if not s then
return true
end
return false
end
function p._chuligilo2 (teksto)
-- analizo, ĉu jam estas ligilo. se jes, ŝanĝu nenion.
-- kodopeco el Modulo:Listutil, funcio link
local r
local s = teksto:match( "%[%[[^|%]]*| *([^%]]+) *%]%]" )
if not s then
s = teksto:match( "%[%[%s*([^%]]+)%s*%]%]" )
end
if not s then
r = "ligu"
end
return r
end
-- el la modulo Listutil
-- senligiligas la tekston en v kaj eligas [[Ulo]] aŭ [[Artikolo|Ulo]] kiel Ulo.
-- tio estas bezonata, ĉar ligilo en ligilo ne eblas
-- s - estas helpa variablo
function p._delink(v)
s = v:match( "%[%[[^|%]]*| *([^%]]+) *%]%]" )
if not s then
s = v:match( "%[%[%s*([^%]]+)%s*%]%]" )
end
if not s then
s = v
end
return mw.text.trim(s) -- forigas spacetojn
end
-- parto por funkcioj uzataj en ŝablonoj
function p.chuligilo1(frame)
local args = frame.args
local pargs = frame:getParent().args
local teksto = args[1] or pargs[1]
return p._chuligilo1(teksto)
end
function p.chuligilo2(frame)
local args = frame.args
local pargs = frame:getParent().args
local teksto = args[1] or pargs[1]
return p._chuligilo2(teksto)
end
function p.delink(frame)
local args = frame.args
local pargs = frame:getParent().args
local v = args[1] or pargs[1]
return p._delink(v)
end
return p