Модуль:Documentation

Lua модуль из Wikimeat
Версия от 05:36, 14 июля 2022; Tim1mike (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Эта документация включена из Модуль:Documentation/doc. Изменения можно предлагать на странице обсуждения.

Модуль:Doc имплементирует Template:Documentation для шаблонов и модулей.


local dependencyList = require( 'Module:DependencyList' )
local yn = require( 'Module:Yesno' )
local p = {}

function p.doc( frame )
	local title = mw.title.getCurrentTitle()
	local args = frame:getParent().args
	local page = args[1] or mw.ustring.gsub( title.fullText, '/doc$', '' )
	local addDependencyList = yn( args.DependencyList or true )
	local ret, cats, ret1, ret2, ret3
	local onModule = title.namespace == 828

	-- subpage header
	if title.subpageText == 'doc' then
		ret = mw.html.create( nil )
				:tag( 'div' )
				:addClass( 'mbox mbox-low mbox-documentationsub' )
				:attr( 'role', 'presentation')
				:tag( 'span' )
				:addClass( 'mbox-title' )
				:tag( 'span' )
				:addClass( 'mbox-icon metadata' )
				:wikitext( '[[File:OOjs UI icon notice.svg|14px|link=]]' )
				:done()
				:wikitext( 'Это подстраница документации для ' .. page .. '.' )
				:done()
				:tag( 'span' )
				:addClass( 'mbox-text' )
				:wikitext(
			string.format(
				'Он содержит информацию об использовании, категории и другой контент, который не является частью [[' .. page .. '|исходной страницы %s]].',
				onModule and 'module' or 'template'
			)
		)
				:done()
				:done()
				:wikitext(frame:extensionTag{ name = 'templatestyles', args = { src = 'Mbox/styles.css'} })
				:wikitext(frame:extensionTag{ name = 'templatestyles', args = { src = 'Hatnote/styles.css'} })
				:done()

		if title.namespace == 10 then -- Template namespace
			cats = '[[Category:Документация шаблонов|' .. title.baseText .. ']]'
			ret2 = addDependencyList and dependencyList._main() or ''
		elseif title.namespace == 828 then -- Module namespace
			cats = '[[Category:Документация модулей|' .. title.baseText .. ']]'
			ret2 = addDependencyList and dependencyList._main() or ''
		else
			cats = ''
			ret2 = ''
		end

		return tostring( ret ) .. ret2 .. cats
	end

	-- template header
	-- don't use mw.html as we aren't closing the main div tag
	ret1 = '<div class="documentation">'

	ret2 = mw.html.create( nil )
			 :tag( 'div' )
			 :addClass( 'documentation-header' )
			 :tag( 'span' )
			 :addClass( 'documentation-title' )
			 :wikitext( string.format('%s documentation', onModule and 'Module' or 'Template') )
			 :done()
			 :tag( 'span' )
			 :addClass( 'documentation-links plainlinks' )
			 :wikitext(
		'[[' .. tostring( mw.uri.fullUrl( page .. '/doc', {action='view'} ) ) .. ' посмотреть]]' ..
			'[[' .. tostring( mw.uri.fullUrl( page .. '/doc', {action='edit'} ) ) .. ' править]]' ..
			'[[' .. tostring( mw.uri.fullUrl( page .. '/doc', {action='history'} ) ) .. ' история]]' ..
			'[<span class="jsPurgeLink">[' .. tostring( mw.uri.fullUrl( title.fullText, {action='purge'} ) ) .. ' сбросить кэш]</span>]'
	)
			 :done()
			 :done()
			 :tag( 'div' )
			 :addClass( 'documentation-subheader' )
			 :tag( 'span' )
			 :addClass( 'documentation-documentation' )
			 :wikitext( 'Эта документация включена из [[' .. page .. '/doc]]. Изменения можно предлагать на странице обсуждения.' )
			 :done()
			 :wikitext(frame:extensionTag{ name = 'templatestyles', args = { src = 'Mbox/styles.css'} })
			 :wikitext(frame:extensionTag{ name = 'templatestyles', args = { src = 'Hatnote/styles.css'} })
			 :wikitext(frame:extensionTag{ name = 'templatestyles', args = { src = 'Documentation/styles.css'} })
			 :done()

	ret3 = addDependencyList and dependencyList._main() or ''

	return ret1 .. tostring( ret2 ) .. '<div class="documentation-content">' .. ret3
end

return p
🍪 Наш веб-сайт использует файлы cookie для того, чтобы сделать ваш опыт использования сайта лучше и анализа использования сайта