Aller au contenu

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

De Wikiquestia
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 1 : Ligne 1 :
<includeonly>
<includeonly>
<div class="syntax-copy-wrapper">
<div class="syntax-copy-wrapper">
<button type="button" class="copy-syntax-btn">📋 Copier la syntaxe</button>
  <button type="button" class="copy-syntax-btn">📋 Copier la syntaxe</button>
<pre class="syntax-to-copy">
  <pre class="syntax-to-copy">{{{1}}}</pre>
{{{1}}}
</pre>
</div>
</div>


Ligne 41 : Ligne 39 :


== Utilisation ==
== Utilisation ==
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.).
Ce modèle ajoute un bouton permettant de copier **exactement** une syntaxe
 
(retours à la ligne, indentation, balises `<sup>`, etc.).
Il est conçu pour être utilisé dans les pages de **documentation de modèles**, notamment les **Infobox V3**.


---
---
Ligne 56 : Ligne 53 :
---
---


== Exemple fonctionnel (test immédiat) ==
== Exemple fonctionnel (test réel) ==
Clique sur le bouton pour vérifier que la copie conserve **strictement** la mise en page.
⚠️ Ceci est **un appel réel du modèle**, pas du code affiché.


{{CopierSyntaxe|
{{CopierSyntaxe|
Ligne 67 : Ligne 64 :
  | Fondation = 18/13/480<sup>XII</sup>
  | Fondation = 18/13/480<sup>XII</sup>
  | Type = Ordre militaro-religieux
  | Type = Ordre militaro-religieux
| Rôle = Protection des frontières spirituelles
  | Effectif = ~3 500 membres
  | Effectif = ~3 500 membres
| Fondateur·s = Maître Vaelor
| Dirigeant·s = Grand Veilleur Tharôn
| Crédo = « Veiller, juger, ne jamais fléchir »
}}
}}
}}
}}


➡️ **Colle ensuite le contenu copié dans un éditeur de texte** pour vérifier :
👉 Clique sur le bouton puis colle ailleurs : 
- retours à la ligne ✔
la mise en page est **strictement conservée**.
- indentation ✔
- balise `<sup>` ✔


---
---


== Notes techniques ==
== Notes techniques ==
* Le JavaScript est **injecté localement** (aucun `Common.js` requis).
* JS injecté localement (pas de `Common.js`)
* Le script est protégé contre les **doubles initialisations**.
* Protection anti double chargement
* Compatible avec Firefox, Chromium, Safari.
* Fonctionne avec plusieurs boutons par page
* Fonctionne avec plusieurs boutons sur une même page.


</div>
</div>
</noinclude>
</noinclude>

Version du 16 janvier 2026 à 12:56


Utilisation

Ce modèle ajoute un bouton permettant de copier **exactement** une syntaxe (retours à la ligne, indentation, balises ``, etc.).

---

Syntaxe

{{CopierSyntaxe|
contenu à copier
}}

---

Exemple fonctionnel (test réel)

⚠️ Ceci est **un appel réel du modèle**, pas du code affiché.


 <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>



👉 Clique sur le bouton puis colle ailleurs : la mise en page est **strictement conservée**.

---

Notes techniques

  • JS injecté localement (pas de `Common.js`)
  • Protection anti double chargement
  • Fonctionne avec plusieurs boutons par page