Editing Module:Documentation

Jump to: navigation, search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 3: Line 3:
 
-- Get required modules.
 
-- Get required modules.
 
local getArgs = require('Module:Arguments').getArgs
 
local getArgs = require('Module:Arguments').getArgs
 +
local messageBox = require('Module:Message box')
  
 
-- Get the config table.
 
-- Get the config table.
Line 43: Line 44:
 
end
 
end
  
return ugsub(msg, '$([1-9][0-9]*)', getMessageVal)
+
local ret = ugsub(msg, '$([1-9][0-9]*)', getMessageVal)
 +
return ret
 
end
 
end
  
Line 80: Line 82:
 
ret[#ret + 1] = select(i, ...)
 
ret[#ret + 1] = select(i, ...)
 
end
 
end
-- 'documentation-toolbar'
+
return '<small style="font-style: normal;">(' .. table.concat(ret, ' &#124; ') .. ')</small>'
return '<span class="' .. message('toolbar-class') .. '">('
 
.. table.concat(ret, ' &#124; ') .. ')</span>'
 
 
end
 
end
  
Line 129: Line 129:
 
-- This function defines logic flow for the module.
 
-- This function defines logic flow for the module.
 
-- @args - table of arguments passed by the user
 
-- @args - table of arguments passed by the user
 +
--
 +
-- Messages:
 +
-- 'main-div-id' --> 'template-documentation'
 +
-- 'main-div-classes' --> 'template-documentation iezoomfix'
 
--]]
 
--]]
 
local env = p.getEnvironment(args)
 
local env = p.getEnvironment(args)
Line 136: Line 140:
 
:wikitext(p.protectionTemplate(env))
 
:wikitext(p.protectionTemplate(env))
 
:wikitext(p.sandboxNotice(args, env))
 
:wikitext(p.sandboxNotice(args, env))
 +
-- This div tag is from {{documentation/start box}}, but moving it here
 +
-- so that we don't have to worry about unclosed tags.
 
:tag('div')
 
:tag('div')
-- 'documentation-container'
+
:attr('id', message('main-div-id'))
:addClass(message('container'))
+
:addClass(message('main-div-classes'))
 
:newline()
 
:newline()
 +
:wikitext(p._startBox(args, env))
 +
:wikitext(p._content(args, env))
 
:tag('div')
 
:tag('div')
-- 'documentation'
+
:css('clear', 'both') -- So right or left floating items don't stick out of the doc box.
:addClass(message('main-div-classes'))
 
:newline()
 
:wikitext(p._startBox(args, env))
 
:wikitext(p._content(args, env))
 
:tag('div')
 
-- 'documentation-clear'
 
:addClass(message('clear'))
 
:done()
 
 
:newline()
 
:newline()
 
:done()
 
:done()
:wikitext(p._endBox(args, env))
 
 
:done()
 
:done()
 +
:wikitext(p._endBox(args, env))
 
:wikitext(p.addTrackingCategories(env))
 
:wikitext(p.addTrackingCategories(env))
-- 'Module:Documentation/styles.css'
+
return tostring(root)
return mw.getCurrentFrame():extensionTag (
 
'templatestyles', '', {src=cfg['templatestyles']
 
}) .. tostring(root)
 
 
end
 
end
  
Line 167: Line 164:
 
function p.getEnvironment(args)
 
function p.getEnvironment(args)
 
--[[
 
--[[
-- Returns a table with information about the environment, including title
+
-- Returns a table with information about the environment, including title objects and other namespace- or
-- objects and other namespace- or path-related data.
+
-- path-related data.
 
-- @args - table of arguments passed by the user
 
-- @args - table of arguments passed by the user
 
--
 
--
Line 293: Line 290:
  
 
function envFuncs.docSpace()
 
function envFuncs.docSpace()
-- The documentation namespace number. For most namespaces this is the
+
-- The documentation namespace number. For most namespaces this is the same as the
-- same as the subject namespace. However, pages in the Article, File,
+
-- subject namespace. However, pages in the Article, File, MediaWiki or Category
-- MediaWiki or Category namespaces must have their /doc, /sandbox and
+
-- namespaces must have their /doc, /sandbox and /testcases pages in talk space.
-- /testcases pages in talk space.
 
 
local subjectSpace = env.subjectSpace
 
local subjectSpace = env.subjectSpace
 
if subjectSpace == 0 or subjectSpace == 6 or subjectSpace == 8 or subjectSpace == 14 then
 
if subjectSpace == 0 or subjectSpace == 6 or subjectSpace == 8 or subjectSpace == 14 then
Line 322: Line 318:
 
local compareUrl = mw.uri.fullUrl(
 
local compareUrl = mw.uri.fullUrl(
 
'Special:ComparePages',
 
'Special:ComparePages',
{ page1 = templateTitle.prefixedText, page2 = sandboxTitle.prefixedText}
+
{page1 = templateTitle.prefixedText, page2 = sandboxTitle.prefixedText}
 
)
 
)
 
return tostring(compareUrl)
 
return tostring(compareUrl)
Line 371: Line 367:
 
local templateTitle = env.templateTitle
 
local templateTitle = env.templateTitle
 
local subjectSpace = env.subjectSpace
 
local subjectSpace = env.subjectSpace
if not (subjectSpace and title and sandboxTitle and templateTitle
+
if not (subjectSpace and title and sandboxTitle and templateTitle and mw.title.equals(title, sandboxTitle)) then
and mw.title.equals(title, sandboxTitle)) then
 
 
return nil
 
return nil
 
end
 
end
Line 415: Line 410:
 
end
 
end
 
-- Add the sandbox to the sandbox category.
 
-- Add the sandbox to the sandbox category.
omargs.text = text .. makeCategoryLink(message('sandbox-category'))
+
text = text .. makeCategoryLink(message('sandbox-category'))
 
+
omargs.text = text
-- 'documentation-clear'
+
local ret = '<div style="clear: both;"></div>'
return '<div class="' .. message('clear') .. '"></div>'
+
ret = ret .. messageBox.main('ombox', omargs)
.. require('Module:Message box').main('ombox', omargs)
+
return ret
 
end
 
end
  
Line 428: Line 423:
 
-- 'protection-template' --> 'pp-template'
 
-- 'protection-template' --> 'pp-template'
 
-- 'protection-template-args' --> {docusage = 'yes'}
 
-- 'protection-template-args' --> {docusage = 'yes'}
local protectionLevels = env.protectionLevels
+
local protectionLevels, mProtectionBanner
 +
local title = env.title
 +
protectionLevels = env.protectionLevels
 
if not protectionLevels then
 
if not protectionLevels then
 
return nil
 
return nil
Line 436: Line 433:
 
if editProt then
 
if editProt then
 
-- The page is edit-protected.
 
-- The page is edit-protected.
return require('Module:Protection banner')._main{
+
mProtectionBanner = require('Module:Protection banner')
message('protection-reason-edit'), small = true
+
local reason = message('protection-reason-edit')
}
+
return mProtectionBanner._main{reason, small = true}
 
elseif moveProt and moveProt ~= 'autoconfirmed' then
 
elseif moveProt and moveProt ~= 'autoconfirmed' then
 
-- The page is move-protected but not edit-protected. Exclude move
 
-- The page is move-protected but not edit-protected. Exclude move
 
-- protection with the level "autoconfirmed", as this is equivalent to
 
-- protection with the level "autoconfirmed", as this is equivalent to
 
-- no move protection at all.
 
-- no move protection at all.
return require('Module:Protection banner')._main{
+
mProtectionBanner = require('Module:Protection banner')
action = 'move', small = true
+
return mProtectionBanner._main{action = 'move', small = true}
}
 
 
else
 
else
 
return nil
 
return nil
Line 583: Line 579:
 
-- 'file-namespace-heading' --> 'Summary'
 
-- 'file-namespace-heading' --> 'Summary'
 
-- 'other-namespaces-heading' --> 'Documentation'
 
-- 'other-namespaces-heading' --> 'Documentation'
 +
-- 'start-box-linkclasses' --> 'mw-editsection-like plainlinks'
 +
-- 'start-box-link-id' --> 'doc_editlinks'
 
-- 'testcases-create-link-display' --> 'create'
 
-- 'testcases-create-link-display' --> 'create'
 
--]=]
 
--]=]
Line 615: Line 613:
 
if headingStyle then
 
if headingStyle then
 
data.headingStyleText = headingStyle
 
data.headingStyleText = headingStyle
 +
elseif subjectSpace == 10 then
 +
-- We are in the template or template talk namespaces.
 +
data.headingFontWeight = 'bold'
 +
data.headingFontSize = '125%'
 
else
 
else
-- 'documentation-heading'
+
data.headingFontSize = '150%'
data.headingClass = message('main-div-heading-class')
 
 
end
 
end
 
 
 
-- Data for the [view][edit][history][purge] or [create] links.
 
-- Data for the [view][edit][history][purge] or [create] links.
 
if links then
 
if links then
-- 'mw-editsection-like plainlinks'
+
data.linksClass = message('start-box-linkclasses')
data.linksClass = message('start-box-link-classes')
+
data.linksId = message('start-box-link-id')
 
data.links = links
 
data.links = links
 
end
 
end
Line 635: Line 636:
 
local sbox = mw.html.create('div')
 
local sbox = mw.html.create('div')
 
sbox
 
sbox
-- 'documentation-startbox'
+
:css('padding-bottom', '3px')
:addClass(message('start-box-class'))
+
:css('border-bottom', '1px solid #aaa')
 +
:css('margin-bottom', '1ex')
 
:newline()
 
:newline()
 
:tag('span')
 
:tag('span')
:addClass(data.headingClass)
 
 
:cssText(data.headingStyleText)
 
:cssText(data.headingStyleText)
 +
:css('font-weight', data.headingFontWeight)
 +
:css('font-size', data.headingFontSize)
 
:wikitext(data.heading)
 
:wikitext(data.heading)
 
local links = data.links
 
local links = data.links
Line 697: Line 700:
 
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
 
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
 
--  
 
--  
 +
-- Messages:
 +
-- 'fmbox-id' --> 'documentation-meta-data'
 +
-- 'fmbox-style' --> 'background-color: #ecfcf4'
 +
-- 'fmbox-textstyle' --> 'font-style: italic'
 +
--
 +
-- The HTML is generated by the {{fmbox}} template, courtesy of [[Module:Message box]].
 
--]=]
 
--]=]
 
 
Line 722: Line 731:
 
end
 
end
  
-- Assemble the link box.
+
-- Assemble the arguments for {{fmbox}}.
 +
local fmargs = {}
 +
fmargs.id = message('fmbox-id') -- Sets 'documentation-meta-data'
 +
fmargs.image = 'none'
 +
fmargs.style = message('fmbox-style') -- Sets 'background-color: #ecfcf4'
 +
fmargs.textstyle = message('fmbox-textstyle') -- 'font-style: italic;'
 +
 
 +
-- Assemble the fmbox text field.
 
local text = ''
 
local text = ''
 
if linkBox then
 
if linkBox then
Line 732: Line 748:
 
-- Add sandbox and testcases links.
 
-- Add sandbox and testcases links.
 
-- "Editors can experiment in this template's sandbox and testcases pages."
 
-- "Editors can experiment in this template's sandbox and testcases pages."
text = text .. (p.makeExperimentBlurb(args, env) or '') .. '<br />'
+
text = text .. (p.makeExperimentBlurb(args, env) or '')
 +
text = text .. '<br />'
 
if not args.content and not args[1] then
 
if not args.content and not args[1] then
 
-- "Please add categories to the /doc subpage."
 
-- "Please add categories to the /doc subpage."
Line 746: Line 763:
 
end
 
end
 
end
 
end
+
fmargs.text = text
local box = mw.html.create('div')
 
-- 'documentation-metadata'
 
box:addClass(message('end-box-class'))
 
-- 'plainlinks'
 
:addClass(message('end-box-plainlinks'))
 
:wikitext(text)
 
:done()
 
  
return '\n' .. tostring(box)
+
return messageBox.main('fmbox', fmargs)
 
end
 
end
  
Line 769: Line 779:
 
-- 'transcluded-from-blurb' -->  
 
-- 'transcluded-from-blurb' -->  
 
-- 'The above [[Wikipedia:Template documentation|documentation]]  
 
-- 'The above [[Wikipedia:Template documentation|documentation]]  
-- is [[Help:Transclusion|transcluded]] from $1.'
+
-- is [[Wikipedia:Transclusion|transcluded]] from $1.'
 
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
 
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
 
-- 'create-link-display' --> 'create'
 
-- 'create-link-display' --> 'create'

Please note that all contributions to All About Ayrshire may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see All About Ayrshire:Copyrights for details). Do not submit copyrighted work without permission!

Cancel Editing help (opens in new window)

Template used on this page: