本文不讲详细搭建,小白只是记录一下自己主题是如何(有手就行)配置
一、搭建基于Github和hexo的个人博客
如何搭建最基础的hexo博客,可以参照这位博主,他写的很详细:GitHub+hexo搭建个人博客
二、博客基础配置
配置主要修改的是站点配置文件和主题配置文件(均为_config.yml文件),后面“站点”、“主题”内容均指对应配置文件;安装文件若没有特殊说明均在站点(博客)根目录下安装。
2.1 基本配置
打开myblog根目录下的_config.yml文件(站点配置文件),找到Site模块修改如下基本信息(注意:冒号后面带有空格)
1 | title: 标题 |
2.2 Next主题安装
进入到生成的博客路径,安装一个next主题
1 | cd myblog |
修改站点_config.yml中的theme
1 | theme: next |
做完记得清除Hexo的缓存:hexo clean
安装完next主题,进入 根目录/themes/next 同样也会有一个_config.yml(主题配置文件)。
2.3主题样式
在 主题 找到Scheme Settings
1 | # Schemes |
一共有四种主题风格可以选,对应的侧栏设置也不同。在 主题 找到sidebar
1 | sidebar: |
2.5 菜单,标签,分类,关于
在 主题 找到Menu Setting
1 | menu: |
以archives: /archives/ || archive为例:
||之前的/archives/表示标题“归档”,关于标题的格式可以去themes/next/languages/zh-Hans.yml中参考或修改
||之后的archive表示图标,可以去 Font Awesome
中查看或修改,Next主题所有的图标都来自Font Awesome
。
这个时候,菜单中的标签、分类、关于是进不去的,需要自己另外新建页面。
创建标签
1 | hexo new page tags |
在站点路径的source会生成对应页面文件,只时候才能进去菜单的标签页面;其他页面同理;页面标题可修改title,关闭页面评论可修改comments。
1 | --- |
增加一些自己特有页面,还要修改其对应的翻译文本,翻译文本放置在 Next主题 目录下的 languages/{language}.yml ({language} 为你所使用的语言)。
2.6 头像设置+旋转
在 主题 找到Sidebar Avatar
字段
1 | # Sidebar Avatar |
这是头像的路径,只需把你的头像命名为header.jpg放入themes/next/source/images中就好了。
实现头像旋转
打开\themes\next\source\css_common\components\sidebar\sidebar-author.styl
,在里面添加如下代码:
1 | .site-author-image { |
2.7 添加搜索功能
1.安装 hexo-generator-searchdb
插件
1 | npm install hexo-generator-searchdb --save |
2.修改 站点 ,找到Extensions
1 | # 搜索 |
3.修改 主题 ,找到Local search
,将enable
使能 true。
三、博客高级配置
3.1 浏览量 访客量 阅读数
在 主题 写入代码如下:
1 | # Show PV/UV of the website/page with busuanzi. |
修改统计规则及busuanzi失效修复
打开\themes\next\layout_partials\footer.swig文件,在copyright前加上画红线这句话:
代码如下:
1 | <script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script> |
3.2 字数统计 阅读时长 总字数
在站点根目录安装
1 | npm i --save hexo-wordcount |
然后再进入 主题 修改如下:
1 | # Post wordcount display settings |
3.3 文章发表 更新时间
打开 主题 ,搜索关键字updated_at
1 | # Post meta display settings |
3.4 友链、社交网站
友链可以在 主题 Blog rolls
参照注释
1 | # Blog rolls |
社交网站同理在 主题 social
参照注释,不过需要配置social_icons
1 | #是否启用社交链接图标 |
3.5 博客运行时间
打开next\layout_partials路径中的footer.swig,加入下面代码段(我加在了最后面):
1 | <span id="timeDate" title="网站运行时间">载入天数...</span><span id="times" title="网站运行时间">载入时分秒...</span> |
在next\layout_layout.swig中插入下面代码块:
1 | <!--此处为建站时间 --> |
3.6 评论功能
打开来必力官网: https://livere.com
按套路注册,点击上方的安装,选择免费的city版本。
并点击现在安装,复制其中的uid字段。
打开 主题 ,定位到livere_uid
,粘贴上刚刚复制的UID。
四、美化配置
4.1 隐藏网页底部 Hexo 强力驱动
打开 主题 ,搜索关键字 copyright ,如下:
1 | # Footer `powered-by` and `theme-info` copyright |
4.2 浏览器恶搞标题
在目录 \Hexo\themes\next\source\js\src 下新建一个 FunnyTitle.js 文件,在里面填写如下代码:
1 | <!--浏览器搞笑标题--> |
然后在 \Hexo\themes\next\layout\layout.ejs 文件中添加如下代码(我放在最后):
1 | <!--浏览器搞笑标题--> |
4.3 鼠标点击特效(颜文字)
也是 在目录 \Hexo\themes\next\source\js\src 下新建一个 emoji.js 文件,在里面填写如下代码:
1 | onload = function() { |
然后 也是 在 \Hexo\themes\next\layout\layout.ejs 文件中添加如下代码(我放在最后):
1 | <!-- 页面点击颜文字表情 --> |
颜文字选取网站:http://www.yanwenzi.com/chihuo/,可以根据自己的喜好增加表情✧٩(ˊωˋ*)و✧
4.4 更换背景
在 themes/next/source/css/_custom/custom.styl 中添加如下代码:
1 | // Custom styles. |
上面图片链接是我的配置,也可以自己切换成本地图片链接(替换https):/images/bg.jpg
4.5 背景动态粒子
该功能已经嵌入到新版本 next主题 配置,所以只要使能就行;canvas_nest
是一种(很常见)随机线条在鼠标位置凝聚;我的配置选的是canvas_nest: true
。
1 | # Canvas-nest |
4.6 加入live2D看板娘
1 | npm install --save hexo-helper-live2d |
还需要选择下载自己喜欢的模型,如我的看板娘为live2d-widget-model-koharu ,则
1 | npm install live2d-widget-model-koharu |
其他live2D模型预览查看:https://github.com/xiazeyu/live2d-widget-models
在站点添加以下内容
1 | # Live2D |
五、优化配置
5.1 解决页面过小问题
文章宽度过小,而两边宽度过大;修改themes\next\source\css_schemes\Pisces_layout.styl
以下是Mayfly大佬的_layout.styl配置:
1 | .header { |
5.2 设置透明背景
1.内容板块透明
博客根目录 themes\next\source\css_schemes\Pisces_layout.styl 文件 .content-wrap 标签下 background: white修改为:
1 | 2.菜单栏背景 |
3.站点概况背景
博客根目录 themes\next\source\css_schemes\Pisces_sidebar.styl 文件 .sidebar-inner 标签下 background: white修改为:
1 |   然后修改博客根目录 themes\next\source\css\_schemes\Pisces\_layout.styl 文件 .sidebar 标签下 background: $body-bg-color修改为: |
4.按钮背景
博客根目录 themes\next\source\css_common\components\post\post-button.styl 同上修改对应位置为 background: transparen
5.3 博客压缩加速访问
在站点的根目录下执行以下命令:
1 | npm install gulp -g |
在根目录新建 gulpfile.js ,并填入以下内容
1 | var gulp = require('gulp'); |
注意, 修改上面的各个目录为你的真实目录, **代表0或多个子目录(需要注意一下自己的路径是否正确)
在每次执行完 hexo g 之后,在执行 gulp 命令,就会压缩一次静态文件,例如:
1 | hexo clean&&hexo g&&gulp&&hexo d |
六、写博客
6.1 去掉文章目录标题的自动编号
打开 主题 ,找到Table Of Contents
,将number
失能
6.2 主页文章添加阴影效果
打开\themes\next\source\css_custom\custom.styl,向里面加入:
1 | /*主页文章添加阴影效果*/ |
6.3 主页显示 阅读全文
在文章中使用 < !--more-->
手动进行截断
6.4 文章结尾–加入感谢阅读
在\themes\next\layout_macro
中新建 passage-end-tag.swig
文件,并添加以下内容:
1 | <div> |
接着打开\themes\next\layout_macro\post.swig
文件,在post-body
字样之后,post-footer
字样之前添加如下代码(post-footer之前两个DIV):
1 | <div> |
然后打开 主题配置文件,在末尾添加:
1 | # 文章末尾添加“本文结束”标记 |
完成以上设置之后,在每篇文章之后都会添加如上效果图的样子。
6.5 文章加密访问
打开themes/next/layout/_partials/head.swig
文件,在以下位置插入这样一段代码:
代码如下:
1 | <script> |
然后在文章上写成类似这样:
1 | --- |
6.6 文章中插入代码
在 站点 中,找到hightlight
:
1 | highlight: |
再到 主题 ,找到highlight_theme: normal
;注释显示有五种显示主题可用,我的配置为night blue。如何插入则如下图所示:
6.7 代码复制按钮
下载插件
clipboard.js
;将下载的
clipboard.js
文件下的dist
文件夹中的文件拖到.\themes\next\source\js\src
文件夹下也是在
.\themes\next\source\js\src
目录下,创建clipboard-use.js
,文件内容如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17/*页面载入完成后,创建复制按钮*/
!function (e, t, a) {
/* code */
var initCopyCode = function(){
var copyHtml = '';
copyHtml += '<button class="btn-copy" data-clipboard-snippet="">';
copyHtml += ' <i class="fa fa-globe"></i><span>copy</span>';
copyHtml += '</button>';
$(".highlight .code pre").before(copyHtml);
new ClipboardJS('.btn-copy', {
target: function(trigger) {
return trigger.nextElementSibling;
}
});
}
initCopyCode();
}(window, document);在
.\themes\next\source\css_custom\custom.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//代码块复制按钮
.highlight{
//方便copy代码按钮(btn-copy)的定位
position: relative;
}
.btn-copy {
display: inline-block;
cursor: pointer;
background-color: #eee;
background-image: linear-gradient(#fcfcfc,#eee);
border: 1px solid #d5d5d5;
border-radius: 3px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-appearance: none;
font-size: 13px;
font-weight: 700;
line-height: 20px;
color: #333;
-webkit-transition: opacity .3s ease-in-out;
-o-transition: opacity .3s ease-in-out;
transition: opacity .3s ease-in-out;
padding: 2px 6px;
position: absolute;
right: 5px;
top: 5px;
opacity: 0;
}
.btn-copy span {
margin-left: 5px;
}
.highlight:hover .btn-copy{
opacity: 1;
}在
.\themes\next\layout_layout.swig
文件中(我加在最后):1
2
3<!-- 代码块复制功能 -->
<script type="text/javascript" src="/js/src/clipboard.min.js"></script>
<script type="text/javascript" src="/js/src/clipboard-use.js"></script>
6.8 博客插入本地图片
- 把 主页 的
post_asset_folder
这个选项设置为true
2 .在根目录下执行这样一句话npm install hexo-asset-image --save
,这是下载安装一个可以上传本地图片的插件,来自dalao:dalao的git - 等待一小段时间后,再运行hexo n “xxxx”来生成md博文时,/source/_posts文件夹内除了xxxx.md文件还有一个同名的文件夹
- 把图片放进去后,在博文中插入图片如下:
1
{% asset_img image.jpg This is an image %}
七、总结
以上就是我的hexo配置了,其实我也是个小白,上面都是从一个个大佬采集过来的,但是数量太多且杂,就不一一放对应链接了;网上也有很多搭建hexo的教程,其他的配置可以自己去找。到现在我自己还有些搞不明白的,例如在新建page插入图片这种基操都不会(![]这种makedown语法显示图片貌似已经不能用了),一些别人花里胡哨的特效也搞不出来,如果有大佬能指导一下就好了;如果你是小白,当然还是小白一起共勉啦✧٩(ˊωˋ*)و✧