Modul:grammar-table/dok

Definition från Wiktionary, den fria ordlistan.
Hoppa till: navigering, sök

Detta är dokumentationssidan för Modul:grammar-table

Syfte[redigera]

Modulens syfte är att generera wikitabellkod som ska användas som byggstenar i grammatiktabeller. Med hjälp av modulen kan grammatikmoduler skapa grammatiktabeller på ett mer läsbart och överskådligt sätt.

Användning[redigera]

Den här modulen bör bara användas av grammatikmoduler, inte av mallar eller andra moduler.
local gt = require("Modul:grammar-table")
local lang_code         = "sv"
local part_of_speech    = "adj"
local number_of_columns = 3
local has_warning       = "false"

local str = gt.getStart(number_of_columns, lang_code, part_of_speech, has_warning)
         .. gt.getRow({"!", "Rubrik"}, "böjningsform")
         .. gt.getRow({"!", "Rubrik"}, "böjningsform")
         .. gt.getEnd(number_of_columns, "Kommentar", "förled")

Specifikation[redigera]

getStart
Denna funktion används för att skapa den övre delen av grammatiktabellen.
getRow
Denna funktion används för att skapa en tabellrad. Den tar ett löpande antal icke namngivna argument.
1=, 2=, 3=, osv. Ett argument bestående av {"cellmeta", "cellinnehåll", type="css-klass"} alternativt "cellinnehåll" för varje cell.
1= (obligatorisk) "cellmeta": typiskt ! eller |, eventuellt följt av class, rowspan och/eller colspan i wikisyntax:
!, |, |class="min", |rowspan="2", |class="min" colspan="3"
Wiktionary:Stilguide/Grammatik/Skapa en mall finns en mer ingående beskrivning av grammatiktabellens delar, layout och css-klasser.
2= "cellinnehåll": Detta är själva textinnehållet i rutan, vanligtvis rubriknamnet eller böjningsformen.
Parametern kan utelämnas helt och får då "&‌nbsp;" som defaultvärde. Utan "&‌nbsp;" skulle tabellrutan bli helt tom och försvinna eftersom den skulle sakna innehåll.
type= länktyp som används för att ange en css-klass i en omgivande span-tagg runt länken: <span class="infl">[[böjningsform]]</span>
Om ingen länk finns, skapas heller ingen span-tagg.
infl är defaultvärdet och används normalt för alla rutor med böjningsformer. För defaultvärdet kan parametern helt utelämnas.
no-link Det normala är att orden länkas automatiskt, om det är möjligt. Med värdet "no-link" undertrycks länkningen.
link-only Det normala är att texten både länkas och omsluts med en span-tagg. Med värdet "link-only" skapas länken som vanligt, men span-taggen undertrycks.
adv, perfpart, prespart och eventuellt andra värden används likt "infl" som klassnamn och kan användas av css och javascript för annan funktionalitet.
Rubrikrutor påverkas inte av type-parametern och länkas därför inte heller automatiskt. Om en rubrikruta avses länkas, bör länkklamrar skickas med i cellinnehållet.
Om strängvarianten används så ges 1= defaultvärdet "|" och type= ges defaultvärdet "infl". Detta är det normala för alla böjningsformer som endast fyller en enstaka cell.
getEnd
Denna funktion används för att skapa den undre delen av grammatiktabellen.

Tester[redigera]

All tests passed. (refresh)

test01_basic:

Text Expected Actual
Passed mut.getRow({"!", "rubrik", '|rowspan="2"'}, "form1", "form2", "form3") |-

!|rubrik |rowspan="2"|<span class="infl">[[form1]]</span> ||<span class="infl">[[form2]]</span> ||<span class="infl">[[form3]]</span>

|-

!|rubrik |rowspan="2"|<span class="infl">[[form1]]</span> ||<span class="infl">[[form2]]</span> ||<span class="infl">[[form3]]</span>

Passed mut.getRow({"|", "[[form1]], [[form2]]", type="adv"}, "[[form3]], [[form4]]") |-

||<span class="adv">[[form1]]</span>, <span class="adv">[[form2]]</span> ||<span class="infl">[[form3]]</span>, <span class="infl">[[form4]]</span>

|-

||<span class="adv">[[form1]]</span>, <span class="adv">[[form2]]</span> ||<span class="infl">[[form3]]</span>, <span class="infl">[[form4]]</span>

Passed mut.getRow("form1, form2") |-

||<span class="infl">[[form1]]</span>, <span class="infl">[[form2]]</span>

|-

||<span class="infl">[[form1]]</span>, <span class="infl">[[form2]]</span>

test02_only_content:

Text Expected Actual
Passed mut.getRow("form1", "form2", "form3") |-

||<span class="infl">[[form1]]</span> ||<span class="infl">[[form2]]</span> ||<span class="infl">[[form3]]</span>

|-

||<span class="infl">[[form1]]</span> ||<span class="infl">[[form2]]</span> ||<span class="infl">[[form3]]</span>

test03_only_meta:

Text Expected Actual
Passed mut.getRow({"!"}, {"|rowspan=2"}, {'|class="min"'}) |-

!|&nbsp; |rowspan="2"|&nbsp;[[Kategori:Wiktionary:Sidor med tomma celler]] |class="min"|&nbsp;[[Kategori:Wiktionary:Sidor med tomma celler]]

|-

!|&nbsp; |rowspan="2"|&nbsp;[[Kategori:Wiktionary:Sidor med tomma celler]] |class="min"|&nbsp;[[Kategori:Wiktionary:Sidor med tomma celler]]

test04_only_meta_and_type:

Text Expected Actual
Passed mut.getRow({"!", type="no-link"}, {'|rowspan="2"', type="no-link"}) |-

!|&nbsp; |rowspan="2"|&nbsp;[[Kategori:Wiktionary:Sidor med tomma celler]]

|-

!|&nbsp; |rowspan="2"|&nbsp;[[Kategori:Wiktionary:Sidor med tomma celler]]

test05_no_extra_links:

Text Expected Actual
Passed mut.getRow("[[form1]], form2") |-

||<span class="infl">[[form1]]</span>, <span class="infl">[[form2]]</span>

|-

||<span class="infl">[[form1]]</span>, <span class="infl">[[form2]]</span>

Passed mut.getRow("[[form1]]<sup>1</sup>") |-

||<span class="infl">[[form1]]</span><sup>1</sup>

|-

||<span class="infl">[[form1]]</span><sup>1</sup>

Passed mut.getRow("[[form1]], vard. [[form2]]") |-

||<span class="infl">[[form1]]</span>, vard. <span class="infl">[[form2]]</span>

|-

||<span class="infl">[[form1]]</span>, vard. <span class="infl">[[form2]]</span>

Passed mut.getRow("([[form1]])") |-

||'''('''<span class="infl">[[form1]]</span>''')'''

|-

||'''('''<span class="infl">[[form1]]</span>''')'''

Passed mut.getRow("[[form1|fōrm1]]") |-

||<span class="infl">[[form1|fōrm1]]</span>

|-

||<span class="infl">[[form1|fōrm1]]</span>

Passed mut.getRow("<nowiki/>form1, form2")
Med nowiki i modul
|-

||<nowiki/>form1, <span class="infl">[[form2]]</span>

|-

||<nowiki/>form1, <span class="infl">[[form2]]</span>

Passed mut.getRow("<nowiki/>form1, form2")
Med nowiki i mall
|-

||"`UNIQ--nowiki-00000001-QINU`"'form1, <span class="infl">[[form2]]</span>

|-

||"`UNIQ--nowiki-00000001-QINU`"'form1, <span class="infl">[[form2]]</span>

test06_multiple_words:

Text Expected Actual
Passed mut.getRow("ord1 ord2") |-

||ord1 ord2

|-

||ord1 ord2

test07_special_cases:

Text Expected Actual
Passed mut.getRow(nil) |- |-
Passed mut.getRow("") |-

||&nbsp;[[Kategori:Wiktionary:Sidor med tomma celler]]

|-

||&nbsp;[[Kategori:Wiktionary:Sidor med tomma celler]]

Passed mut.getRow("-") |-

||–

|-

||–

Passed mut.getRow("?") |-

||?

|-

||?

Passed ", type="no-link"})) |-

||&nbsp;[[Kategori:Wiktionary:Sidor med tomma celler]]

|-

||&nbsp;[[Kategori:Wiktionary:Sidor med tomma celler]]

Passed ", "", type="no-link"})) |-

||&nbsp;[[Kategori:Wiktionary:Sidor med tomma celler]]

|-

||&nbsp;[[Kategori:Wiktionary:Sidor med tomma celler]]

Passed ", "-", type="no-link"})) |-

||–

|-

||–

Passed ", "?", type="no-link"})) |-

||?

|-

||?

test_08_words_containg_special_chars:

Text Expected Actual
Passed mut.getRow("e-post") |-

||<span class="infl">[[e-post]]</span>

|-

||<span class="infl">[[e-post]]</span>

Passed mut.getRow("word's") |-

||<span class="infl">[[word's]]</span>

|-

||<span class="infl">[[word's]]</span>

Passed mut.getRow("words'") |-

||<span class="infl">[[words']]</span>

|-

||<span class="infl">[[words']]</span>

Passed mut.getRow("tv:n") |-

||<span class="infl">[[tv:n]]</span>

|-

||<span class="infl">[[tv:n]]</span>

Passed mut.getRow("[[Övriga_uppslagsord#EU:s|EU:s]]") |-

||<span class="infl">[[Övriga_uppslagsord#EU:s|EU:s]]</span>

|-

||<span class="infl">[[Övriga_uppslagsord#EU:s|EU:s]]</span>

Passed mut.getRow("''[[Betula]]''") |-

||''<span class="infl">[[Betula]]</span>''

|-

||''<span class="infl">[[Betula]]</span>''

test_09_basic_with_lang_code:

Text Expected Actual
Passed mut.setLanguage("de") (nil) (nil)
Passed mut.getRow({"!", "rubrik", '|rowspan="2"'}, "form1", "form2", "form3") |-

!|rubrik |rowspan="2"|<span class="infl">[[form1#Tyska|form1]]</span> ||<span class="infl">[[form2#Tyska|form2]]</span> ||<span class="infl">[[form3#Tyska|form3]]</span>

|-

!|rubrik |rowspan="2"|<span class="infl">[[form1#Tyska|form1]]</span> ||<span class="infl">[[form2#Tyska|form2]]</span> ||<span class="infl">[[form3#Tyska|form3]]</span>

Passed mut.getRow({"|", "[[form1]], [[form2]]", type="adv"}, "[[form3]], [[form4]]") |-

||<span class="adv">[[form1#Tyska|form1]]</span>, <span class="adv">[[form2#Tyska|form2]]</span> ||<span class="infl">[[form3#Tyska|form3]]</span>, <span class="infl">[[form4#Tyska|form4]]</span>

|-

||<span class="adv">[[form1#Tyska|form1]]</span>, <span class="adv">[[form2#Tyska|form2]]</span> ||<span class="infl">[[form3#Tyska|form3]]</span>, <span class="infl">[[form4#Tyska|form4]]</span>

Passed mut.getRow("form1, form2") |-

||<span class="infl">[[form1#Tyska|form1]]</span>, <span class="infl">[[form2#Tyska|form2]]</span>

|-

||<span class="infl">[[form1#Tyska|form1]]</span>, <span class="infl">[[form2#Tyska|form2]]</span>