本文主要介绍如何使用 Hexo+NexT
搭建自己的博客之后,和在建站期间遇到的一些问题以及优化方式。
推荐阅读
弄懂 NexT
post.md
中 bool
属性默认值是 false
BugFix
错误 Cannot set property 'lastIndex' of undefined
,修改 hexo/config.yml
设置 auto_detect: false
1 | highlight: |
异常 Cannot find module './build/Release/DTraceProviderBindings'
不影响使用,但是看着难受,尝试
1 | npm install hexo --no-optional |
SEO优化
加快访问速度
因为是放在 GitHub 上面的,所以访问难免会慢。
可以发布以后检查一下网页加载的瓶颈在哪里,然后做相应的优化。
需要注意的是,放在本地的图片访问会变的很慢,因为资源在 GitHub 上面,所以尽量用七牛等的云存储,文章中使用 url。
fontawsome 访问慢,替换 _config.yml 中的源,效果会好很多
1 | vendors: |
页面简单加密访问
找到文件themes->next->layout->_partials->head.swig
在<meta>
标签之后添加如下js代码
1 | <script> |
在文章的Front-matter
定义password
1 | --- |
添加留言界面
添加page,在博客根目录下执行如下命令,会在source目录下面创建msg/index.md
文件。
1 | hexo new page msg |
配置文字和图标,打开themes/next/_config.yml
文件,进行如下配置,才能使留言的界面显示
1 | menu: |
配置图标,打开themes/next/_config.yml
文件,进行如下配置,可以自定义显示在侧边栏的留言的图标,图标的配置使用key-value的形式,下面代码中home``calendar
等都是key,使用这个key可以从这个网站-FontAwesome获取图标,如果想更换图标,只需要去那个网站获取图标的名字去掉头部的icon作为key添加到下面代码中即可。
1 | menu_icons: |
打开themes/next/language/zh-CN.yml
文件,进行如下配置,才能显示为 留言 字样
1 | menu: |
过滤文件不进行渲染
在给站点添加 README.md
和 Google,百度相关的验证文件时,我们希望这个文件不要被主题渲染,而是源文件直接拷贝到 public
文件夹中,只需要在 hexo/_config.yml
中进行如下配置。
1 | skip_render: |
category 分级
在头部如下写入 categories 标签
1 | categories: |
链接唯一化
安装 hexo-abbrlink
插件
1 | npm install hexo-abbrlink --save |
配置 hexo/_config.yml
,添加如下,完成后打开文件,保存几次,会自动添加 abbrlink
属性,如果已经有值了则不会更改。
1 | permalink: article/:abbrlink/ # article/ 可自行更换 |
文章压缩
安装插件 hexo-all-minifier
1 | npm install hexo-all-minifier |
配置 hexo/_config.yml
,添加如下
1 | # 文章压缩 |
添加 fork me on github
修改 hexoBlog/themes/next/layout/_layout.swig
文件,在 header
标签之前添加图片,图片样式可以到丝带状的Fork 或者是 三角形的的Fork选择颜色和位置等。href
中需要修改你为的 github
地址1
2
3
4
5
6
7
8
9
10<div class="{{ container_class }} {% block page_class %}{% endblock %} ">
<div class="headband"></div>
<!--- add Fork me on Github -->
<div class="forkme">
<a target="_blank" href="https://github.com/chendongMarch"><img style="position: absolute; top: 0; left: 0; border: 0;" src="https://camo.githubusercontent.com/567c3a48d796e2fc06ea80409cc9dd82bf714434/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f6c6566745f6461726b626c75655f3132313632312e706e67" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_left_darkblue_121621.png"></a>
</div>
<!--- add Fork me on Github -->
<header id="header" class="header" itemscope itemtype="//schema.org/WPHeader">
在 head
标签内添加 style
使小屏幕访问时不显示这个图片
1 | <head> |
代码风格处理
查看 hexoBlog/themes/next/source/css/_common/components/highlight/highlight.styl
文件,是对高亮代码的相关配置。找到标签修改既可。
1 | // 行内代码 |
添加本地搜索
安装插件 hexo-generator-searchdb
1 | npm install hexo-generator-searchdb --save |
配置 hexo/_config.yml
1 | search: |
配置 next/_config.yml
1 | # Local search |
添加加载进度
在 Next
主题下打开 /next/layout/_partials/head.swig
文件,在最后追加进度条
下面的代码只在浏览器显示,手机上不显示进度条
1 | {# 添加进度条 #} |
解决表格被等分
文件 themes/next/source/css/_common/scaffolding/tables.styl
1 | table-layout: auto; |
添加 Leancloud 统计
今天发现网页访问很慢,查了之后发现不蒜子统计访问太慢,换成leancloud,但是只有pv统计。
指定文章不在首页显示
文件 /Users/march/Documents/hexoBlog/themes/next/layout/index.swig
修改。
1 | <section id="posts" class="posts-expand"> |
然后在文章文件头部,增加
1 | --- |
网站背景
/Users/march/Documents/hexoBlog/themes/next/source/css/_custom/custom.styl
1 | body{ |
头部显示
/Users/march/Documents/hexoBlog/themes/next/source/css/_schemes/Mist/_header.styl
1 | .header { background: $whitesmoke; } |
更改全局字体
/Users/march/Documents/hexoBlog/themes/next/source/css/_variables/custom.styl
1 |
|
文章中加图片,首页不显示图片
/Users/march/Documents/hexoBlog/themes/next/layout/_macro/post.swig
上面有个 gallery support,加上 not is_index 就可以不再首页显示,然后 md 文件顶部使用 photos 声明图片链接 photos: ‘./img.png’,可以多张
1 | {% if not is_index and post.photos and post.photos.length %} |
头像为圆形,可移动
themes/next/source/css/_common/components/sidebar/sidebar-author.syl
1 | .site-author-image { |
主页文章添加卡片背景
themes/next/source/css/_custom/custom.styl
1 | // 主页文章添加阴影效果 |
copyright
themes/next/layout/_macro/post-copyright.swig
1 | {{ |
文章内链接
themes/next/source/css/_custom/custom.styl
1 | // 文章内链接文本样式 |
统一添加“本文结束”标记
在路径 /themes/next/layout/_macro 中新建 passage-end-tag.swig 文件,并添加以下内容:
1 | <div> |
打开 themes/next/layout/_macro/post.swig 文件,添加:
1 | <div> |
然后打开主题配置文件 _config.yml,在末尾添加:
1 | # 文章末尾添加“本文结束”标记 |
键盘触发侧栏
/Users/march/Documents/hexoBlog/themes/next/source/js/src/motion.js
1 | $(document).ready(function () { |
添加 live2d 看板娘
添加一个小姐姐
https://github.com/EYHN/hexo-helper-live2d/blob/master/README.zh-CN.md
1 | npm install --save hexo-helper-live2d |
hexo/_config.yml
1 | live2d: |