This wiki has had no edits or log actions made within the last 45 days and has been automatically marked as inactive. If you would like to prevent this wiki from being closed, please start showing signs of activity here. If there are no signs of this wiki being used within the next 15 days, this wiki will be closed in accordance to the Dormancy Policy (which all wiki founders accept when requesting a wiki). If this wiki is closed and no one reopens it 135 days from now, this wiki will become eligible for deletion. Note: If you are a bureaucrat, you can go to Special:ManageWiki and uncheck "inactive" yourself.

Module:Documentation

From Persist Online Wiki
Revision as of 13:11, 2 May 2022 by Nohus (talk | contribs) (1 revision imported)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Module documentation[view][edit][history][purge]
This documentation is transcluded from Module:Documentation/doc. Changes can be proposed in the talk page.
Module:Documentation requires Module:DependencyList.
Module:Documentation requires Module:Yesno.

Module:Documentation implements Template:Documentation for templates and modules.


-- <nowiki>
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:WikimediaUI-Notice.svg|14px|link=]]' )
                        :done()
                    :wikitext( 'This is a documentation subpage for ' .. page .. '.' )
                    :done()
                :tag( 'span' )
                    :addClass( 'mbox-text' )
                    :wikitext(
                        string.format(
                            'It contains usage information, categories, and other content that is not part of the [[' .. page .. '|original %s page]].',
                            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:Template documentation|' .. title.baseText .. ']]'
            ret2 = addDependencyList and dependencyList._main() or ''
        elseif title.namespace == 828 then -- Module namespace
            cats = '[[Category:Module documentation|' .. 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'} ) ) .. ' view]]' ..
                    '[[' .. tostring( mw.uri.fullUrl( page .. '/doc', {action='edit'} ) ) .. ' edit]]' ..
                    '[[' .. tostring( mw.uri.fullUrl( page .. '/doc', {action='history'} ) ) .. ' history]]' ..
                    '[<span class="jsPurgeLink">[' .. tostring( mw.uri.fullUrl( title.fullText, {action='purge'} ) ) .. ' purge]</span>]'
                )
                :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 = '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

-- </nowiki>
Cookies help us deliver our services. By using our services, you agree to our use of cookies.