Detta är dokumentationssidan för Modul:grammar

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

redigera

getWikitext (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)
Böjningar av grammar/dok  Positiv Komparativ Superlativ
Attributivt
Obestämd
singular
Utrum {1} {9}  
Neutrum {2}
Bestämd
singular
Maskulinum ({3})? ({10})? ({12})?
Alla {4} {9} {13}
Plural {5}
  Predikativt
Singular Utrum {6} {11} {14}
Neutrum {7}
Plural {8}
Kompareras alternativt med mer och mest.
Adverbavledning ({adv})?
{{mallnamnet}} (se lista)
Böjningar av rolig|  Positiv Komparativ Superlativ
Attributivt
Obestämd
singular
Utrum rolig| rolig|are  
Neutrum rolig|t
Bestämd
singular
Maskulinum (rolig|e)? (rolig|are)? (rolig|aste)?
Alla rolig|a rolig|are rolig|aste
Plural rolig|a
  Predikativt
Singular Utrum rolig| rolig|are rolig|ast
Neutrum rolig|t
Plural rolig|a
Kompareras alternativt med mer och mest.
Adverbavledning (rolig|t)?
{{mallnamnet}} (se lista)
Böjningar av kluv|en  Positiv Komparativ Superlativ
Attributivt
Obestämd
singular
Utrum kluv|en kluv|nare  
Neutrum kluv|et
Bestämd
singular
Maskulinum (kluv|ne)? (kluv|nare)? (kluv|naste)?
Alla kluv|na kluv|nare kluv|naste
Plural kluv|na
  Predikativt
Singular Utrum kluv|en kluv|nare kluv|nast
Neutrum kluv|et
Plural kluv|na
Kompareras alternativt med mer och mest.
Adverbavledning (kluv|et)?
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.

test (exporteras till ärvande modul)

Används för tester av grammatikmodulen. Se exempelvis Modul:sv-adj/test.

Externa skript

redigera

getFormsForExport (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\"
			}
		}"
	}
}