Die copy
- cut
- und paste
-Anweisungen werden durch die 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!
"""]]