Module:Numlinks 2-num: Difference between revisions

Ganaram inukshuk (talk | contribs)
m todo
Ganaram inukshuk (talk | contribs)
generalize code
Line 64: Line 64:
local links = {}
local links = {}
for j = 1, 3 do
local num_links_1 = 1
local num_links_2 = 1
for j = 1, 1 + num_links_2 * 2 do
local row = {}
local row = {}
for i = 1, 3 do
for i = 1, 1 + num_links_1 * 2 do
local num_2 = format_number(curr_num_2 + i - 2, is_ordinal_2)
local num_2 = format_number(curr_num_2 + i - 2, is_ordinal_2)
local num_1 = format_number(curr_num_1 + j - 2, is_ordinal_1)
local num_1 = format_number(curr_num_1 + j - 2, is_ordinal_1)
if i == 2 and j == 2 then
if i == num_links_1 + 1 and j == num_links_2 + 1 then
table.insert(row, make_current(num_1, num_2))
table.insert(row, make_current(num_1, num_2)) -- Text is for the current page
else
else
table.insert(row, make_link(num_1, num_2))
table.insert(row, make_link(num_1, num_2)) -- Text is for an adjacent link
end
end
end
end
Line 81: Line 83:
local lines = {}
local lines = {}
-- Produce table of links
table.insert(lines, '{| style="width: 100%;"')
table.insert(lines, '{| style="width: 100%;"')
table.insert(lines, '|-')
local middle_cell_width = 100 / (num_links_1 + 2)
table.insert(lines, '| style="font-size: 0.75em;" | '            .. links[1][1])
for j = 1, 1 + num_links_2 * 2 do
table.insert(lines, '| style="font-size: 0.75em; width: 50%;" | ' .. links[1][2])
-- New row
table.insert(lines, '| style="font-size: 0.75em;" | '            .. links[1][3])
table.insert(lines, '|-')
table.insert(lines, '|-')
for i = 1, 1 + num_links_1 * 2 do
table.insert(lines, '| style="font-size: 0.75em;" | '            .. links[2][1])
if i == num_links_1 + 1 then
table.insert(lines, '| style="width: 50%;"  | '                  .. links[2][2])
-- Insert text for middle cell
table.insert(lines, '| style="font-size: 0.75em;" | '            .. links[2][3])
table.insert(lines, string.format('| style="font-size: 0.75em; width: %d%%;" | %s', middle_cell_width, links[i][j]))
table.insert(lines, '|-')
else
table.insert(lines, '| style="font-size: 0.75em;" | '            .. links[3][1])
-- Insert text for non-middle cell
table.insert(lines, '| style="font-size: 0.75em; width: 50%;" | ' .. links[3][2])
table.insert(lines, string.format('| style="font-size: 0.75em;" | %s', links[i][j]))
table.insert(lines, '| style="font-size: 0.75em;" | '             .. links[3][3])
end
end
end
table.insert(lines, '|}')
table.insert(lines, '|}')