ФЭНДОМ


local p = {}
-- Creating a documentation page or transclution through {{subst:doc}}
function p.create( f )
	local args = require( 'Модуль:ProcessArgs' ).norm()
	page = mw.title.getCurrentTitle()
	namespace = args['тип'] or page.nsText
	docPage = args['страница'] or namespace .. ':' .. page.baseText .. '/док'
 
	local out
	if page.fullText == docPage then
		out = f:preprocess( '{{subst:Шаблон:Документация/Предзагрузка}}' )
	else
		local templateArgs = {}
		if args['тип'] then
			table.insert( templateArgs, 'тип=' .. args['тип'] )
		end
		if args['страница'] then
			table.insert( templateArgs, 'страница=' .. args['страница'] )
		end
 
		out = '{{Документация|' .. table.concat( templateArgs, '|' ) .. '}}\n<!-- Размещайте категории/интервики на странице документации -->'
		out = out:gsub( '|}}', '}}' )
	end
 
	if not mw.isSubsting() then
		out = f:preprocess( out )
		if args['некат'] ~= 1 then
			out = out .. '[[Категория:Страницы с требующими подстановки шаблонами]]'
		end
	end
 
	return out
end
 
-- Header on the documentation page
function p.docPage(f)
	local args = require( 'Модуль:ProcessArgs' ).merge( true )
	local badDoc = args['плохдок'] or ''
	local noDoc = args['нетдок'] or ''
	if f:callParserFunction( '#dplvar:noheader' ) == '1' then
		if noDoc ~= '' then
			f:callParserFunction( '#dplvar:set', 'notdoc', '1' )
		elseif badDoc ~= '' then
			f:callParserFunction( '#dplvar:set', 'baddoc', '1' )
		end
		return ''
	end
	local page = mw.title.getCurrentTitle()
	local namespace = args['тип'] or page.nsText
	local pageType = 'этого шаблона'
	local pageType2 = 'этот шаблон'
	local pageType3 = 'Шаблоны'
 
	if namespace == 'Модуль' then
		pageType = 'этого модуля'
		pageType2 = 'этот модуль'
		pageType3 = 'Модули'
	elseif page.fullText:find( '.css$' ) then
		pageType = 'этой таблицы стилей'
		pageType2 = 'эту таблицу стилей'
		pageType3 = 'Таблицы стилей'
	elseif page.fullText:find( '.js$' ) then
		pageType = 'этого скрипта'
		pageType2 = 'этот скрипт'
		pageType3 = 'Скрипты'
	elseif namespace == 'MediaWiki' then
		pageType = 'этого сообщения'
		pageType2 = 'это сообщение'
		pageType3 = 'Сообщения'
	end
 
	local colour = 'EAF4F9'
	local message = ''
	if badDoc ~= '' then
		colour = 'F9F2EA'
		message = "'''Документация " .. pageType .. " была отмечена как плохая. Пожалуйста, дополните или улучшите её.'''"
	end
	if noDoc ~= '' then
		colour = 'F9EAEA'
		message = "'''У " .. pageType .. " нет документации. Если вы знаете, как использовать " .. pageType2 .. ", пожалуйста, добавьте соответствующую информацию.'''"
	end
 
	local certainty = 'её следует включить'
	if pageType2 == 'этот модуль' then
		certainty = 'она будет включена'
	end
 
	local category = ''
	if args['некат'] ~= '1' then
		category = '[[Категория:Страницы документации]]'
	end
 
	local out = table.concat( {
		'<div style="margin-bottom: 0.8em; padding: 0.8em 1em 0.7em; background-color: #' .. colour .. '; border: 1px solid #AAA">',
		'<div style="float: right">[[' .. page:fullUrl( 'action=purge' ) .. ' ' .. f:preprocess( '{{lc:{{int:purge}}}}' ) .. ']]</div>',
			'<p style="margin: 0">Это страница документации, ' .. certainty .. ' в основную страницу ' .. pageType .. '. Для дополнительной информации см. [[Шаблон:Документация]].</p>',
			message,
		'</div>',
		category
	}, '\n' )
 
	return mw.text.trim( out )
end
 
-- Wrapper around the documentation on the main page
function p.page( f )
	local args = require( 'Модуль:ProcessArgs' ).merge( true )	
	local page = mw.title.getCurrentTitle()
	local namespace = args['тип'] or page.nsText
	local docPage = mw.title.new( args['страница'] or namespace .. ':' .. page.text .. '/док' )
	local noDoc = args['нетдок'] or ''
	if not docPage.exists or noDoc ~= '' then
	local noDoc = 1
	local badDoc = nil
	elseif args['плохдок'] ~= '' then
		local badDoc = 1
		local noDoc = nil
	end
	local pageType = 'этого шаблона'
	local pageType2 = 'этот шаблон'
	local pageType3 = 'Шаблоны'
 
	if namespace == 'Модуль' then
		pageType = 'этого модуля'
		pageType2 = 'этот модуль'
		pageType3 = 'Модули'
	elseif page.fullText:find( '.css$' ) then
		pageType = 'этой таблицы стилей'
		pageType2 = 'эту таблицу стилей'
		pageType3 = 'Таблицы стилей'
	elseif page.fullText:find( '.js$' ) then
		pageType = 'этого скрипта'
		pageType2 = 'этот скрипт'
		pageType3 = 'Скрипты'
	elseif namespace == 'MediaWiki' then
		pageType = 'этого сообщения'
		pageType2 = 'это сообщение'
		pageType3 = 'Сообщения'
	end
 
	local docText = ''
 
	if docPage.exists then
		f:callParserFunction( '#dplvar:set', 'noheader', '1' )
		docText = mw.text.trim( f:expandTemplate{ title = ':' .. docPage.fullText } )
		if f:callParserFunction( '#dplvar:baddoc' ) == '1' then
			badDoc = 1
		end
 
		if docText == '' then
			noDoc = 1
		else
			docText = '\n' .. docText .. '\n'
		end
 
		if f:callParserFunction( '#dplvar:notdoc' ) == '1' then
			noDoc = 1
		end
	end
 
	local action = f:preprocess( '{{lc:{{int:editlink}}}}' )
	local preload = ''
	local colour = 'EAF4F9'
	local message = ''
	local category = ''
	if not docPage.exists then
		action = f:preprocess( '{{lc:{{int:create}}}}' )
		preload = '&preload=Шаблон:Документация/Предзагрузка'
		noDoc = 1
	end
	if noDoc == 1 then
		colour = 'F9EAEA'
		message = "'''У " .. pageType .. " нет документации. Если вы знаете, как использовать " .. pageType2 .. ", пожалуйста, добавьте соответствующую информацию.'''"
		if args['некат'] ~= '1' then
			if mw.title.new( 'Категория:' .. pageType3 .. ' без документации' ).exists then
				category = '[[Категория:' .. pageType3 .. ' без документации]]'
			else
				category = '[[Категория:Страницы без документации]]'
			end
		end
	elseif badDoc then
		colour = 'F9F2EA'
		message = "'''Документация " .. pageType .. " была отмечена как плохая. Пожалуйста, дополните или улучшите её.'''\n"
		if args['некат'] ~= '1' then
			if mw.title.new( 'Категория:' .. pageType3 .. ' с плохой документацией' ).exists then
				category = '[[Категория:' .. pageType3 .. ' с плохой документацией]]'
			else
				category = '[[Категория:Страницы с плохой документацией]]'
			end
		end
	end
 
	local links = {
		'[' .. docPage:fullUrl( 'action=edit' .. preload ) .. ' ' .. action .. ']',
		'[' .. page:fullUrl( 'action=purge' ) .. ' ' .. f:preprocess( '{{lc:{{int:purge}}}}' ) .. ']'
	}
	local footer = ''
	if docPage.exists then
		table.insert( links, 1, '[[' .. docPage.fullText .. '|' .. f:preprocess( '{{lc:{{int:view}}}}' ) .. ']]' )
		footer = table.concat( {
			'<div style="margin: 0.7em -1em -0.7em; background-color: #EAF4F9; border-top: 1px solid #AAA; padding: 0.8em 1em 0.7em; clear: both">\n',
				'<div style="float: right">' .. mw.text.nowiki( '[' ) .. table.concat( links, ' | ' ) .. ']</div>\n',
				'<p style="margin: 0">Расположенная выше документация включена из [[' .. docPage.fullText .. ']].</p>\n',
			'</div>\n'
		} )
	end
 
	local out = {
		'<div style="background-color: #' .. colour .. '; border: 1px solid #AAA; padding: 0.8em 1em 0.7em; clear: both">\n',
			'<div style="margin: -0.8em -1em 0.8em; padding: 0.8em 1em 0.7em; background-color: #EAF4F9; border-bottom: 1px solid #AAA">\n',
				'<div style="float: right">' .. mw.text.nowiki( '[' ) .. table.concat( links, ' | ' ) .. ']</div>\n',
				'<span style="font-weight: bold; font-size: 130%">Документация</span>',
			'</div>\n',
			message,
			docText,
			footer,
		'</div>\n',
		category
	}
 
	return mw.text.trim( table.concat( out ) )
end
return p

Обнаружено использование расширения AdBlock.


Викия — это свободный ресурс, который существует и развивается за счёт рекламы. Для блокирующих рекламу пользователей мы предоставляем модифицированную версию сайта.

Викия не будет доступна для последующих модификаций. Если вы желаете продолжать работать со страницей, то, пожалуйста, отключите расширение для блокировки рекламы.