summaryrefslogtreecommitdiff
path: root/ikiwiki/directive/cutpaste.mdwn
blob: c3fd548a1c9bccb1d04a48c8014ea278e5049bda (plain)

Die copy- cut- und paste-Anweisungen werden durch die [[!iki plugins/cutpaste desc=cutpaste]]-Erweiterung bereitgestellt.

Mit diesen Anweisungen kann man Textabschnitte innerhalb einer Seite speichern und wieder abrufen:

  • \[[!cut id=name text="text"]] merkt sich den Text und erlaubt es, ihn über die angegebene id wieder abzurufen. Der Text taucht an dieser Stelle nicht in der Ausgabe auf.
  • \[[!copy id=name text="text"]] merkt sich den Text und erlaubt es, ihn über die angegebene id wieder abzurufen. Der Text wird an dieser Stelle ausgegeben.
  • \[[!paste id=name]] wird durch den zuvor gemerkten Text ersetzt.

Der ausgeschnittene, kopierte und eingefügte Text kann beliebige Wiki-Formatierungsanweisungen enthalten, inklusive weiterer Aufrufe von cut, copy und paste.

Man muss sich einen Text nicht vor seiner Verwendung merken: Eine cut-Anweisung kann auch erst nach der paste-Anweisung kommen, die ihren Text verwendet. Dies ist ein durchaus nützlich, um größere Blöcke von Text wie lange Anmerkungen erst später anzugeben und so für einen natürlicheren Textfluss zu sorgen. Zum Beispiel:

\[[!toggleable id="cut" text="[[!paste id=beschreibungcut]]"]]
\[[!toggleable id="copy" text="[[!paste id=beschreibungcopy]]"]]
\[[!toggleable id="paste" text="[[!paste id=beschreibungpaste]]"]]

[… und später …]

\[[!cut id=beschreibungcut text="""
   bla bla bla
"""]]
\[[!cut id=beschreibungcopy text="""
   bla bla bla
"""]]
\[[!cut id=beschreibungpaste text="""
   bla bla bla
"""]]

Auf diese Weise können möglicherweise Schleifen erzeugt werden, aber ikiwiki ist schlau und bricht diese auf.

Da man paste ohne Anführungszeichen verwenden kann, können mit copy und paste Anweisungen ineinander geschachtelt werden, die mehrzeilige Parameter benötigen:

\[[!toggleable id=foo text="""
  [[!toggleable id=bar text="[[!paste id=baz]]"]]
"""]]

\[[!cut id=baz text="""
mehrzeiliger Parameter!
"""]]

[[!meta robots="noindex, follow"]]