Модуль:LawList
Материал из Указатель частей и соединений РККА 1941-1945
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Для документации этого модуля может быть создана страница Модуль:LawList/doc
local lawlist = {} local tools = require( 'Module:Tools' ) local report = require( 'Module:Report' ) local lexer = require( 'Module:Lexer' ) local ref = require( 'Module:Ref' ) -- ="{{ указ | пор = "&C23&" | назв = "&D23&" | дата = "&ТЕКСТ(I23,"ДД.ММ.ГГГГ")&" | номер = | дело = "&K23&" | листы = "&E23&ЕСЛИ(F23="","","−"&F23)&ЕСЛИ(J23="",""," | фио = "&ПОДСТАВИТЬ(J23&" и др.","$ и др.",""))&ЕСЛИ(L23="",""," | "&L23)&" }}" function lawlist.Line( frame ) local args = tools.checkargs( frame:getParent().args, { true, ['пор'] = true, ['назв'] = true, ['дата'] = true, ['номер'] = true, ['дело'] = true, ['листы'] = true, ['фио'] = true, ['гриф'] = true, ['примечание'] = true, ['приказ'] = true, ['подвиг'] = true, ['вч'] = true, ['сноска/пор'] = true, ['сноска/номер'] = true, } ) if args[1] then --ГАРФ. Ф. Р7523. Оп. 4. Д. 56 local op, delo = string.match( args[1], '^ГАРФ%. Ф%. Р7523%. Оп%. (%d+)%. Д%. (%d+)%.?$' ) assert( op ) return '<div class=ll-file-title>ГАРФ. Ф. Р7523. Оп. ' .. op .. '. Д. ' .. delo .. '</div>' end local highlight = args['вч'] if highlight then highlight = ' ll-highlight' end local out = { '<div class="ll-line' .. ( highlight or '' ) .. '">' } local tmp = args['листы'] if tmp then tmp = ' <span class=ll-clerical title="Листы дела">(л. ' .. tmp .. ')</span>' end local reference = args['сноска/пор'] if reference then ref.refStart() reference = ref.use( reference ) end table.insert( out, '<div class=ll-seq>' .. ( args['пор'] or '—' ) .. ( reference or '' ) .. ( tmp or '' ) .. '</div>' ) local fio = args['фио'] if fio then fio = ' <span class=ll-fio>[' .. fio .. ']</span>' end table.insert( out, '<div class=ll-title>' .. ( args['назв'] or '<span class=error>?</span>' ) .. ( fio or '' ) .. '</div>' ) table.insert( out, '<div class=ll-date>' .. ( args['дата'] or '<span class=error>?</span>' ) .. '</div>' ) tmp = { args['номер'] } if args['дело'] then table.insert( tmp, '<span class=ll-clerical title="Номер канцелярского дела с материалами указа">(' .. args['дело'] .. ')</span>' ) end reference = args['сноска/номер'] if reference then ref.refStart() reference = ref.use( reference ) end table.insert( out, '<div class=ll-number>' .. table.concat( tmp, ' ' ) .. ( reference or '' ) .. '</div>' ) local misc = {} tmp = args['приказ'] if tmp then tmp = mw.text.split( tmp, '%s*;%s*' ) local a = 'Приказ военного совета ' .. lexer.declension( report.fuller( tmp[1] ), 1 ) .. ' № ' .. tmp[2] .. ' от ' .. tmp[3] if tmp[4] then a = '[http://podvignaroda.ru/#?id=' .. tmp[4] .. ' ' .. a ..']' end table.insert( misc, '<span class=ll-by-unit>' .. a .. '</span>' ) end tmp = args['подвиг'] if tmp then tmp = mw.text.split( tmp, '%s*;%s*' ) if #tmp == 1 then tmp = 'См. [http://podvignaroda.ru/#?id=' .. tmp[1] .. ' сайт «Подвиг народа»]' else local a = {} for i, n in ipairs( tmp ) do table.insert( a, '[http://podvignaroda.ru/#?id=' .. n .. ' ' .. i .. ']' ) end tmp = 'См. сайт «Подвиг народа»: ' .. table.concat( a, ', ' ) end table.insert( misc, '<span class=ll-podvig>' .. tmp .. '</span>' ) end tmp = args['гриф'] if tmp then tmp = mw.text.split( tmp, '%s*;%s*' ) table.insert( misc, '<span class=ll-class title="Гриф">' .. table.concat( tmp, '</span><span class=ll-class>' ) .. '</span>' ) end tmp = args['примечание'] if tmp then table.insert( misc, '<span class=ll-addendum>' .. tmp .. '</span>' ) end table.insert( out, '<div class=ll-misc>' .. table.concat( misc, '. ' ) .. '</div>' ) table.insert( out, '</div>' ) return ref.refReturn( table.concat( out ) ) end return lawlist