Модуль:Mwc
Материал из Справочника наблюдателя
Делаем полную генерацию строки таблицы.
Параметры:
- имя msg
- комментарий
- интересные=список
- неинтересные=список
- дополнительные=список?
Вышеприведенная документация хранится отдельно ( править | история | скрыть ).
Задавайте категории на странице документации, а не здесь! Показать подстраницы
Задавайте категории на странице документации, а не здесь! Показать подстраницы
local p={}
local tab = {
wiki = { 'ru', 'en', 'de', 'fr', 'es', 'it', 'pl', 'wq', 'ws', 'wv', 'wc', 'meta', 'mw', 'wt' };
show = { ['meta'] = 'm' };
}
function p.Row (frame)
local args = frame:getParent().args
-- local args = frame.args
-- local args = frame
local alfa = mw.text.trim(args[1])
local nsn = args[ns] or 'MediaWiki'
local ns = nsn .. ':'
local mwns = nsn == 'MediaWiki'
local alfaclass = mw.ustring.gsub (alfa, '[%./]', '-')
local lang = 'text'
if mw.ustring.sub( alfa, -3, -1) == '.js' then
lang = 'javascript'
elseif mw.ustring.sub( alfa, -4, -1) == '.css' then
lang = 'css'
end
local row1, row2, row3, row4
row1 = '<tr><td width=20% valign=top>[[' .. ns .. alfa .. '|<b>' .. alfa .. '</b>]]' ..
' <small>[' .. tostring(mw.uri.fullUrl( ns .. alfa, 'action=edit' )) ..' <i class="fa fa-edit"></i>]</small>'
if mwns then
row1 = row1 .. ' <b>[[t:MediaWiki:' .. alfa .. '/qqq|?]]</b>'
end
-- local page = mw.title.makeTitle( 'MediaWiki', alfa )
local page = mw.title.makeTitle( nsn, alfa )
if page.exists then
local content = page:getContent()
row1 = row1 .. ' <span style="color: blue; font-weight: bold; font-size: 80%;" class="mw-customtoggle-page-' .. alfaclass .. '">local</span>'
row3 = '<tr style="display: none;" class="mw-collapsible mw-collapsed mw-collapsible-content" id="mw-customcollapsible-page-' .. alfaclass .. '">' ..
'<td colspan=2 style="white-space:pre-wrap; <!-- overflow-x:auto; -->font-family: courier new, monospace; background-color:#F7F7FF; ">' ..
'<div style="float: right; color: blue; font-weight: bold; font-size: 120%;" class="mw-customtoggle-page-' .. alfaclass .. '">× </div>' ..
'<nowiki>' .. mw.text.encode( content ) .. '</nowiki>' -- '<syntaxhighlight lang="' .. lang .. '">' .. ( content ) .. '</syntaxhighlight>' -- '<nowiki>' .. content .. '</nowiki>'
if mw.ustring.len (content) > 400 then
row3 = row3 .. '<div style="float: right; color: blue; font-weight: bold; font-size: 120%;" class="mw-customtoggle-page-' .. alfaclass .. '">× </div>'
end
row3 = row3 .. '</td></tr>'
else
row1 = row1 .. ' <span style="color: darkgrey; font-weight: bold; font-size: 80%;">local</span>'
row3 = ''
end
if mwns then
local msg = mw.message.new (alfa)
local msgru = msg:inLanguage('ru'):useDatabase( false )
if msgru:exists() then
local content = tostring (msgru)
row1 = row1 .. ' • <span style="color: blue; font-weight: bold; font-size: 80%;" class="mw-customtoggle-msgru-' .. alfaclass .. '">db</span>'
row4 = '<tr style="display: none;" class="mw-collapsible mw-collapsed mw-collapsible-content" id="mw-customcollapsible-msgru-' .. alfaclass .. '">' ..
'<td colspan=2 style="white-space:pre-wrap; <!-- overflow-x:auto; -->font-family: courier new, monospace; background-color:#FFFFF7; ">' ..
'<div style="float: right; color: blue; font-weight: bold; font-size: 120%;" class="mw-customtoggle-msgru-' .. alfaclass .. '">× </div>' ..
'<nowiki>' .. mw.text.encode( content ) .. '</nowiki>' -- '<nowiki>' .. content .. '</nowiki>'
if mw.ustring.len (content) > 400 then
row4 = row4 .. '<div style="float: right; color: blue; font-weight: bold; font-size: 120%;" class="mw-customtoggle-msgru-' .. alfaclass .. '">× </div>'
end
row4 = row4 .. '</td></tr>'
else
row1 = row1 .. ' • <span style="color: darkgrey; font-weight: bold; font-size: 80%;">db</span>'
row4 = ''
end
else
row4 = ''
end
row1 = row1 .. ' • <span style="color: blue; font-weight: bold; font-size: 80%;" class="mw-customtoggle-ext-' .. alfaclass .. '">ext</span>'
row2 = '<tr style="display: none;" class="mw-collapsible mw-collapsed mw-collapsible-content" id="mw-customcollapsible-ext-' .. alfaclass .. '">' ..
'<td colspan=2 style="background-color:#DDDDDD; font-size:85%; ">{{hlist'
for num, val in ipairs (tab.wiki) do
row2 = row2 .. ' | ' .. num .. ' = [[' .. val .. ':' .. ns .. (args[val] or alfa) .. '|'
if tab.show[val] then
row2 = row2 .. tab.show[val]
else
row2 = row2 .. val
end
row2 = row2 .. ']]' ..
' <small>[' .. tostring(mw.uri.fullUrl( val .. ':' .. ns .. alfa, 'action=edit' )) ..' <i class="fa fa-edit"></i>]</small>' ..
' <small>[[' .. val .. ':' .. nsn .. ' talk:' .. alfa ..'|<i class="far fa-comment"></i>]]</small>'
end
row2 = row2 .. ' }}</td></tr>'
row1 = row1 .. '</td><td valign=top style="line-height:115%; font-size: 95%;">' ..
(args[2] or '') .. '</td></tr>'
--[=[
row2 = '<tr><td style="font-size:75%; background-color:#DDDDDD; padding-top: 1px; padding-bottom: 1px; "></td><td style="font-size:75%; background-color:#DDDDDD; padding-top: 1px; padding-bottom: 1px; ">{{hlist'
for num, val in ipairs (tab.wiki) do
row2 = row2 .. ' | ' .. num .. ' = [[' .. val .. ':MediaWiki:' .. alfa .. '|'
if tab.show[val] then
row2 = row2 .. tab.show[val]
else
row2 = row2 .. val
end
row2 = row2 .. ']]' ..
' <small>[' .. tostring(mw.uri.fullUrl( val .. ':MediaWiki:' .. alfa, 'action=edit' )) ..' <i class="fa fa-edit"></i>]</small>' ..
' <small>[[' .. val .. ':MediaWiki talk:' .. alfa ..'|<i class="far fa-comment"></i>]]</small>'
end
row2 = row2 .. ' }}</td></tr>'
--]=]
return frame:preprocess(row1 .. row2 .. row3 .. row4)
end
return p