Модуль:FormationsList
Этому модулю не хватает документации. |
local getArgs = require('Module:Arguments').getArgs
local F={}
function F.Formations(frame)
local args=getArgs(frame);
local dis=args[1];
local flist={};
local s='';
local o=mw.title.new(dis,'');
if (o) then
local page = frame:expandTemplate{ title = ':'..dis };
if (page) then
local start=mw.ustring.find(page,'\n*',0,true);
if (start) then
local i=1;
repeat
local ends=mw.ustring.find(page,'\n',start+1,true);
if (not ends) then
ends=#page+1; -- last string
end
flist[i]=mw.text.trim(mw.ustring.sub(page,start+2,ends-1));
start=ends;
i=i+1;
local char=mw.ustring.sub(page,start+1,start+1);
until char~='*'
end
end
end
local fcount=#flist;
if (fcount == 0) then
fcount=tonumber(args[2]) or 0;
end
local femlist={'армия','дивизия','бригада','эскадрилья'};
local fgen='формировался';
for i=1,#femlist do
if mw.ustring.find(dis,femlist[i]) then
fgen='формировалась';
break
end
end
local fnum;
if ((fcount>1) and (fcount<5)) then
fnum='раза';
else
fnum='раз';
end
s=mw.ustring.format("''Всего %s %s %i %s. См. [[%s|список других формирований]]''",dis,fgen,fcount,fnum,dis);
if (#flist>0) then
s='<div class="mw-collapsible mw-collapsed noprint" data-expandtext="▽" data-collapsetext="△" style="color:transparent; display:inline-block">' ..
'<img class="hatnote dabhide" style="color:#202122;">'..s..'</img><div class="mw-collapsible-content" style="position:absolute; border:1px solid #aaa; color:black; z-index:10; background:white; margin-left:10px; margin-top:5px; padding:5px; display:none">';
for i=1,fcount do
s=s..flist[i];
if (i<fcount) then
s=s..'<br />';
end
end
s=s..'</div></div>';
end
s=mw.getCurrentFrame():preprocess(s);
return s
end
return F