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