Hexo博客配置
1.分类磁贴
参考以下链接中提到的方法
https://fe32.top/articles/hexo1606
效果图:
- 修改
BlogRoot/node_modules/hexo-theme-butterfly/layout/index.pug
1 2 3 4 5 6 7 8 9 10
| extends includes/layout.pug block content include ./includes/mixins/post-ui.pug #recent-posts.recent-posts + if theme.categoryBar.enable + .recent-post-item(style='height:auto;width:100%;padding:0px;') + #categoryBar!= list_categories(site.categories,{class: 'categoryBar',depth: 1}) +postUI include includes/pagination.pug
|
- 新建
BlogRoot/node_modules/hexo-theme-butterfly/source/css/_layout/categoryBar.styl
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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
| if hexo-config('categoryBar.enable') #categoryBar width 100%!important ul &.categoryBar-list margin 5px 5px 0 5px!important padding 0!important
li &.categoryBar-list-item font-weight bold display inline-block height 180px!important margin 5px .5% 0 .5%!important background-image linear-gradient(rgba(0, 0, 0, 0.4) 25%, rgba(16, 16, 16, 0) 100%) border-radius 10px padding 25px 0 25px 25px!important box-shadow rgba(50, 50, 50, 0.3) 50px 50px 50px 50px inset overflow hidden background-size 100%!important background-position center!important &:hover background-size 110%!important box-shadow inset 500px 50px 50px 50px rgba(50,50,50, 0.6) span &.categoryBar-list-count &::after transition all .5s transform translate(-100%, 0) a &.categoryBar-list-link color white!important font-size 20px!important &::before content '|'!important color white!important font-size 20px!important &:after content '' position relative width 0 bottom 0 display block height 3px border-radius 3px background-color white &:hover &:after width 90% left 1% transition all 0.5s
span &.categoryBar-list-count display block!important color white!important font-size 20px!important &::before content '\f02d'!important padding-right 15px!important @extend .fontawesomeIcon &::after padding 5px display block!important color white!important font-size 20px!important position relative right -100% covers = hexo-config('categoryBar.cover') for cover,i in covers li.categoryBar-list-item:nth-child({i+1}) background unquote(cover) descrs = hexo-config('categoryBar.descr') for descr,i in descrs li.categoryBar-list-item:nth-child({i+1})>span::after content descr!important if hexo-config('categoryBar.column') == 'odd' li &.categoryBar-list-item width 32.3%!important else if hexo-config('categoryBar.column') == 'even' li &.categoryBar-list-item width 24%!important @media screen and (max-width: 650px) li &.categoryBar-list-item width 48%!important height 150px!important margin 5px 1% 0 1%!important
$caterow = hexo-config('categoryBar.row')?hexo-config('categoryBar.row'):2 .categoryBar-list max-height 190px * $caterow overflow auto &::-webkit-scrollbar width 0!important @media screen and (max-width: 650px) .categoryBar-list max-height 160px * $caterow
|
- 在主题配置文件
_config.butterfly.yml
中添加配置项:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| YML categoryBar: enable: true column: odd row: 2 descr: - Good things to share - Back end talk - personal diary - Front end serialization - Butterfly theme - Other items cover: - url('https://fastly.jsdelivr.net/npm/akilar-candyassets/image/cover1.webp') - '#abcdef' - rgba(45,67,89,0.7) - linear-gradient(rgba(0, 0, 0, 0.4) 25%, rgba(200,16 , 16, 0) 100%) - url('https://fastly.jsdelivr.net/npm/akilar-candyassets/image/cover5.webp') - url('https://fastly.jsdelivr.net/npm/akilar-candyassets/image/cover6.webp')
|
2.相关推荐置于侧边栏
参考以下链接中的方法
https://akilar.top/posts/194e1534/
效果图:
- 修改
[Blogroot]\themes\butterfly\scripts\helpers\related_post.js
,从大概47行开始到70行的部分。
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
| if (relatedPosts.length > 0) { - result += '<div class="relatedPosts">' - result += `<div class="headline"><i class="fas fa-thumbs-up fa-fw"></i><span>${headlineLang}</span></div>` - result += '<div class="relatedPosts-list">' + result += '<div class="card-widget card-recommend-post">' + result += `<div class="item-headline"><i class="fas fa-dharmachakra"></i><span>${headlineLang}</span></div>` + result += '<div class="aside-list">' for (let i = 0; i < Math.min(relatedPosts.length, limitNum); i++) { const cover = relatedPosts[i].cover ? relatedPosts[i].randomcover : relatedPosts[i].cover - result += `<div><a href="${this.url_for(relatedPosts[i].path)}" title="${relatedPosts[i].title}">` - result += `<img class="cover" src="${this.url_for(cover)}" alt="cover">` + result += `<div class="aside-list-item">` + result += `<a class="thumbnail" href="${this.url_for(relatedPosts[i].path)}" title="${relatedPosts[i].title}"><img src="${this.url_for(cover)}" alt="${relatedPosts[i].title}"></a>` + result += `<div class="content">` + result += `<a class="title" href="${this.url_for(relatedPosts[i].path)}" title="${relatedPosts[i].title}">${relatedPosts[i].title}</a>` if (dateType - result += `<div class="content is-center"><div class="date"><i class="far fa-calendar-alt fa-fw"></i> ${this.date(relatedPosts[i].created, hexoConfig.date_format)}</div>` + result += `<time datetime="${this.date(relatedPosts[i].created, hexoConfig.date_format)}" title="发表于 ${this.date(relatedPosts[i].created, hexoConfig.date_format)}">${this.date(relatedPosts[i].created, hexoConfig.date_format)}</time>` } else { - result += `<div class="content is-center"><div class="date"><i class="fas fa-history fa-fw"></i> ${this.date(relatedPosts[i].updated, hexoConfig.date_format)}</div>` + result += `<time datetime="${this.date(relatedPosts[i].updated, hexoConfig.date_format)}" title="发表于 ${this.date(relatedPosts[i].updated, hexoConfig.date_format)}">${this.date(relatedPosts[i].updated, hexoConfig.date_format)}</time>` } - result += `<div class="title">${relatedPosts[i].title}</div>` - result += '</div></a></div>' + result += `</div></div>` }
result += '</div></div>' return result }
|
- 因为原本的版块是在文章下方,而现在我们需要把它改到侧栏。所以需要修改
[Blogroot]\themes\butterfly\layout\post.pug
大约26行的位置先移除在文章底部的推荐版块。
1 2 3 4 5 6
| if theme.post_pagination include includes/pagination.pug - if theme.related_post && theme.related_post.enable - != related_posts(page,site.posts)
if page.comments !== false && theme.comments && theme.comments.use
|
- 然后修改
[Blogroot]\themes\butterfly\layout\includes\widget\index.pug
,这个文件每个版本都长得不太一样,这里仅供参考。因为感觉文章也最新文章和推荐文章同时存在,最新文章就显得有点多余了,所以我把最新文章的侧栏卡片注释了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| #aside-content.aside-content //- post if is_post() if showToc && theme.toc.style_simple .sticky_layout include ./card_post_toc.pug else !=partial('includes/custom/SAO_card_player', {}, {cache:theme.fragment_cache}) !=partial('includes/widget/card_announcement', {}, {cache:theme.fragment_cache}) !=partial('includes/widget/card_top_self', {}, {cache:theme.fragment_cache}) .sticky_layout if showToc include ./card_post_toc.pug + if theme.related_post && theme.related_post.enable + != related_posts(page,site.posts) - - !=partial('includes/widget/card_recent_post', {}, {cache:theme.fragment_cache}) + //- !=partial('includes/widget/card_recent_post', {}, {cache:theme.fragment_cache}) !=partial('includes/widget/card_ad', {}, {cache:theme.fragment_cache})
|
3.vercel+github 加速博客访问
https://vincentqin.tech/posts/speedup-gitpage/
4.typora+picgo+github 一键托管图片
https://blog.csdn.net/weixin_45965432/article/details/108911937
由于github不稳定,已经改成了腾讯云OSS存储,参考
https://www.cnblogs.com/hackettt/p/15637743.html
5.jsDeliver+github使用教程,免费的cdn
https://www.cnblogs.com/zhsh666/p/11432956.html
6.背景效果,页脚渐变,滚动条效果
https://www.cnblogs.com/antmoe/p/12846393.html
7.twikoo评论区以及部署到vercel
https://twikoo.js.org/quick-start.html
8.HEXO永久链接
https://blog.csdn.net/xinruodingshui/article/details/105682550
9.将jsDeliver替换为字节跳动的CDN
https://blog.zhheo.com/p/790087d9.html
https://cdn.bytedance.com/
10.一些hexo模版