« Modèle:CopierSyntaxe » : différence entre les versions
Apparence
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 | 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 » | |||
}} | }} | ||
}} | }} | ||
< | |||
➡️ **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.