Module:Numlinks 2-num: Difference between revisions
add tester; add edge-case detection |
comments; remove width code for current-page cell |
||
| Line 68: | Line 68: | ||
end | end | ||
-- Create a grid of links | -- Create a grid of links. | ||
-- Offsets are the number of cells from the left and upper edges, capped | |||
-- between the number of links in each direction and the allowed minima for | |||
-- each direction. | |||
local row_offset = clamp(num_links_2, num_links_2 + 1, curr_num_2) | local row_offset = clamp(num_links_2, num_links_2 + 1, curr_num_2) | ||
local col_offset = clamp(num_links_1, num_links_1 + 1, curr_num_1) | local col_offset = clamp(num_links_1, num_links_1 + 1, curr_num_1) | ||
local num_rows = num_links_2 + row_offset | local num_rows = num_links_2 + row_offset | ||
local num_cols = num_links_1 + col_offset | local num_cols = num_links_1 + col_offset | ||
local links = {} | local links = {} | ||
for j = 1, num_rows do | for j = 1, num_rows do | ||
| Line 90: | Line 92: | ||
end | end | ||
-- Produce table of links | |||
local lines = {} | local lines = {} | ||
table.insert(lines, '{| style="width: 100%;"') | table.insert(lines, '{| style="width: 100%;"') | ||
for j = 1, num_rows do | for j = 1, num_rows do | ||
-- New row | -- New row | ||
table.insert(lines, '|-') | table.insert(lines, '|-') | ||
for i = 1, num_cols do | for i = 1, num_cols do | ||
if i == col_offset | if i == col_offset and j == row_offset then | ||
-- Insert text for current-page cell | |||
table.insert(lines, string.format('| %s', links[j][i])) | |||
else | else | ||
-- Insert text for non-middle cell | -- Insert text for non-current middle cell | ||
table.insert(lines, string.format('| style="font-size: 0.75em; | table.insert(lines, string.format('| style="font-size: 0.75em; | %s', links[j][i])) | ||
end | end | ||
end | end | ||