Modul:grammar/dok
Detta är dokumentationssidan för Modul:grammar
Syfte
redigera- Den här modulen fungerar som en basmodul för grammatikmoduler. Den innehåller sådana funktioner som är gemensamma för samtliga grammatikmoduler. Denna modul används direkt av modulen som ska ärva funktionerna, "ärvande modul", (aldrig anropas på annat sätt, ex.vis direkt från en grammatikmall).
Specifikation
redigera- Ärvande modul måste implementera och exportera följande funktioner:
- _getMeta (skapa meta-information som behövs som underlag för att generera korrekta böjningsformer, korrekt utformad böjningstabell, korrekta parameterscheman osv)
- _getForms (skapa själva böjningsformerna; avledningar ska använda namn med prefixet x_, t.ex. x_adv)
- _getWikitable (skapa själva grammatiktabellen med hjälp av Modul:grammar-table)
- _getCategories (skapa kategorier specifika för ärvande modul)
- _getAcceptedParameters (ange alla icke allmänna parametrar som får användas i mallsyntaxen)
Se ett grundläggande exempel: Modul:grammar-example, eller någon befintlig grammatikmodul (t.ex. Modul:sv-adj).
Huvudfunktionalitet
redigeragetWikitext (exporteras till ärvande modul)
- Returnerar wikitexten som innehåller grammatiktabellen och eventuella kategorier. Detta är funktionen som anropas från grammatikmallarna (genom anrop till ärvande modul): På ordets sida anropas mallen (t.ex.)
{{sv-adj}}
, som i sin tur anropar sin grammatikmodul{{#invoke|sv-adj|getWikitext}}
. - getWikitext anropar getFormsAndMeta, _getWikitable (från ärvande modul) samt getCategories.
getFormsAndMeta (lokal funktion)
- Anropar och sammanställer information från ärvande moduls funktioner: _getMeta och _getForms.
getCategories (lokal funktion)
- Skapar dels generella kategorier och dels kategorier specifika för ärvande modul genom anrop till _getCategories.
Allmänna parametrar
redigera- addGeneralMetaAttributes
- Tar hand om parametrar - utöver "grundform" - som stödjs av samtliga grammatikmallar (fakta, betydelser, förled, not, bredd?) och genererar meta-information från dessa.
- Se Wiktionary:Stilguide/Grammatik/Allmänna parametrar för utförligare information.
Parameterscheman
redigera- fillCellArgumentsWithBrackets
{{mallnamnet}} (se lista)
| ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
{{mallnamnet}} (se lista)
| ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
{{mallnamnet}} (se lista)
| ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
- Fyller i alla numrerade parametrar (och ibland särskilda namngivna parametrar) med "{rutans nummer}".
- Det är obligatoriskt att på grammatikmallarnas dokumentationssidor bland annat presentera ett parameterschema för att åskådliggöra de numrerade parametrarnas placering i tabellen.
- Ange exempelvis:
{{parameterschema|sv-adj|{{sv-adj|autonumrera=}} }}
- för att skapa ett parameterschema med de numrerade parametrarna (och ibland särskilda namngivna parametrar) automatiskt ifyllda. Byt ut sv-adj mot den mall du vill beskriva.
- Andra aspekter av hur grammatikmallen fungerar eller hur böjningsmönstren ser ut kan också visas med hjälp av parameterscheman:
{{parameterschema|sv-adj|{{sv-adj|grundform=rolig{{!}} }} }}
{{parameterschema|sv-adj-alt|{{sv-adj-alt|grundform=kluv{{!}}en }} }}
.
- Se exempel på resultat till höger.
makeArgsTable respektive makeArgsTableFromString
- Skapar en ny tabell med ett visst antal numrerade argument borttagna.
- Detta är användbart för att på konstgjord väg kunna skapa en tabell med argument som normalt genereras automatiskt när modulen anropas från en mall, när anropet istället sker i ett enhetstest eller via MediaWiki-API:et från ett externt script. Se nedan.
Tester
redigeratest (exporteras till ärvande modul)
- Används för tester av grammatikmodulen. Se exempelvis Modul:sv-adj/test.
Externa skript
redigeragetFormsForExport (exporteras till ärvande modul)
- Avsett för ett externt script att hämta böjningsformer baserat på mallnamn, sidnamn och lista med argument. Funktionen används av Modul:grammar-export.
- Externa script kan t.ex. göra anrop till MediaWiki-API:et:
{{#invoke:grammar-export|getJson|pagename=<sidans namn>|template=<hela mallsyntaxen inklusive mallnamnet>}}
- Exempel: {{#invoke:grammar-export|getJson|pagename=rolig|template=sv-adj|pers=}} (behöver URL-encodas).
{
"expandtemplates": {
"wikitext": "{
\"lang\":\"sv\",
\"h3\":\"adj\",
\"forms\": {
\"x_adv\":\"roligt?\",
\"pred_sup\":\"roligast\",
\"attr_obest_sing_neutrum_pos\":\"roligt\",
\"attr_best_sing_alla_pos\":\"roliga\",
\"attr_plur_pos\":\"roliga\",
\"pred_komp\":\"roligare\",
\"pred_plur_pos\":\"roliga\",
\"attr_best_sing_mask_sup\":\"roligaste\",
\"pred_sing_neutrum_pos\":\"roligt\",
\"pred_sing_utrum_pos\":\"rolig\",
\"attr_obest_sing_utrum_pos\":\"rolig\",
\"attr_komp\":\"roligare\",
\"attr_komp_mask\":\"roligare\",
\"attr_best_sing_mask_pos\":\"rolige\",
\"attr_sup\":\"roligaste\"
}
}"
}
}