Moduł:Linki: Różnice pomiędzy wersjami
Z Nonsensopedii, polskiej encyklopedii humoru
Ostrzyciel (dyskusja • edycje) M |
Ostrzyciel (dyskusja • edycje) M |
||
Linia 47: | Linia 47: | ||
-- 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) |
function p.linksToPlain(frame) |
||
return p._linksToPlain(frame.args[1] or '') |
|||
end |
|||
function p._linksToPlain(s) |
|||
-- wewnętrzne |
-- wewnętrzne |
||
s = mw.ustring.gsub(s, '%[%[[^%]]-|', '') |
s = mw.ustring.gsub(s, '%[%[[^%]]-|', '') |
Aktualna wersja na dzień 10:40, 13 maj 2021
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)
return p._linksToPlain(frame.args[1] or '')
end
function p._linksToPlain(s)
-- 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