文章转载于:hexo博客yili主题个性化自定义教程(1) ——借鉴中学习,初认yili主题

这个博客跌跌撞撞也弄了好多天了,由于Next主题不知道什么情况,被我玩坏了。所以换了一个主题。

大名鼎鼎的yilia主题,崇尚简约优雅,以及极致的性能,符合我的性格。以后很长一段时间都用这个主题啦。

接下来来说一下一些yili主题个性化自定义的方法和自己走过的坑。

本教程适用于yilia主题

前言

由于yilia已经不维护了,坑还挺多的,所以下面这些方法都是我试过了才敢拿出来的。

如果有错误,请原步骤返回检查错误,或者参考官方教程↓

yilia主题github开源地址

本篇收集了全网目前最全的攻略啦,各位凑活着看。

这是一个系列,第一步先借鉴一下别人的代码,哈哈哈哈嗝。

如何正确使用yilia主题

安装

$ git clone https://github.com/litten/hexo-theme-yilia.git themes/yilia

配置

修改hexo根目录下的_config.ymltheme: yilia

自定义配置

主题配置文件在主目录下的_config.yml,请根据自己需要修改使用。 完整配置例子,可以参考作者的博客

主题配置详细介绍

接下来我来说一下主题配置中的基本配置有哪些可以自定义的地方,详细看下面的备注

部分代码我会用我自己的配置来讲解具体用法

  1. # Header
  2. // 这段代码是左侧栏的相关展示内容,后期可以加上分类,关于等。每个页面后面是它的存放路径
  3. menu:
  4. 主页: /
  5. 随笔: /tags/随笔/
  6. # SubNav // 这段代码是左侧栏的相关联系方式图标,后期可以修改图标等。
  7. subnav:
  8. github: "#" //不需要就改成 "#"这个是github
  9. weibo: "#" //微博
  10. rss: "#" //RSS
  11. zhihu: "#" //知乎
  12. #qq: "#" //QQ
  13. #weixin: "#" //微信
  14. #jianshu: "#" //简书
  15. #douban: "#" //豆瓣
  16. #segmentfault: "#" //思否segmentfault
  17. #bilibili: "#" //哔哩哔哩
  18. #acfun: "#" //acfun
  19. #mail: "mailto:litten225@qq.com" //比如你想展示邮箱,就把这里的地址改成你自己的邮箱即可。前面的 mailto: 不要去掉
  20. #facebook: "#" //facebook
  21. #google: "#" //google
  22. #twitter: "#" //twitter
  23. #linkedin: "#" //linkedin
  24. rss: /atom.xml
  25. # 是否需要修改 root 路径
  26. # 如果您的网站存放在子目录中,例如 http://yoursite.com/blog,
  27. # 请将您的 url 设为 http://yoursite.com/blog 并把 root 设为 /blog/。
  28. root:
  29. # Content
  30. # 文章太长,截断按钮文字
  31. excerpt_link: more //这个文字是可以自己修改的,比如我的就改成了展开全文
  32. # 文章卡片右下角常驻链接,不需要请设置为false,如果上面改成了展开全文,这个建议改为false
  33. show_all_link: '展开全文'
  34. # 数学公式
  35. mathjax: false
  36. # 是否在新窗口打开链接
  37. open_in_new: false
  38. # 打赏
  39. # 打赏type设定:0-关闭打赏; 1-文章对应的md文件里有reward:true属性,才有打赏; 2-所有文章均有打赏
  40. reward_type: 2
  41. # 打赏wording
  42. reward_wording: '谢谢你请我吃糖果' //这个是打赏时候显示的文字,可以修改
  43. # 支付宝二维码图片地址,跟你设置头像的方式一样。比如:/assets/img/alipay.jpg ,网络图片直接用 https://xxx.png 即可
  44. alipay:
  45. # 微信二维码图片地址
  46. weixin:
  47. # 目录
  48. # 目录设定:0-不显示目录; 1-文章对应的md文件里有toc:true属性,才有目录; 2-所有文章均显示目录
  49. toc: 1
  50. # 根据自己的习惯来设置,如果你的目录标题习惯有标号,置为true即可隐藏hexo重复的序号;否则置为false
  51. toc_hide_index: true
  52. # 目录为空时的提示
  53. toc_empty_wording: '目录,不存在的…'
  54. # 是否有快速回到顶部的按钮
  55. top: true
  56. # Miscellaneous
  57. baidu_analytics: '' # 百度分析
  58. google_analytics: '' # 谷歌分析
  59. favicon: /favicon.png # 站点logo
  60. #你的头像url
  61. avatar:
  62. #是否开启分享
  63. share_jia: true
  64. #评论:1、多说;2、网易云跟帖;3、畅言;4、Disqus;5、Gitment
  65. #不需要使用某项,直接设置值为false,或注释掉
  66. #具体请参考wiki:https://github.com/litten/hexo-theme-yilia/wiki/
  67. #1、多说
  68. duoshuo: false
  69. #2、网易云跟帖
  70. wangyiyun: false
  71. #3、畅言
  72. changyan_appid: false
  73. changyan_conf: false
  74. #4、Disqus 在hexo根目录的config里也有disqus_shortname字段,优先使用yilia的
  75. disqus: false
  76. #5、Gitment
  77. gitment_owner: false #你的 GitHub ID
  78. gitment_repo: '' #存储评论的 repo
  79. gitment_oauth:
  80. client_id: '' #client ID
  81. client_secret: '' #client secret
  82. # 样式定制 - 一般不需要修改,除非有很强的定制欲望…
  83. style:
  84. # 左侧栏头像上面的背景颜色
  85. header: '#4d4d4d'
  86. # 右滑板块背景
  87. slider: 'linear-gradient(200deg,#a0cfe4,#e8c37e)'
  88. # slider的设置
  89. slider:
  90. # 是否默认展开tags板块
  91. showTags: false
  92. # 智能菜单
  93. # 如不需要,将该对应项置为false
  94. # 比如
  95. #smart_menu:
  96. # friends: false
  97. smart_menu:
  98. innerArchive: '所有文章'
  99. friends: '友链'
  100. aboutme: '关于我'
  101. friends:
  102. 友情链接1: http://localhost:4000/
  103. 友情链接2: http://localhost:4000/
  104. 友情链接3: http://localhost:4000/
  105. 友情链接4: http://localhost:4000/
  106. 友情链接5: http://localhost:4000/
  107. 友情链接6: http://localhost:4000/
  108. aboutme: 很惭愧<br><br>只做了一点微小的工作<br>谢谢大家 //这个是出现在 关于我 页面的一句话 <br> 是换行的意思。

请照着上面的备注,一条一条修改看看效果,就能大概掌握最基础的主题自定义啦。

主题BUG修复

参考

1.运行服务器,发现出现错误提示

  1. <%- partial('_partial/head') %>
  2. <%- partial('_partial/header') %>
  3. <%- body %>
  4. <% if (theme.sidebar && theme.sidebar !== 'bottom'){ %> <%- partial('_partial/sidebar') %> <% } %>
  5. <%- partial('_partial/footer') %>
  6. <%- partial('_partial/mobile-nav') %> <%- partial('_partial/after-footer') %>

如果出现上述错误提示,说明少装了插件,逐条执行以下命令安装插件:

  1. npm install hexo-renderer-ejs --save
  2. npm install hexo-renderer-stylus --save
  3. npm install hexo-renderer-marked --save

然后hexo clean清除清除缓存文件和已生成的静态文件再次运行即可。

2.左滑块“所有文章”按钮的安装

首先确保使用版本是不是大于6.2.

使用命令node -v检查

然后在hexo的配置文件_config.yml最下面加上

  1. jsonContent:
  2. meta: false
  3. pages: false
  4. posts:
  5. title: true
  6. date: true
  7. path: true
  8. text: false
  9. raw: false
  10. content: false
  11. slug: false
  12. updated: false
  13. comments: false
  14. link: false
  15. permalink: false
  16. excerpt: false
  17. categories: false
  18. tags: true

重启服务器即可

2.头像不显示

进入文章后,头像就不显示。

修改themes\yilia\layout_partial\left-col.ejs的第六行,改为

<img src="<%=theme.root%><%=theme.avatar%>" class="js-avatar">

同时,还要修改themes\yilia\layout_partial\mobile-nav.ejs

里面的第10行,修改为

<img src="<%=theme.root%><%=theme.avatar%>" class="js-avatar">

3.打赏二维码不显示

修改themes\yilia\layout_partial\article.ejs

找到<img class=”reward-img”``这个标签,改后面src的值 支付宝的改成这个 <%=theme.root%><%= theme.alipay%>微信的改成这个<%=theme.root%><%= theme.weixin%>`

4.微信分享不成功

因为百度网盘取消了生成二维码的功能,导致之前的链接不可用了。

修改themes\yilia\layout_partial\post\share.ejs

把第49行中的//pan.baidu.com/share/qrcode?url=修改为

//api.qrserver.com/v1/create-qr-code/?size=150x150&data=

即可

5.在左侧显示总文章数

修改themes\yilia\layout\_partial\left-col.ejs

  1. <nav class="header-menu">
  2. <ul>
  3. <% for (var i in theme.menu){ %>
  4. <li><a href="<%- url_for(theme.menu[i]) %>"><%= i %></a></li>
  5. <%}%>
  6. </ul>
  7. </nav>

后面加入

  1. <nav>
  2. <a>总文章数 <%=site.posts.length%></a>
  3. </nav>

效果如下

6.添加来必力评论系统

yilia默认带了几个系统,但我是从next这个主题转过来的,之前用的是来必力(livere),不想换了,就得手动在yilia里面加。

按网上的方法我试了好久才成功.....原因就是他们的教程不够详细。

首先是去注册livere,然后获取到自己的id

查看ID方法,右上角头像-管理页面-代码管理获取



新建\themes\yilia\layout\_partial\post\livere.ejs

内容直接复制代码管理里面的内容



然后编辑themes\yilia\layout\_partial\article.ejs

找到<% if (!index && post.comments){ %> 在它的下方加入以下代码

  1. <% if (theme.livere){ %>
  2. <%- partial('post/livere', {
  3. key: post.slug,
  4. title: post.title,
  5. url: config.url+url_for(post.path)
  6. }) %>
  7. <% } %>

接下来需要在主题配置文件_config.yml中添加以下内容:

  1. #7.来必力
  2. livere: 这里填你的ID

并把其他的评论系统代码屏蔽



然后hexo cleanhexo d重新部署即可。

效果如图

7.添加字数统计

安装hexo-wordcount

npm i --save hexo-wordcount

!!Node 版本7.6.0之前,请安装 2.x 版本 (Node.js v7.6.0 and previous)!!

npm install hexo-wordcount@2 --save

然后打开themes\yilia\layout\_partial\left-col.ejs

如果需要在左侧添加的话,在之前显示总文章数的代码位置下添加代码

<a>总字数 <span class="post-count"><%= totalcount(site, '0,0.0a') %></span></a>

  1. <nav>
  2. <a>总文章数 <%=site.posts.length%></a>
  3. <a>总字数 <span class="post-count"><%= totalcount(site, '0,0.0a') %></span></a>
  4. </nav>

显示单篇字数和预计阅读时长的话

编辑themes\yilia\layout\_partial\article.ejs`` 在第一个

`下,添加代码

  1. <div align="center" class="post-count">
  2. 字数:<%= wordcount(post.content) %>字 | 预计阅读时长:<%= min2read(post.content) %>分钟
  3. </div>

即可

效果如下

8.取消访问litten.me:9005

关于访问litten.me:9005的问题,这个主题的作者之前为了更好地完善这个主题,有时候会收集用户的客户端信息,详情请见这里,如果不想被统计,就将themes\yilia\source-src\js\report.js里面的内容清空即可

主题简单美化与完善

参考:

Yilia个性设置- CSDN博客

1.添加百度统计

先打开百度统计 ,添加站点,复制获得的代码,粘贴到

\themes\yilia\layout\_partial\footer.ejs中如下代码块

即可(如果没有可以自己写上去。)

  1. <div>
  2. 这里粘贴代码
  3. </div>

即可

注意:代码块<div></div>一定要在<footer></fotter>之间

2.修改文章标题样式

打开\themes\yilia\source-src\css\article.scss添加如下样式(喜欢什么样式可以自己修改):

  1. .article-title_code_ant {
  2. color: black;
  3. margin-left: 0px;
  4. font-weight: 50;
  5. line-height: 1em;
  6. margin-bottom: 1em;
  7. font-size: 27px;
  8. -webkit-transition: color 0.3s;
  9. -moz-transition: color 0.3s;
  10. -o-transition: color 0.3s;
  11. transition: color 0.3s;
  12. &:hover{
  13. color: #B0A0AA;
  14. }
  15. }

再打开\themes\yilia\layout\_partial\article.ejs

搜索<%- partial('post/title', {class_name: 'article-title'}) %>

修改为

  1. <%# 注释掉-partial('post/title', {class_name: 'article-title'}) %>
  2. <%# 修改模板 %>
  3. <center><p><%- partial('post/title', {class_name: 'article-title_code_ant'}) %></p></center>

如图所示

即可,但是现在发现标题的颜色为a标签设置颜色,让我们继续来解决。

继续修改文件,找到\themes\yilia\source\main.0cf68a.css,打开编辑,添加如下代码:

  1. .article-inner h1.article-title_code_ant, .article-title_code_ant {
  2. color: #000000;
  3. margin-left: 0;
  4. font-weight: 50;
  5. line-height: 1em;
  6. margin-bottom: 1em;
  7. font-size: 27px;
  8. transition: color .3s
  9. }

解决√

效果如下

3.删除或修改博客底部Hexo Theme Yilia by Litten

打开\themes\yilia\layout\_partial\footer.ejs修改如下:

  1. <div class="footer-right">
  2. </div>

当然也可以改成其他内容。其他内容怎么修改以后再慢慢说(比如建站时间什么的。)

当然各位也可以先自己尝试一下。

4.文章添加版权声明

\themes\yilia\layout\_partial\article.ejs中如下的位置添加代码

  1. <% } %>
  2. <-- 在此处添加代码-->
  3. <% if ((theme.reward_type === 2 || (theme.reward_type === 1 && post.reward)) && !index){ %>

添加的代码如下

  1. <%# 添加文章版权 %>
  2. <%
  3. var sUrl = url.replace(/index\.html$/, '');
  4. sUrl = /^(http:|https:)\/\//.test(sUrl) ? sUrl : 'https:' + sUrl;
  5. %>
  6. <% if ((theme.declare_type === 2 || (theme.declare_type === 1 && post.declare)) && !index){ %>
  7. <div>
  8. <blockquote>
  9. <strong>本文作者:</strong>
  10. <% if(config.author != undefined){ %>
  11. <%= config.author%>
  12. <% }else{%>
  13. <font color="red">请在博客根目录“_config.yml”中填入正确的“author”</font>
  14. <%}%>
  15. <br>
  16. <strong>本文链接:</strong>
  17. <%= sUrl%>
  18. <br>
  19. <strong>版权声明:</strong>
  20. 本作品采用
  21. <a rel="license" href="<%= theme.licensee_url%>"><%= theme.licensee_name%></a>
  22. 进行许可。转载请注明出处!
  23. <% if(theme.licensee_img != undefined){ %>
  24. <br>
  25. <a rel="license" href="<%= theme.licensee_url%>"><img alt="知识共享许可协议" style="border-width:0" src="<%= theme.licensee_img%>"/></a>
  26. <% } %>
  27. </blockquote>
  28. <%# 添加文章底部标语 %>
  29. <hr>
  30. <center><strong><%= theme.licensee_slogan%></strong></center>
  31. <hr>
  32. </div>
  33. <% } else {%>
  34. <div hidden="hidden"></div>
  35. <% } %>

具体如图



继续修改yilia主题配置文件_config.yml,添加如下代码

  1. #版权
  2. # 版权基础设定:0-关闭声明; 1-文章对应的md文件里有declare: true属性,才有版权声明; 2-所有文章均有版权声明
  3. declare_type: 2 #所有文章均有版权声明
  4. licensee_url: https://creativecommons.org/licenses/by-nc-sa/4.0/ # 当前应用的版权协议地址。
  5. licensee_name: '知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议' # 版权协议的名称
  6. licensee_img: https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png # 版权协议的Logo
  7. licensee_slogan: 乐于分享,专注互联网生活. # 标语

如果需要章对应的md文件里有declare: true属性,才有版权声明的话,在需要进行版权声明的文章的md文件头部,设置属性declare: true即可。

后语

更多消息请关注我们: 奥怪的小栈

未完待续......

hexo博客yili主题个性化自定义教程(1) ——借鉴中学习,初认yili主题的更多相关文章

  1. Hexo博客建设

    上次我教大家利用wordpress程序搭建个人网站,这次换个Hexo来搭建咱们的个人博客,那咱们开始吧!先提供官网给大家英文版的请点击这里,中文版的请点击这里,好了然后是工具要准备下,貌似就只要安装g ...

  2. Hexo博客部署

    前些天使用wordpress程序搭建了个人网站,但感觉太重比较适合个人空间,所以这次介绍Hexo搭建免费博客,先提供官网给大家英文版的请点击这里,中文版的请点击这里,在安装一个Git,再是github ...

  3. Hexo博客搭建以及Next主题美化的经验之谈

    这并不是一篇博客搭建教程.内容主要包含个人对于Hexo博客搭建的心得,Next6.0主题美化的部分建议,以及摘录一些各种用于博客搭建的link. 在博客园3年6个月,确实也学到了很多,博客园也是目前为 ...

  4. Hexo博客收录百度和谷歌-基于Next主题

    Hexo博客收录百度和谷歌-基于Next主题(应该是比较全面的一篇教程) 我们的博客做出来当然是希望别人来访问,但是Github和Coding都做了防爬虫处理,这样子我们博客可能就无法被搜索引擎收录, ...

  5. 使用hexo+GitHub搭建个人博客的心得(含教程)

    Author Email Yaoyao Liu yaoyaoliu@msn.com 前言 对于广大CS专业的学生和码农,找一个地方写博客,记录一些编程.配置环境.阅读论文的心得体会是一个很常见的习惯. ...

  6. 【基础篇】hexo博客搭建教程

    [基础篇]搭建hexo博客(一) 作者:Huanhao bilibili:Mrhuanhao 前言 你是否想拥有属于自己的博客?你是否无奈与自己不会写网站而烦恼? 不要担心,本系列教程将会实现你白嫖的 ...

  7. Hexo博客(Snail主题)搭建回顾概览

    Hexo博客(Snail主题)搭建回顾概览 笔者搭建博客地址:https://saltyfishyjk.github.io 目录 Hexo博客(Snail主题)搭建回顾概览 Part 0 前言 写作背 ...

  8. 强大博客搭建全过程(1)-hexo博客搭建保姆级教程

    1. 前言 本人本来使用国内的开源项目solo搭建了博客,但感觉1核CPU2G内存的服务器,还是稍微有点重,包括服务器内还搭建了数据库.如果自己开发然后搭建,耗费时间又比较多,于是乎开始寻找轻量型的博 ...

  9. U盘便携式hexo&博客搭建&极速纯净低bug主题推荐&部署到coding&SEO优化搜索

    指南:U盘便携式hexo&博客搭建&极速纯净低bug主题推荐&部署到coding&SEO优化搜索   U盘便携式hexo随处写博客 简述:在任意一台联网的电脑上续写he ...

随机推荐

  1. centos文件解压缩7z

    1.7z 安装 yum install p7zip 压缩test文件夹生成test.7z 7za a -t7z -r test.7z test #a 代表添加文件/文件夹到压缩包 -t 是指定压缩类型 ...

  2. 在vscode中配置python环境

    1.安装vscode和python3.7(安装路径在:E:\Python\Python37): 2.打开vscode,在左下角点击设置图标选择setting,搜索python path,在该路径下选择 ...

  3. JAVASE知识点总结(二)

    第十三章:多态  一.instanceof 判断一个类是否是指定的类 真则返回true 假则返回false.  二.字段没有多态,只有方法有多态,字段前面是的什么类型,字段就调用谁的,在编译时就已经确 ...

  4. C# 时间戳的相关操作

    一般的 时间戳 格式分为两种 即 10位(秒)时间戳 与 13位(毫秒)时间戳 时间戳 类型也分为两种 即 本地时间戳 与 世界统一(UTC)时间戳 废话不多说,直接上代码: 一.时间戳获取方法 // ...

  5. python的__name__ == \'__main__\' 意义

    转自http://www.jb51.net/article/51892.htm 很多新手刚开始学习python的时候经常会看到python 中__name__ = \'__main__\' 这样的代码 ...

  6. kubeadm部署高可用集群Kubernetes 1.14.1版本

    Kubernetes高可用集群部署 部署架构: Master 组件: kube-apiserver Kubernetes API,集群的统一入口,各组件协调者,以HTTP API提供接口服务,所有对象 ...

  7. scalikejdbc 学习笔记(2)

    使用scalikejdbc config (src\main\resources) # MySQL(dev) dev.db.default.driver="com.mysql.jdbc.Dr ...

  8. 【Java】用Freemarker完美导出word文档(带图片)

    Java  用Freemarker完美导出word文档(带图片) 前言 最近在项目中,因客户要求,将页面内容(如合同协议)导出成word,在网上翻了好多,感觉太乱了,不过最后还是较好解决了这个问题. ...

  9. LitePal的基本用法

    快速配置   1. 引入Jar包或源码 首先我们需要将LitePal的jar包引入到项目当中,可以点击这里查看LitePal的最新版本,选择你需要的下载即可.下载好了jar包之后,把它复制到项目的li ...

  10. Azure pipeline 配置根据条件执行脚本

    Azure pipeline 配置根据条件执行脚本 Intro 我的应用通过 azure pipeline 来做持续集成,之前已经介绍了根据不同分支去打包不同的package,具体的就不再这里详细介绍 ...