Модуль:FormationsList
Поделись знанием:
Для документации этого модуля может быть создана страница Модуль:FormationsList/doc
local F={} function F.Formations(frame) local dis=frame.args[1]; local flist={}; local s=''; local o=mw.title.new(dis,''); if (o) then local page=o:getContent(); 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(frame.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" data-expandtext="▽" data-collapsetext="△" style="color:transparent; display:inline-block"><span class="dablink noprint" style="color:black">'..s..'</span><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