membuat tombol copy kode di syntax highlighter
Hallo semua pada kesempatan kali ini saya akan membagikan cara buat tombol copy di tag pre code atau syntax highlighter.
secara umum membuat syntax highlighter menggunakan tag <pre><code></code></pre> namun ada juga yang menggunakan tag DIV karna menggunakan tag apa saja bisa hanya tergantung penulisan di cssnya saja.
pada postingan sebelumnya saya sudah pernah membagikan syntax highlighter berwarna hanya dengan css dan cara membuat syntax highlighter berwarna dengan tombol copy code di blog
pada postingan kali ini saya tidak membagikan cara membuat syntax highlighter lagi karena di postingan sebelumnya sudah pernah saya bagikan, tapi di sini saya hanya membagikan cara membuat tombol copynya saja dan untuk syntax highlighter menggunakan yang sudah ada pada template kalian.
saya membagikan kode ini karna lebih sederhana buat kalian yang ingin menambahkan tombol salin kode di syntax highlighter kalian tanpa harus mengubah css yang lama dan tentunya tidak memberatkan blog karna hanya menggunakan sedikit javascript saja.
Membuat Copy Button Pre Code
silakan masuk ke blogger > tema > edit html salin css di bawah ini dan letkkan di atas kode ]]></b:skin> atau di atas kode </style>
.preCopy:hover{opacity:1}
.preCopy{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-ms-user-select:none;-moz-user-select:none;opacity:.5;transition: opacity linear 0.5s;position:absolute;right:0;z-index:2;top:0;background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23989b9f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><g><rect x='5.54615' y='5.54615' width='16.45385' height='16.45385' rx='4'></rect><path d='M171.33311,181.3216v-8.45385a4,4,0,0,1,4-4H183.787' transform='translate(-169.33311 -166.86775)'></path></g></svg>") 40px / 15px no-repeat;background-color:#d9d9d9;color:#989b9f;border:none;font-size:10px;line-height:2.2em;border-radius:0 4px 0 4px;padding:5px 29px 5px 8px}
.preCopy.copyed{background:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIiBkYXRhLXByZWZpeD0iZmFzIiBkYXRhLWljb249ImNoZWNrIiBjbGFzcz0ic3ZnLWlubGluZS0tZmEgZmEtY2hlY2sgZmEtdy0xNiIgcm9sZT0iaW1nIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgc3R5bGU9IiYjMTA7ICAgIGNvbG9yOiAjMmFmZjMyOyYjMTA7Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xNzMuODk4IDQzOS40MDRsLTE2Ni40LTE2Ni40Yy05Ljk5Ny05Ljk5Ny05Ljk5Ny0yNi4yMDYgMC0zNi4yMDRsMzYuMjAzLTM2LjIwNGM5Ljk5Ny05Ljk5OCAyNi4yMDctOS45OTggMzYuMjA0IDBMMTkyIDMxMi42OSA0MzIuMDk1IDcyLjU5NmM5Ljk5Ny05Ljk5NyAyNi4yMDctOS45OTcgMzYuMjA0IDBsMzYuMjAzIDM2LjIwNGM5Ljk5NyA5Ljk5NyA5Ljk5NyAyNi4yMDYgMCAzNi4yMDRsLTI5NC40IDI5NC40MDFjLTkuOTk4IDkuOTk3LTI2LjIwNyA5Ljk5Ny0zNi4yMDQtLjAwMXoiLz48L3N2Zz4=') 50px / 15px no-repeat;background-color:#d9d9d9;border:none;font-size:10px;line-height:2.2em;border-radius:0 4px 0 4px;padding:5px 29px 5px 8px}
lanjut salin javascript di bawah ini dan letakkan di atas kode </body> atau <!--</body>--></body>
<script>/*<![CDATA[*/
let preTag = document.querySelectorAll("pre");
async function copyCode(e) {
const t = e.srcElement;
t.innerText = "Copyed";
let o = t.parentElement.querySelector("code").innerText;
await navigator.clipboard.writeText(o), t.classList.add("copyed"), setTimeout((() => {
t.classList.remove("copyed"), t.innerText = "Copy"
}), 1e3)
}
preTag.forEach((e => {
if (navigator.clipboard) {
let t = document.createElement("button");
t.classList.add("preCopy"), t.innerText = "Copy", t.addEventListener("click", copyCode), e.appendChild(t)
}
}));
/*]]>*/</script>
ok jadi sekian cara membuat tombol copy kode di syntax highlighter yang bisa saya bagikan kali ini, terima kasih telah berkunjung dan semoga bermanfaat.
5 komentar
<b:includable id='postTimestamps'>
<b:if cond='data:post.lastUpdated != data:post.date'>
<time class='aTtmp pTtmp upd' data-date='Updated:' expr:data-text='format(data:post.lastUpdated, "MMMM d, y")' expr:data-time='format(data:post.lastUpdated, "MMM d, y")' expr:datetime='data:post.lastUpdated.iso8601' expr:title='"Last updated: " + data:post.lastUpdated format "MMMM d, y"'/>
<b:else/>
<time class='aTtmp pTtmp pbl' expr:data-text='format(data:post.date, "MMMM d, y")' expr:data-time='format(data:post.lastUpdated, "MMM d, y")' expr:datetime='data:post.date.iso8601' expr:title='"Published: " + data:post.date format "MMMM d, y"'/>
</b:if>
</b:includable>
<!-- ubah jadi -->
<b:includable id='postTimestamps'>
<b:if cond='data:post.lastUpdated != data:post.date'>
<time class='aTtmp pTtmp pbl' expr:data-text='format(data:post.date, "MMMM d, y")' expr:data-time='format(data:post.lastUpdated, "MMM d, y")' expr:datetime='data:post.date.iso8601' expr:title='"Published: " + data:post.date format "MMMM d, y"'/>
</b:if>
</b:includable>