Les directives copy, cut and paste sont fournies par le module d'extension cutpaste.

Ces directives permettent de sauvegarder et rappeler des parties de texte d'une page.

  • [[!cut id=name text="text"]] garde en mémoire le texte, qui peut être rappelé grâce à l'id. Le texte coupé n'est pas inclus dans la sortie.
  • [[!copy id=name text="text"]] garde en mémoire le texte, qui peut être rappelé grâce à l'id. Le texte coupé est inclus dans la sortie.
  • [[!paste id=name]] est remplacé par le texte précédemment mis en mémoire.

Le texte coupé, copié ou collé peut être inclus dans une balise wiki, avec d'autres appels encore aux directives cut, copy et paste.

Il n'est pas nécessaire de mettre en mémoire le texte avant de l'utiliser. Une directive « cut » peut suivre une directive « paste » qui utilise le texte. Pouvoir différer de gros morceaux de texte comme de longues annotations et pouvoir suivre un cours plus naturel est très pratique. Par exemple :

[[!toggleable  id="cut" text="[[!paste id=cutlongdesc]]"]]
[[!toggleable  id="copy" text="[[!paste id=copylongdesc]]"]]
[[!toggleable  id="paste" text="[[!paste id=pastelongdesc]]"]]

[...some time later...]

[[!cut  id=cutlongdesc text="""
   blah blah blah
"""]]
[[!cut  id=copylongdesc text="""
   blah blah blah
"""]]
[[!cut  id=pastelongdesc text="""
   blah blah blah
"""]]

Des boucles peuvent résulter mais ikiwiki est intelligent et les rompt.

Puisqu'il est possible de coller sans doubler les guillemets, ces directives copy et paste peuvent servir à emboîter des directives qui demandent des paramètres à plusieurs lignes insérés l'un dans l'autre :

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

[[!cut  id=baz text="""
multiline parameter!
"""]]