前言
之前的博客感觉胡乱抄别人的“优化”代码,现在已经感觉理不清里面的结构了,所以一气之下还是重新安装了
安装HEXO
官网说可以这样子安装
1 | npm install hexo-cli -g |
安装主题
之前的Next仓库是 https://github.com/iissnan/hexo-theme-next
新版本的Next已经移动到这里了 https://github.com/theme-next/hexo-theme-next
旧的仓库几乎已经不更新了
只要用最简单的git
命令就可以安装了
1 | git clone https://github.com/theme-next/hexo-theme-next themes/next |
基本配置
配置的是主题下的_config.yml
文件,就是blog\themes\next
路径下的配置文件
网站图标
网站图标生成网站
只要把png
图片放进去(尺寸不能太大)
就可以生成一套图标(苹果手机桌面图标,网页图标,win磁贴图标等等)
下载之后放到blog\source\my_images
文件夹中
1 | favicon: |
网站脚注
1 | footer: |
版权声明
具体详情
1 | creative_commons: |
代码块
1 | codeblock: |
分享
1 | needmoreshare2: |
访问次数
1 | # busuanzi统计 |
顶部阅读进度条
1 | reading_progress: |
加载动画
1 | motion: |
解释待考证
搜索功能
NexT
自带提供了两个搜索
algolia_search
local_search
其实这个local_search
已经很好用了,配置algolia_search
挺麻烦的,而且搜索功能也用的不多
毕竟有万能的Ctrl + F
1 | local_search: |
添加RSS订阅
1 | npm install hexo-generator-feed --save |
1 | # Extensions |
这个功能就是一个RSS装饰条而已,一般也没有什么用
添加置顶博客
https://blog.csdn.net/qwerty200696/article/details/79010629
显示最近博客
1 | npm install hexo-related-popular-posts --save |
1 | related_posts: |
点击爱心效果
创建js文件
在/themes/next/source/js/src
下新建文件clicklove.js
,接着把该链接下的代码拷贝粘贴到clicklove.js
文件中。
代码如下:
1 | !function(e,t,a){function n(){c(".heart{width: 10px;height: 10px;position: fixed;background: #f00;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);}.heart:after,.heart:before{content: '';width: inherit;height: inherit;background: inherit;border-radius: 50%;-webkit-border-radius: 50%;-moz-border-radius: 50%;position: fixed;}.heart:after{top: -5px;}.heart:before{left: -5px;}"),o(),r()}function r(){for(var e=0;e<d.length;e++)d[e].alpha<=0?(t.body.removeChild(d[e].el),d.splice(e,1)):(d[e].y--,d[e].scale+=.004,d[e].alpha-=.013,d[e].el.style.cssText="left:"+d[e].x+"px;top:"+d[e].y+"px;opacity:"+d[e].alpha+";transform:scale("+d[e].scale+","+d[e].scale+") rotate(45deg);background:"+d[e].color+";z-index:99999");requestAnimationFrame(r)}function o(){var t="function"==typeof e.onclick&&e.onclick;e.onclick=function(e){t&&t(),i(e)}}function i(e){var a=t.createElement("div");a.className="heart",d.push({el:a,x:e.clientX-5,y:e.clientY-5,scale:1,alpha:1,color:s()}),t.body.appendChild(a)}function c(e){var a=t.createElement("style");a.type="text/css";try{a.appendChild(t.createTextNode(e))}catch(t){a.styleSheet.cssText=e}t.getElementsByTagName("head")[0].appendChild(a)}function s(){return"rgb("+~~(255*Math.random())+","+~~(255*Math.random())+","+~~(255*Math.random())+")"}var d=[];e.requestAnimationFrame=function(){return e.requestAnimationFrame||e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||e.oRequestAnimationFrame||e.msRequestAnimationFrame||function(e){setTimeout(e,1e3/60)}}(),n()}(window,document); |
修改_layout.swig
在\themes\next\layout\_layout.swig
文件末尾添加:
1 | <!-- 页面点击小红心 --> |
添加文章字数统计
安装依赖
1 | npm install hexo-symbols-count-time --save |
配置主题的_config.yaml
1 | # Post wordcount display settings |
但~~~~是!
这个功能是集成在NexT
里面的,但是我没运行成功
查看了下官方的文档https://github.com/theme-next/hexo-symbols-count-time
才发现需要在网站的_config.yaml
也要配置
D:\MyBlog\_config.yml
1 | symbols_count_time: |
搜索功能Algolia_search
1 | # Algolia Search |
Note的使用
之前看到过别人使用“有颜色的引用”,着实好奇,然后google了好久也没看到怎么个用法
原来是用了Note!
配置
打开主题的_config.yml
修改为以下配置
1 | note: |
其实就是启用note而已
风格
可以选择几种风格
simple
modern
flat
disable
(哈哈,disabled
就是没有)
对了,如果设置icons
为true
的话,就是会下面这个样子
使用方法
直接在markdown
文章里面写上
1 | {% note class_name %}现在该说点什么呢{% endnote %} |
其中,class_name
可以是以下列表中的一个值:
default
primary
success
info
warning
danger
(图片来自官网介绍)
文本居中的引用
直接在markdown
中写
1 | <!-- HTML方式: 直接在 Markdown 文件中编写 HTML 来调用 --> |
比如我写上
1 | {% cq %} 鲁迅说:我不用Hexo写博客 {% endcq %} |
效果是
自定义文章摘要
其实设置这个的目的只是因为我之前的首页文章摘要没有格式,如下图
设置手动摘要
在需要的开始正文的地方添加
1 | <!-- more --> |
源代码
(是用typora
查看的)
效果
是不是好看多了!
其实可以设置成自动生成摘要
那样的话如果插入了标签,它也能识别的
不然之前我没手动设置摘要的文章默认会在首页显示整篇文章,太恐怖了
所以可以在每篇文章最后添加 ,就会根据自动设置的长度截取下来保存格式显示摘要
修改模板文件
blog\scaffolds\post.md
最后添加
但是这个标签似乎对markdown
不能很好支持,如果有大量markdown
语法嵌入进去,还是用引用吧
主题颜色及大小定制
修改文件D:\MyBlog\themes\next\source\css\_variables\custom.styl
添加自己喜欢的颜色
在这个网站:https://htmlcolorcodes.com/zh/
找到自己喜欢的颜色的十六进制数
1 | //蓝绿色 |
主题颜色
1 | //主题颜色 |
链接颜色
1 | //超链接颜色 |
顶部条颜色
1 | //顶部条的颜色 |
字体大小
1 | //文章内标题字体大小 |
文章标题大小
D:\MyBlog\themes\next\source\css\_common\components\post\post-title.styl
1 | .posts-expand .post-title { |
侧边栏颜色
1 | //目录颜色 |
按钮
首页的”查看全文“等按钮
1 | //按钮 |
返回顶部按钮
1 | //返回顶部按钮 |
代码颜色
1 | //代码 |
更改右上角GihHub角标
有的东西不能在自定义的样式文件中更改
修改文件D:\MyBlog\themes\next\layout\_partials\github-banner.swig
把它的颜色github_banner_bg_color
和github_banner_fg_color
设置成主题一样的颜色
1 | {% if theme.github_banner %} |
如果需要平板和手机的视图也要显示一致的话,还要更改D:\MyBlog\themes\next\source\css\_common\components\header\github-banner.styl
1 | .github-corner { |
加密文章
https://github.com/MikeCoder/hexo-blog-encrypt/blob/master/ReadMe.zh.md
亲测纯数字密码有问题!!!还是设置字母密码吧!
网站速度优化
安装gulp
1 | $ npm install gulp -g |
安装插件
1 | $ npm install gulp-minify-css gulp-uglify gulp-htmlmin gulp-imagemin gulp-htmlclean gulp --save |
SEO优化
百度主动提交
百度自动提交
百度Sitemap提交
谷歌Sitemap提交
小插曲
发现了红色项
应该是百度的什么东西 在本地的博客文件夹里搜索不到这个 push.js
文件
右键复制地址后,发现不是来自我的网站,而是 https://zz.bdstatic.com/linksubmit/push.js 但是点击不进去 搜索之后发现这是百度的域名,而且在做的好像是爬取数据(老本行) 但是为什么没加载出来呢?
因为被我的 chrome 拦截掉了哈哈哈哈!
右键 AdBlock
,在此网站暂停就好了 (怪不得我的网站收录这么差)
死亡警告
千万不要在hexo server的时候更改博客内容,不然内容会被清空的!
参考资料
自动更换背景图片