Module:Infobox MOS: Difference between revisions

Inthar (talk | contribs)
No edit summary
Inthar (talk | contribs)
No edit summary
Line 45: Line 45:
['8L 2s'] = 'taric',
['8L 2s'] = 'taric',
['9L 1s'] = 'sinatonic'
['9L 1s'] = 'sinatonic'
}
local common_name = {
}
}


Line 103: Line 100:
end
end
local prev_L, prev_s = '', ''
local has_prev_y = (nL > 1)
if mos.nL > 1 then
local has_prev_x = (ns > 1)
local prev_L, next_L, prev_s,next_s, prev_L_prev_s, prev_L_next_s, next_L_prev_s, next_L_next_s = nil
next_s = '[[' .. mos.nL .. 'L ' .. (mos.ns + 1) .. 's' .. equave_link .. '|↓' .. mos.nL .. 'L ' .. (mos.ns + 1) .. 's' .. equave_disp .. '\n]]'
next_L = '[[' .. (mos.nL + 1) .. 'L ' .. mos.ns .. 's' .. equave_link .. '|' .. (mos.nL + 1) .. 'L ' .. mos.ns .. 's' .. equave_disp .. '→]]'
next_L_next_s = '[[' .. (mos.nL + 1) .. 'L ' .. (mos.ns + 1) .. 's' .. equave_link .. '|← ' .. (mos.nL + 1) .. 'L ' .. (mos.ns + 1) .. 's' .. equave_disp .. ']]'
if has_prev_y then
prev_s = '[[' .. mos.nL .. 'L ' .. (mos.ns - 1) .. 's' .. equave_link .. '|↑' .. mos.nL .. 'L ' .. (mos.ns - 1) .. 's' .. equave_disp .. ']]'
prev_L_prev_s = '[[' .. (mos.nL - 1) .. 'L ' .. (mos.ns - 1) .. 's' .. equave_link .. '|← ' .. (mos.nL - 1) .. 'L ' .. (mos.ns - 1) .. 's' .. equave_disp .. ']]'
next_L_prev_s = '[[' .. (mos.nL + 1) .. 'L ' .. (mos.ns - 1) .. 's' .. equave_link .. '|← ' .. (mos.nL + 1) .. 'L ' .. (mos.ns - 1) .. 's' .. equave_disp .. ']]'
end
if has_prev_x then
prev_L = '[[' .. (mos.nL - 1) .. 'L ' .. mos.ns .. 's' .. equave_link .. '|← ' .. (mos.nL - 1) .. 'L ' .. mos.ns .. 's' .. equave_disp .. ']]'
prev_L = '[[' .. (mos.nL - 1) .. 'L ' .. mos.ns .. 's' .. equave_link .. '|← ' .. (mos.nL - 1) .. 'L ' .. mos.ns .. 's' .. equave_disp .. ']]'
prev_L_prev_s = '[[' .. (mos.nL - 1) .. 'L ' .. (mos.ns - 1) .. 's' .. equave_link .. '|← ' .. (mos.nL - 1) .. 'L ' .. (mos.ns - 1) .. 's' .. equave_disp .. ']]'
prev_L_next_s = '[[' .. (mos.nL - 1) .. 'L ' .. (mos.ns + 1) .. 's' .. equave_link .. '|← ' .. (mos.nL - 1) .. 'L ' .. (mos.ns + 1) .. 's' .. equave_disp .. ']]'
end
end
local next_L = '[[' .. (mos.nL + 1) .. 'L ' .. mos.ns .. 's' .. equave_link .. '|' .. (mos.nL + 1) .. 'L ' .. mos.ns .. 's' .. equave_disp .. '→]]'
local adjacent_links = {prev_L_prev_s, prev_s, next_L_prev_s, prev_L, next_L, prev_L_next_s, next_s, next_L_next_s}
if mos.ns > 1 then
prev_s = '[[' .. mos.nL .. 'L ' .. (mos.ns - 1) .. 's' .. equave_link .. '|↑' .. mos.nL .. 'L ' .. (mos.ns - 1) .. 's' .. equave_disp .. ']]'
end
local next_s = '[[' .. mos.nL .. 'L ' .. (mos.ns + 1) .. 's' .. equave_link .. '|↓' .. mos.nL .. 'L ' .. (mos.ns + 1) .. 's' .. equave_disp .. '\n]]'
local period = rat.as_ratio(equave)
local period = rat.as_ratio(equave)
Line 254: Line 259:
structure_data,
structure_data,
et_data,
et_data,
prev_L,
mos.nL,
next_L,
mos.ns
prev_s,
next_s
)
)
if not debug_mode then
if not debug_mode then
Line 265: Line 268:
end
end


function p.build(title, structure_entries, et_entries, prev_x, next_x, prev_y, next_y)
function p.build(title, structure_entries, et_entries, adjacent_links)
local s = '<div style="\n' ..
local s = '<div style="\n' ..
'border: 1px solid #999;\n' ..
'border: 1px solid #999;\n' ..
Line 280: Line 283:
'{| width="100%" style="border-collapse: collapse;"\n' ..
'{| width="100%" style="border-collapse: collapse;"\n' ..
'|+ style="font-weight: bold; text-align: center;" | '
'|+ style="font-weight: bold; text-align: center;" | '
local has_adjacent_x = (prev_x and #prev_x > 0) or (next_x and #next_x > 0)
if adjacent_links then
local has_adjacent_y = (prev_y and #prev_y > 0) or (next_y and #next_y > 0)
s = s .. '<table style="width: 100%; margin: 0"><tr><td>'
.. '</td>'
if prev_y then -- prev y
.. adjacent_links[1]
s = s .. '<table style="width: 100%; margin: 0"><tr>'
.. '<td style="\n'  
.. '<td></td><td style="\n'  
.. 'width: 50%; padding-left: 1em; padding-right: 1em; text-align: center; font-size: smaller">'
.. 'width: 50%; padding-left: 1em; padding-right: 1em; text-align: center; font-size: smaller">'
.. prev_y
.. adjacent_links[2]
.. '\n</td><td></td>'  
.. '\n</td><td>'
.. adjacent_links[3]
.. '</td>'  
.. '\n<tr>'
.. '\n<tr>'
.. '<td style="width: 15%; text-align: left; white-space: nowrap; font-size: smaller">'
.. '<td style="width: 15%; text-align: left; white-space: nowrap; font-size: smaller">'
.. (prev_x or '')
.. adjacent_links[4]
.. '</td>'
.. '</td>'
.. '<td style="width: 70%; padding-left: 1em; padding-right: 1em; text-align: center">'
.. '<td style="width: 70%; padding-left: 1em; padding-right: 1em; text-align: center">'
Line 297: Line 301:
.. '</td>'
.. '</td>'
.. '<td style="width: 15%; text-align: right; white-space: nowrap; font-size: smaller">'
.. '<td style="width: 15%; text-align: right; white-space: nowrap; font-size: smaller">'
.. (next_x or '')
.. adjacent_links[5]
.. '</td>'
.. '</td>'
.. '</tr>'
.. '</tr>'
if next_y then
.. '<tr>'
s = s .. '<tr>'
.. '<td>'
.. '<td></td><td style="\n'
.. adjacent_links[6]
.. 'width: 50%; padding-left: 1em; padding-right: 1em; text-align: center; font-size: smaller">'
.. '</td><td style="\n'  
.. next_y
.. '\n</td><td></td>'
.. '</tr>'
end
s = s ..  '</table>'
elseif has_adjacent_x then -- no prev y, has adjacent x
s = s .. '<table style="width: 100%; margin: 0"><tr>'
.. '<td style="width: 15%; text-align: left; white-space: nowrap; font-size: smaller">'
.. (prev_x or '')
.. '</td>'
.. '<td style="width: 70%; padding-left: 1em; padding-right: 1em; text-align: center">'
.. title
.. '</td>'
.. '<td style="width: 15%; text-align: right; white-space: nowrap; font-size: smaller">'
.. (next_x or '')
.. '</td>'
.. '</tr>'
if next_y then
s = s .. '<tr><td></td>'
.. '<td style="\n'  
.. 'width: 50%; padding-left: 1em; padding-right: 1em; text-align: center; font-size: smaller">'
.. 'width: 50%; padding-left: 1em; padding-right: 1em; text-align: center; font-size: smaller">'
.. next_y
.. adjacent_links[7]
.. '\n</td><td></td>'
.. '\n</td><td>'
.. '</tr>'
.. adjacent_links[8]
end
s = s ..  '</table>'
elseif next_y then -- no prev y, no adjacent x, so first row should be title in center
s = s .. '<table style="width: 100%; margin: 0"><tr>'
.. '<td>'
.. '</td>'
.. '</td>'
.. '<td>'
.. title
.. '</td>'
.. '<td>'
.. '</td>'
.. '</tr>'
.. '<tr><td></td>'
.. '<td style="\n'
.. 'width: 50%; text-align: left; white-space: nowrap; font-size: smaller">'
.. next_y
.. '\n</td><td></td>'
.. '</tr>'
.. '</tr>'
.. '</table>'  
.. '</table>'
else
else
s = s .. title
s = s .. title