處理了非常久,總算找齊所有的問題點並成功做出該功能。
本文取自於這邊HEXO優化之(二)-添加複製功能
但有幾點不同,custom.js
要修改以下幾點:
- 原教學的
clipboard.min.js
是使用 1.7.1 版 ,若要用最新的 2.0.0 版,需要將var clipboard = new Clipboard('#copyBtn', {
修改為var clipboard = new ClipboardJS('#copyBtn', {
var $codeArea = $("figure table");
改為
var $codeArea = $("figure");
$(".post-body").before('<div id="copyBtn" style="opacity: 0; position: absolute;top:0px;display: none;line-height: 1; font-size:1.5em"><span id="imgCopy" ><i class="fa fa-paste fa-fw"></i></span><span id="imgSuccess" style="display: none;"><i class="fa fa-check-circle fa-fw" aria-hidden="true"></i></span>');
改為
$(".post-body").before('<div id="copyBtn" style="opacity: 0; position: absolute;top:0px;left:0px;display: none;line-height: 1; font-size:1.5em"><span id="imgCopy" ><i class="fa fa-paste fa-fw"></i></span><span id="imgSuccess" style="display: none;"><i class="fa fa-check-circle fa-fw" aria-hidden="true"></i></span>');
$copyBtn.css("left", -$copyBtn.width() - 3);
改為
$copyBtn.css("left",$(this).offset().left -$copyBtn.width() - 3);
完整過程代碼如下:
保存文件 clipboard.min.js (壓縮檔的話是在 dist 資料夾內)至 .\themes\next\source\lib\zclip\clipboard.min.js
新建文件 custom.js 至 .\themes\next\source\js\src\custom.js
內容如下
新建文件 custom.swig 至 .\themes\next\layout_custom\custom.swig
修改文件 _layout.swig 位置.\themes\next\layout_layout.swig
在<\/body>上方插入
再次感謝作者 zhuzhuxia 的創作!