Aller au contenu

Modèle:CopierSyntaxe

De Wikiquestia


Utilisation

Ce modèle ajoute un bouton **« Copier la syntaxe »** permettant de copier **exactement** le contenu fourni (retours à la ligne, indentation, balises HTML comme ``, etc.).

Il est conçu pour être utilisé dans les pages de **documentation de modèles**, notamment les **Infobox V3**.

---

Syntaxe

{{CopierSyntaxe|
contenu à copier
}}

---

Exemple fonctionnel (test immédiat)

Clique sur le bouton pour vérifier que la copie conserve **strictement** la mise en page.


<button type="button" class="copy-syntax-btn">📋 Copier la syntaxe</button>

{{{1}}}

<script> (function () {

 if (window.__copySyntaxInit) return;
 window.__copySyntaxInit = true;
 document.addEventListener('click', function (e) {
   if (!e.target.classList.contains('copy-syntax-btn')) return;
   var wrapper = e.target.closest('.syntax-copy-wrapper');
   if (!wrapper) return;
   var pre = wrapper.querySelector('.syntax-to-copy');
   if (!pre) return;
   var text = pre.innerText;
   if (navigator.clipboard && navigator.clipboard.writeText) {
     navigator.clipboard.writeText(text).then(function () {
       var original = e.target.textContent;
       e.target.textContent = '✔ Copié';
       setTimeout(function () {
         e.target.textContent = original;
       }, 1500);
     });
   }
 });

})(); </script>



➡️ **Colle ensuite le contenu copié dans un éditeur de texte** pour vérifier : - retours à la ligne ✔ - indentation ✔ - balise `` ✔

---

Notes techniques

  • Le JavaScript est **injecté localement** (aucun `Common.js` requis).
  • Le script est protégé contre les **doubles initialisations**.
  • Compatible avec Firefox, Chromium, Safari.
  • Fonctionne avec plusieurs boutons sur une même page.