Cowboy's Wiki:Helferlein/Vorlagen-Meister

Aus Cowboy's Wiki
Wechseln zu: Navigation, Suche
Version Datum
Status: 0.4.3 beta 17. Oktober 2009

300px

Der Vorlagen-Meister ist eine Erweiterung, um die Arbeit mit komplexeren Vorlagen zu erleichtern. Er erlaubt die komfortable Erzeugung und Änderung von Vorlagen über ein eingeblendetes Eingabeformular.


Installation

Der Vorlagen-Meister ist eine JavaScript-Anwendung. Du kannst ihn unter Spezial:Einstellungen, im Reiter „Helferlein“, Abschnitt „Bearbeitungswerkzeuge“ aktivieren.

Getestet wurde die Anwendung erfolgreich mit Firefox ab Version 2, Opera 9 und dem Internet Explorer ab Version 7 bei Verwendung des Monobook-Skins.

Anleitung

In der Bearbeitungsansicht einer Seite erscheint in der Toolbar (wo auch die Knöpfe für „Fett“, „Kursiv“, etc. sind) ein zusätzlicher Knopf „VM“. Dieser dient zum Aufruf des Formulars sowie während der Bearbeitung dem Wechsel zwischen der Formularansicht und der Eingabebox.

Vorlage neu einfügen

Zuerst setzt man den Text-Cursor an die gewünschte Position im Text. Dann gibt es zwei Möglichkeiten:

  1. Man schreibt eine leere Vorlage in den Text: {{Vorlagenname}}, setzt den Text-Cursor darauf und klickt auf den VM-Button.
  2. Oder man drückt gleich den VM-Button, woraufhin die Anwendung ohne Formular erscheint. Im Eingabefeld „Vorlage“ kann man daraufhin den gewünschten Namen der Vorlage eingeben. Nach Betätigung der Eingabetaste wird das Formular für diese Vorlage geladen.

Vorhandene Vorlage bearbeiten

Um eine vorhandene Vorlage zu bearbeiten, setzt man den Text-Cursor irgendwo in den Vorlagentext und drückt den VM-Button. Das Programm ermittelt daraufhin den Vorlagenamen, erzeugt das Formular und füllt die Eingabefelder mit den Werten aus dem Quelltext aus.

Enthält der Vorlagentext unbekannte Parameternamen, zum Beispiel durch Schreibfehler, so erscheint eine Leiste mit grünen Buttons, die als Beschriftung die jeweiligen unbekannten Parameter tragen. Klickt man mit der Maus auf einen solchen Button, so wird der Inhalt des Parameters in das aktuelle Formularfeld eingetragen.

Bearbeitung abschließen

Ist man mit der Bearbeitung der Vorlage fertig und möchte die Änderungen in den Vorlagentext übernehmen, so drückt man den Knopf „Übernehmen“. „Abbrechen“ verwirft sämtliche Änderungen und beendet ebenfalls das Tool.

Durch Drücken auf den VM-Button während der Bearbeitung eines Formulars kann man die Formularansicht aus- bzw. wieder einblenden, um zum Beispiel Text aus dem Artikel-Quelltext zu kopieren.

Vorlagen, die mit dem Tool genutzt werden können

Seit der Version 0.4 kann das Tool mit allen Vorlagen genutzt werden.

Existiert zu einer Vorlage noch keine XML-Beschreibungsseite, so werden alle Vorlagenparameter aus dem Quelltext der Vorlage selbst ermittelt. Da viele Vorteile, wie Hilfetexte, Formatierungshilfen und Gruppierungen, so aber nicht nutzbar sind, kann über den zusätzlich eingeblendeten Button "XML-Beschreibung erstellen..." daraus die Grundversion einer XML-Beschreibungsseite erstellt werden.

Ob für eine Vorlage schon eine XML-Beschreibung existiert, findest du über die Kategorie:Vorlage:für_Vorlagen-Meister heraus.

Erweiterungen für einzelne Vorlagen

Erweiterungen zur Transformation von Text in Vorlagen

Diese Erweiterungen dienen speziell dem Zweck, aus normalem formatierten Text (zum Beispiel einer klassischen Literaturangabe oder einer Infobox, die mit Tabellen erstellt wurde) alle Parameter für eine Vorlage zu ermitteln und damit das Formular entsprechend vorauszufüllen.

Dazu markiert man den entsprechenden Text in der Eingabebox und drückt dann den VM-Button. Daraufhin erscheint ein Auswahldialog, aus den man sich die gewünschte Vorlage auswählt.

Für folgende Vorlagen steht solch eine Erweiterung zur Verfügung:

Für Entwickler

Um eine Vorlage mit diesem Tool nutzen zu können, ist ein Abschnitt mit einer XML-Beschreibung auf der Unterseite XML dieser Vorlage notwendig (also Vorlage:Name/XML).

Auf dem Toolserver liegt ein Tool, das bequem aus der Kopiervorlage einer Vorlage das Grundgerüst der XML-Vorlagenbeschreibung generieren kann: hier (JavaScript).

Aufbau und Bedeutung der 600X WIKIPEDIA LOGO.svgXML-Vorlagenbeschreibung

Die Beschreibung hat folgende Knotenhierarchie (nur mit Pflichtattributen):

<TemplateUsage>
  <Group>
    <Parameter name="Titel" />

    <Parameter name="ISBN">
      <Help>Die ISBN-Nummer ohne vorangestelltes ISBN.</Help>
    </Parameter>

    <Parameter name="Monat">
      <Value>Januar</Value>
      <Value>Februar</Value>
      ...
    </Parameter>
    ...
  </Group>
  ...
</TemplateUsage>

In eingefügten Texten, zum Beispiel dem Text der Help-, Condition- und Value-Knoten, oder in Attributen zugewiesenen Texten, zum Beispiel zu name oder label, müssen folgende Zeichen ersetzt werden, damit das XML-Dokument gültig bleibt:

Zeichen Ersatz
& &amp;
< &lt;
> &gt;
" &quot;
' &apos;

Folgende Tabelle beschreibt alle Knoten und deren Attribute. Auf die Groß- und Kleinschreibung muss bei der Verwendung geachtet werden. Optionale Knoten bzw. Attribute sind mit (optional) gekennzeichnet. Vorgegebene Attributwerte brauchen nicht explizit angegeben zu werden.

Knotenname Attribute Beschreibung
TemplateUsage Wurzelknoten, welcher die Beschreibung enthält
output (optional) – Beschreibt die Art des erzeugten Vorlagenquelltextes.

output="collapse"

(Vorgabe) – Es werden nur Parameter genutzt, denen ein Wert zugewiesen wurde. Leere Parameter fallen weg. Der Quelltext enthält keine Zeilenumbrüche. Diese Ausgabe eignet sich bei Vorlagen mit wenigen Parametern und intuitiven Namen (zum Beispiel: Vorlage:Literatur).

output="expand"

Der Vorlagenquelltext enthält alle, auch leere, Parameter. Jeder Parameter steht auf einer separaten Zeile. Diese Ausgabeart eignet sich für Vorlagen mit einer Vielzahl von Parametern und erleichtert Nutzern ohne Tool-Unterstützung die Arbeit mit der Vorlage (zum Beispiel: Vorlage:Infobox Schienenfahrzeug).
max_value_indentation (optional) – Legt fest bis zu maximal wie viele Zeichen die Werte der Vorlagenparameter nach rechts gerückt werden dürfen, um diese einheitlich auszurichten. Ein Wert von 0 deaktiviert diese Funktion. Vorgabewert ist 32.
Group Gruppiert eine Menge von Parametern. Im Formular werden diese in einem separaten Bereich dargestellt. Ist eine Gruppierung nicht zweckmäßig, so sind alle Parameter in einer einzigen Gruppe zu beschreiben.
name (optional) – Beschreibt den Inhalt der Gruppe. Ist dieses Attribut angegeben, so wird es als Gruppenüberschrift angezeigt.
showempty (optional) – Legt fest, ob im Ausgabemodus „expand“ die Gruppe angezeigt werden soll, wenn keinem Parameter dieser Gruppe ein Wert zugewiesen wurde.

showempty="true"

(Vorgabe) – Alle Parameter der Gruppe werden ausgegeben, auch wenn keinem ein Wert zugewiesen wurde.

showempty="false"

Alle Parameter dieser Gruppe werden nur ausgegeben, wenn wenigstens einem Parameter ein Wert zugewiesen wurde.
Parameter Beschreibt einen benannten Parameter der Vorlage. Nur als Kindknoten von „Group“ erlaubt.
name Name des Parameters.
label (optional) – Alternative Bezeichnung, die statt des Namens im Formular angezeigt wird. Zum Beispiel: „Chefredakteur“ statt „chefred“.
length (optional) – Länge des Eingabefeldes in Zeichen oder „max“. Letztere Angabe bewirkt, dass der Parameter vollständig über eine ganze Zeile gestreckt wird. Sinnvoll ist die Angabe bei Parametern mit inhaltlich begrenzter Länge, wie Höhen- und Geschwindigkeitsangaben, und bei Parametern, denen in der Regel sehr lange Texte übergeben werden. Vorgabe sind 20 Zeichen.
height (optional) – Höhe des Eingabefeldes in Zeilen. Vorgabe ist eine Zeile.
null (optional) – Legt fest, ob ein Wert für diesen Parameter eingegeben werden muss.

null="true"

(Vorgabe) – Ein leeres Feld ist erlaubt – es muss kein Wert eingegeben werden.

null="false"

Die Angabe eines Wertes ist Pflicht. Der Parametername ist im Formular unterstrichen. Vor dem Übernehmen der Eingaben prüft das Programm, ob ein Wert eingegeben wurde, und markiert dieses Feld im Fehlerfall.
predefined (optional) – Sagt aus, ob die Vorlage für diesen Parameter einen vordefinierten Wert nutzt, wenn kein Wert übergeben wird.

predefined="true"

Es existiert ein vordefinierter Standardwert für diesen Parameter. Dies hat bei der Ausgabe „expand“ die Auswirkung, dass der Parameter, wenn er leer ist, ohne Gleichheitszeichen erzeugt wird. Dadurch bleibt er weiterhin dokumentiert, ist aber trotzdem nicht definiert. Stattdessen erzeugt dies einen unbenannten Parameter (zum Beispiel {{{1}}}) mit dem Parameternamen als Inhalt.

predefined="false"

(Vorgabe) – Es existiert kein vordefinierter Wert. Bei der Ausgabeart „expand“ wird der Parameter bei fehlender Eingabe auch mit leerem Inhalt im Vorlagentext erzeugt (zum Beispiel: „ISBN=“).
Condition (optional) – Erlaubt die Angabe eines regulären Ausdrucks, der für eine gültige Eingabe erfüllt sein muss. Vor dem Übernehmen der Eingaben prüft das Programm die Gültigkeit und markiert dieses Feld im Fehlerfall. Nur als Kindknoten von „Parameter“ erlaubt.
Default (optional) – Über diesen Kindknoten von „Parameter“ lässt sich ein Vorgabewert festlegen, mit dem das Eingabefeld immer vorausgefüllt wird, wenn es leer ist.
Help (optional) – Enthält einen Hilfetext, der die Verwendung des Parameters beschreibt. Im Formular wird dieser in der Statuszeile angezeigt, wenn das dazugehörige Eingabefeld aktiv ist. Des Weiteren wird die Hilfe als Tooltip angezeigt. Nur als Kindknoten von „Parameter“ erlaubt.
Value (optional) – Erlaubt die Angabe eines Wertes, die der Parameter annehmen darf. Im Formular wird anstatt eines Texteingabefeldes bei mehreren Angaben eine Auswahlliste angezeigt, welche mit allen Value-Elementen des Parameters gefüllt ist. Existiert zu einem Parameter nur ein Value, so wird ein Ankreuzfeld (engl. Checkbox) angezeigt. Nur als Kindknoten von „Parameter“ erlaubt.
label (optional) – Alternative Bezeichnung, die statt des Namens im Formular angezeigt wird. Zum Beispiel: „Chefredakteur“ statt „chefred“.

Testen und Einfügen der Beschreibung

Die Vorlagenbeschreibung wird auf der Unterseite XML der Vorlagenseite hinterlegt, also Vorlage:Name/XML. Um auch in der Wikipedia eine gewisse Lesbarkeit der Vorlage zu erhalten, sollten alle Zeilen außer die erste Zeile mit einem Leerzeichen beginnen. Die erste Zeile darf hingegen so nicht beginnen.

<?xml version="1.0" encoding="utf-8"?>
<!--                                                                    -->
<!-- Dies ist die XML-Beschreibung der Vorlage für den Vorlagenmeister. -->
<!-- Mehr Infos unter [[Cowboy's Wiki:Helferlein/Vorlagen-Meister]].    -->
<!--                                                                    -->
<?mediawiki "{{XML-Warnung|Name der Vorlage}}"?>
 <TemplateUsage ...>
 ...
 </TemplateUsage>

Die Vorlage selbst wird um die Vorlage:XML-Warnung erweitert. Diese informiert die Autoren der Vorlage von der Existenz der XML-Beschreibung und bietet zusätzlich einen Link zur Online-Überprüfung der XML-Beschreibung an.

Zum Testen von größeren Modifikationen sollte unbedingt eine Unterseite des eigenen Benutzerraumes verwendet werden, da Änderungen, und damit auch Fehler, sich sofort bei anderen Nutzern auswirken können.

Validieren gegen das XML-Schema

Unter 600X WIKIPEDIA LOGO.svgBenutzer:Revvar/VM/XML-Schema gibt es ein von 600X WIKIPEDIA LOGO.svgBenutzer:Stf erstelltes 600X WIKIPEDIA LOGO.svgXML-Schema für die Vorlagenbeschreibung. Damit kann überprüft werden, ob die Vorlagenbeschreibung grammatisch korrekt ist. Die Vorlage:XML-Hinweis bietet einen Link zur schnellen Online-Überprüfung der Beschreibung an.

Um die XML-Beschreibung schon offline und komfortabel am heimischen PC zu prüfen, geht man folgendermaßen vor:

Zuerst die Vorlagenbeschreibung als XML-Datei lokal speichern. Im selben Verzeichnis wie die Vorlagenbeschreibung auch das XML-Schema speichern.

  1. Mit Eclipse (IDE) und Web Standard Tools (WST): Dokument im Editor öffnen. XML-Schema in das Wurzelelement eintragen: <TemplateUsage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Revvar-VM.xsd" .... Dann Rechtsklick/Validieren (vgl. Screenshot). Eventuelle Fehler erscheinen im Probleme-Tab und werden beim Anklicken markiert.
  2. Mit jEdit und XML-Plugin: Dokument im Editor öffnen. XML-Schema in das Wurzelelement eintragen (s.o.). Beim Laden und Speichern validiert jEdit automatisch; die Ergebnisse erscheinen im Fehlerfenster (unter Plugins/Error List/Error List). Beim Klicken auf einen Fehler wird die dazugehörige Stelle im Dokument markiert, vgl. Screenshot.
  3. Online hier: Schema-Datei und XML-Datei auswählen und auf Validate klicken. Auf der folgenden Seite kann das Ergebnis unter Click here abgerufen werden.

Mitmachen

Du hast Lust am Vorlagenmeister mitzuarbeiten und Grundkenntnisse in Javascript, HTML, XML, XSLT oder XML-Schema? Dann melde dich hier! Hilfe bei der Programmierung ist jederzeit willkommen.