در حال ویرایش پودمان:Infobox
این ویرایش را میتوان خنثی کرد. لطفاً تفاوت زیر را بررسی کنید تا تأیید کنید که این چیزی است که میخواهید انجام دهید، سپس تغییرات زیر را ذخیره کنید تا خنثیسازی ویرایش را به پایان ببرید.
نسخهٔ فعلی | متن شما | ||
خط ۲: | خط ۲: | ||
-- This module implements {{Infobox}} | -- This module implements {{Infobox}} | ||
-- | -- | ||
local p = {} | local p = {} | ||
local | local HtmlBuilder = require('mw.html') | ||
local args = {} | local args = {} | ||
local origArgs | local origArgs | ||
local root | local root | ||
function union(t1, t2) | |||
-- Returns the union of the values of two tables, as a sequence. | -- Returns the union of the values of two tables, as a sequence. | ||
local vals = {} | local vals = {} | ||
خط ۹۴: | خط ۴۵: | ||
if rowArgs.header then | if rowArgs.header then | ||
root | root | ||
.tag('tr') | |||
.addClass(rowArgs.rowclass) | |||
.tag('th') | |||
.attr('colspan', 2) | |||
.addClass(rowArgs.class) | |||
.css('text-align', 'center') | |||
.cssText(args.headerstyle) | |||
.wikitext(rowArgs.header) | |||
elseif rowArgs.data then | elseif rowArgs.data then | ||
local row = root | local row = root.tag('tr') | ||
row | row.addClass(rowArgs.rowclass) | ||
if rowArgs.label then | if rowArgs.label then | ||
row | row | ||
.tag('th') | |||
.attr('scope', 'row') | |||
.css('text-align', 'left') | |||
.cssText(args.labelstyle) | |||
.wikitext(rowArgs.label) | |||
.done() | |||
end | end | ||
local dataCell = row | local dataCell = row.tag('td') | ||
if not rowArgs.label then | if not rowArgs.label then | ||
dataCell | dataCell | ||
.attr('colspan', 2) | |||
.css('text-align', 'center') | |||
end | end | ||
dataCell | dataCell | ||
.addClass(rowArgs.class) | |||
.cssText(rowArgs.datastyle) | |||
.newline() | |||
.wikitext(rowArgs.data) | |||
end | end | ||
end | end | ||
خط ۱۴۳: | خط ۸۴: | ||
root | root | ||
.tag('caption') | |||
.addClass(args.titleclass) | |||
.cssText(args.titlestyle) | |||
.wikitext(args.title) | |||
end | end | ||
خط ۱۵۳: | خط ۹۴: | ||
root | root | ||
.tag('tr') | |||
.tag('th') | |||
.attr('colspan', 2) | |||
.addClass(args.aboveclass) | |||
.css('text-align', 'center') | |||
.css('font-size', '125%') | |||
.css('font-weight', 'bold') | |||
.cssText(args.abovestyle) | |||
.wikitext(args.above) | |||
end | end | ||
خط ۱۶۸: | خط ۱۰۹: | ||
root | root | ||
.tag('tr') | |||
.tag('td') | |||
.attr('colspan', '2') | |||
.addClass(args.belowclass) | |||
.css('text-align', 'center') | |||
.cssText(args.belowstyle) | |||
.newline() | |||
.wikitext(args.below) | |||
end | end | ||
خط ۱۸۹: | خط ۱۳۰: | ||
addRow({ | addRow({ | ||
data = args['subheader' .. tostring(num)], | data = args['subheader' .. tostring(num)], | ||
datastyle = args.subheaderstyle | datastyle = args.subheaderstyle or args['subheaderstyle' .. tostring(num)], | ||
class = args.subheaderclass, | class = args.subheaderclass, | ||
rowclass = args['subheaderrowclass' .. tostring(num)] | rowclass = args['subheaderrowclass' .. tostring(num)] | ||
خط ۲۰۷: | خط ۱۴۷: | ||
for k, num in ipairs(imagenums) do | for k, num in ipairs(imagenums) do | ||
local caption = args['caption' .. tostring(num)] | local caption = args['caption' .. tostring(num)] | ||
local data = | local data = HtmlBuilder.create().wikitext(args['image' .. tostring(num)]) | ||
if caption then | if caption then | ||
data | data | ||
.tag('br', {selfClosing = true}) | |||
.done() | |||
.tag('div') | |||
.cssText(args.captionstyle) | |||
.wikitext(caption) | |||
end | end | ||
addRow({ | addRow({ | ||
خط ۲۳۵: | خط ۱۷۷: | ||
datastyle = args.datastyle, | datastyle = args.datastyle, | ||
class = args['class' .. tostring(num)], | class = args['class' .. tostring(num)], | ||
rowclass = args['rowclass | rowclass = args['rowclass' .. tostring(num)] | ||
}) | }) | ||
end | end | ||
خط ۲۵۰: | خط ۱۸۶: | ||
root | root | ||
.tag('tr') | |||
.tag('td') | |||
.attr('colspan', '2') | |||
.css('text-align', 'right') | |||
: | .wikitext(mw.getCurrentFrame():expandTemplate({ | ||
args.name, | title = 'navbar', | ||
args = { args.name, mini = 1 } | |||
}) | })) | ||
end | end | ||
خط ۲۶۳: | خط ۱۹۹: | ||
local italicTitle = args['italic title'] and mw.ustring.lower(args['italic title']) | local italicTitle = args['italic title'] and mw.ustring.lower(args['italic title']) | ||
if italicTitle == '' or italicTitle == 'force' or italicTitle == 'yes' then | if italicTitle == '' or italicTitle == 'force' or italicTitle == 'yes' then | ||
root | root.wikitext(mw.getCurrentFrame():expandTemplate({title = 'italic title'})) | ||
end | end | ||
end | end | ||
خط ۲۶۹: | خط ۲۰۵: | ||
local function renderTrackingCategories() | local function renderTrackingCategories() | ||
if args.decat ~= 'yes' then | if args.decat ~= 'yes' then | ||
if #(getArgNums('data')) == 0 and mw.title.getCurrentTitle().namespace == 0 then | |||
root.wikitext('') | |||
end | |||
if args.child == 'yes' and args.title then | |||
root.wikitext('') | |||
root | |||
end | end | ||
end | end | ||
خط ۲۸۳: | خط ۲۱۸: | ||
-- if the infobox is used as a 'child' inside another infobox. | -- if the infobox is used as a 'child' inside another infobox. | ||
if args.child ~= 'yes' then | if args.child ~= 'yes' then | ||
root = | root = HtmlBuilder.create('table') | ||
root | root | ||
.addClass('infobox') | |||
.addClass(args.bodyclass) | |||
.attr('cellspacing', 3) | |||
.css('border-spacing', '3px') | |||
if args.subbox == 'yes' then | if args.subbox == 'yes' then | ||
root | root | ||
.css('padding', '0') | |||
.css('border', 'none') | |||
.css('margin', '-3px') | |||
.css('width', 'auto') | |||
.css('min-width', '100%') | |||
.css('font-size', '100%') | |||
.css('clear', 'none') | |||
.css('float', 'none') | |||
.css('background-color', 'transparent') | |||
else | else | ||
root | root | ||
.css('width', '22em') | |||
end | end | ||
root | root | ||
.cssText(args.bodystyle) | |||
renderTitle() | renderTitle() | ||
renderAboveRow() | renderAboveRow() | ||
else | else | ||
root = | root = HtmlBuilder.create() | ||
root | root | ||
.wikitext(args.title) | |||
end | end | ||
خط ۴۳۱: | خط ۳۶۸: | ||
{prefix = 'data', depend = {'label'}}, | {prefix = 'data', depend = {'label'}}, | ||
{prefix = 'rowclass'}, | {prefix = 'rowclass'}, | ||
{prefix = 'class'} | |||
{prefix = 'class | |||
}, 50) | }, 50) | ||
preprocessSingleArg('headerstyle') | preprocessSingleArg('headerstyle') | ||
preprocessSingleArg('labelstyle') | preprocessSingleArg('labelstyle') |