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!
"""]]