Module:family tree: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
No edit summary
Line 35: Line 35:
local family_with_proto_language_icon = family_icon
local family_with_proto_language_icon = family_icon
local function format_node(code, is_protolanguage_or_has_protolanguage)
local function format_node(code, is_protolanguage_or_has_protolanguage)
local canonical_name, category_name, class, icon, tooltip, style
local canonical_name, category_name, class, icon, tooltip
if regular_languages[code] then
if regular_languages[code] then
canonical_name = regular_languages[code][1]  
canonical_name = regular_languages[code][1]  
Line 41: Line 41:
class = "familytree-lang"
class = "familytree-lang"
if is_protolanguage_or_has_protolanguage then
if is_protolanguage_or_has_protolanguage then
class = class .. ' familytree-protolang'
icon = proto_language_icon
icon = proto_language_icon
end
end
Line 65: Line 66:
.. '[[:Category:' .. (category_name or canonical_name) .. '|'
.. '[[:Category:' .. (category_name or canonical_name) .. '|'
.. canonical_name
.. canonical_name
.. ' <span class="familytree-code" style="color: green;">(' .. code .. ')</span>]]'
.. ' <span class="familytree-code">(' .. code .. ')</span>]]'
.. (icon and ' <span class="familytree-icon" style="background: '.. (class == "familytree-etymlang" and "#005ab3" or "green") .. '; padding: 0 0.5ch; color: white; font-size: 0.8em;">'
.. (icon and ' <span class="familytree-icon">' .. icon .. '</span>' or '')
.. icon .. '</span>' or '')
.. '</span>'
.. '</span>'
end
end
Line 174: Line 174:
if not val[1] then
if not val[1] then
result:insert('<li style="margin: 0;">' .. prefix .. branch .. options.sterile_branch_text
result:insert('<li>' .. prefix .. branch .. options.sterile_branch_text
.. language_or_family_node .. '</li>')
.. language_or_family_node .. '</li>')
else
else
local customcollapsible_id = get_customcollapsible_id()
local customcollapsible_id = get_customcollapsible_id()
result:insert('<li style="margin: 0;">' .. prefix .. branch
result:insert('<li>' .. prefix .. branch
.. '<span class="familytree-toggle mw-customtoggle-'
.. '<span class="familytree-toggle mw-customtoggle-'
.. customcollapsible_id .. '">───┬</span>')
.. customcollapsible_id .. '">───┬</span>')
Line 203: Line 203:
p.are_all_children_etymology_languages(val)
p.are_all_children_etymology_languages(val)
local collapsible_ul = '<ul style="list-style: none; margin: 0; padding: 0;" class="mw-collapsible'
local collapsible_ul = '<ul class="mw-collapsible'
.. (all_children_are_etymology_languages
.. (all_children_are_etymology_languages
and ' familytree-only-etym-children'
and ' familytree-only-etym-children'
Line 213: Line 213:
if flag then
if flag then
result:insert(top_node
result:insert(top_node
.. collapsible_ul .. '<li style="margin: 0;">' .. prefix
.. collapsible_ul .. '<li>' .. prefix
.. (i == length and no_break_space or "│")
.. (i == length and no_break_space or "│")
.. level_separator .. "│")
.. level_separator .. "│")
Line 318: Line 318:
end
end
local result = Array('<div class="familytree" style="font-family: monospace; font-size: 1.25em; white-space: nowrap;"><ul style="list-style: none; margin: 0; padding: 0;">')
local result = Array('<div class="familytree"><ul>')
local tree_options = {
local tree_options = {
Line 331: Line 331:
for i, subtable in ipairs(nested_data) do
for i, subtable in ipairs(nested_data) do
-- top language name
-- top language name
result:insert('<li style="margin: 0;">')
result:insert('<li>')
-- name me!
-- name me!
Line 353: Line 353:
local customcollapsible_id = get_customcollapsible_id()
local customcollapsible_id = get_customcollapsible_id()
result:insert('<span class="familytree-toptoggle mw-customtoggle-'
result:insert('<span class="familytree-toptoggle mw-customtoggle-'
.. customcollapsible_id .. '" style="display: none; margin-left: 1ch;">')
.. customcollapsible_id .. '" style="display: none;">')
result:insert(options.collapsed and expandtext or collapsetext)
result:insert(options.collapsed and expandtext or collapsetext)
result:insert('</span>')
result:insert('</span>')
if flag then
if flag then
result:insert('<li style="margin: 0;">')
result:insert('<li>')
result:insert(next_node)
result:insert(next_node)
end
end
-- tree
-- tree
result:insert('<ul style="list-style: none; margin: 0; padding: 0;" class="mw-collapsible')
result:insert('<ul class="mw-collapsible')
if options.collapsed then
if options.collapsed then
result:insert(' mw-collapsed')
result:insert(' mw-collapsed')
Line 378: Line 378:
result:insert('</ul></div>')
result:insert('</ul></div>')
result:insert(require("Module:TemplateStyles")("Module:family tree/style.css"))
return result:concat()
return result:concat()

Navigation menu