Modèle:CopierSyntaxe
Apparence
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.