Modul:Infobox: Béda antarrépisi
Konten dihapus Konten ditambahkan
Tidak ada ringkasan suntingan |
mTidak ada ringkasan suntingan |
||
Baris ka-2:
-- This module implements {{Infobox}}
--
local p = {}
local navbar = require('Module:Navbar')._navbar
local args = {}
local origArgs
local root
local function notempty( s ) return s and s:match( '%S' ) end
local function fixChildBoxes(sval, tt)
if notempty(sval) then
local marker = '<span class=special_infobox_marker>'
local s = sval
s = mw.ustring.gsub(s, '(<%s*[Tt][Rr])', marker .. '%1')
s = mw.ustring.gsub(s, '(</[Tt][Rr]%s*>)', '%1' .. marker)
if s:match(marker) then
s = mw.ustring.gsub(s, marker .. '%s*' .. marker, '')
s = mw.ustring.gsub(s, '([\r\n]|-[^\r\n]*[\r\n])%s*' .. marker, '%1')
s = mw.ustring.gsub(s, marker .. '%s*([\r\n]|-)', '%1')
s = mw.ustring.gsub(s, '(</[Cc][Aa][Pp][Tt][Ii][Oo][Nn]%s*>%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, '(<%s*[Tt][Aa][Bb][Ll][Ee][^<>]*>%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, '^(%{|[^\r\n]*[\r\n]%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, '([\r\n]%{|[^\r\n]*[\r\n]%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, marker .. '(%s*</[Tt][Aa][Bb][Ll][Ee]%s*>)', '%1')
s = mw.ustring.gsub(s, marker .. '(%s*\n|%})', '%1')
end
if s:match(marker) then
local subcells = mw.text.split(s, marker)
s = ''
for k = 1, #subcells do
if k == 1 then
s = s .. subcells[k] .. '</' .. tt .. '></tr>'
elseif k == #subcells then
local rowstyle = ' style="display:none"'
if notempty(subcells[k]) then rowstyle = '' end
s = s .. '<tr' .. rowstyle ..'><' .. tt .. ' colspan=2>\n' .. subcells[k]
elseif notempty(subcells[k]) then
if (k % 2) == 0 then
s = s .. subcells[k]
else
s = s .. '<tr><' .. tt .. ' colspan=2>\n' .. subcells[k] .. '</' .. tt .. '></tr>'
end
end
end
end
-- the next two lines add a newline at the end of lists for the PHP parser
-- https://en.wikipedia.org/w/index.php?title=Template_talk:Infobox_musical_artist&oldid=849054481
-- remove when [[:phab:T191516]] is fixed or OBE
s = mw.ustring.gsub(s, '([\r\n][%*#;:][^\r\n]*)$', '%1\n')
s = mw.ustring.gsub(s, '^([%*#;:][^\r\n]*)$', '%1\n')
s = mw.ustring.gsub(s, '^([%*#;:])', '\n%1')
s = mw.ustring.gsub(s, '^(%{%|)', '\n%1')
return s
else
return sval
end
end
local function union(t1, t2)
Baris 54 ⟶ 107:
:css('text-align', 'center')
:cssText(args.headerstyle)
:
elseif rowArgs.data then
local row = root:tag('tr')
Baris 65 ⟶ 119:
:attr('scope', 'row')
:attr('id', rowArgs.labelid)
:css('text-align', 'left')▼
:cssText(args.labelstyle)
:wikitext(rowArgs.label)
:done()
Baris 81 ⟶ 135:
:addClass(rowArgs.class)
:cssText(rowArgs.datastyle)
:
:wikitext(fixChildBoxes(rowArgs.data, 'td'))
end
end
Baris 108 ⟶ 162:
:css('font-weight', 'bold')
:cssText(args.abovestyle)
:wikitext(fixChildBoxes(args.above,'th'))
end
Baris 121 ⟶ 175:
:css('text-align', 'center')
:cssText(args.belowstyle)
:
▲ :wikitext(args.below)
end
Baris 136 ⟶ 189:
addRow({
data = args['subheader' .. tostring(num)],
datastyle = args.subheaderstyle,
class = args.subheaderclass,
rowclass = args['subheaderrowclass' .. tostring(num)]
Baris 183 ⟶ 237:
rowclass = args['rowclass' .. tostring(num)],
rowstyle = args['rowstyle' .. tostring(num)],
rowcellstyle = args['rowcellstyle' .. tostring(num)],
dataid = args['dataid' .. tostring(num)],
labelid = args['labelid' .. tostring(num)],
Baris 199 ⟶ 254:
:attr('colspan', '2')
:css('text-align', 'right')
:wikitext(
}
end
Baris 214 ⟶ 269:
local function renderTrackingCategories()
if args.decat ~= 'yes' then
if #(getArgNums('data')) == 0 and mw.title.getCurrentTitle().namespace == 0 then▼
if args.title then
root:wikitext('[[Category:Artikel nu maké citakan kotak info tanpa baris data]]')▼
root:wikitext('[[Category:Pages which use embedded infobox templates with the title parameter]]')
end
▲ if args.child == 'yes' and args.title then
▲ root:wikitext('[[Category:
end
end
Baris 230 ⟶ 286:
root
:addClass((args.subbox ~= 'yes') and 'infobox' or nil)
:addClass(args.bodyclass)
Baris 376 ⟶ 432:
{prefix = 'rowclass'},
{prefix = 'rowstyle'},
{prefix = 'rowcellstyle'},
{prefix = 'class'},
{prefix = 'dataid'},
|