在 Blogger 中为代码块添加“复制”按钮的教程

在 Blogger 中为代码块添加“复制”按钮的教程

本文记录了我在 Blogger 中为代码块添加“复制”按钮的步骤和代码,适合技术博客使用。以下是简洁的实现过程。

目标

为 Blogger 代码块添加“复制”按钮,并优化样式。

步骤

  1. 编辑模板:登录 Blogger > “主题” > “编辑 HTML”。
  2. 添加 CSS:在 <head> 内插入样式。
  3. 添加 JavaScript:在 </body> 前插入脚本。
  4. 调整文章:在文章“HTML”视图中,用 <pre> 包裹代码。
  5. 测试:保存主题,预览文章,确认按钮生效。

代码

1. CSS(放在 <head> 内)

<style> pre { background-color: #2d2d2d; color: #f8f8f2; padding: 30px 10px 10px 10px; border-radius: 5px; white-space: pre-wrap; word-wrap: break-word; font-family: 'Fira Code', 'Courier New', monospace; font-size: 14px; overflow-x: auto; position: relative; border: 1px solid #444; box-shadow: 0 2px 4px #0005; } .copy-button { position: absolute; top: 5px; right: 5px; background-color: #444; color: #f8f8f2; border: none; padding: 6px 12px; border-radius: 3px; cursor: pointer; font-size: 14px; } .copy-button:hover { background-color: #555; } .copy-button::after { content: 'Click to Copy'; /* 英文提示 */ position: absolute; top: -25px; right: 0; background-color: #333; color: #f8f8f2; padding: 5px; border-radius: 3px; opacity: 0; transition: opacity 0.3s; } .copy-button:hover::after { opacity: 1; } </style>

2. JavaScript(放在 </body> 前)


<script> document.addEventListener('DOMContentLoaded', function() { var pres = document.querySelectorAll('pre'); pres.forEach(function(pre) { var existingCode = pre.querySelector('code'); if (!existingCode) { var code = document.createElement('code'); code.innerText = pre.innerText.trim(); pre.innerHTML = ''; pre.appendChild(code); } if (!pre.querySelector('.copy-button')) { var button = document.createElement('button'); button.classList.add('copy-button'); button.textContent = 'Copy'; button.addEventListener('click', function() { var text = pre.querySelector('code').innerText; navigator.clipboard.writeText(text).then(function() { button.textContent = 'Copied!'; setTimeout(function() { button.textContent = 'Copy'; }, 1000); }, function() { button.textContent = 'Failed'; setTimeout(function() { button.textContent = 'Copy'; }, 1000); }); }); pre.appendChild(button); } }); }); </script>

3. 文章中代码示例

<pre>你的代码在这里</pre>

注意事项

  • 确保文章中有 <pre> 标签。
  • 按钮字体大小设为 12px,可根据需要调整。
  • 保存前备份模板。

结果

所有 <pre> 代码块显示“复制”按钮,点击可复制内容,字体大小适中。




评论