Модуль: Infobox tmp: различия между версиями 🔗
Материал из VEDA Wiki
Sphynkx (обсуждение | вклад) Нет описания правки |
Sphynkx (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
local p = {} -- p stands for package | local p = {} -- p stands for package | ||
function p. | function p.organization_members( frame ) | ||
local name = frame.args[1] | local name = frame.args[1] | ||
local t = {[=[<table border=1> | |||
local t = {[=[<table border= | |||
<tr><td colspan=2> | <tr><td colspan=2> | ||
<div {{DivWrapOpts}}>[[Category:WrapBlock]] | <div {{DivWrapOpts}}>[[Category:WrapBlock]] | ||
<table border= | <table border=1 width=100%><tr><td colspan="2" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold; text-align: center;">Лидеры</td></tr></table> | ||
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
<table border= | <table border=1> | ||
]=]} | ]=]} | ||
for i in string.gmatch(name, "[^;]+") do repeat | |||
-- continue if line is "empty" (namely is "!!!;" or only ";") see: https://forum.defold.com/t/any-replace-for-continue-statement-in-lua-loops/65554/2 | -- continue if line is "empty" (namely is "!!!;" or only ";") see: https://forum.defold.com/t/any-replace-for-continue-statement-in-lua-loops/65554/2 | ||
if #i <6 then | if #i <6 then | ||
do break end | do break end | ||
Строка 20: | Строка 19: | ||
local field2 = '' | local field2 = '' | ||
local field3 = '' | local field3 = '' | ||
local field4 = '' | |||
table.insert(t, [=[<tr> | table.insert(t, [=[<tr> | ||
<td colspan="2" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold; text-align: center;"> | <td colspan="2" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold; text-align: center;">Глава</td> | ||
</tr>]=]) | </tr>]=]) | ||
local l = {} | local l = {} | ||
-- Лидер!Профессия!Лидер_с!Лидер_по; | |||
for k in string.gmatch(i, "[^!]+") do | for k in string.gmatch(i, "[^!]+") do | ||
table.insert(l, k:match( "^%s*(.-)%s*$" )) | table.insert(l, k:match( "^%s*(.-)%s*$" )) | ||
Строка 35: | Строка 36: | ||
<td colspan="2"><hr></td> | <td colspan="2"><hr></td> | ||
</tr><tr> | </tr><tr> | ||
<td align="left" width="10%" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold;"> | <td align="left" width="10%" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold;">Профессия:</td> | ||
<td>]=] .. l[2] .. '</td></tr>' | <td>]=] .. l[2] .. '</td></tr>' | ||
end -- if l[2] | end -- if l[2] | ||
Строка 41: | Строка 42: | ||
if l[3] == nil or l[3] == '' or l[3] == ' ' then | if l[3] == nil or l[3] == '' or l[3] == ' ' then | ||
field3 = '' | field3 = '' | ||
else | else | ||
field3 = [=[<tr> | field3 = [=[<tr> | ||
<td colspan="2"><hr></td> | <td colspan="2"><hr></td> | ||
</tr><tr> | </tr><tr> | ||
<td align="left" width="10%" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold;"> | <td align="left" width="10%" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold;">Лидер_с:</td> | ||
<td>]=] .. l[3] .. '</td></tr>' | <td>]=] .. l[3] .. '</td></tr>' | ||
count = count + l[3] | count = count + l[3] | ||
end -- if l[3] | end -- if l[3] | ||
if l[4] == nil or l[4] == '' or l[4] == ' ' then | |||
field4 = '' | |||
else | |||
field4 = [=[<tr> | |||
<td colspan="2"><hr></td> | |||
</tr><tr> | |||
<td align="left" width="10%" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold;">Лидер_по:</td> | |||
<td>]=] .. l[4] .. '</td></tr>' | |||
count = count + l[4] | |||
end -- if l4] | |||
table.insert(t, [=[<tr> | table.insert(t, [=[<tr> | ||
Строка 65: | Строка 76: | ||
<td align="left" width="10%" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold;">Общее число:</td> | <td align="left" width="10%" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold;">Общее число:</td> | ||
<td>не менее | <td>не менее | ||
]=] .. | ]=] .. #t/2 .. '</td></tr>') | ||
return table.concat(t, "") | return table.concat(t, "") |
Версия от 22:01, 2 октября 2024
Для документации этого модуля может быть создана страница Модуль:Infobox tmp/doc
local p = {} -- p stands for package
function p.organization_members( frame )
local name = frame.args[1]
local t = {[=[<table border=1>
<tr><td colspan=2>
<div {{DivWrapOpts}}>[[Category:WrapBlock]]
<table border=1 width=100%><tr><td colspan="2" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold; text-align: center;">Лидеры</td></tr></table>
<div class="mw-collapsible-content">
<table border=1>
]=]}
for i in string.gmatch(name, "[^;]+") do repeat
-- continue if line is "empty" (namely is "!!!;" or only ";") see: https://forum.defold.com/t/any-replace-for-continue-statement-in-lua-loops/65554/2
if #i <6 then
do break end
end
local field2 = ''
local field3 = ''
local field4 = ''
table.insert(t, [=[<tr>
<td colspan="2" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold; text-align: center;">Глава</td>
</tr>]=])
local l = {}
-- Лидер!Профессия!Лидер_с!Лидер_по;
for k in string.gmatch(i, "[^!]+") do
table.insert(l, k:match( "^%s*(.-)%s*$" ))
end
if l[2] == nil or l[2] == '' or l[2] == ' ' then
field2 = ''
else
field2 = [=[<tr>
<td colspan="2"><hr></td>
</tr><tr>
<td align="left" width="10%" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold;">Профессия:</td>
<td>]=] .. l[2] .. '</td></tr>'
end -- if l[2]
if l[3] == nil or l[3] == '' or l[3] == ' ' then
field3 = ''
else
field3 = [=[<tr>
<td colspan="2"><hr></td>
</tr><tr>
<td align="left" width="10%" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold;">Лидер_с:</td>
<td>]=] .. l[3] .. '</td></tr>'
count = count + l[3]
end -- if l[3]
if l[4] == nil or l[4] == '' or l[4] == ' ' then
field4 = ''
else
field4 = [=[<tr>
<td colspan="2"><hr></td>
</tr><tr>
<td align="left" width="10%" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold;">Лидер_по:</td>
<td>]=] .. l[4] .. '</td></tr>'
count = count + l[4]
end -- if l4]
table.insert(t, [=[<tr>
<td colspan="2"><hr></td>
</tr><tr>
<td align="left" width="10%" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold;">Имя:</td>
<td>[[]=] .. l[1] .. ']]</td></tr>' .. [=[[[Category:]=] .. l[1] .. [=[]]]=]
.. field2 .. field3)
until true end -- 'for i' cycle
table.insert(t, [=[</table>
</div></div>
</td></tr>
<tr>
<td align="left" width="10%" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold;">Общее число:</td>
<td>не менее
]=] .. #t/2 .. '</td></tr>')
return table.concat(t, "")
end
return p