Module:Documentation

-- local dependencyList = require( 'Module:DependencyList' ) local yn = require( 'Module:Yesno' ) local hatnote = require( 'Module:Hatnote' )._hatnote local mbox = require( 'Module:Mbox' )._mbox 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 ret, cats, ret1, ret2, ret3 local onModule = title.namespace == 828 local opts = frame.args; -- subpage header if title.subpageText == 'doc' then ret = mbox(			'This is a documentation subpage for ' .. page .. '.',			string.format( 'It contains usage information, categories, and other content that is not part of the original %s page.', onModule and 'module' or 'template' ),			{ icon = 'WikimediaUI-Notice.svg' }   	)

if title.namespace == 10 then -- Template namespace cats = '' ret2 = dependencyList._main elseif title.namespace == 828 then -- Module namespace cats = '' ret2 = dependencyList._main ret2 = ret2 .. require('Module:Module toc').main 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 = ' '

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'} ) ) .. ' view' ..                     .. tostring( mw.uri.fullUrl( page .. '/doc', {action='edit'} ) ) .. ' edit' ..                    '' .. tostring( mw.uri.fullUrl( page .. '/doc', {action='history'} ) ) .. ' history' ..                    '[ [' .. tostring( mw.uri.fullUrl( title.fullText, {action='purge'} ) ) .. ' purge] ]'                ) :done :done :tag( 'div' ) :addClass( 'documentation-subheader' ) :tag( 'span' ) :addClass( 'documentation-documentation' ) :wikitext( 'This documentation is transcluded from ' .. page .. '/doc. Changes can be proposed in the talk page.' ) :done :wikitext(frame:extensionTag{ name = 'templatestyles', args = { src = 'Documentation/styles.css'} }) :done

ret3 = {} table.insert( ret3, dependencyList._main( nil, args.category, args.isUsed ) ) if args.fromWikipedia then table.insert( ret3,   		mbox( string.format(					'This %s is imported from %s on Wikipedia.',					onModule and 'module' or 'template',					page,					page				), 'This template is imported from the English Wikipedia. Although the visual appearance might be different, the functionality is identical. Please refer to the Wikipedia page for detailed documentation.', { icon = 'WikimediaUI-Logo-Wikipedia.svg' } )	  )    end if title.namespace == 828 then -- Testcase page if title.subpageText == 'testcases' then table.insert( ret3,		   	hatnote( string.format( 'This is the test cases page for the module Module:%s.', title.baseText ), { icon='WikimediaUI-LabFlask.svg' } )		   )		end

table.insert( ret3, ' ' )

-- Function list table.insert( ret3, require( 'Module:Module toc' ).main ) -- Unit tests local testcaseTitle = title.baseText .. '/testcases' if mw.title.new( testcaseTitle, 'Module' ).exists then -- There is probably a better way :P table.insert( ret3, frame:preprocess( '' ) ) end table.insert( ret3, ' ' ) end return ret1 .. tostring( ret2 ) .. ' ' .. table.concat( ret3 ) end

return p

--