Hilfe:Arbeiten und programmieren mit Vorlagen

Aus Open Source Ecology - Germany
Zur Navigation springen Zur Suche springen

Eine ausführliche Dokumentation über Vorlagen und deren Programmierung hält die Wikipedia bereit auf https://de.wikipedia.org/wiki/Hilfe:Vorlagen. Eine weitere Programmierhilfe findet sich in den     Einstellungen > Helferlein    , sie stellt für den Wiki-Editor das Ausklapp-Menü „Programmierung“ bereit.


Das folgenden Formular stellt zum Dokumentieren einer Vorlagen schon Abschnitte bereit und kann daher verwendet werden, um gut dokumentierte Vorlagen zu erstellen:


Tipps und Ideen

Oft ist es hilfreich Wiki-Code-Fragmente durchzuanalysieren, welche Ausgabe sie tatsächlich erzeugen. Verwende hierzu die Spezialseite Spezial:Vorlagen_expandieren.

Programmierung

Wiki Transklusion

Jede Seite mit {{:Seitentitel}}. Siehe http://www.mediawiki.org/wiki/Transclusion. Vorsicht: gehe jedoch sparsam mit dieser Funktion um, da es ein ressourcenintensiver Rechenprozess ist, je mehr Seiten transkludiert werden.

Funktionen

Verschachteln immer mit Einrücken benutzten aber ohne versehentlich Leerzeichen einzufügen:

····················
<!-- 

 description
  -->{{#if: …<!--  
  then-->|<!-- 
  else-->|
  }}<!-- if: end  -->
<!-- 

 Erklärung
  -->{{#if: …<!--  
  dann -->|<!-- 
  sonst-->|
  }}<!-- if: end  -->
····················

Hinweis: ifelse-Konstrukte können auch erreicht werden durch verschachteln von Vorlagen-Parametern, d.h. der äußere überschreibt den inneren Parameter:

<!-- 
die folgende Verschachtelung …
  -->{{{result|{{{scientific name|}}}}}}<!-- 

  … ist dasselbe wie …

  -->{{#if: {{{result|}}}<!--  
  dann -->|{{{result|}}}<!-- 
  sonst-->|{{{scientific name|}}}<!--
  -->}}<!-- 
-->

Jedoch funtioniert dies nicht wenn eine Vorlage leere Werte an eine zweite Vorlage weitergibt, weil selbst dann Werte mit „“ als „gesetzt“ interpretiert werden. Für diesen Fall muß mann dann ein {{#if: …}}-Konstrukt nehmen welches „“-Werte dann als FALSE oder „nicht gesezt“ korrekt interpretiert.

Ein Beispiel ohne beim Kommentieren versehentlich Leerzeichen einzufügen:

 <!--
------- Abschnitte kommentieren -------
 -->
 Wiki-Code
 <!--
=======================================
   Großer  Abschnitt kommentiert 
=======================================
 --><!-- 
  (start#switch) test
  -->{{#switch: {{{zu testende Vorlagenvariable}}}
     | Prüfwert = gebe zurück
     | {{{V-Variable_1|}}}{{{V-Variable_2|}}} = gebe zurück
     | gebe zurück Voreinstellung
     }}<!-- (end#switch)
  -->

Als Parameter funktionieren auch Berechnungen mit {{#expr: <ausdruck>}}:

Folgende {{PLURAL:$1|Seite ist|$1 Seiten sind}} in dieser Kategorie enthalten:
{{#expr:  }}
{{#ifexpr: 1 | is anything but zero | is 0}}
{{#ifexpr: 2 < 5 | <!-- :true --> | <!-- :false -->}}
{{#ifexist: Seitenname | <!-- exists --> | <!-- non existing -->}}

Prüfe ob Wert eine Zahl oder keine Zahl:

{{#iferror: {{#expr: {{{Wert als Zahl oder Text|}}} + 0 }}<!--
 keine Zahl
 -->|{{{Wert als Zahl oder Text|}}}<!--
 ist Zahl
 -->|{{{Wert als Zahl oder Text|}}}
}}
{{#if: {{{content|}}} | <!-- (content:true) ... --> | <!-- (content:false) ...-->}}
{{#if: {{{1|}}} | <!-- (1:true) ... --> | <!-- (1:false) ...-->}}
{{#ifeq: string 1 | string 2 | true | false }}

{{#switch:{{CONTENTLANGUAGE}}|#default=english...|de|de-formal|de-ch|de-at=deutsch...}}
{{#switch:{{#var:var-name}}|#default=...|0|1=...}}

{{#var:var-name}}
{{#vardefine:index|{{#expr:{{#var:index}}+1}}}} +1 dazuaddieren
{{#if:{{#varexists:index}}|{{#vardefine:index|{{#expr:{{#var:index}}+1}}}}|{{#vardefine:index|1}}}}
{{#vardefine:var-name|var-value}}

{{lc:MACHE KleIN}} mache klein
{{uc:mache groß}} MACHE GROSS
{{urlencode:Meine ÜRL}} Meine+%C3%9CRL
{{anchorencode:Meine Änchors}} Meine_.C3.84nchors
{{#titleparts:  Open Source Ecology Germany/Unterstützen | 1 }}  Open Source Ecology Germany

{{#arraymap:eins, zwei|,|<!-- temp-Variable -->§|<!-- Ausgabe temp-Variable -->§|<!-- neuer Trenner -->&#32;•&#32;}} → eins • zwei

Extrahiere Zeichenfolgen:

Test auf „:“ {{#sub:…|0|{{#pos:…|:|0}}}}
#rpos → -1 wenn nichts gefunden
#pos  → (leer) wenn nichts gefunden
{{#explode: Mein erstes zweites drittes Wort und ein Schlußwort| |1}} → erstes
{{#explode: Mein erstes zweites drittes Wort und ein Schlußwort| |-1}} → Schlußwort

Variablen

Siehe auch http://www.mediawiki.org/wiki/Help:Magic_words/de#Parser-Funktionen

__NOTOC__
__TOC__
{{fullurl:Category:Top level|action=edit}}
                   //wiki.opensourceecology.de/index.php?title=Kategorie:Top_level&action=edit
{{localurl:Category:Top level|action=render}}
                   /index.php?title=Kategorie:Top_level&action=render
{{filepath:OSEG-Bulb green (BG white).svg|nowiki}}
                   //wiki.opensourceecology.de/images/7/70/OSEG-Bulb_green_%28BG_white%29.svg
{{filepath:OSEG-Bulb green (BG white).svg}}
                   //wiki.opensourceecology.de/images/7/70/OSEG-Bulb_green_%28BG_white%29.svg
{{#titleparts: {{TALKPAGENAME}}| 1 }}
                   Hilfe Diskussion:Arbeiten und programmieren mit Vorlagen
{{#titleparts: {{FULLPAGENAME}}| 1 }}
                   Hilfe:Arbeiten und programmieren mit Vorlagen
{{#titleparts: {{FULLPAGENAME}} | <!-- wieviel /Titel/Titel/ --> 2 | <!-- welchen /Titel/Titel/ --> 2 }}
{{int:edit}}:      Bearbeiten (Systemnachrichten siehe Special:AllMessages)
{{SITENAME}}:      Open Source Ecology - Germany
{{SERVERNAME}}:    wiki.opensourceecology.de
{{FULLPAGENAME}}:  Hilfe:Arbeiten und programmieren mit Vorlagen
{{PAGENAME}}:      Arbeiten und programmieren mit Vorlagen
{{BASEPAGENAME}}:  Arbeiten und programmieren mit Vorlagen
{{TALKPAGENAME}}:  Hilfe Diskussion:Arbeiten und programmieren mit Vorlagen
{{TALKSPACE}}:     Hilfe Diskussion
{{ARTICLESPACE}}:  Hilfe
{{SUBPAGENAME}}:   Arbeiten und programmieren mit Vorlagen
{{Special:Allpages/Hilfe:}} (Alle Hilfeseiten)
{{ns:Media}}:          Medium
{{ns:Special}}:        Spezial
{{ns:Talk}}:           Diskussion
{{ns:User}}:           Benutzer
{{ns:User_talk}}:      Benutzer Diskussion
{{ns:Project}}:        OSE
{{ns:Project_talk}}:   OSE Diskussion
{{ns:Image}}:          Datei
{{ns:Image_talk}}:     Datei Diskussion
{{ns:MediaWiki}}:      MediaWiki
{{ns:MediaWiki_talk}}: MediaWiki Diskussion
{{ns:Template}}:       Vorlage
{{ns:Template_talk}}:  Vorlage Diskussion
{{ns:Help}}:           Hilfe
{{ns:Help_talk}}:      Hilfe Diskussion
{{ns:Category}}:       Kategorie
{{ns:Category_talk}}:  Kategorie Diskussion


Gadgets/Helferlein

Siehe auf der englischen Dokumentationsseite von Extension:Gadgets

 MediaWiki:Gadget-AddProgrammingToolbar
   Hinweistext
 MediaWiki:Gadget-AddProgrammingToolbar.js
   JavaScript
 MediaWiki:Gadget-AddProgrammingToolbar.css
   CSS eventuell

 MediaWiki:Gadgets-definition
   Alle Definitionen: was wo + welche Skripte + MeinDefinierterAbschnitt
   AddProgrammingToolbar[ResourceLoader]|AddProgrammingToolbar.js
   …
   AddProgrammingToolbar[ResourceLoader]|AddProgrammingToolbar.css|AddProgrammingToolbar.js

 MediaWiki:Gadget-section-MeinDefinierterAbschnitt
  → "Benutzte Überschrift"

Pfeile/Sonderzeichen

0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F
0x2190
0x21a0
0x21b0
0x21c0
0x21d0
0x21e0
0x21f0
⌜⌝⌞⌟
⌌⌍⌎⌏ ⌢⌣
┌┬─┐
││ │
├┼─┤
└┴─┘