Skip to content
Snippets Groups Projects
Commit 994d90b5 authored by alexandre.caldato's avatar alexandre.caldato
Browse files

Resolve "Bouton copier-coller code"

parent 56894a77
No related branches found
No related tags found
1 merge request!9Resolve "Bouton copier-coller code"
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
<link rel="manifest" href="{{ 'favicon/manifest.webmanifest'|url }}" crossorigin="use-credentials"> <link rel="manifest" href="{{ 'favicon/manifest.webmanifest'|url }}" crossorigin="use-credentials">
<script src="{{ 'js/strikethrough_replacer.js'|url }}" defer></script> <script src="{{ 'js/strikethrough_replacer.js'|url }}" defer></script>
<script src="{{ 'js/checkbox_replacer.js'|url }}" defer></script> <script src="{{ 'js/checkbox_replacer.js'|url }}" defer></script>
<script src="{{ 'js/copy_code.js'|url }}" defer></script>
<!-- Modifier les chemins relatifs des favicons en fonction de la structure du projet --> <!-- Modifier les chemins relatifs des favicons en fonction de la structure du projet -->
<!-- Dans le fichier manifest.webmanifest aussi, modifier les chemins vers les images --> <!-- Dans le fichier manifest.webmanifest aussi, modifier les chemins vers les images -->
......
...@@ -239,6 +239,18 @@ th { ...@@ -239,6 +239,18 @@ th {
} }
} }
.copy-code-button {
opacity: 0;
position: absolute;
top: 10px;
right: 10px;
transition: all 0.3s ease;
}
pre:hover .copy-code-button {
opacity: 1;
}
pre { line-height: 125%; } pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
......
document.addEventListener('DOMContentLoaded', () => {
const codeBlocks = document.querySelectorAll('pre > code');
console.log(codeBlocks)
codeBlocks.forEach((codeBlock, index) => {
const copyButton = document.createElement('button');
copyButton.textContent = 'Copier';
copyButton.className = 'fr-btn fr-btn--sm copy-code-button';
copyButton.setAttribute('data-clipboard-index', index);
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(copyButton);
copyButton.addEventListener('click', () => {
const textarea = document.createElement('textarea');
textarea.textContent = codeBlock.textContent;
document.body.appendChild(textarea);
textarea.select();
document.execCommand('copy');
document.body.removeChild(textarea);
// Indiquer que le texte a été copié
copyButton.textContent = 'Copié!';
setTimeout(() => {
copyButton.textContent = 'Copier';
}, 2000);
});
});
});
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment