Module:Message box: Difference between revisions
From Mariopedia, a wiki on Mario, Yoshi, Wario, Donkey Kong, Super Smash Bros., and more!
Jump to navigationJump to search
Content deleted Content added
No edit summary |
mNo edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
require('strict') |
|||
-- This is a meta-module for producing message box templates, including |
|||
-- {{mbox}}, {{ambox}}, {{imbox}}, {{tmbox}}, {{ombox}}, {{cmbox}} and {{fmbox}}. |
|||
-- Load necessary modules. |
|||
require('Module:No globals') |
|||
local getArgs |
local getArgs |
||
local yesno = require('Module:Yesno') |
local yesno = require('Module:Yesno') |
||
local templatestyles = 'Module:Message box/styles.css' |
|||
-- Get a language object for formatDate and ucfirst. |
|||
local lang = mw.language.getContentLanguage() |
local lang = mw.language.getContentLanguage() |
||
-- Define constants |
|||
local CONFIG_MODULE = 'Module:Message box/configuration' |
local CONFIG_MODULE = 'Module:Message box/configuration' |
||
local DEMOSPACES = { |
local DEMOSPACES = {talk = 'tmbox', image = 'imbox', file = 'imbox', category = 'cmbox', article = 'ambox', main = 'ambox'} |
||
-------------------------------------------------------------------------------- |
-------------------------------------------------------------------------------- |
||
Line 269: | Line 261: | ||
end |
end |
||
if talkTitle and talkTitle.exists then |
if talkTitle and talkTitle.exists then |
||
local talkText |
|||
⚫ | |||
if self.isSmall then |
|||
⚫ | |||
local talkLink = talkArgIsTalkPage and talk or (talkTitle.prefixedText .. '#' .. talk) |
|||
⚫ | |||
talkText = string.format('([[%s|talk]])', talkLink) |
|||
'%s [[%s|%s]].', |
|||
else |
|||
talkText, |
|||
⚫ | |||
talk, |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
'%s [[%s|%s]].', |
|||
else |
|||
talkText, |
|||
⚫ | |||
talk, |
|||
⚫ | |||
⚫ | |||
talkText, |
|||
) |
|||
⚫ | |||
else |
|||
talk |
|||
⚫ | |||
) |
|||
⚫ | |||
⚫ | |||
talkText, |
|||
⚫ | |||
talk |
|||
) |
|||
end |
|||
end |
|||
self.talk = talkText |
self.talk = talkText |
||
end |
end |
||
Line 298: | Line 296: | ||
end |
end |
||
if date then |
if date then |
||
self.date = string.format(" < |
self.date = string.format(" <span class='date-container'><i>(<span class='date'>%s</span>)</i></span>", date) |
||
end |
end |
||
self.info = args.info |
self.info = args.info |
||
Line 320: | Line 318: | ||
self.imageCellDiv = not self.isSmall and cfg.imageCellDiv |
self.imageCellDiv = not self.isSmall and cfg.imageCellDiv |
||
self.imageEmptyCell = cfg.imageEmptyCell |
self.imageEmptyCell = cfg.imageEmptyCell |
||
if cfg.imageEmptyCellStyle then |
|||
self.imageEmptyCellStyle = 'border:none;padding:0px;width:1px' |
|||
end |
|||
-- Left image settings. |
-- Left image settings. |
||
Line 344: | Line 339: | ||
self.imageRight = imageRight |
self.imageRight = imageRight |
||
end |
end |
||
⚫ | |||
self.base_templatestyles = cfg.templatestyles |
|||
self.templatestyles = args.templatestyles |
|||
end |
end |
||
Line 477: | Line 476: | ||
mw.text.nowiki('{{'), self.name, self.name, mw.text.nowiki('}}') |
mw.text.nowiki('{{'), self.name, self.name, mw.text.nowiki('}}') |
||
)) |
)) |
||
⚫ | |||
local frame = mw.getCurrentFrame() |
|||
root:wikitext(frame:extensionTag{ |
|||
name = 'templatestyles', |
|||
args = { src = self.base_templatestyles }, |
|||
}) |
|||
-- Add support for a single custom templatestyles sheet. Undocumented as |
|||
-- need should be limited and many templates using mbox are substed; we |
|||
-- don't want to spread templatestyles sheets around to arbitrary places |
|||
if self.templatestyles then |
|||
root:wikitext(frame:extensionTag{ |
|||
name = 'templatestyles', |
|||
args = { src = self.templatestyles }, |
|||
⚫ | |||
end |
end |
||
Line 502: | Line 516: | ||
-- image width to 52px. If any images in a div are wider than that, |
-- image width to 52px. If any images in a div are wider than that, |
||
-- they may overlap with the text or cause other display problems. |
-- they may overlap with the text or cause other display problems. |
||
imageLeftCell = imageLeftCell:tag('div'): |
imageLeftCell = imageLeftCell:tag('div'):addClass('mbox-image-div') |
||
end |
end |
||
imageLeftCell:wikitext(self.imageLeft or nil) |
imageLeftCell:wikitext(self.imageLeft or nil) |
||
Line 512: | Line 526: | ||
row:tag('td') |
row:tag('td') |
||
:addClass('mbox-empty-cell') |
:addClass('mbox-empty-cell') |
||
:cssText(self.imageEmptyCellStyle or nil) |
|||
end |
end |
||
Line 525: | Line 538: | ||
:addClass('mbox-text-span') |
:addClass('mbox-text-span') |
||
:wikitext(self.issue or nil) |
:wikitext(self.issue or nil) |
||
if (self.talk or self.fix) |
if (self.talk or self.fix) then |
||
textCellDiv:tag('span') |
textCellDiv:tag('span') |
||
:addClass('hide-when-compact') |
:addClass('hide-when-compact') |
||
Line 539: | Line 552: | ||
end |
end |
||
if self.removalNotice then |
if self.removalNotice then |
||
textCellDiv:tag(' |
textCellDiv:tag('span') |
||
:addClass('hide-when-compact') |
:addClass('hide-when-compact') |
||
:tag('i') |
:tag('i') |
||
Line 557: | Line 570: | ||
-- If we are using a div, redefine imageRightCell so that the image |
-- If we are using a div, redefine imageRightCell so that the image |
||
-- is inside it. |
-- is inside it. |
||
imageRightCell = imageRightCell:tag('div'): |
imageRightCell = imageRightCell:tag('div'):addClass('mbox-image-div') |
||
end |
end |
||
imageRightCell |
imageRightCell |
||
Line 576: | Line 589: | ||
if self.invalidTypeError then |
if self.invalidTypeError then |
||
root:tag('div') |
root:tag('div') |
||
: |
:addClass('mbox-invalid-type') |
||
:wikitext(string.format( |
:wikitext(string.format( |
||
'This message box is using an invalid "type=%s" parameter and needs fixing.', |
'This message box is using an invalid "type=%s" parameter and needs fixing.', |
||
Line 607: | Line 620: | ||
box:setCategories() |
box:setCategories() |
||
return box:export() |
return box:export() |
||
end |
|||
⚫ | |||
return mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = templatestyles} } |
|||
.. 'CONFIG_MODULE' |
|||
end |
end |
||