Module:User:ObnoxiousCoder/hit-conj/table

This is a private module sandbox of ObnoxiousCoder, for their own experimentation. Items in this module may be added and removed at ObnoxiousCoder's discretion; do not rely on this module's stability.


local export = {}



function export.render(first, second, meta) 
	local nom, act, mid
    local top = 
        '\n{| class="inflection-table vsSwitcher autocollapsed" data-toggle-category="inflection" style="background:#FF; text-align:center; border: 0.5px solid #CCC;"'..
        '\n|- style="background: #{{{color1|ebd9ff}}}"'..
        '\n! class="vsToggleElement" style="text-align: center; width:20em" colspan="4" |'..meta.title..
        '\n|-'..
        '\n! class="vsHide" style="background-color:#ebd9ff; text-align: center;" colspan="4" |'..meta.class
    local bottom = 
        '\n|- class="vsHide"'..
        '\n| style="font-size:85%; text-align:left" colspan="5" |'..(meta.note or '')..
        '\n|}'
    if first.nom then
        nom = 
            '\n|- class="vsHide"'..
            '\n! style="background-color:#ebd9ff" colspan="4" | Nominal forms'..
            '\n|- class="vsHide"'..
            '\n! style="background-color:#f7efff; min-width: 7em" rowspan="2" | Infinitive'..
            '\n| style="background-color:#ffffff; font-size: 100%;" |'..first.nom.inf..
            '\n|- class="vsHide"'..
            '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.nom.inf..
            '\n|- class="vsHide"'..
            '\n! style="background-color:#f7efff; min-width: 5em" rowspan="2"  | Participle'..
            '\n| style="background-color:#ffffff; font-size: 100%;" |'..first.nom.part..
            '\n|- class="vsHide"'..
            '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.nom.part..
            '\n|- class="vsHide"'..
            '\n! style="background-color:#f7efff; min-width: 5em" rowspan="2"  | Noun'..
            '\n| style="background-color:#ffffff; font-size: 100%;" |'..first.nom.noun..
            '\n|- class="vsHide"'..
            '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.nom.noun..
            '\n|- class="vsHide"'..
            '\n! style="background-color:#f7efff; min-width: 5em" rowspan="2"  | Supine'..
            '\n| style="background-color:#ffffff; font-size: 100%;"|'..first.nom.su..
            '\n|- class="vsHide"'..
            '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.nom.su
            
    end

    if first.act then
        act = 
            '\n|- class="vsHide"'..
            '\n! style="background-color:#ebd9ff; min-width: 5em" |Active'..
            '\n! style="background-color:#ebd9ff; min-width: 12em" |Present'..
            '\n! style="background-color:#ebd9ff; min-width: 12em" |Aorist'..
            '\n! style="background-color:#ebd9ff; min-width: 12em" |Imperative'..
            '\n|-  class="vsHide"'..
            '\n! style="background-color:#f7efff" rowspan="2"  | 1.sg'..
            '\n| style="background-color:#ffffff" |'..first.act.pre['1.sg']..
            '\n| style="background-color:#ffffff" |'..first.act.aor['1.sg']..
            '\n| style="background-color:#ffffff" |'..first.act.imp['1.sg']..
            '\n|- class="vsHide"'..
            '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.act.pre['1.sg']..
            '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.act.aor['1.sg']..
            '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.act.imp['1.sg']..
            '\n|- class="vsHide"'..
            '\n! style="background-color:#f7efff" rowspan="2"  | 2.sg'..
            '\n| style="background-color:#ffffff" |'..first.act.pre['2.sg']..
            '\n| style="background-color:#ffffff" |'..first.act.aor['2.sg']..
            '\n| style="background-color:#ffffff" |'..first.act.imp['2.sg']..
            '\n|- class="vsHide"'..
            '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.act.pre['2.sg']..
            '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.act.aor['2.sg']..
            '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.act.imp['2.sg']..
            '\n|- class="vsHide"'..
            '\n! style="background-color:#f7efff" rowspan="2"  | 3.sg'..
            '\n| style="background-color:#ffffff" |'..first.act.pre['3.sg']..
            '\n| style="background-color:#ffffff" |'..first.act.aor['3.sg']..
            '\n| style="background-color:#ffffff" |'..first.act.imp['3.sg']..
            '\n|- class="vsHide"'..
            '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.act.pre['3.sg']..
            '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.act.aor['3.sg']..
            '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.act.imp['3.sg']..
            '\n|- class="vsHide"'..
            '\n! style="background-color:#f7efff" rowspan="2"  | 1.pl'..
            '\n| style="background-color:#ffffff" |'..first.act.pre['1.pl']..
            '\n| style="background-color:#ffffff" |'..first.act.aor['1.pl']..
            '\n| style="background-color:#ffffff" |'..first.act.imp['1.pl']..
            '\n|- class="vsHide"'..
            '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.act.pre['1.pl']..
            '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.act.aor['1.pl']..
            '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.act.imp['1.pl']..
            '\n|- class="vsHide"'..
            '\n! style="background-color:#f7efff" rowspan="2"  | 2.pl'..
            '\n| style="background-color:#ffffff" |'..first.act.pre['2.pl']..
            '\n| style="background-color:#ffffff" |'..first.act.aor['2.pl']..
            '\n| style="background-color:#ffffff" |'..first.act.imp['2.pl']..
            '\n|- class="vsHide"'..
            '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.act.pre['2.pl']..
            '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.act.aor['2.pl']..
            '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.act.imp['2.pl']..
            '\n|- class="vsHide"'..
            '\n! style="background-color:#f7efff" rowspan="2"  | 3.pl'..
            '\n| style="background-color:#ffffff" |'..first.act.pre['3.pl']..
            '\n| style="background-color:#ffffff" |'..first.act.aor['3.pl']..
            '\n| style="background-color:#ffffff" |'..first.act.imp['3.pl']..
            '\n|- class="vsHide"'..
            '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.act.pre['3.pl']..
            '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.act.aor['3.pl']..
            '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.act.imp['3.pl']
            

    end

    if first.mid then 
        mid = 
        '\n|- class="vsHide"'..
        '\n! style="background-color:#ebd9ff; min-width: 5em" |Middle'..
        '\n! style="background-color:#ebd9ff; min-width: 12em" |Present'..
        '\n! style="background-color:#ebd9ff; min-width: 12em" |Aorist'..
        '\n! style="background-color:#ebd9ff; min-width: 12em" |Imperative'..
        '\n|-  class="vsHide"'..
        '\n! style="background-color:#f7efff" rowspan="2"  | 1.sg'..
        '\n| style="background-color:#ffffff" |'..first.mid.pre['1.sg']..
        '\n| style="background-color:#ffffff" |'..first.mid.aor['1.sg']..
        '\n| style="background-color:#ffffff" |'..first.mid.imp['1.sg']..
        '\n|- class="vsHide"'..
        '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.mid.pre['1.sg']..
        '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.mid.imp['1.sg']..
        '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.mid.aor['1.sg']..
        '\n|- class="vsHide"'..
        '\n! style="background-color:#f7efff" rowspan="2"  | 2.sg'..
        '\n| style="background-color:#ffffff" |'..first.mid.pre['2.sg']..
        '\n| style="background-color:#ffffff" |'..first.mid.aor['2.sg']..
        '\n| style="background-color:#ffffff" |'..first.mid.imp['2.sg']..
        '\n|- class="vsHide"'..
        '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.mid.pre['2.sg']..
        '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.mid.aor['2.sg']..
        '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.mid.imp['2.sg']..
        '\n|- class="vsHide"'..
        '\n! style="background-color:#f7efff" rowspan="2"  | 3.sg'..
        '\n| style="background-color:#ffffff" |'..first.mid.pre['3.sg']..
        '\n| style="background-color:#ffffff" |'..first.mid.aor['3.sg']..
        '\n| style="background-color:#ffffff" |'..first.mid.imp['3.sg']..
        '\n|- class="vsHide"'..
        '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.mid.pre['3.sg']..
        '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.mid.aor['3.sg']..
        '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.mid.imp['3.sg']..
        '\n|- class="vsHide"'..
        '\n! style="background-color:#f7efff" rowspan="2"  | 1.pl'..
        '\n| style="background-color:#ffffff" |'..first.mid.pre['1.pl']..
        '\n| style="background-color:#ffffff" |'..first.mid.aor['1.pl']..
        '\n| style="background-color:#ffffff" |'..first.mid.imp['1.pl']..
        '\n|- class="vsHide"'..
        '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.mid.pre['1.pl']..
        '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.mid.aor['1.pl']..
        '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.mid.imp['1.pl']..
        '\n|- class="vsHide"'..
        '\n! style="background-color:#f7efff" rowspan="2"  | 2.pl'..
        '\n| style="background-color:#ffffff" |'..first.act.pre['2.pl']..
        '\n| style="background-color:#ffffff" |'..first.act.aor['2.pl']..
        '\n| style="background-color:#ffffff" |'..first.act.imp['2.pl']..
        '\n|- class="vsHide"'..
        '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.act.pre['2.pl']..
        '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.act.aor['2.pl']..
        '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.act.imp['2.pl']..
        '\n|- class="vsHide"'..
        '\n! style="background-color:#f7efff" rowspan="2"  | 3.pl'..
        '\n| style="background-color:#ffffff" |'..first.act.pre['3.pl']..
        '\n| style="background-color:#ffffff" |'..first.act.aor['3.pl']..
        '\n| style="background-color:#ffffff" |'..first.act.imp['3.pl']..
        '\n|- class="vsHide"'..
        '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.act.pre['3.pl']..
        '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.act.aor['3.pl']..
        '\n| style="background-color:#ffffff; font-size: 95%; color:gray;" |'..second.act.imp['3.pl']
        
    end
    return (top..(nom or '')..(act or '')..(mid or '')..bottom)
end

return export