Crystal Clear app Service Manager.png Projektin etusivu Talk page icon crystal.png Keskustelu

Mallineprojektin linjaukset ovat käytössä olevia ja tulevia käytäntöjä mallineiden luokitteluun, toteuttamiseen ja muihin projektin toimiin mallineiden parissa. Huomioithan että nämä ovat projektin omia, sisäisiä käytäntöjä eikä näihin tule vedota esimerkiksi poistotapauksissa Wikipedian käytäntönä.

Mallineiden luontiMuokkaa

Kun mallineita luodaan, on hyvä noudattaa joitakin vakiintuneita ja vakiintumassa olevia käytäntöjä.

Yleisiä käytäntöjäMuokkaa

  • Mikäli luodaan apumalline laskuoperaation suorittamiseksi, ei apumallineen tule muotoilla tulosta ja / tai lisätä tulokseen erikoismerkkejä (kuten %, €, £, $) sillä tämän kaltainen muotoilu tuhoaa käytön laskutoimituksissa (kuten #expr sisällä). Tämä muotoilu tulee suorittaa vasta tulostavassa päämallineessa MediaWikin sisäisellä funktiolla {{formatnum:<arvo>}}.
  • Parametrit tulee pyrkiä kirjoittamaan alusta loppuun pienillä kirjaimilla
  • Mallineiden tulee olla suomen kielellä: mallineen nimi, parametrit sekä ulosanti tulee olla aina suomen kielellä. Poikkeuksen tähän tekee:
    • copy-paste-paikat (kuten {{Cite web}}) joiden on tarkoitus estää kopiokäännöksenä toisesta kieliversiosta tuodun artikkelin täydellisen rikkoutumisen
    • vakiintuneet anglismit (kuten {{Single}})
    • mallineen osa-alueella yleisesti käytössä olevat vieraskieliset termit jotka suomeksi kirjoitettuna ovat huomattavasti pidempiä (vertaa {{Pyöristä alaspäin}} – {{Floor}})
  • Näissäkin tapauksissa (mahdollisuuksien mukaan) mallineen tulisi mieluummin käyttää jo valmiiksi suomenkielistä, vastaavaa mallinetta sisäisesti. Mikäli malline ei kuulu edellä mainittuihin poikkeustapauksiin, tulee malline korjata tai lisätä mallineen yläosaan <noinclude>{{Korjattava/malline}}</noinclude>.

NimeäminenMuokkaa

Mallineiden olisi hyvä käyttää nimeämisissä yhtenäistä linjaa, jolloin mallineiden käyttötarkoitus on helpompi tunnistaa jo nimestä. Seuraavat nimeämistavat ovat vakiintuneet:

  1. {{Käyttäjälaatikko}}: Malline:Käyttäjälaatikko Nimi
  2. {{Käyttäjälaatikko}}, wikiprojektit: Malline:Käyttäjälaatikko/Wikiprojekti
  3. {{Tynkämalline}}: Malline:Tynkä/aihe
  4. {{Maan nimi}}:   Maa
  5. {{Maan nimi lippu}}:  

Kun käytetään pohjamallineita, olisi nimeäminen hyvä tehdä seuraavasti (jossa NIMI on asian omainen aihe muodossa Aihe):

  1. {{Navigaatio}}: Malline:Navigaatio:NIMI (nykyisin käytössä on muoto NIMInavigaatio)
  2. {{Pystynavigaatio}}: Malline:Pystynavigaatio:NIMI (nykyisin käytössä on muoto NIMInavigaatio)
  3. {{Tietolaatikko}}: Malline:Tietolaatikko:NIMI (nykyisin käytössä on muoto NIMI)
  4. {{Viestipohja}}: Malline:Viesti:NIMI

Kun malline on tietyn mallineen kanssa toimiva apumalline, tulisi nimi olla Malline:Päämalline/apumalline. Jos kyseessä on yleisluontoinen apumalline (kuten {{Prosenttia}}), tulee käyttää mahdollisimman yksiselitteistä, helposti muistettavaa nimeä.

Mikäli malline päätetään siirtää uudelle nimelle, tulee ennen siirtoa informoida mahdollisesta siirrosta mallineen luojalle sekä mahdollisille aktiivikäyttäjille. Jos lyhyen keskustelun tuloksena päädytään siirtämään malline uudelle nimelle, tulee ennen uudelleenohjauksen poistamista korjata kaikki viittaukset vanhaan nimeen.

LinkitysMuokkaa

Aivan kuin luodessasi uutta artikkelia, mieti mikä on wikilinkityksen kannalta olennaista tietoa. Älä linkitä jokaista sanaa. Myös vuosilukujen linkittäminen on yleensä turhaa. Esimerkki:

Mallineiden ohjeet, luokat ja muu metatietoMuokkaa

Katso Wikipedia:Wikiprojekti Mallineet/Metatieto.

Toiminnalliset mallineetMuokkaa

Käytäntöjä toiminnallisten mallineiden (eli mallineiden jotka sisältävät parametreja) toteuttamiseen.

Luokitteleva mallineMuokkaa

Mikäli malline luokittelee artikkeleita, tulee luokan sijaita <includeonly>[[Luokka:Artikkeliluokka]]</includeonly>–muotoisena tai ehtorakenteen sisällä siten että malline ei luokittele itseään artikkeliluokkaan

Alaspäin yhteensopivuusMuokkaa

Mikäli laajalti käytössä olevan mallineen parametrien nimiä joutuu päivittämään, tulisi parametrit päivittää siten että ne olisi alaspäin yhteensopivia. Alaspäin yhteensopivuus toteutetaan ketjuttamalla uusi ja vanha parametri:

{{{uusi parametri|{{{vanha parametri}}}}}}

Tällöin malline ei hajoa vanhaa parametria käyttävissä artikkeleissa, ja artikkelipäivityksille jää enemmän aikaa.

Artikkeliluokan ehdollistaminenMuokkaa

Kun on tiedossa että malline ei saa luokitella niin kutsuttuun artikkeliluokkaan kuin tietyssä nimiavaruudessa sijaitsevat sivut jotka mallinetta käyttää, voidaan käyttää seuraavaa koodia:

<includeonly>{{#ifeq: {{NAMESPACE}} | {{ns:0}} | [[Luokka:Artikkeliluokka]] }}</includeonly>

{{ns:0}} kohdalla voidaan käyttää MediaWikin vakionimiavaruuksia (katso lista vakionimiavaruuksista m:Help:Namespace#List of namespaces) tai nimiavaruutta {{ns:100}} = Teemasivu, {{ns:101}} = Keskustelu teemasivusta, {{ns:102}} = Metasivu tai {{ns:103}} = Keskustelu metasivusta.

Ehtolauseessa parametrien ketjuttaminenMuokkaa

Tavallisesti parametrit tulostettaessa ketjutetaan muodossa {{{parametri|{{{parametri2|{{{parametri3}}}}}}}}}, mutta tätä tyyliä ei tulisi käyttää ehtolauseissa (kuten #if ja #ifeq). Kun ehtolauseen halutaan toteutuvan kun vähintään yksi tietyistä parametreista on asetettu erisuureksi kuin tyhjä, tulee käyttää muotoa

{{#if: {{{parametri|}}}{{{parametri2|}}}{{{parametri3|}}} | jokin kolmesta parametrista erisuuri kuin tyhjä }}

Mikäli käytetään tulostettaessa käytettävää ketjutustapaa, ei malline toimi mikäli mallinetta kutsuessa määritellään parametri tyhjäksi koodilla | parametri = .

Taulukon rivin ehdollistaminenMuokkaa

{|
|-
{{#if: {{{parametri|<noinclude>-</noinclude>}}} | {{!}} Nimi
{{!}} {{{parametri}}}
{{!-}} }}
{{#if: {{{parametri2|<noinclude>-</noinclude>}}} | {{!}} Nimi2
{{!}} {{{parametri2}}}
{{!-}} }}
|}

Hyödyt:

  1. Taulukko ei sekoa vaikka ehdollistettavia kenttiä olisi useita
  2. Selaimet tulkitsee koodin oikein, sillä se muotoillaan jo palvelimella XHTML-standardin mukaiseksi
  3. class{{{parametri|}}}="hiddenStructure" ei ole XHTML-standardin mukaista
  4. Menetelmän avulla mallineen sivulla näkyy kaikki kentät sekä parametrien sijoittuminen

Lisäksi tällä menetelmällä voidaan varmistaa että MediaWikin taulukkoparseri ei sekoa ja lisää taulukkokoodin alkuun tyhjää kappale-elementtiä <p><br /></p>.

Rekisteröityneen käyttäjän tunnistaminenMuokkaa

Joissakin mallineissa (kuten {{Äänioikeus}} ja {{Anonyymi}}) tarvitaan tietoa onko käyttäjä rekisteröitynyt vai ei. Suurimmassa osassa käyttäjätunnuksista on vähintään yksi kirjain, jolloin vertailun voi suorittaa funktioilla {{lc:}} ja {{uc:}}:

{{#ifeq: {{lc:{{PAGENAME}}}} | {{uc:{{PAGENAME}}}} | IP | Rekisteröitynyt }}

VäriteematMuokkaa

Väriteemoja varten on kehitetty {{Aihealue}}, joka tarjoaa yhdenmukaisen värityksen taustalle ({{Aihealue/väri}}), korostusvärin taustalle ({{Aihealue/taustaväri}}), reunukselle ({{Aihealue/reunus}}) sekä tekstille {{Aihealue/tekstinväri}}.

TietolaatikotMuokkaa

Tietolaatikkojen yhdenmukaistamista varten on kehitetty sarja mallineita {{Tietolaatikko}} alle.

{{Tietolaatikko}}Muokkaa

Mallineet
Aihe Linjaukset
Katso myös
Projekti Mallineet
Edellinen sivu Seuraava sivu
Etusivu Linjaukset Luokattomat mallineet
 

Tietolaatikon yläosa. Käyttää reunuksien värityksessä {{Aihealue/reunus}} mukaista väriä.

Peruskutsu:

{{Tietolaatikko
 | aihealue    = tekniikka 
 | sisältö     = <sisältö>
}}
|}

{{Tietolaatikko/otsikko}}Muokkaa

Tietolaatikon pääotsikko. Käyttää reunuksen värityksessä {{Aihealue/reunus}} ja taustan värityksessä {{Aihealue/taustaväri}} mukaista väriä.

Peruskutsu:

  • {{Tietolaatikko/otsikko|aihealue=tekniikka|sisältö=Otsikko}}

{{Tietolaatikko/väliotsikko}}Muokkaa

Tietolaatikon väliotsikko. Käyttää reunuksen värityksessä {{Aihealue/reunus}} ja taustan värityksessä {{Aihealue/taustaväri}} mukaista väriä.

Peruskutsu:

  • {{Tietolaatikko/väliotsikko|aihealue=tekniikka|sisältö=Väliotsikko}}

{{Tietolaatikko/tietorivi}}Muokkaa

Tietolaatikon tietorivi.

Peruskutsu:

  • {{Tietolaatikko/tietorivi|nimi=Kenttä|sisältö={{{arvo}}}}}

{{Tietolaatikko/kuva}} ja {{Tietolaatikko/kuvat}}Muokkaa

Tietolaatikon kuva– tai kahden kuvan kenttä. Käyttää reunuksien värityksessä {{Aihealue/reunus}} mukaista väriä.

Peruskutsut:

  • {{Tietolaatikko/kuva|aihealue=tekniikka|kuva={{{kuva}}}|kuvateksti={{{kuvateksti}}}}}
  • {{Tietolaatikko/kuvat|aihealue=tekniikka|kuva1={{{kuva1}}}|kuva2={{{kuva2}}}|kuvateksti1={{{kuvateksti1}}}|kuvateksti2={{{kuvateksti2}}}}}

{{Tietolaatikko/linkki}}Muokkaa

Tietolaatikon linkkikenttä.

Peruskutsu:

  • {{Tietolaatikko/linkki|linkki={{{linkki}}}|sisältö=Virallinen kotisivu}}

{{Tietolaatikko/navigaatio}}Muokkaa

Tietolaatikon navigaatiokenttä, eli "edeltäjä-seuraaja"-kenttä.

Peruskutsu:

  • {{Tietolaatikko/navigaatio|edeltäjänimi=Edellinen|tämänimi=Nykyinen|seuraajanimi=Seuraava|edeltäjä={{{edellinen}}}|tämä={{PAGENAME}}|seuraaja={{{seuraaja}}}}}

Rivin ehdollistaminenMuokkaa

Tietolaatikkomallinetta käytettäessä tulostettava rivi voidaan ehdollistaa aivan kuten taulukkorivin ehdollistamisessa.

{{#if: <ehto> | <tietolaatikon tuloste>}}

NavigaatiomallineetMuokkaa

Navigaatiomallineet, eli mallineet jotka vain listaavat saman aihepiirin sivuja tulisi toteuttaa aina joko pystymallisena artikkelin oikealle puolelle (katso esimerkiksi {{Ranskan tasavalta}}) tai vaakamallisena artikkelin alalaitaan. Kun navigaatiomalline tehdään vaakatasossa, tulisi malline yleensä toteuttaa avattavana mallineena, mutta joka tapauksessa koko ruudun levyisenä.

Vaaka{{Navigaatio}}Muokkaa

Vaakatason navigaatiomallineiden avauskoodit käytettäessä {{Navigaatio}} ovat:

HistoriaMuokkaa
Kielitiede ja kieleen liittyvätMuokkaa
LiikenneMuokkaa
MaakohtaisetMuokkaa
PaikkakuntakohtaisetMuokkaa
Sota & konfliktitMuokkaa
Taide & kulttuuriMuokkaa
TalousMuokkaa
TekniikkaMuokkaa
TiedeMuokkaa
UrheiluMuokkaa
YhteiskuntaMuokkaa
{{Ryhmätaulu}}Muokkaa

Ryhmätaulu on taulukointiratkaisu jonka avulla voidaan toteuttaa nopeasti ja yhdenmukaisesti vaakanavigaation sisältötaulukon. Ryhmätaulu ei suoraan tue aihealueen väritystä, mutta värityksen voi määritellä #{{Aihealue/taustaväri|aihe}} ja #{{Aihealue/korostusväri|aihe}} avulla.

{{Pystynavigaatio}}Muokkaa

Pystymalliset sivun ylälaitaan tulevat navigaatiomalline tehdään {{Pystynavigaatio}}-mallineella.

Muut pohja– ja taittomallineetMuokkaa

Näiden lisäksi muita pohja– tai taittomallineita on:

Tunnetut rajoitteet ja virheet ParserFunctions–laajennuksessaMuokkaa

Kaikki funktiotMuokkaa

Kaikki ParserFunctions–laajennuksen funktiot poistaa tuloksen alusta ja lopusta tulostumattomat merkit:

{{#ifeq: {{#if: 1 |     1     }} | {{#if: 1 | 1 }} | Yhtäsuuret | Erisuuret }}
Yhtäsuuret

Jos halutaan tulostaa alussa tai lopussa tulostumattomia merkkejä, tulee käyttää <nowiki /> etu- ja/tai jälkiliitettä:

{{#ifeq: {{#if: 1 |<nowiki />     1     }} | {{#if: 1 |<nowiki /> 1 }} | Yhtäsuuret | Erisuuret }}
Erisuuret
{{#ifeq: {{#if: 1 |     1     <nowiki />}} | {{#if: 1 | 1 <nowiki />}} | Yhtäsuuret | Erisuuret }}
Erisuuret

#timeMuokkaa

Funktion #time ulosanti (output) on rajoitettu 6 000 merkkiin / sivukutsu. Mikäli tämä rajoitus ylittyy, palauttaa funktio virheviestin Error: too many #time calls. Tätä rajoitetta ei voi kiertää, ja ainoa keino viestin ilmaantuessa on lyhentää ajan muotoilussa käytettävää ulosantia:

{{#time: [[j. F\t\a]] [[Y]]}} > {{#time: j.n.Y}}
13. tammikuuta 2020 > 13.1.2020

#ifexistMuokkaa

Funktion #ifexist kutsukerrat / sivulataus tullaan rajoittamaan 100 kertaan, mutta tällä hetkellä rajoite on vielä 500 kutsukertaa. Kun kutsukerrat ylittää määritetyn rajan, tulee esikatselutilaan seuraavanlainen ilmoitus:


Tämä on vasta sivun esikatselu. Sivua ei ole vielä tallennettu!

Warning: This page contains too many #ifexist calls. It should have less than 500, there are now 501.

Tämän lisäksi sivu luokittuu automaattisesti luokkaan Pages with too many ifexist calls ja funktio lopettaa toimimisen 500 kutsukertaan.

Tulevaisuuden 100 kutsukerran rajoitetta on syytä pitää silmällä jottei funktiota käyttävät sivut lakkaa toimimasta rajoitteen astuessa voimaan. Alle viidensadan kutsukerran määrät saa selville sivun lähdekoodista, jossa sivun sisällön alalaitaan ilmestyy automaattisesti seuraavanlainen kommentti:

<!-- 
Pre-expand include size: 3392/2048000 bytes
Post-expand include size: 3392/2048000 bytes
Template argument size: 0/2048000 bytes
#ifexist count: 101/500
-->

#ifeqMuokkaa

Funktiossa #ifeq on Bugzillan mukaisesti havaittu kaksi eri bugia:

Bug when using colon in ParserFunction #ifeq:Muokkaa

Mikäli halutaan tulostaa funktiolla #ifeq kaksoispiste ensimmäisenä merkkinä, muotoutuu tulos väärin

[[{{#ifeq: {{NAMESPACE}} | {{ns:0}} | {{FULLPAGENAME}} | :{{FULLPAGENAME}} }}]]
[[
Wikiprojekti:Mallineet/Linjaukset]]

Tämän ongelman välttämiseksi tulee käyttää linkkiä kokonaisuudessaan funktion sisällä:

{{#ifeq: {{NAMESPACE}} | {{ns:0}} | [[{{FULLPAGENAME}}]] | [[:{{FULLPAGENAME}}]] }}
Wikiprojekti:Mallineet/Linjaukset
#ifeq bug when using Magic words that include quotes (")Muokkaa

Mikäli funktiolla #ifeq verrataan onko sivun nimi jokin tietty, ei funktio toimi mikäli sivun nimessä on lainausmerkit (testiesimerkki toimii vain " alla):

{{#ifeq: " | {{PAGENAME}} | 1 | 0}}
0

Tämän ongelman voi kiertää käyttämällä vertailuina toisen funktion (esimerkiksi localurl) tuloksia:

{{#ifeq: {{localurl:"}} | {{localurl:{{PAGENAME}}}} | 1 | 0}}
1

Mallineiden järjestysMuokkaa

1. Ylämalline


3. Sisältö lähdeviitteineen

2. Oikea malline
 
4. Katso myös
5. Lähteet & {{Viitteet}}
6. Aiheesta muualla
7. Navigaatiomalline(et)
8. Tynkämalline
9. Luokat
10. Kieltenväliset linkit
  1. Ylämalline: {{Tämä artikkeli}}, {{Pikapoisto}}, {{Poistettava}}...
  2. Oikea malline: Niin kutsuttu tietolaatikkomalline
  3. Sisältö: Artikkelin tekstisisältö (voi sisältää mallineita kuten {{Pääartikkeli}} <ref></ref>-tageilla merkityin lähdeviittein
  4. Katso myös -osio
  5. Lähteet sisältäen {{Viitteet}}
  6. Aiheesta muualla
  7. Navigaatiomalline(et)
  8. Tynkämalline
  9. Luokat
  10. Kieltenväliset linkit

Mallineiden korjausMuokkaa

Kaikki korjattavaksi pyydetyt mallineet löytyvät huomiota kaipaavien mallineiden luokasta, jonne luokitellaan {{Korjattava/malline}} avulla. Kun malline korjataan, on hyvä tarkastaa myös:

  1. Toimintavarmuus
    • Jos parametrilla on tietty oletusarvo, tulisi {{[parametri|oletusarvo}}} sijasta käyttää ehtolausetta {{#if: {{[parametri|}}} | {{{parametri}}} | oletusarvo }}. Tällöin tyhjäksi jätetty parametri ei sotke mallineen toiminnallisuutta
  2. Taulukkorivien ehdollistaminen
    • Kaikki hiddenstructure-luokan avulla tehdyt ehdollistukset tulisi muuntaa toimintavarmempaan tapaan
  3. Parametrit ja sisältö

Mikäli mallineen korjaus tulee kestämään kauan, tulee alaspäin yhteensopivuudesta huolehtia ja merkata malline kehitteillä oleviin mallineisiin {{Kehitteillä oleva malline}} avulla. Jos mallineen muutos tulee lisäksi vaikuttamaan suureen osaan Wikipedian artikkeleita, tulee mallinemuutoksesta ilmoittaa tulossa olevissa päivityksissä laajan huomion varmistamiseksi.

Uudelleenohjaavat mallineetMuokkaa

Katso uudelleenohjaukset.

TuplamallineetMuokkaa

Katso tuplamallineet.