Aller au contenu

« Modèle:CopierSyntaxe » : différence entre les versions

De Wikiquestia
Page créée avec « <includeonly> <div class="syntax-copy-wrapper"> <button type="button" class="copy-syntax-btn">📋 Copier la syntaxe</button> <pre class="syntax-to-copy"> {{{1}}} </pre> </div> <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 (!wrap... »
 
Aucun résumé des modifications
Ligne 23 : Ligne 23 :
     var text = pre.innerText;
     var text = pre.innerText;


     if (navigator.clipboard) {
     if (navigator.clipboard && navigator.clipboard.writeText) {
       navigator.clipboard.writeText(text).then(function () {
       navigator.clipboard.writeText(text).then(function () {
         var original = e.target.textContent;
         var original = e.target.textContent;
Ligne 39 : Ligne 39 :
<noinclude>
<noinclude>
<div class="documentation">
<div class="documentation">
== Utilisation ==
== Utilisation ==
Ce modèle permet d’afficher un bouton pour copier un bloc de syntaxe en conservant strictement sa mise en page.
Ce modèle ajoute un bouton **« Copier la syntaxe »** permettant de copier **exactement** le contenu fourni (retours à la ligne, indentation, balises HTML comme `<sup>`, etc.).
 
Il est conçu pour être utilisé dans les pages de **documentation de modèles**, notamment les **Infobox V3**.
 
---


== Syntaxe ==
== Syntaxe ==
<pre>
<pre>
{{CopierSyntaxe|
contenu à copier
}}
</pre>
---
== Exemple fonctionnel (test immédiat) ==
Clique sur le bouton pour vérifier que la copie conserve **strictement** la mise en page.
{{CopierSyntaxe|
{{CopierSyntaxe|
{{Infobox V3/Organisation
{{Infobox V3/Organisation
  | Charte =
  | Charte = organisation
  | Fondation =
| Theme  = clair
| Titre  = Ordre des Veilleurs
 
  | Fondation = 18/13/480<sup>XII</sup>
| Type = Ordre militaro-religieux
| Rôle = Protection des frontières spirituelles
| Effectif = ~3 500 membres
 
| Fondateur·s = Maître Vaelor
| Dirigeant·s = Grand Veilleur Tharôn
| Crédo = « Veiller, juger, ne jamais fléchir »
}}
}}
}}
}}
</pre>
 
➡️ **Colle ensuite le contenu copié dans un éditeur de texte** pour vérifier :
- retours à la ligne ✔
- indentation ✔
- balise `<sup>` ✔
 
---
 
== 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.
 
</div>
</div>
</noinclude>
</noinclude>

Version du 16 janvier 2026 à 12:54


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.