Hexo使用笔记
说明
记录一下搭建 hexo 博客中的一些笔记
Hexo 安装
网上的教程很详细了,这里简单记一下
在 D:\Files
打开 git bash
1 | npm install -g hexo-cli |
1 | zhf@DESKTOP-2EL8QVU MINGW64 /d/Files |
hexo s
启动
配置 git
1 | git init |
next 主题配置
先 fork
next主题github仓库 ,(这样就能保存你的配置了,需要进入 next
目录来推,如果有更新,则用 pull request拉更新的内容,可参考 github上fork了别人的项目后,再同步更新别人的提交)
1 | cd hexo-blog |
github Pages部署
到 github 创建一个 zhouhongfa.github.io
公开项目
_config.yml
配置如下
1 | deploy: |
同步到 github 上
1 | hexo clean |
头像配置
主要配置 avatar
属性
1 | # 配置头像路径 |
侧边栏配置
社交栏邮箱正确配置
如下
1 | social: |
侧边栏位置
在 _config.yml
中配置 sidebar
属性
1 | position: right |
默认展开所有目录
在 _config.yml
中配置 toc
属性
1 | expand_all: true |
搜索配置
记录一下
1 | npm install hexo-generator-searchdb --save |
编辑博客配置文件:_config.yml
增加以下
1 | search: |
编辑主题配置文件:_config.yml
修改以下
1 | # Local search |
重新部署
点击爱心效果
这里我用的 next
主题比较新,可能会不一样
请参考
记录一下
在 themes/next/source/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); |
修改 themes\next\layout\_layout.swig
文件
在最后的</body>
下加上以下
1 | <!-- 页面点击小红心 --> |
分类和标签
记得要在 主题配置文件中解开注释
大概在 158行
menu
属性下
如何设置read more?
用以下语法即可
1 | <!--more--> |
图片引用问题
开启 _config.yml
下的
1 | post_asset_folder: true |
然后将需要用到的图片放置到 文章同名目录下
引用语法如下
1 | {% asset_img 1566638486203.png test%} |
然后首页和文章内都能正常访问啦
语言问题
需要根据主题里的文件名进行配置
如 next
主题里是 zh-CN
,就在 _config.yml
配置为 zh-CN
是配置 hexo
的配置
大概在 11 行
我是如下配置的
1 | language: |
评论功能
这里用 Gitalk
来实现、
额,注意配置里的是 repo name
,也就是配置仓库名字即可,而不是克隆的地址
看板娘设置
1 | git clone https://github.com/galnetwen/Live2D.git |
复制 live2d
目录到 themes/next/source
下
修改 themes/next/layout/_layout.swig
文件
- 在
head
标签增加以下
1 | <link rel="stylesheet" href="/live2d/css/live2d.css" /> |
- 在
body
标签增加以下
1 | <div id="landlord"> |
- 增加以下脚本
1 | <!-- 看板娘 --> |
效果如下
引用其他文章
举例 引用 Hello.md
1 | {% post_link Hello %} |
hexo 常用命令
1 | hexo clean:清除缓存文件和已生成的静态文件 |
写作
你可以执行下列命令来创建一篇新文章或者新的页面。
1 | $ hexo new [layout] <title> |
您可以在命令中指定文章的布局(layout),默认为 post
,可以通过修改 _config.yml
中的 default_layout
参数来指定默认布局。
Layout
Hexo 有三种默认布局:post
、page
和 draft
。在创建者三种不同类型的文件时,它们将会被保存到不同的路径;而您自定义的其他布局和 post
相同,都将储存到 source/_posts
文件夹。
草稿
刚刚提到了 Hexo 的一种特殊布局:draft
,这种布局在建立时会被保存到 source/_drafts
文件夹,您可通过 publish
命令将草稿移动到 source/_posts
文件夹,该命令的使用方式与 new
十分类似,您也可在命令中指定 layout
来指定布局。
1 | $ hexo publish [layout] <title> |
草稿默认不会显示在页面中,您可在执行时加上 --draft
参数,或是把 render_drafts
参数设为 true
来预览草稿。