请输入您要查询的百科知识:

 

词条 Module:EventList
释义 -- this module implements Event list

local p = {}

local mArguments = require('Module:Arguments')

function p.main(frame)

local args = mArguments.getArgs(frame)

local title = args['title'] or 'Chronology of events for ' .. mw.title.getCurrentTitle().text

local cols = tonumber(args['columns'] or '2') or 2

local datewidth = args['datewidth'] or '-1'

local datealign = args['datealign'] or

local collapse = args['collapse'] or 'collapsed'

-- append the suffix to the date width or set to auto

if (tonumber(datewidth) or -1) >= 0 then

datewidth = tonumber(datewidth) .. '%'

else

datewidth = 'auto'

end

-- build a list of event parameter numbers

eventnums = {}

for k,v in pairs(args) do

local i = tonumber(tostring(k):match( '^%s*date([%d]+)%s*$' ) or '-1')

if i ~= -1 then

table.insert(eventnums, i)

else

i = tonumber(tostring(k):match( '^%s*event([%d]+)%s*$' ) or '-1')

if i ~= -1 then

table.insert(eventnums, i)

else

i = tonumber(k) or -1

if i ~= -1 then

table.insert(eventnums, math.floor((i+1)/2) )

end

end

end

end

-- sort to process in order

table.sort( eventnums )

-- remove duplicates

for k = 2,#eventnums do

if eventnums[k] == eventnums[k-1] then

table.remove(eventnums, k)

end

end

-- create the root table

local root = mw.html.create('table')

root:addClass('wikitable')

:addClass('collapsible')

:addClass(collapse)

:css('width', '100%')

-- Add the title

root:tag('tr'):tag('th'):attr('colspan', cols):wikitext(title)

-- Create the row to hold the columns

local outerrow = root:tag('tr'):css('vertical-align', 'top')

local percol = math.ceil((#eventnums) / cols)

k = 0

for i = 1,cols do

local outercell = outerrow:tag('td'):css('width', (math.floor(10/cols)/10) .. '%')

local innertable = outercell:tag('table')

:css('width', '100%')

:css('border', 'none')

:css('cellspacing', '-1px')

:css('cellpadding', '0px')

:css('margin', '-1px')

:css('font-size', '88%')

:css('line-height', '100%')

local tr = innertable:tag('tr'):css('vertical-align', 'top')

tr:tag('th')

:attr('scope', 'col')

:css('width', datewidth)

:css('text-align', (datealign ~= ) and datealign or 'left')

:css('border-bottom', '1px #aaa solid')

:wikitext('Date')

tr:tag('th')

:attr('scope', 'col')

:css('text-align', 'left')

:css('border-bottom', '1px #aaa solid')

:wikitext('Event description')

for j=1,percol do

k = k + 1

if k <= #eventnums then

local n = tonumber(eventnums[k])

local d = (args['date' .. n] or ) .. (args[2*(n-1)+1] or )

local e = (args['event' .. n] or ) .. (args[2*(n-1)+2] or )

if d ~= or e ~= then

tr = innertable:tag('tr'):css('vertical-align', 'top')

tr:tag('td'):css('text-align',(datealign ~= ) and datealign or nil):wikitext(d)

tr:tag('td'):wikitext(e)

end

end

end

end

return tostring(root)

end

return p

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/9/29 7:29:20