Moduł:Linki: Różnice pomiędzy wersjami

Z Nonsensopedii, polskiej encyklopedii humoru
M
M
Linia 46: Linia 46:
-- wywala linki z tekstu zastępując je ich opisami
-- wywala linki z tekstu zastępując je ich opisami
-- działa trochę krzywo i na "odwal się", ale bardziej mi się tego nie chce grzebać
-- działa trochę krzywo i na "odwal się", ale bardziej mi się tego nie chce grzebać
function p.linksToPlain(frame, args)
function p.linksToPlain(frame)
s = args[1]
local s = frame.args[1]
-- wewnętrzne
-- wewnętrzne

Wersja z 09:48, 6 sie 2020


local p = {}

-- wyciąga linki w podwójnych klamrach z tekstu
function p.wLink(s)
	local links = {}
	
	for match in mw.ustring.gmatch(s, '%[%[.-|?.-%]%]') do
		local m, v = mw.text.trim(mw.ustring.sub(match, 3, -3)), ''
		local i = mw.ustring.find(m, '|')
		
		if i ~= nil then
			v = mw.text.trim(mw.ustring.sub(m, i + 1))
			m = mw.text.trim(mw.ustring.sub(m, 1, i - 1))
		end
		
		links[m] = v
	end
	
	return links
end

-- wyciąga linki zewnętrzne z tekstu, te bez klamerek też
function p.wExtLink(s)
	local links = {}
	s = mw.ustring.gsub(s, '%[%[.-|?.-%]%]', '')	-- wywalamy wewnętrzne
	
	for match in mw.ustring.gmatch(s, 'https?://[^%s%]]*') do
		links[match] = ''
	end
	
	for match in mw.ustring.gmatch(s, '%[[^%[]-%]') do
		local m, v = mw.text.trim(mw.ustring.sub(match, 2, -2)), ''
		local i = mw.ustring.find(m, ' ')
		
		if i ~= nil then
			v = mw.text.trim(mw.ustring.sub(m, i + 1))
			m = mw.text.trim(mw.ustring.sub(m, 1, i - 1))
		end
		
		links[m] = v
	end

	return links
end

-- wywala linki z tekstu zastępując je ich opisami
-- działa trochę krzywo i na "odwal się", ale bardziej mi się tego nie chce grzebać
function p.linksToPlain(frame)
	local s = frame.args[1]
	
	-- wewnętrzne
	s = mw.ustring.gsub(s, '%[%[[^%]]-|', '')
	s = mw.ustring.gsub(s, '%[%[', '')
	s = mw.ustring.gsub(s, '%]%]', '')
	
	-- zewnętrzne
	s = mw.ustring.gsub(s, '%[[^%]]- ', '')
	s = mw.ustring.gsub(s, '%[', '')
	s = mw.ustring.gsub(s, '%]', '')
	
	return s
end

return p