Vorlage:Item/Layout/Werkstatt: Unterschied zwischen den Versionen

aus FreewarWiki, der Referenz für Freewar
Zur Navigation springen Zur Suche springen
(Part 1 leserlicher gemacht & kommentiert)
(-VB)
 
(9 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 12: Zeile 12:
-->{{#if:{{#regex:{{:Werkstatt/Rezepte}}|%\{{!}}-
-->{{#if:{{#regex:{{:Werkstatt/Rezepte}}|%\{{!}}-
\{{!}}[\x5B]{2}{{#var:itemname}}[\x5D]{2}%}}|<!--
\{{!}}[\x5B]{2}{{#var:itemname}}[\x5D]{2}%}}|<!--
Ist existent:
Ist existent:


  -->{{#regex:, <!--
  -->{{#regex:<!--


   -->{{#regex:<!--
   -->{{#regex:<!--
Zeile 26: Zeile 27:
       -->{{#regex:<!--
       -->{{#regex:<!--


Filtere das Vorkommen heraus:
      -->{{#regex:<!--
 
        -->{{#regex:<!--
 
        -->{{#regex:<!--
 
Filtere zuerst Header und Footer heraus, d.h.
 
{|...
!...
|}
 
          -->{{:Werkstatt/Rezepte}}|<!--
          -->%((\{{!}}}{{!}}{\{{!}}{{!}}!)[^\n]+)%<!--
 
und ersetze das durch nichts (Überflüssiges ist unbrauchbar)
 
          -->|<!--
        -->}}|<!--
 
Filtere das Vorkommen heraus indem alles andere entfernt wird:


Filter:
Filter:
|-
|-
|[[{{#var:itemname}}
|[[{{#var:itemname}}]]
|(Eine Zeile Items)
|(Eine Zeile Items)
|(Ölfässer)
|(Ölfässer)
Zeile 36: Zeile 57:
|(Produktionsdauer)
|(Produktionsdauer)


      -->{{:Werkstatt/Rezepte}}|<!--
        -->%(\{{!}}-
      -->%\{{!}}-
<!--     -->\{{!}}[\x5B]{2}(?!{{#var:itemname}})[^\x5D]+[\x5D]{2}
<!--   -->\{{!}}[\x5B]{2}{{#var:itemname}}[\x5D]{2}
<!--     -->\{{!}}[^\n]+?
<!--   -->\{{!}}[^
<!--     -->\{{!}}\d+
<!--  -->]+?
<!--     -->\{{!}}\d+
<!--   -->\{{!}}\d+
<!--     -->\{{!}}\d+)%<!--
<!--   -->\{{!}}\d+
        -->|<!--
<!--   -->\{{!}}\d+%<!--
        -->}}|<!--
      -->}}|<!--


Parse die einzelnen Werte
Parse die einzelnen Werte
Zeile 50: Zeile 70:
Selber Filter wie davor, jetzt nur eben ersetzen
Selber Filter wie davor, jetzt nur eben ersetzen


      -->%\{{!}}-
        -->%\{{!}}-
<!-- -->\{{!}}[\x5B]{2}{{#var:itemname}}[\x5D]{2}
<!--   -->\{{!}}[\x5B]{2}{{#var:itemname}}[\x5D]{2}
<!-- -->\{{!}}([^
<!--   -->\{{!}}([^\n]+?)
<!--  -->]+?)
<!--   -->\{{!}}(\d+)
<!-- -->\{{!}}(\d+)
<!--   -->\{{!}}(\d+)
<!-- -->\{{!}}(\d+)
<!--   -->\{{!}}(\d+)%<!--
<!-- -->\{{!}}(\d+)%|<!--
        -->|<!--


Schreibe die Zutaten in einen String (mit Nullen und so weiter)
Schreibe die Zutaten in einen String (mit Nullen und so weiter)


      -->$1, $2 [[Ölfass{{!}}Ölfässer]], $3 [[Larinit]]<!--
        -->\\\\, $1, $2 [[Ölfass{{!}}Ölfässer]], $3 [[Larinit]]<!--
      -->}}|<!--
 
Streiche die Nullen
 
      -->%(, 0 [\x5B]{2}(Ölfass\{{!}}Ölfässer{{!}}Larinit)[\x5D]{2})%<!--
      -->|<!--
 
Ersetze alle "0 Ölfässer" bzw. "0 Larinit" durch nichts
 
      -->}}|<!--
 
Entferne die das Plural bei nur einem Ölfass
 
      -->%, 1 [\x5B]{2}Ölfass\{{!}}Ölfässer[\x5D]{2}%|<!--
 
Aus 1 Ölfässer mache 1 Ölfass
 
      -->, 1 [[Ölfass]]<!--
     -->}}|<!--
     -->}}|<!--


Streiche die Nullen
Ersetze (z.B.) 1x [[Reparatur-Zange]]


     -->%(, 0 [\x5B]{2}(Ölfass\{{!}}Ölfässer{{!}}Larinit)[\x5D]{2})%<!--
     -->%([0-9])x%<!--
     -->|<!--
     -->|<!--


Ersetze alle "0 Ölfässer" bzw. "0 Larinit" durch nichts
durch 1 [[Reparatur-Zange]]


    -->$1<!--
     -->}}|<!--
     -->}}|<!--


Entferne die das Plural bei nur einem Ölfass
Ersetze die \\ (am Anfang noch Pseudotrennzeichen)
 
    -->%(?!^\\\\)\\\\%<!--
    -->|<!--
 
durch ein ''oder'' für weitere Optionen


     -->%, 1 [\x5B]{2}Ölfass\{{!}}Ölfässer[\x5D]{2}%|<!--
     --><br /><span style="margin-left: -25px;">''oder''</span><!--
    -->, 1 [[Ölfass]]<!--
   -->}}|<!--
   -->}}|<!--


Ersetze (z.B.) 1x [[Reparatur-Zange]] durch 1 [[Reparatur-Zange]]
Ersetze sämtliche überflüssigen Zeichen (und Zeilen:
|...
\n (Zeilenumbruch)
\\ (temporäres Zeichen zum Trennen verschiedener Herstellungsmethoden)


   -->%([0-9])x%|<!--
   -->%(\n\{{!}}[^\n]+{{!}}\n{{!}}\\\\)%<!--
   -->$1<!--
   -->|<!--
   -->}}|<!--
   -->}}|<!--


Entferne die Kommas (nötig um den Anfang einer Zutatenliste zu markieren)
Entferne die Kommas (nötig um den Anfang einer Zutatenliste zu markieren)


-->%, %|<!--
  -->%, %<!--
  -->|<!--


Und ersetze durch eine neue Zeile, angeführt von 2 Sternchen
Und ersetze durch eine neue Zeile, angeführt von 2 Sternchen (Einrückung)


  -->&nbsp;
  -->&nbsp;
Zeile 98: Zeile 145:
-->}}<!--
-->}}<!--
-->}}<!--
-->}}<!--


IST ZUTAT FÜR FOLGENDE PRODUKTE:
IST ZUTAT FÜR FOLGENDE PRODUKTE:


-->{{#vardefine:werkstatt_produkt|{{#if:{{#regex:{{:Werkstatt/Rezepte}}|%\{{!}}-
-->{{#vardefine:werkstatt_produkt|<!--
\{{!}}[^
 
]+?
Existenzbedingung:
\{{!}}[^
|-
]+?[\x5B]{2}{{#var:itemname}}[\x5D]{2}%}}|{{#regex:{{#regex:{{#regex:{{#regex:{{#regex:{{#regex:{{#regex:{{!}}{{#regex:{{:Werkstatt/Rezepte}}|%({\{{!}}[^-]+)%|}}|%(?!\{{!}}-
|...
\{{!}}[^
|...[[{{#var:itemname}}]]
]+?
 
\{{!}}[^
-->{{#if:{{#regex:{{:Werkstatt/Rezepte}}|%\{{!}}-
]+?[\x5B]{2}{{#var:itemname}}[\x5D]{2})(\{{!}}-
\{{!}}[^\n]+?
\{{!}}[^
\{{!}}[^\n]+?[\x5B]{2}{{#var:itemname}}[\x5D]{2}%}}|<!--
]+?
 
\{{!}}[^
Ist existent:
]+?[\x5B]{2}[^\x5D]+[\x5D]{2})
 
\{{!}}(\d+)
-->{{#regex:<!--
\{{!}}(\d+)
 
\{{!}}(\d+)%|}}|%^([^{{!}}].+)%|}}|%\{{!}}-
  -->{{#regex:<!--
\{{!}}([\x5B]{2}[^\x5D]+[\x5D]{2})
 
\{{!}}[^
  -->{{#regex:<!--
]+?
 
\{{!}}\d+
    -->{{#regex:<!--
\{{!}}\d+
 
\{{!}}\d+%|, $1}}|%(\{{!}}[-} ])%|}}|%
    -->{{#regex:<!--
%| }}|% ,%|,}}|%(, )%|&nbsp;
 
**}}}}}}<noinclude>{{InUse}}{{Verbesserungswürdig|Zweiten Teil der Syntaxsuppe leserlich & kommentiert gestalten}}{{Dokumentation}}</noinclude>
      -->{{#regex:<!--
 
Filtere zuerst Header und Footer heraus, d.h.
 
{|...
!...
|}
 
      -->{{:Werkstatt/Rezepte}}|<!--
      -->%((\{{!}}}{{!}}{\{{!}}{{!}}!)[^\n]+)%<!--
 
und ersetze das durch nichts (Überflüssiges ist unbrauchbar)
 
      -->|<!--
      -->}}|<!--
 
Filtere alle Zeilen die NICHT dem Muster
 
|-
|...
|...[[{{#var:itemname}}]]
 
entsprechen
 
      -->%(?!\{{!}}-
<!--  -->\{{!}}[^\n]+?
<!--  -->\{{!}}[^\n]+?[\x5B]{2}{{#var:itemname}}[\x5D]{2})<!--
      -->(\{{!}}-
<!--  -->\{{!}}[^\n]+?
<!--  -->\{{!}}[^\n]+?[\x5B]{2}[^\x5D]+[\x5D]{2})
<!--  -->\{{!}}(\d+)
<!--  -->\{{!}}(\d+)
<!--  -->\{{!}}(\d+)%<!--
      -->|<!--
 
heraus und ersetze durch nichts
 
    -->}}|<!--
 
Filtere die Itemnamen heraus nach dem Muster
 
|-
|[[''Itemname'']]
|...
|...
|...
|...
 
    -->%\{{!}}-
<!-- -->\{{!}}([\x5B]{2}[^\x5D]+[\x5D]{2})
<!-- -->\{{!}}[^\n]+?
<!-- -->\{{!}}\d+
<!-- -->\{{!}}\d+
<!-- -->\{{!}}\d+%<!--
    -->|<!--
 
und schreibe diesen in einen kommapräfixierten und -separierten String
 
    -->, $1<!--
    -->}}|<!--
 
Entferne alle noch übrig gebliebene |- und |}
 
    -->%(\{{!}}[-} ])%<!--
    -->|<!--
 
(Ersetze durch nichts)
 
  -->}}|<!--
 
Entferne alle Zeilenumbrüche
 
  -->%\n%<!--
  -->|<!--
 
(Ersetze durch nichts)
 
  -->}}|<!--
 
Entferne die trennenden Kommas
 
  -->%(, )%<!--
  -->|<!--
 
Und ersetze durch eine neue Zeile, angeführt von 2 Sternchen (Einrückung)
 
  -->&nbsp;
**<!--
-->}}<!--
 
Schließende Klammern vom #if und dem #vardefine ganz am Anfang:
 
-->}}<!--
-->}}<!--
--><noinclude>{{Dokumentation}}</noinclude>

Aktuelle Version vom 27. September 2013, 19:00 Uhr


[Bearbeiten] Dokumentation

Diese Vorlage schreibt in eine Variable sämtliche Kosten, die zur Herstellung eines Items benötigt werden. Die Daten stammen dabei aus dem Artikel Werkstatt/Rezepte.

Verwendung[Bearbeiten]

Diese Vorlage wird mit {{Item/Layout/Werkstatt|1}} eingebunden.

Die Kosten werden mit {{#var:werkstatt_kosten}} ausgegeben.

Parameter[Bearbeiten]

  • 1: Der Name des Items. Optional, Standard: Seitenname