页脚电子时钟(原生)
Butterfly主题魔改教程,实现页脚电子时钟(原生)。
1.步骤一:安装插件
在博客根目录[Blogroot]下打开终端,运行以下指令:
npm install hexo-butterfly-footer-beautify --save
|
2.步骤二:添加配置信息
在站点配置文件_config.yml或者主题配置文件_config.butterfly.yml中添加。
footer_beautify: enable: timer: true bdage: true priority: 5 enable_page: all exclude: layout: type: id name: footer-wrap index: 0 runtime_js: https://cdn.jsdelivr.net/npm/hexo-butterfly-footer-beautify@1.0.0/lib/runtime.js runtime_css: https://cdn.jsdelivr.net/npm/hexo-butterfly-footer-beautify@1.0.0/lib/runtime.css swiperpara: 3 bdageitem: - link: https://hexo.io/ shields: https://img.shields.io/badge/Frame-Hexo-blue?style=flat&logo=hexo message: 博客框架为Hexo_v5.4.0 - link: https://butterfly.js.org/ shields: https://img.shields.io/badge/Theme-Butterfly-6513df?style=flat&logo=bitdefender message: 主题版本Butterfly_v3.8.2 - link: https://www.jsdelivr.com/ shields: https://img.shields.io/badge/CDN-jsDelivr-orange?style=flat&logo=jsDelivr message: 本站使用JsDelivr为静态资源提供CDN加速 - link: https://vercel.com/ shields: https://img.shields.io/badge/Hosted-Vercel-brightgreen?style=flat&logo=Vercel message: 本站采用双线部署,默认线路托管于Vercel - link: https://vercel.com/ shields: https://img.shields.io/badge/Hosted-Coding-0cedbe?style=flat&logo=Codio message: 本站采用双线部署,联通线路托管于Coding - link: https://github.com/ shields: https://img.shields.io/badge/Source-Github-d021d6?style=flat&logo=GitHub message: 本站项目由Gtihub托管 - link: http://creativecommons.org/licenses/by-nc-sa/4.0/ shields: https://img.shields.io/badge/Copyright-BY--NC--SA%204.0-d42328?style=flat&logo=Claris message: 本站采用知识共享署名-非商业性使用-相同方式共享4.0国际许可协议进行许可 swiper_css: https://cdn.jsdelivr.net/npm/hexo-butterfly-swiper/lib/swiper.min.css swiper_js: https://cdn.jsdelivr.net/npm/hexo-butterfly-swiper/lib/swiper.min.js swiperbdage_init_js: https://cdn.jsdelivr.net/npm/hexo-butterfly-footer-beautify/lib/swiperbdage_init_js.min.js
|
3.参数释义
| 参数 |
备选值/类型 |
释义 |
| priority |
number |
【可选】过滤器优先级,数值越小,执行越早,默认为10,选填 |
| enable.timer |
true/false |
【必选】计时器控制开关 |
| enable.bdage |
true/false |
【必选】徽标控制开关 |
| enable_page |
path |
【可选】填写想要应用的页面,如根目录就填’/‘,分类页面就填’/categories/‘。若要应用于所有页面,就填all,默认为all |
| exclude |
path |
【可选】填写想要屏蔽的页面,可以多个。仅当enable_page为’all’时生效。写法见示例。原理是将屏蔽项的内容逐个放到当前路径去匹配,若当前路径包含任一屏蔽项,则不会挂载。 |
| layout.type |
id/class |
【可选】挂载容器类型,填写id或class,不填则默认为id |
| layout.name |
text |
【必选】挂载容器名称 |
| layout.index |
0和正整数 |
【可选】前提是layout.type为class,因为同一页面可能有多个class,此项用来确认究竟排在第几个顺位 |
| runtime_js |
url |
【必选】页脚计时器脚本,可以下载上文填写示例的链接,参照注释和教程:Native JS Timer自行修改。 |
| runtime_css |
url |
【可选】自定义样式,预留开发者接口,可自行下载。 |
| swiperpara |
number |
【可选】若非零,则开启轮播功能,此项表示每行最多容纳徽标个数,用来应对徽标过多显得页脚拥挤的问题 |
| bdageitem.link |
url |
【可选】页脚徽标指向的网站链接 |
| bdageitem.shields |
url |
【必选】页脚徽标对应的API,API具体写法示例参照教程Add Github Badge |
| bdageitem.message |
text |
【可选】页脚徽标悬停时显示的信息 |
| swiper_css |
url |
【可选】swiper的依赖 |
| swiper_js |
url |
【可选】swiper的依赖 |
| swiperbdage_init_js |
url |
【可选】swiper初始化方法 |
4.步骤三:自定义页脚信息
上述步骤使用插件化安装配置后,页脚信息是糖果屋博主的,想要修改为自己的信息还得再参考源码方式魔改步骤,新建[Blogroot]\themes\butterfly\source\js\runtime.js,此处用到了shield.io生成徽标,更多内容请参看站内教程:博客添加github徽标方案:
setInterval(() => { let create_time = Math.round(new Date('2019-04-17 00:00:00').getTime() / 1000); let timestamp = Math.round((new Date().getTime()) / 1000); let second = timestamp - create_time; let time = new Array(0, 0, 0, 0, 0); var nol = function(h){ return h>9?h:'0'+h; } if (second >= 365 * 24 * 3600) { time[0] = parseInt(second / (365 * 24 * 3600)); second %= 365 * 24 * 3600; } if (second >= 24 * 3600) { time[1] = parseInt(second / (24 * 3600)); second %= 24 * 3600; } if (second >= 3600) { time[2] = nol(parseInt(second / 3600)); second %= 3600; } if (second >= 60) { time[3] = nol(parseInt(second / 60)); second %= 60; } if (second > 0) { time[4] = nol(second); } if ((Number(time[2])<22) && (Number(time[2])>7)){ currentTimeHtml ="<img class='boardsign' src='https://img.shields.io/badge/糖果屋-营业中-6adea8?style=social&logo=cakephp' title='距离百年老店也就差不到一百年~'><div id='runtime'>" + time[0] + ' YEAR ' + time[1] + ' DAYS ' + time[2] + ' : ' + time[3] + ' : ' + time[4] + '</div>'; } else{ currentTimeHtml ="<img class='boardsign' src='https://img.shields.io/badge/糖果屋-打烊了-6adea8?style=social&logo=coffeescript' title='这个点了应该去睡觉啦,熬夜对身体不好哦'><div id='runtime'>" + time[0] + ' YEAR ' + time[1] + ' DAYS ' + time[2] + ' : ' + time[3] + ' : ' + time[4] + '</div>'; } document.getElementById("workboard").innerHTML = currentTimeHtml; }, 1000);
|
5.步骤四:应用自定义信息
修改步骤二中的相关配置信息,将:
runtime_js: https://cdn.jsdelivr.net/npm/hexo-butterfly-footer-beautify@1.0.0/lib/runtime.js
|
修改为:
runtime_js: /js/runtime.js
|
如有错误,欢迎评论区留言!