Hexo 博客优化之实用功能添加系列(持续更新)

2022-01-25 更新:博客新地址:https://www.itbob.cn/,文章距上次编辑时间较远,部分内容可能已经过时!


本文将讲述一些 Hexo 博客实用功能的添加,本文以作者 luuman 的 spfk 主题和作者 xaoxuu 的 Material X 主题为例,实际效果欢迎访问我的博客进行查看,本文章会不定时进行更新。文章涉及有关参考资料、教程、链接如有侵权请联系我删除!

请注意:不同主题可能方法有些不同,相同主题不同版本,配置方法也有所差异!阅读主题文档非常重要!

博客功能添加前提条件:有一定的前端基础,了解 HTML、CSS、JS,了解 CSS 预处理语言 Sass、Less、Stylus,搞懂 hexo 的目录结构。

博客功能添加通用步骤:选定主题,认真阅读主题文档,大多数主题文档都有非常详细的配置设置,分析主题目录结构,了解每个文件是对应网页哪个部分的,认真阅读相关教程,教程本质上只为你提供核心代码和思路,具体代码要添加到哪个地方,需要你自己搞懂主题结构,添加到需要的、合适的位置!

欢迎关注我的专栏:《Github/Coding Pages + Hexo》,从前期搭建到后期美化一条龙,帮你解决 Hexo 常见问题!

推荐阅读:《Hexo 博客优化之博客美化系列(持续更新)》

Hexo 交流群:924812033,有问题可以一起交流解决。


文章目录

  • 【01】添加评论系统
  • 【02】添加字数统计和阅读时长
  • 【03】添加网站运行时间
  • 【04】添加百度统计
  • 【05】添加RSS订阅
  • 【06】添加 Fork me on GitHub 效果
  • 【07】更改本地预览端口号
  • 【08】启用 HTTPS
  • 【09】博客备份
  • 【10】自定义一个不使用主题模板渲染的独立页面
  • 未完待续......


【01】添加评论系统

主流的评论系统有很多,比如:网易云跟帖、多说、友言、畅言、来必力(LiveRe)、Disqus、Valine、Gitalk 等等,目前网易云跟帖、多说、友言都已经关闭了,还有些可能国内还访问不了,比较麻烦,百度了一下,最后还是选择了来必力评论系统

进入来必力官网,注册一个账号:

注册完毕之后,登录,进入安装页面,选择 City 免费版安装,安装之后你会得到一段代码
在这里插入图片描述

在这里插入图片描述

我们打开主题文件下的 _config.yml 文件,添加如下代码:

\themes\hexo-theme-spfk\layout\_partial\comments 文件夹下新建一个 livere.ejs 的文件,在里面填写来必力提供的代码:

<!-- 来必力City版安装代码 -->
<div id="lv-container" data-id="city" data-uid="这里是你的uid"><script type="text/javascript">(function(d, s) {var j, e = d.getElementsByTagName(s)[0];if (typeof LivereTower === 'function') { return; }j = d.createElement(s);j.src = 'https://cdn-city.livere.com/js/embed.dist.js';j.async = true;e.parentNode.insertBefore(j, e);})(document, 'script');</script><noscript>为正常使用来必力评论功能请激活JavaScript</noscript>
</div>
<!-- City版安装代码已完成 -->

打开 \themes\hexo-theme-spfk\layout\_partial\article.ejs 文件,在适当位置添加如下红框中的代码:

完成以上操作之后,我们就可以使用来必力评论系统了
在这里插入图片描述
另外推荐使用 Valine 评论系统,和 gitalk 评论系统


【02】添加字数统计和阅读时长

先在博客目录下执行以下命令安装 hexo-wordcount 插件:

$ npm i --save hexo-wordcount

注意:在 Material X 主题中,字数统计和阅读时长的功能我已提交 PR,在最新版本中,只需要安装插件后,在主题 config.yml 配置文件里,将 word_count 关键字设置为 true 即可,对于旧版本,可以通过以下方法实现:

以 Material X 主题(版本 1.2.1)为例,在 \themes\material-x\layout\_meta 目录下创建 word.ejs 文件,在 word.ejs 文件中写入以下代码:

<% if(isPostList || !isPostList){ %><% if (theme.word_count && !post.no_word_count) { %><div style="margin-right: 10px;"><span class="post-time"><span class="post-meta-item-icon"><i class="fa fa-keyboard"></i><span class="post-meta-item-text">  字数统计: </span><span class="post-count"><%= wordcount(post.content) %></span></span></span>&nbsp; | &nbsp;<span class="post-time"><span class="post-meta-item-icon"><i class="fa fa-hourglass-half"></i><span class="post-meta-item-text">  阅读时长≈</span><span class="post-count"><%= min2read(post.content) %></span></span></span></div><% } %>
<% } %>

然后在主题的配置文件 _config.yml 找到 meta 关键字,将 word 填入 header 中:

meta:header: [title, author, date, categories, tags, counter, word, top]footer: [updated, share]

最后在主题目录下的 _config.yml 添加以下配置即可

word_count: true

效果图:
在这里插入图片描述


同样的,以 spfk 主题为例,在 \themes\hexo-theme-spfk\layout\_partial\post 目录下创建 word.ejs 文件,在 word.ejs 文件中写入以下代码:

<div style="margin-top:10px;"><span class="post-time"><span class="post-meta-item-icon"><i class="fa fa-keyboard-o"></i><span class="post-meta-item-text">  字数统计: </span><span class="post-count"><%= wordcount(post.content) %></span></span></span>&nbsp; | &nbsp;<span class="post-time"><span class="post-meta-item-icon"><i class="fa fa-hourglass-half"></i><span class="post-meta-item-text">  阅读时长: </span><span class="post-count"><%= min2read(post.content) %></span></span></span>
</div>

然后在 \themes\hexo-theme-spfk\layout\_partial\article.ejs 中适当位置添加以下代码:

最后在主题目录下的 _config.yml 添加以下配置即可

word_count: true

如果显示的位置不好,可以自行更改其位置,成功配置后的效果如下:
在这里插入图片描述


另外:要在博客底部显示所有文章的总字数,可以点击此处,根据你博客底部文件的类型选择相应的代码放在适当的位置即可,前提是要安装好 hexo-wordcount 插件,例如我使用 Material X 主题,在 \themes\material-x\layout\_partial 目录下的 footer.ejs 文件中添加如下代码:

<i class="fas fa-chart-area"></i>
<span class="post-count">字数统计:<%= totalcount(site) %></span>

实现效果如下:
在这里插入图片描述


【03】添加网站运行时间

一个比较好的小功能,可以看见自己的博客运行多久了,时间一天天的增加,成就感也会一天天增加的
\themes\hexo-theme-spfk\layout\_partial\footer.ejs 文件下添加以下代码:

<span id="timeDate">载入天数...</span><span id="times">载入时分秒...</span>
<script>var now = new Date(); function createtime() { var grt= new Date("08/10/2018 17:38:00");//在此处修改你的建站时间,格式:月/日/年 时:分:秒now.setTime(now.getTime()+250); days = (now - grt ) / 1000 / 60 / 60 / 24; dnum = Math.floor(days); hours = (now - grt ) / 1000 / 60 / 60 - (24 * dnum); hnum = Math.floor(hours); if(String(hnum).length ==1 ){hnum = "0" + hnum;} minutes = (now - grt ) / 1000 /60 - (24 * 60 * dnum) - (60 * hnum); mnum = Math.floor(minutes); if(String(mnum).length ==1 ){mnum = "0" + mnum;} seconds = (now - grt ) / 1000 - (24 * 60 * 60 * dnum) - (60 * 60 * hnum) - (60 * mnum); snum = Math.round(seconds); if(String(snum).length ==1 ){snum = "0" + snum;} document.getElementById("timeDate").innerHTML = "本站已安全运行 "+dnum+" 天 "; document.getElementById("times").innerHTML = hnum + " 小时 " + mnum + " 分 " + snum + " 秒"; } 
setInterval("createtime()",250);
</script>

最后效果如下:


【04】添加百度统计

百度统计是百度推出的一款免费的专业网站流量分析工具,能够告诉用户访客是如何找到并浏览用户的网站,在网站上做了些什么,非常有趣,接下来我们把百度统计添加到自己博客当中

访问百度统计首页,注册一个账号后登陆,添加你的博客网站

接着点击代码获取,复制该代码

然后到目录 \themes\hexo-theme-spfk\layout\_partial 下新建一个 baidu-analytics.ejs 文件,里面粘贴你刚刚复制的代码

修改主题文件夹下的 _config.yml 文件,将你的key(图中涂掉部分)填写进去:

所有操作完成后可以在百度统计管理页面检查代码是否安装成功,如果代码安装正确,一般20分钟后,可以查看网站分析数据

另外推荐:友盟,2010年4月在北京成立,安全、可靠、公正、第三方的网站流量统计分析系统


【05】添加RSS订阅

RSS订阅是站点用来和其他站点之间共享内容的一种简易方式,即Really Simple Syndication(简易信息聚合),如果不会使用,可以参见百度百科:https://baike.baidu.com/item/RSS%E8%AE%A2%E9%98%85/663114 ;首先我们安装feed插件,在本地hexo目录下右键Git Bash Here,输入以下命令:

$ npm install hexo-generator-feed

等待安装完成后,打开hexo目录下的配置文件 _config.yml,在末尾添加以下配置:

# Extensions
## Plugins: http://hexo.io/plugins/
#RSS订阅
plugin:
- hexo-generator-feed
#Feed Atom
feed:
type: atom
path: atom.xml
limit: 20

随后打开主题配置文件 _config.yml,添加以下配置:

rss: /atom.xml

至此,RSS订阅功能添加完成


【06】添加 Fork me on GitHub 效果

效果图:
在这里插入图片描述
点击此处可以查看更多样式,将相应样式的代码复制到你想要放的地方就OK了,代码里的链接也要替换成你的,更多创意,比如 Follow me on CSDN ,只需要用PS改掉图片里的文字,替换掉相应链接即可


【07】更改本地预览端口号

hexo博客在执行hexo s进行本地预览的时候,默认端口号是4000,当该端口号被占用时会报错 Error: listen EADDRINUSE 0.0.0.0:4000 ,此时可以关闭占用该端口的进程,也可以更换端口号,更换端口号可以通过以下两种方法实现:

方法一:在根目录的_config.yml配置文件内加上如下代码更改hexo s运行时的端口号:

server:port: 5000compress: trueheader: true

方法二:通过 hexo server -p 5000 命令来指定端口,这种方法只是本次执行有效


【08】启用 HTTPS

参考我的另一篇文章:《利用官方支持为基于GitHub Pages的Hexo博客启用HTTPS》


【09】博客备份

参考我的另一篇文章:《使用 hexo-git-backup 插件备份你的 Hexo 博客》


【10】自定义一个不使用主题模板渲染的独立页面

参考我的另一篇文章:《Hexo 博客自定义一个不使用主题模板渲染的独立页面》


未完待续…


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/437866.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python CheckiO 题解】The Warriors

CheckiO 是面向初学者和高级程序员的编码游戏&#xff0c;使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务&#xff0c;从而提高你的编码技能&#xff0c;本博客主要记录自己用 Python 在闯关时的做题思路和实现代码&#xff0c;同时也学习学习其他大神写的代码。 Chec…

【Python CheckiO 题解】Multiply (Intro)

CheckiO 是面向初学者和高级程序员的编码游戏&#xff0c;使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务&#xff0c;从而提高你的编码技能&#xff0c;本博客主要记录自己用 Python 在闯关时的做题思路和实现代码&#xff0c;同时也学习学习其他大神写的代码。 Chec…

关于DateTime的一点记录 ToString(yyyy-MM-dd HH:mm:ss)

DateTime dt DateTime.Now; string z dt.ToString("yyyy-MM-dd HH:mm:ss");//你知道这个是“年月日时分秒”的格式吧? string a dt.ToString("yyyy-MM-dd HH:mm:ss ms");//这个你认为一定是 毫秒的格式? string b dt.ToString("yyyy-MM-dd HH:…

SharePoint List item数量超过5000的解决办法

SharePoint一个list里面的item数量超过5000会提示“视图无法显示&#xff0c;因为超过管理员限制设定的列表视图阈值” 在CSDN里面有比较好的解决方案&#xff0c;在这里先记录下来&#xff0c;以后有用 方案一&#xff0c;定期自动归档 不用写TimerJOb&#xff0c; 可以用cont…

什么是SharePoint?

在聊SharePoint开发之前&#xff0c;有必要说下什么是SharePoint. 在我工作的过程中&#xff0c;经常遇到客户对SharePoint不太了解的情况。有客户说&#xff0c;SharePoint太烂了&#xff0c;DropBox能做到的什么什么功能&#xff0c;SharePoint竟然做不到&#xff0c;很明显…

SharePoint 2013的REST编程基础

1. SharePoint 2013对REST编程的支持 自从SharePoint2013开始&#xff0c; SharePoint开始了对REST 编程的支持&#xff0c;这样除了.NET , Silverlight&#xff0c; Powershell之外&#xff0c; 又多了一种可以和SharePoint Server进行CSOM编程的方式。那么&#xff0c;问题来…

Office Web App2013 在线查看PDF文件

经常会有客户问&#xff0c;在SharePoint中&#xff0c;如何在浏览器中查看与编辑文档&#xff0c;通常给出的解决方案是集成Office Web App。 而在实际应用过程中&#xff0c;客户通常会要求实现PDF文件在线查看&#xff0c;对于PDF文件&#xff0c;office web App微软一直没…

Office Web Apps 2013 修改Excel在线查看文件大小限制

最近搭建了一个OWA 2013环境&#xff0c;帮客户实现在线查看Excel文档&#xff0c;不过&#xff0c;使用过程中出现了错误&#xff0c;文件大小超过10MB就无法预览了&#xff0c;查了好久&#xff0c;发现需要使用PowerShell命令进行修改。 1.出现的错误的截图&#xff1a; 2.可…

Azure Blob Storage 基本用法 -- Azure Storage 之 Blob

Azure Storage 是微软 Azure 云提供的云端存储解决方案&#xff0c;当前支持的存储类型有 Blob、Queue、File 和 Table。 笔者在《Azure Table storage 基本用法》一文中&#xff0c;介绍了 Table Storage 的基本用法&#xff0c;本文将通过 C# 代码介绍 Blob Storage 的主要使…

Azure Table storage 基本用法 -- Azure Storage 之 Table

Azure Storage 是微软 Azure 云提供的云端存储解决方案&#xff0c;当前支持的存储类型有 Blob、Queue、File 和 Table&#xff0c;其中的 Table 就是本文的主角 Azure Table storage。 Azure Table storage 是一个在云端存储结构化 NoSQL 数据的服务&#xff0c;它不仅存取速…

C# Azure 存储-Blob

1. 前言 本文是根据Azure文档与本人做了验证之后写的。 如果想下载微软官网的demo&#xff0c; 请前往github https://github.com/Azure-Samples/storage-blob-dotnet-getting-started 2. 介绍 Azure Blob是存储很大空间的服务&#xff0c;能允许存储与访问通过http或https。…

蜗牛星际ABCD款,这几款的区别你知道吗?

前言 本次文章有可能篇幅会超长&#xff0c;由于全部内容&#xff0c;可能导致万字长文&#xff0c;所以&#xff0c;本篇已经适当做了精简&#xff0c;只针对我目前拥有的蜗牛进行一些介绍&#xff0c;会附带一些教程链接。 每一个功能的实现&#xff0c;以后我都会单独写详…

蜗牛星际 --【功耗测量】

蜗牛星际b单千兆 正面 测量对象&#xff1a;蜗牛星际b单千兆 配置&#xff1a; j1900 16g 固态 4g ddr3l 内存 关机功耗 蜗牛星际待机功耗 蜗牛星际关机的情况下待机功耗为0.6w&#xff0c;一个月消耗不到两毛四分&#xff0c;一年不到三块钱。 开机功耗 未挂硬盘的情况下…

蜗牛星际:NAS从入门到放弃

预警1&#xff0c;蜗牛矿渣大批量上市是2019年3月的事情了。我写这个大概是2019年10月前后。我挑的最好的时候下手&#xff0c;C款全装只花了245包邮。现在由于市面上货量减少&#xff0c;价格上涨&#xff0c;已经没有原来那么高的性价比了。就连单卖的机箱也从原来的50包邮涨…

Dynamics 365 CRM 开发架构简介

目录 概览 名词解释连接到Dynamics 365 CRM Web APIOrganization service选择 - Web API vs. Organization service扩展服务端扩展应用端正文 Dynamics 365 CRM提供了多种编程模型&#xff0c;你可以灵活地按需选用最佳模式。 本文是对Dynamics 365 CRM编程模型的综述。 回…

Azure手把手系列 1:微软中国公有云概述

很久没有写文章了&#xff0c;主要也是疏于自己的懒惰&#xff0c;对于IT技术的放弃&#xff0c;但我相信浪子回头金不换&#xff0c;所以我又回来了。 相信现在还在泡博客的还在做IT的&#xff0c;或多或少都听过云、私有云及公有云的概念&#xff0c;那么今天给大家分享的是微…

Azure手把手系列 2:微软中国云服务介绍

在前面的文章中&#xff0c;我们已经了解到Azure有两种&#xff0c;分别是由微软直营的国际版&#xff0c;以及微软中国委托21世纪互联运营的国内版&#xff0c;两种Azure存在一定差异&#xff0c;并且数据不互通、帐号以及计费不统一。所以在选择微软公有云的时候也需要注意&a…

Azure手把手系列 3:把IT的钱花在刀刃上

对于Azure以及公有云的了解&#xff0c;可谓是永无止境的&#xff0c;用一句客户的话来说就是Azure是大海&#xff0c;只要你往前航行&#xff0c;一定能时不时的发现宝藏&#xff1b;Azure好比是一座冰山&#xff0c;当你以为你已经对Azure很熟悉了&#xff0c;其实这只是冰山…

Azure手把手系列 4:深入了解Azure 一块钱当三块用

通过前面的文章&#xff0c;相信大家对Azure有了一个基础的认识&#xff0c;接下来&#xff0c;我们再来看下作为企业&#xff0c;选择公有云服务最重要的因素之一 价格。我们都知道所谓公有云&#xff0c;就是要让IT资源变成我们生活中类似于水电气的资源&#xff0c;按需使用…

【Python CheckiO 题解】Feed Pigeons

CheckiO 是面向初学者和高级程序员的编码游戏&#xff0c;使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务&#xff0c;从而提高你的编码技能&#xff0c;本博客主要记录自己用 Python 在闯关时的做题思路和实现代码&#xff0c;同时也学习学习其他大神写的代码。 Chec…