Module:Character Appearances: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
m fractalthorns uses hyphens |
||
| (18 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
local | local p = {} | ||
local appearances = { | local appearances = { | ||
VERCE = { | VERCE = { | ||
"the dark", | "[the dark]", | ||
"endless night", | "[open arms for the endless night]", | ||
"music and meter and rhyme", | "[music and meter and rhyme]", | ||
"verses", | "[verses]", | ||
"though strangers", | "[though strangers]", | ||
"somehow i knew" | "[somehow i knew]", | ||
}, | |||
VERDE = { | |||
"[painting will never be the same]", | |||
"[jealous pigments]", | |||
"[afterlife]", | |||
"[though strangers]", | |||
"[somehow i knew]", | |||
}, | |||
VIBRA = { | |||
"[bit of a shame]", | |||
"[afterlife]", | |||
"[verses] (mentioned)", | |||
"[though strangers]", | |||
"[somehow i knew]", | |||
"† [interviews i]", | |||
"† [interviews ii]", | |||
}, | |||
VERTI = { | |||
"[the sun sets]", | |||
"[marked stone]", | |||
}, | |||
SILLH = { | |||
"[virtues ii]", | |||
"[discovery]", | |||
"[canopy ii] (mentioned)", | |||
"[canopy iii]", | |||
"[canopy iv]", | |||
"[commands]", | |||
"[dejil's daughter] (mentioned)", | |||
"[the fifth deity]", | |||
"[canopy v] (mentioned)", | |||
"[loose ends] (mentioned)", | |||
"[end of a journey]", | |||
"[virtues iii] (mentioned)", | |||
"[repentance]", | |||
"† [interviews ii] (mentioned)", | |||
}, | |||
DZUNE = { | |||
"[discovery] (mentioned)", | |||
"[canopy ii] (mentioned)", | |||
"[canpoy iii] (mentioned)", | |||
"[commands] (mentioned)", | |||
"[the fifth diety]", | |||
"[canopy v] (mentioned)", | |||
"[end of a journey]", | |||
"[repentance]", | |||
}, | |||
ZEHAL = { | |||
"[being forgotten] (mentioned)", | |||
"[i made a friend] (mentioned)", | |||
"[lucky] (mentioned)", | |||
"[obituary] (mentioned)", | |||
"[starseeking] (mentioned)", | |||
"[the historian] (mentioned)", | |||
}, | |||
AEMIL = { | |||
"[virtues ii]", | |||
"[a piece of firebark]", | |||
"[canopy i]", | |||
"[canopy ii]", | |||
"[canopy iii]", | |||
"[canopy iv]", | |||
"[canopy v]", | |||
"[commands] (mentioned)", | |||
"[dejil's daughter] (mentioned)", | |||
"[through rockthorn]", | |||
"[end of a journey] (mentioned)", | |||
"† [interviews i]", | |||
"† [interviews ii]", | |||
}, | |||
LOXXE = { | |||
"[virtues i]", | |||
"[virtues ii]", | |||
"[a piece of firebark]", | |||
"[canopy i]", | |||
"[canopy ii]", | |||
"[canopy iii]", | |||
"[canopy v]", | |||
"[dejil's daughter]", | |||
"[nothing without its price] (mentioned)", | |||
"[loose ends] (mentioned)", | |||
"[through rockthorn]", | |||
"[virtues iii]", | |||
"† [interviews i]", | |||
"† [interviews ii]", | |||
}, | |||
VETTE = { | |||
"[dreams of sunlight]", | |||
"[the historian] (mentioned)", | |||
"[warning]", | |||
"[lost and found]", | |||
"[dark whispers]", | |||
"[goodbyes i] (mentioned)", | |||
"[goodbyes ii]", | |||
"[secret agents] (mentioned)", | |||
"[commands]", | |||
"[the fifth diety]", | |||
"[end of a journey]", | |||
}, | |||
MELLI = { | |||
"[dreams of sunlight]", | |||
"[warning] (mentioned)", | |||
"[dark whispers]", | |||
"[goodbyes ii] (mentioned)", | |||
}, | |||
KIRII = { | |||
"[warning] (mentioned)", | |||
"[lost and found]", | |||
"[goodbyes i]", | |||
"[secret agents]", | |||
"[just in time]", | |||
}, | |||
METIS = { | |||
"[warning] (mentioned)", | |||
"[lost and found]", | |||
"[goodbyes i] (mentioned)", | |||
"[secret agents]", | |||
"[just in time]", | |||
}, | |||
LOTUS = { | |||
"[compromises i]", | |||
"[compromises ii]", | |||
"[halls of sculpture]", | |||
"[exfiltration]", | |||
"[warning] (mentioned)", | |||
"[lost and found]", | |||
"[secret agents] (mentioned)", | |||
"[dark whispers]", | |||
"[goodbyes i] (mentioned)", | |||
"[goodbyes ii]", | |||
"[life will change]", | |||
"[only ashes to rule] (mentioned)", | |||
}, | |||
DZANE = { | |||
"[minehead]", | |||
}, | |||
ROMAL = { | |||
"[compromises i]", | |||
"[compromises ii]", | |||
"[the historian] (mentioned)", | |||
"[exfiltration]", | |||
"[goodbyes i]", | |||
"[goodbyes ii]", | |||
"[waiting to die]", | |||
"[demonstration of spirit]", | |||
"[just in time]", | |||
"[life will change]", | |||
"[loyalty] (mentioned)", | |||
"[what was meant to be found]", | |||
"[loose ends]", | |||
"[end of a journey]", | |||
"[decimation] (mentioned)", | |||
"[only ashes to rule]", | |||
"† [interviews i]", | |||
"† [interviews ii]", | |||
}, | |||
JAKAL = { | |||
"[starseeking]", | |||
"[demonstration of spirit]", | |||
}, | |||
ELLAI = { | |||
"[being forgotten]", | |||
"[starseeking]", | |||
"[the historian] (mentioned)", | |||
"[demonstration of spirit]", | |||
}, | |||
MEAZS = { | |||
"[being forgotten]", | |||
"[starseeking]", | |||
"[the historian] (mentioned)", | |||
"[demonstration of spirit]", | |||
"[what they deserve]", | |||
"[decimation] (mentioned)", | |||
"[not weakness] (mentioned)", | |||
"[the true king]", | |||
"† [interviews i]", | |||
}, | |||
JAELA = { | |||
"[compromises i]", | |||
"[compromises ii]", | |||
"[exfiltration]", | |||
"[goodbyes ii] (mentioned)", | |||
"[life will change]", | |||
"[meant to be found]", | |||
}, | |||
TIMUR = { | |||
"[meant to be found]" | |||
}, | |||
EVJAR = { | |||
"[waiting to die]", | |||
"[life will change]", | |||
"[loyalty]", | |||
"[meant to be found]", | |||
"[loose ends]", | |||
"[end of a journey]", | |||
"[only ashes to rule]", | |||
"[repentance]", | |||
"† [interviews i]", | |||
"† [interviews ii]", | |||
}, | |||
HEKAE = { | |||
"[compromises ii]", | |||
"[exfiltration]", | |||
"[goodbyes ii]", | |||
"[halls of sculpture]", | |||
}, | |||
NIMEA = { | |||
"[loose ends]" | |||
}, | |||
KHYEL = { | |||
"[compromises i]", | |||
"[compromises ii]", | |||
"[exfiltration]" | |||
}, | |||
ARILI = { | |||
"[virtues ii]", | |||
"[canopy v] (mentioned)", | |||
}, | |||
KEZSE = { | |||
"[canopy v]", | |||
"† [interviews ii]", | |||
}, | |||
MALDA = { | |||
"[weathered through doubt]", | |||
"[the historian] (mentioned)" | |||
}, | |||
MIKIL = { | |||
"[waiting to die]", | |||
"[life will change]", | |||
"[loyalty] (mentioned)", | |||
"† [interviews i] (mentioned)", | |||
}, | |||
AERIS = { | |||
"[compromises ii]", | |||
"[goodbyes ii] (mentioned)", | |||
}, | |||
SHAEL = { | |||
"[through rockthorn]", | |||
}, | |||
KAEZA = { | |||
"[through rockthorn]", | |||
}, | |||
LEZSE = { | |||
"[not weakness]", | |||
}, | |||
REAME = { | |||
"[not weakness]", | |||
}, | |||
KRYTA = { | |||
"[goodbyes i]", | |||
}, | |||
TEKAL = { | |||
"[threads]", | |||
"[virtues i]", | |||
"[virtues iii] (mentioned)", | |||
}, | |||
MEDZA = { | |||
"[threads] (mentioned)", | |||
}, | |||
KAELI = { | |||
"[virtues i]", | |||
}, | |||
LLEMA = { | |||
"[virtues i]", | |||
"† [interviews ii] (mentioned)", | |||
}, | |||
SELTE = { | |||
"[virtues ii]", | |||
}, | |||
KAVUK = { | |||
"[virtues iii]", | |||
}, | |||
TEZEL = { | |||
"[virtues iii]", | |||
}, | |||
RIMII = { | |||
"[virtues iii]", | |||
}, | |||
HAGAZ = { | |||
"[weathered through doubt]", | |||
}, | |||
VANJE = { | |||
"[weathered through doubt]", | |||
}, | |||
KARUS = { | |||
"[weathered through doubt]", | |||
}, | |||
VESES = { | |||
"[waiting to die]", | |||
}, | |||
KIERA = { | |||
"[waiting to die]", | |||
}, | |||
NDEJA = { | |||
"[weathered through doubt]", | |||
}, | |||
SENNA = { | |||
"[dreams of sunlight]", | |||
}, | |||
VAEJA = { | |||
"[rites]" | |||
}, | |||
JERGH = { | |||
"[rites]" | |||
}, | |||
RUTHA = { | |||
"[life will change]" | |||
}, | |||
MEFET = { | |||
"[losing a brother]", | |||
"[reservoir]", | |||
"[council] (mentioned)", | |||
"[decimation]" | |||
}, | |||
AURAK = { | |||
"[concern]", | |||
"[losing a brother]", | |||
"[reservoir]", | |||
"[scribe] (mentioned)", | |||
"[council] (mentioned)", | |||
"[lucky] (mentioned)", | |||
"[obituary] (mentioned)", | |||
"[what they deserve]", | |||
"[decimation] (mentioned)", | |||
"[glacier i] (mentioned)", | |||
"[glacier ii] (mentioned)", | |||
"[the true king] (mentioned)", | |||
"† [interviews ii] (mentioned)" | |||
}, | |||
YANIS = { | |||
"[the genius of the summit]", | |||
"[reservoir]", | |||
"[decimation]", | |||
}, | |||
TARAN = { | |||
"[losing a brother]", | |||
"[reservoir]", | |||
"[council]", | |||
"[decimation]", | |||
"[glacier i]", | |||
"[glacier ii]", | |||
}, | |||
IGLAS = { | |||
"[reservoir]", | |||
"[council]", | |||
"[scribe] (mentioned)", | |||
"[dejil's daughter] (mentioned)", | |||
"[decimation]", | |||
"[not weakness]", | |||
"[the true king]", | |||
"[interviews i]", | |||
"[interviews ii]", | |||
}, | |||
WARES = { | |||
"[the genius of the summit]", | |||
"[losing a brother]", | |||
"[reservoir]", | |||
"[council]", | |||
"[scribe] (mentioned)", | |||
"[nothing without its price] (mentioned)", | |||
"[providence] (mentioned)", | |||
"[what they deserve] (mentioned)", | |||
"[dejil's daughter]", | |||
"[virtues iii] (mentioned)", | |||
"[only ashes to rule]", | |||
"[decimation] (mentioned)", | |||
"† [interviews ii] (mentioned)", | |||
}, | |||
NERAN = { | |||
"[reservoir]", | |||
"[council]", | |||
"[what they deserve] (mentioned)", | |||
"[decimation]", | |||
}, | |||
CASEI = { | |||
"[concern]", | |||
"[losing a brother]", | |||
"[i made a friend]", | |||
"[lucky]", | |||
"[obituary]", | |||
"[starseeking]", | |||
"[what they deserve] (mentioned)", | |||
"[the historian]", | |||
"[providence]", | |||
}, | |||
COLUS = { | |||
"[scribe]", | |||
"[nothing without its price]", | |||
"[providence] (mentioned)", | |||
"† [interviews i] (mentioned)", | |||
"† [interviews ii] (mentioned)", | |||
}, | |||
ALUSE = { | |||
"[heaven and hell]", | |||
}, | |||
SETEI = { | |||
"[heaven and hell]", | |||
}, | |||
YARUS = { | |||
"[dejil's daughter]", | |||
"[only ashes to rule]", | |||
}, | |||
DESSA = { | |||
"[dejil's daughter]", | |||
"[only ashes to rule]", | |||
}, | |||
RIMAN = { | |||
"[the genius of the summit]", | |||
}, | |||
CALEN = { | |||
"[the genius of the summit]", | |||
}, | |||
ERISS = { | |||
"[nothing without its price] (mentioned)", | |||
}, | |||
FEREI = { | |||
"[decimation]", | |||
}, | |||
IWEML = { | |||
"[glacier i]", | |||
"[glacier ii]", | |||
}, | |||
TACEK = { | |||
"[providence]", | |||
}, | |||
WEHAN = { | |||
"[providence] (mentioned)", | |||
}, | |||
FENAN = { | |||
"[providence] (mentioned)", | |||
}, | |||
EMBER = { | |||
"[there it remains]", | |||
"[death itself]", | |||
"† [from a distance] (mentioned)", | |||
"† [fruits of chaos]", | |||
"† [deep hyperspace]", | |||
"† [abandonment protocol]", | |||
}, | |||
FLOAT = { | |||
"[kindling]", | |||
}, | |||
SIGIL = { | |||
"[kindling]", | |||
}, | |||
QUARK = { | |||
"[kindling]", | |||
}, | |||
PEARL = { | |||
"[timeplace]", | |||
}, | |||
PLUTO = { | |||
"[timeplace]", | |||
}, | |||
OCHRE = { | |||
"[timeplace]", | |||
"[death itself]", | |||
"[from a distance] (mentioned)" | |||
}, | |||
NYXEM = { | |||
"[commencement]", | |||
"[liftoff]", | |||
"[little box]", | |||
"[eight] (mentioned)", | |||
"[the wanderer]", | |||
"[pulse] (mentioned)", | |||
"† [the hive queen]", | |||
"† [somehow i knew]", | |||
"† [heaven and hell]", | |||
"† [the genius of the summit]", | |||
"† [reservoir] (mentioned)", | |||
"† [concern] (mentioned)", | |||
"† [losing a brother] (mentioned)", | |||
"† [i made a friend] (mentioned)", | |||
"† [lucky] (mentioned)", | |||
"† [obituary] (mentioned)", | |||
"† [council] (mentioned)", | |||
"† [scribe] (mentioned)", | |||
"† [nothing without its price] (mentioned)", | |||
"† [what they deserve] (mentioned)", | |||
"† [decimation] (mentioned)", | |||
"† [glacier i] (mentioned)", | |||
"† [glacier ii]", | |||
"† [not weakness] (mentioned)", | |||
"† [the true king] (mentioned)", | |||
"† [providence] (mentioned)", | |||
"† [fruits of chaos] (mentioned)", | |||
"[interviews i] (mentioned)", | |||
"[interviews ii] (mentioned)", | |||
"[abandonment protocol] (mentioned)", | |||
"† [they are not alive]", | |||
}, | |||
IOGOS = { | |||
"[commencement] (mentioned)", | |||
"[liftoff]", | |||
"[little box]", | |||
"[eight] (mentioned)", | |||
"[pulse]", | |||
"[seven hundred days]", | |||
"[deep hyperspace]", | |||
"[abandonment protocol]", | |||
}, | |||
RHOMB = { | |||
"[commencement] (mentioned)", | |||
"[liftoff] (mentioned)", | |||
"[little box] (mentioned)", | |||
"[eight]", | |||
"[the wanderer]", | |||
"[seven hundred days] (mentioned)", | |||
"[deep hyperspace]", | |||
"[abandonment protocol] (mentioned)", | |||
"† [the hive queen]", | |||
"† [though strangers]", | |||
"† [somehow i knew]", | |||
"† [glacier ii]", | |||
}, | |||
OEREC = { | |||
"[liftoff]", | |||
"[the wanderer]", | |||
"[pulse]", | |||
"[seven hundred days]", | |||
"[deep hyperspace]", | |||
"[interviews i]", | |||
"[interviews ii]", | |||
"[abandonment protocol]", | |||
}, | |||
CYXYM = { | |||
"[liftoff] (mentioned)" | |||
}, | |||
NIMDA = { | |||
"[pulse]", | |||
"[seven hundred days]", | |||
"[deep hyperspace]", | |||
"[abandonment protocol]", | |||
}, | |||
VITAS = { | |||
"[pulse]", | |||
"[seven hundred days]" | |||
}, | |||
HALEN = { | |||
"[seven hundred days]", | |||
}, | |||
ZELUN = { | |||
"[seven hundred days]", | |||
"[equipment malfunction]", | |||
"[interviews ii]", | |||
}, | |||
NITAS = { | |||
"[seven hundred days]", | |||
}, | |||
NETRE = { | |||
"[interviews i]", | |||
"[interviews ii]", | |||
}, | |||
SABRE = { | |||
"[from a distance]", | |||
} | } | ||
} | } | ||
function | function p.get_table_for_character(frame) | ||
local character = | local character = frame.args[1] | ||
local starts_collapsed = frame.args["starts_collapsed"] | |||
local result = {} | |||
local result = | local collapsed_class = starts_collapsed == "true" and "mw-collapsed" or "" | ||
result[#result + 1] = '<table class="wikitable mw-collapsible ' .. collapsed_class .. '" style="width: 100%; flex-basis: 23%;">' | |||
result[#result + 1] = '<tr style="height: 20px;"><th>[[' .. character .. ']]</th></tr>' | |||
for _, record in pairs(appearances[character]) do | for _, record in pairs(appearances[character]) do | ||
local record_link = 'https:// | local pre_text = string.match(record, "(.+)%[") or "" | ||
result[#result + 1] = ' | local record_name = string.match(record, "%[(.+)%]") | ||
local post_text = string.match(record, "%](.+)") or "" | |||
local record_link = 'https://fractalthorns.com/episodic/' .. string.gsub(record_name, ' ', '-') | |||
result[#result + 1] = '<tr><td>' .. pre_text .. '[' .. record_link .. ' ' .. record_name .. ']' .. post_text .. '</tr></td>' | |||
end | end | ||
result[#result + 1] = " | |||
result[#result + 1] = "</table>" | |||
return table.concat(result, '\n') | return table.concat(result, '\n') | ||
end | end | ||
return | return p | ||
Latest revision as of 22:19, 28 June 2024
Documentation for this module may be created at Module:Character Appearances/doc
local p = {}
local appearances = {
VERCE = {
"[the dark]",
"[open arms for the endless night]",
"[music and meter and rhyme]",
"[verses]",
"[though strangers]",
"[somehow i knew]",
},
VERDE = {
"[painting will never be the same]",
"[jealous pigments]",
"[afterlife]",
"[though strangers]",
"[somehow i knew]",
},
VIBRA = {
"[bit of a shame]",
"[afterlife]",
"[verses] (mentioned)",
"[though strangers]",
"[somehow i knew]",
"† [interviews i]",
"† [interviews ii]",
},
VERTI = {
"[the sun sets]",
"[marked stone]",
},
SILLH = {
"[virtues ii]",
"[discovery]",
"[canopy ii] (mentioned)",
"[canopy iii]",
"[canopy iv]",
"[commands]",
"[dejil's daughter] (mentioned)",
"[the fifth deity]",
"[canopy v] (mentioned)",
"[loose ends] (mentioned)",
"[end of a journey]",
"[virtues iii] (mentioned)",
"[repentance]",
"† [interviews ii] (mentioned)",
},
DZUNE = {
"[discovery] (mentioned)",
"[canopy ii] (mentioned)",
"[canpoy iii] (mentioned)",
"[commands] (mentioned)",
"[the fifth diety]",
"[canopy v] (mentioned)",
"[end of a journey]",
"[repentance]",
},
ZEHAL = {
"[being forgotten] (mentioned)",
"[i made a friend] (mentioned)",
"[lucky] (mentioned)",
"[obituary] (mentioned)",
"[starseeking] (mentioned)",
"[the historian] (mentioned)",
},
AEMIL = {
"[virtues ii]",
"[a piece of firebark]",
"[canopy i]",
"[canopy ii]",
"[canopy iii]",
"[canopy iv]",
"[canopy v]",
"[commands] (mentioned)",
"[dejil's daughter] (mentioned)",
"[through rockthorn]",
"[end of a journey] (mentioned)",
"† [interviews i]",
"† [interviews ii]",
},
LOXXE = {
"[virtues i]",
"[virtues ii]",
"[a piece of firebark]",
"[canopy i]",
"[canopy ii]",
"[canopy iii]",
"[canopy v]",
"[dejil's daughter]",
"[nothing without its price] (mentioned)",
"[loose ends] (mentioned)",
"[through rockthorn]",
"[virtues iii]",
"† [interviews i]",
"† [interviews ii]",
},
VETTE = {
"[dreams of sunlight]",
"[the historian] (mentioned)",
"[warning]",
"[lost and found]",
"[dark whispers]",
"[goodbyes i] (mentioned)",
"[goodbyes ii]",
"[secret agents] (mentioned)",
"[commands]",
"[the fifth diety]",
"[end of a journey]",
},
MELLI = {
"[dreams of sunlight]",
"[warning] (mentioned)",
"[dark whispers]",
"[goodbyes ii] (mentioned)",
},
KIRII = {
"[warning] (mentioned)",
"[lost and found]",
"[goodbyes i]",
"[secret agents]",
"[just in time]",
},
METIS = {
"[warning] (mentioned)",
"[lost and found]",
"[goodbyes i] (mentioned)",
"[secret agents]",
"[just in time]",
},
LOTUS = {
"[compromises i]",
"[compromises ii]",
"[halls of sculpture]",
"[exfiltration]",
"[warning] (mentioned)",
"[lost and found]",
"[secret agents] (mentioned)",
"[dark whispers]",
"[goodbyes i] (mentioned)",
"[goodbyes ii]",
"[life will change]",
"[only ashes to rule] (mentioned)",
},
DZANE = {
"[minehead]",
},
ROMAL = {
"[compromises i]",
"[compromises ii]",
"[the historian] (mentioned)",
"[exfiltration]",
"[goodbyes i]",
"[goodbyes ii]",
"[waiting to die]",
"[demonstration of spirit]",
"[just in time]",
"[life will change]",
"[loyalty] (mentioned)",
"[what was meant to be found]",
"[loose ends]",
"[end of a journey]",
"[decimation] (mentioned)",
"[only ashes to rule]",
"† [interviews i]",
"† [interviews ii]",
},
JAKAL = {
"[starseeking]",
"[demonstration of spirit]",
},
ELLAI = {
"[being forgotten]",
"[starseeking]",
"[the historian] (mentioned)",
"[demonstration of spirit]",
},
MEAZS = {
"[being forgotten]",
"[starseeking]",
"[the historian] (mentioned)",
"[demonstration of spirit]",
"[what they deserve]",
"[decimation] (mentioned)",
"[not weakness] (mentioned)",
"[the true king]",
"† [interviews i]",
},
JAELA = {
"[compromises i]",
"[compromises ii]",
"[exfiltration]",
"[goodbyes ii] (mentioned)",
"[life will change]",
"[meant to be found]",
},
TIMUR = {
"[meant to be found]"
},
EVJAR = {
"[waiting to die]",
"[life will change]",
"[loyalty]",
"[meant to be found]",
"[loose ends]",
"[end of a journey]",
"[only ashes to rule]",
"[repentance]",
"† [interviews i]",
"† [interviews ii]",
},
HEKAE = {
"[compromises ii]",
"[exfiltration]",
"[goodbyes ii]",
"[halls of sculpture]",
},
NIMEA = {
"[loose ends]"
},
KHYEL = {
"[compromises i]",
"[compromises ii]",
"[exfiltration]"
},
ARILI = {
"[virtues ii]",
"[canopy v] (mentioned)",
},
KEZSE = {
"[canopy v]",
"† [interviews ii]",
},
MALDA = {
"[weathered through doubt]",
"[the historian] (mentioned)"
},
MIKIL = {
"[waiting to die]",
"[life will change]",
"[loyalty] (mentioned)",
"† [interviews i] (mentioned)",
},
AERIS = {
"[compromises ii]",
"[goodbyes ii] (mentioned)",
},
SHAEL = {
"[through rockthorn]",
},
KAEZA = {
"[through rockthorn]",
},
LEZSE = {
"[not weakness]",
},
REAME = {
"[not weakness]",
},
KRYTA = {
"[goodbyes i]",
},
TEKAL = {
"[threads]",
"[virtues i]",
"[virtues iii] (mentioned)",
},
MEDZA = {
"[threads] (mentioned)",
},
KAELI = {
"[virtues i]",
},
LLEMA = {
"[virtues i]",
"† [interviews ii] (mentioned)",
},
SELTE = {
"[virtues ii]",
},
KAVUK = {
"[virtues iii]",
},
TEZEL = {
"[virtues iii]",
},
RIMII = {
"[virtues iii]",
},
HAGAZ = {
"[weathered through doubt]",
},
VANJE = {
"[weathered through doubt]",
},
KARUS = {
"[weathered through doubt]",
},
VESES = {
"[waiting to die]",
},
KIERA = {
"[waiting to die]",
},
NDEJA = {
"[weathered through doubt]",
},
SENNA = {
"[dreams of sunlight]",
},
VAEJA = {
"[rites]"
},
JERGH = {
"[rites]"
},
RUTHA = {
"[life will change]"
},
MEFET = {
"[losing a brother]",
"[reservoir]",
"[council] (mentioned)",
"[decimation]"
},
AURAK = {
"[concern]",
"[losing a brother]",
"[reservoir]",
"[scribe] (mentioned)",
"[council] (mentioned)",
"[lucky] (mentioned)",
"[obituary] (mentioned)",
"[what they deserve]",
"[decimation] (mentioned)",
"[glacier i] (mentioned)",
"[glacier ii] (mentioned)",
"[the true king] (mentioned)",
"† [interviews ii] (mentioned)"
},
YANIS = {
"[the genius of the summit]",
"[reservoir]",
"[decimation]",
},
TARAN = {
"[losing a brother]",
"[reservoir]",
"[council]",
"[decimation]",
"[glacier i]",
"[glacier ii]",
},
IGLAS = {
"[reservoir]",
"[council]",
"[scribe] (mentioned)",
"[dejil's daughter] (mentioned)",
"[decimation]",
"[not weakness]",
"[the true king]",
"[interviews i]",
"[interviews ii]",
},
WARES = {
"[the genius of the summit]",
"[losing a brother]",
"[reservoir]",
"[council]",
"[scribe] (mentioned)",
"[nothing without its price] (mentioned)",
"[providence] (mentioned)",
"[what they deserve] (mentioned)",
"[dejil's daughter]",
"[virtues iii] (mentioned)",
"[only ashes to rule]",
"[decimation] (mentioned)",
"† [interviews ii] (mentioned)",
},
NERAN = {
"[reservoir]",
"[council]",
"[what they deserve] (mentioned)",
"[decimation]",
},
CASEI = {
"[concern]",
"[losing a brother]",
"[i made a friend]",
"[lucky]",
"[obituary]",
"[starseeking]",
"[what they deserve] (mentioned)",
"[the historian]",
"[providence]",
},
COLUS = {
"[scribe]",
"[nothing without its price]",
"[providence] (mentioned)",
"† [interviews i] (mentioned)",
"† [interviews ii] (mentioned)",
},
ALUSE = {
"[heaven and hell]",
},
SETEI = {
"[heaven and hell]",
},
YARUS = {
"[dejil's daughter]",
"[only ashes to rule]",
},
DESSA = {
"[dejil's daughter]",
"[only ashes to rule]",
},
RIMAN = {
"[the genius of the summit]",
},
CALEN = {
"[the genius of the summit]",
},
ERISS = {
"[nothing without its price] (mentioned)",
},
FEREI = {
"[decimation]",
},
IWEML = {
"[glacier i]",
"[glacier ii]",
},
TACEK = {
"[providence]",
},
WEHAN = {
"[providence] (mentioned)",
},
FENAN = {
"[providence] (mentioned)",
},
EMBER = {
"[there it remains]",
"[death itself]",
"† [from a distance] (mentioned)",
"† [fruits of chaos]",
"† [deep hyperspace]",
"† [abandonment protocol]",
},
FLOAT = {
"[kindling]",
},
SIGIL = {
"[kindling]",
},
QUARK = {
"[kindling]",
},
PEARL = {
"[timeplace]",
},
PLUTO = {
"[timeplace]",
},
OCHRE = {
"[timeplace]",
"[death itself]",
"[from a distance] (mentioned)"
},
NYXEM = {
"[commencement]",
"[liftoff]",
"[little box]",
"[eight] (mentioned)",
"[the wanderer]",
"[pulse] (mentioned)",
"† [the hive queen]",
"† [somehow i knew]",
"† [heaven and hell]",
"† [the genius of the summit]",
"† [reservoir] (mentioned)",
"† [concern] (mentioned)",
"† [losing a brother] (mentioned)",
"† [i made a friend] (mentioned)",
"† [lucky] (mentioned)",
"† [obituary] (mentioned)",
"† [council] (mentioned)",
"† [scribe] (mentioned)",
"† [nothing without its price] (mentioned)",
"† [what they deserve] (mentioned)",
"† [decimation] (mentioned)",
"† [glacier i] (mentioned)",
"† [glacier ii]",
"† [not weakness] (mentioned)",
"† [the true king] (mentioned)",
"† [providence] (mentioned)",
"† [fruits of chaos] (mentioned)",
"[interviews i] (mentioned)",
"[interviews ii] (mentioned)",
"[abandonment protocol] (mentioned)",
"† [they are not alive]",
},
IOGOS = {
"[commencement] (mentioned)",
"[liftoff]",
"[little box]",
"[eight] (mentioned)",
"[pulse]",
"[seven hundred days]",
"[deep hyperspace]",
"[abandonment protocol]",
},
RHOMB = {
"[commencement] (mentioned)",
"[liftoff] (mentioned)",
"[little box] (mentioned)",
"[eight]",
"[the wanderer]",
"[seven hundred days] (mentioned)",
"[deep hyperspace]",
"[abandonment protocol] (mentioned)",
"† [the hive queen]",
"† [though strangers]",
"† [somehow i knew]",
"† [glacier ii]",
},
OEREC = {
"[liftoff]",
"[the wanderer]",
"[pulse]",
"[seven hundred days]",
"[deep hyperspace]",
"[interviews i]",
"[interviews ii]",
"[abandonment protocol]",
},
CYXYM = {
"[liftoff] (mentioned)"
},
NIMDA = {
"[pulse]",
"[seven hundred days]",
"[deep hyperspace]",
"[abandonment protocol]",
},
VITAS = {
"[pulse]",
"[seven hundred days]"
},
HALEN = {
"[seven hundred days]",
},
ZELUN = {
"[seven hundred days]",
"[equipment malfunction]",
"[interviews ii]",
},
NITAS = {
"[seven hundred days]",
},
NETRE = {
"[interviews i]",
"[interviews ii]",
},
SABRE = {
"[from a distance]",
}
}
function p.get_table_for_character(frame)
local character = frame.args[1]
local starts_collapsed = frame.args["starts_collapsed"]
local result = {}
local collapsed_class = starts_collapsed == "true" and "mw-collapsed" or ""
result[#result + 1] = '<table class="wikitable mw-collapsible ' .. collapsed_class .. '" style="width: 100%; flex-basis: 23%;">'
result[#result + 1] = '<tr style="height: 20px;"><th>[[' .. character .. ']]</th></tr>'
for _, record in pairs(appearances[character]) do
local pre_text = string.match(record, "(.+)%[") or ""
local record_name = string.match(record, "%[(.+)%]")
local post_text = string.match(record, "%](.+)") or ""
local record_link = 'https://fractalthorns.com/episodic/' .. string.gsub(record_name, ' ', '-')
result[#result + 1] = '<tr><td>' .. pre_text .. '[' .. record_link .. ' ' .. record_name .. ']' .. post_text .. '</tr></td>'
end
result[#result + 1] = "</table>"
return table.concat(result, '\n')
end
return p