Модуль:Mwc

Материал из Справочника наблюдателя
Перейти к:навигация, поиск

(i)      Описание модуля[]


Делаем полную генерацию строки таблицы.


Параметры:

  • имя 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 .. ' &nbsp;<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 .. ' &nbsp;<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 .. '">&times;&nbsp;</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 .. '">&times;&nbsp;</div>'
		end
		row3 = row3 .. '</td></tr>'
	else
		row1 = row1 .. ' &nbsp;<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 .. ' &bull; <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 .. '">&times;&nbsp;</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 .. '">&times;&nbsp;</div>'
			end
			row4 = row4 .. '</td></tr>'
		else
			row1 = row1 .. ' &bull; <span style="color: darkgrey; font-weight: bold; font-size: 80%;">db</span>'
			row4 = ''
		end
	else
		row4 = ''
	end
	
	row1 = row1 .. ' &bull; <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 .. ']]' ..
			'&nbsp;<small>[' .. tostring(mw.uri.fullUrl( val .. ':' .. ns .. alfa, 'action=edit' )) ..' <i class="fa fa-edit"></i>]</small>' ..
			'&nbsp;<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 .. ']]' ..
			'&nbsp;<small>[' .. tostring(mw.uri.fullUrl( val .. ':MediaWiki:' .. alfa, 'action=edit' )) ..' <i class="fa fa-edit"></i>]</small>' ..
			'&nbsp;<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