はてなブログの設定から、Markdown記法で書いた記事にコードブロックのコピーボタンを自動的に追加することができます。また、こちらのブログは完全に非公式ですし自分のブログ以外では試してません。
🦾 デザインの設定
まず、はてなブログの管理画面にログインし、デザイン設定を開きます。
🦾 CSS の設定を行う
デザイン設定で、「カスタマイズ」タブをクリックし、「デザインCSS」を開きます。ここで、先ほど紹介したコピーボタンのスタイルを追加します。
pre.code { position: relative; } .copy-button { position: absolute; top: 4px; right: 4px; display: inline-block; padding: 8px 16px; border: none; border-radius: 4px; background-color: #1e90ff; color: #ffffff; cursor: pointer; font-size: 14px; font-weight: bold; text-decoration: none; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); transition: background-color 0.3s, box-shadow 0.3s; opacity: 0; transition: opacity 0.3s; } pre.code:hover .copy-button { opacity: 1; } .copy-button:hover { background-color: #2980b9; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.4); } .copy-button:focus { outline: none; } .copy-button:active { box-shadow: none; transform: translateY(2px); }
🦾 フッターHTMLの設定を行う
次に、「カスタマイズ」タブの「フッターHTML」に、以下のコードを追加します。
<script> document.addEventListener('DOMContentLoaded', function() { // コードブロックを取得 var codeBlocks = document.querySelectorAll('pre.code'); // すべてのコードブロックにコピーボタンを追加 for (var i = 0; i < codeBlocks.length; i++) { var copyButton = document.createElement('button'); copyButton.className = 'copy-button'; copyButton.textContent = 'Copy code'; copyButton.onclick = function() { var codeElem = this.parentNode.querySelector('code') || this.parentNode; var textArea = document.createElement('textarea'); textArea.value = codeElem.textContent.replace(/Copy code$/, ''); // "Copy code" テキストを削除 document.body.appendChild(textArea); textArea.select(); document.execCommand('copy'); document.body.removeChild(textArea); } codeBlocks[i].appendChild(copyButton); } }); </script>