« Modèle:CopierSyntaxe » : différence entre les versions
Apparence
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 | Ce modèle ajoute un bouton permettant de copier **exactement** une syntaxe | ||
(retours à la ligne, indentation, balises `<sup>`, etc.). | |||
--- | --- | ||
| Ligne 56 : | Ligne 53 : | ||
--- | --- | ||
== Exemple fonctionnel (test | == Exemple fonctionnel (test réel) == | ||
⚠️ 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 | ||
| Effectif = ~3 500 membres | | Effectif = ~3 500 membres | ||
}} | }} | ||
}} | }} | ||
👉 Clique sur le bouton puis colle ailleurs : | |||
la mise en page est **strictement conservée**. | |||
--- | --- | ||
== Notes techniques == | == Notes techniques == | ||
* | * JS injecté localement (pas de `Common.js`) | ||
* | * Protection anti double chargement | ||
* Fonctionne avec plusieurs boutons par page | |||
* Fonctionne avec plusieurs boutons | |||
</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