彩色友链
把友链改成外挂标签形式
只需要复制原来的友链yml,然后删除,新建一个与之前同名的page,然后编辑:
1 2 3
| {% flink %}
{% endflink %}
|
重新渲染即可生效。
修改外挂标签js
修改[blogRoot]\themes\butterfly\scripts\tag\flink.js
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
'use strict'
const urlFor = require('hexo-util').url_for.bind(hexo)
const flinkFn = (args, content) => { content = hexo.render.renderSync({ text: content, engine: 'yaml' })
let result = ''
content.forEach(i => { const className = i.class_name ? `<div class="flink-name">${i.class_name}</div>` : '' const classDesc = i.class_desc ? `<div class="flink-desc">${i.class_desc}</div>` : ''
let listResult = ''
i.link_list.forEach(j => { if(j.theme_color==undefined){ j.theme_color="#383838" } listResult += ` <div class="flink-list-item" style="background-color:${j.theme_color}"> <a href="${j.link}" title="${j.name}" target="_blank"> <div class="flink-item-icon"> <img class="no-lightbox" src="${j.avatar}" onerror='this.onerror=null;this.src="${urlFor(hexo.theme.config.error_img.flink)}"' alt="${j.name}" /> </div> <div class="flink-item-name">${j.name}</div> <div class="flink-item-desc" title="${j.descr}">${j.descr}</div> </a> </div>` })
result += `${className}${classDesc} <div class="flink-list">${listResult}</div>` })
return `<div class="flink">${result}</div>` } hexo.extend.tag.register('flink', flinkFn, { ends: true })
|
修改css
添加一些css,让友链变得更好看:
1 2 3 4 5 6
| #article-container .flink .flink-list { text-align: left!important; } .flink-item-name, .flink-item-desc { color: white!important; }
|
然后你还需要在友链yml后面添加theme_color(一定要用引号包起来不然报错),重新渲染就完成了。
参考链接: https://yisous.xyz/posts/ac792cf4/