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