Модуль:Getlinks (Bk;rl,&Getlinks)
Перейти к навигации
Перейти к поиску
Модуль содержит функцию, возвращающую список вики-ссылок на статьи (из ОП, без ":" в ссылке) в переданной строке (первый параметр), разделенных сепаратором sep и отсортированные при непустом значении sort.
Этот модуль оценён как пре-альфа-версия. Он не закончен и может находиться в разработке. Он не должен использоваться в статьях. Модули остаются в этой стадии до тех пор, пока автор или кто-либо иной не сочтёт их структуру удовлетворительной. |
local p = {}
function p.links(frame)
local pframe = frame:getParent();
local config = frame.args;
local args = pframe.args;
local result = {};
local i = 1;
for s in mw.ustring.gmatch(config[1], "%[%[.-%]%]") do
s=mw.ustring.gsub(s, "%|.*","]]"); --убираем за |
s=mw.ustring.gsub(s, "%#.*","]]"); --убираем за #
if (not mw.ustring.match(s, "%[%[.-%:") ) then --это надо переделать нормально, в названии может быть и двоеточие
result[i] = s;
i=i+1;
end
end
--убираем дубликаты
local h = {};
local res2 = {};
for i,v in ipairs(result) do
if (not h[v]) then
res2[#res2+1] = v;
h[v] = true;
end
end
result=res2;
if config['sort'] then
table.sort(result);
end
if config['sep'] then
sep=args['sep'];
else
sep = " • ";
end
return table.concat( result, sep)
end
return p;