什么是hexo
基于Node.js
的博客框架,使用Markdown
解析文章
安装
安装前提
必须安装以下环境:
- Node.js
- Git
安装hexo
$ npm install -g hexo-cli
全局安装
1 | hexo init <folder> |
目录结构
1 | . |
_config.yml
站点配置文件
scaffolds
模板文件夹
- page.md
- post.md
- draft.md
source
用户资源文件夹
_posts
文件夹存放md文件themes
主题文件夹
写作
1 | `$ hexo new [layout] <title>` |
自动生成名为test.md
的markdown
文件到_post
文件夹下。
或者手动复制markdown文件至_post
文件夹下,但需要手动添加头部信息:
1 | --- |
更多
展示在首页,多余部分隐藏:
1 | <!--more--> |
markdown语法的
[TOC]
目录,在hexo中无法展示
点击更多时,从头开始阅读:
1 | scroll_to_more: false |
发布
本地部署
生成静态页面:
1 | `$ hexo generate` |
或者简写:
1 | `$ hexo g` |
启动服务器
1 | `$ hexo server` |
或者简写:
1 | `$ hexo server` |
提示:
1 | INFO Hexo is running at http://localhost:4000/. Press Ctrl+C to stop. |
在浏览器中打开http://localhost:4000/
部署到Github Page
创建库
新建一个名为yourname.github.io
的库
在setting
中开启github page
配置Deployment
在_config.yml
文件中,找到Deployment
,然后按照如下修改,用户名改成自己的GitHub信息:
需要注意的是:冒号后面记得空一格!
1 | # Deployment |
提交
1 | // 生成新的 public 文件 |
排错
部署完毕后,
githubPage
打开显示404
,项目setting
中的githubPage
项提示:The tag fancybox on line 77 in theme/landspace/README.md is not recognized Liquid tag
解决办法:
1
2
3rm -rf .deploy_git
hexo g
hexo d提示没有git仓库
解决办法:
git init
其他报错
进阶
解析到个人域名
GitHub 仓库的根目录下建立一个 CNAME
的文本文件(注意:没有扩展名),文件里面只能输入一个你的域名,不能加http://
www.xxxxx.com
进入域名提供商地址,添加解析
注意:CNAME文件在下次 hexo deploy的时候就消失了,需要重新创建,这样就很繁琐
方法:通过安装插件实现永久保留
1
$ npm install hexo-generator-cname --save
之后在
_config.yml
中添加一条1
2plugins:
- hexo-generator-cname
Next主题
hexo
默认主题是landscape
,可以更改为其他主题。
Next
主题是目前较流行且成熟的主题。next主题文档
主题风格
Next提供4个主题风格,选择自己想要的。
- Muse
- Mist
- Pisces
- Gemini
更换头像
代码高亮
分类页
新建分类页面
1 | hexo new page categories |
给分类页面添加类型
在source文件夹中的categories文件夹下找到index.md文件,并在它的头部加上type属性。
1 | --- |
接下来的每篇文章中,都可以在头部添加分类信息:
1 | --- |
标签页
同样可以设置标签页
1 | hexo new page tags |
给标签页面添加类型
在source文件夹中的tags文件夹下找到index.md文件,并在它的头部加上type属性。
1 | title: tags |
接下来的每篇文章中,都可以在头部添加标签信息:
1 | --- |
修改底部建站信息
修改主题的配置文件:
1 | footer: |
隐藏hexo链接和Next链接
统计阅读次数
使用LeanCloud的服务,具体方法参考教程,添加完之后效果如下:
注册LeanCloud帐号并验证邮箱之后,新建应用。
由于存在ACL权限问题,新建时选择
无限制
左侧下划线开头的都是系统预定义好的表,新建一个表,名字必须为Counter
创建完成之后,左侧数据栏应该会多出一栏名为Counter
的栏目
点击设置,选择应用Key,即可得到AppID
以及AppKey
将其复制到主题配置文件:
1 | leancloud_visitors: |
记录文章访问量的唯一标识符是文章的
发布日期
以及文章的标题
,因此请确保这两个数值组合的唯一性,如果你更改了这两个数值,会造成文章阅读数值的清零重计。
每次访问一篇文章后,Counter
表就会多出一条字段,可以修改其中的time
字段来修改阅读次数。
安全问题:在
设置-安全中心-Web 安全域名
中,填入自己的博客域名
字数统计与阅读时长
打开/themes/next/layout/_macro/post.swig`文件
站内搜索
安装插件
1 | npm install hexo-generator-searchdb --save |
修改 主题配置文件
1 | local_search: |
404页
推荐用腾讯公益404页面,寻找丢失儿童,关注公益事业。
使用方法,新建404.html页面,放到主题的source
目录下,内容如下:
1 |
|
站点分析
使用百度统计,注册百度统计,管理
> 网站列表
> 新增网站
完成后,代码管理
> 代码获取
,就能得到统计id。
1 | # Baidu Analytics ID |
评论功能
推荐使用[gitment](https://imsun.net/posts/gitment-introduction/)
注册 OAuth Application
点击此处 来注册一个新的 OAuth Application
得到一个 client ID
和一个 client secret
,将被用于之后的用户登录。
gitment配置
配置项如下
1 | # Gitment |
github
授权后的用户就可以评论了
Valine
gitment不太好用,换用Valine
Valine是基于LeanCloud的评论系统,支持图片、emoji等
在LeanCloud上新建一个应用,取得其appId和appKey,修改主题配置文件:
1 | valine: |