為了提高博客代碼塊的用戶體驗(yàn)麻车,僅僅代碼高亮還不行,最好還能一鍵復(fù)制代碼。故此文將講述Hexo NexT主題博客的代碼塊復(fù)制功能配置阵苇。
下載 clipboard.js
三方插件 clipboardjs ,相關(guān)介紹和兼容性我就不贅述了感论,去它主頁或github上看绅项。
下載地址:
保存文件clipboard.js / clipboard.min.js
,目錄如下:
.\themes\next\source\js\src
clipboardjs 使用
也是在.\themes\next\source\js\src
目錄下比肄,創(chuàng)建clipboard-use.js
快耿,文件內(nèi)容如下:
/*頁面載入完成后,創(chuàng)建復(fù)制按鈕*/
!function (e, t, a) {
/* code */
var initCopyCode = function(){
var copyHtml = '';
copyHtml += '<button class="btn-copy" data-clipboard-snippet="">';
copyHtml += ' <i class="fa fa-globe"></i><span>copy</span>';
copyHtml += '</button>';
$(".highlight .code pre").before(copyHtml);
new ClipboardJS('.btn-copy', {
target: function(trigger) {
return trigger.nextElementSibling;
}
});
}
initCopyCode();
}(window, document);
在.\themes\next\source\css\_custom\custom.styl
樣式文件中添加下面代碼:
//代碼塊復(fù)制按鈕
.highlight{
//方便copy代碼按鈕(btn-copy)的定位
position: relative;
}
.btn-copy {
display: inline-block;
cursor: pointer;
background-color: #eee;
background-image: linear-gradient(#fcfcfc,#eee);
border: 1px solid #d5d5d5;
border-radius: 3px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-appearance: none;
font-size: 13px;
font-weight: 700;
line-height: 20px;
color: #333;
-webkit-transition: opacity .3s ease-in-out;
-o-transition: opacity .3s ease-in-out;
transition: opacity .3s ease-in-out;
padding: 2px 6px;
position: absolute;
right: 5px;
top: 5px;
opacity: 0;
}
.btn-copy span {
margin-left: 5px;
}
.highlight:hover .btn-copy{
opacity: 1;
}
引用
在.\themes\next\layout\_layout.swig
文件中芳绩,添加引用(注:在 swig 末尾或 body 結(jié)束標(biāo)簽(</body>
)之前添加):
<!-- 代碼塊復(fù)制功能 -->
<script type="text/javascript" src="/js/src/clipboard.min.js"></script>
<script type="text/javascript" src="/js/src/clipboard-use.js"></script>
想看效果的可以去我博客看掀亥,截圖如下:
補(bǔ)充
懂代碼的也可以將clipboard.min.js
和clipboard-use.js
合并為一個(gè)文件,再在.\themes\next\layout\_layout.swig
文件中使用妥色。當(dāng)然clipboard.min.js
也可以直接用三方cdn的方式引入也行搪花。