为什么我要选hexo?
一直以来想要自己搭个博客,甚至有想建站搭个动态博客的想法,但是败给了懒……
然后在逛一些大大的blog时发现,他们的博文写的好也就算了,为啥界面还这么好看,然后就就发现了hexo这个草鸡漂亮而且方便好用的blog框架,好吧,种草许久了,早就想拔呢,最近这段时间也想把先前写在wiznote中的笔记转出来,好吧,那让我们开始愉快的动手吧。
工具准备(带把小铁锤开始我们的工作吧)
tool | link |
---|---|
git | https://git-scm.com/ |
node.js | https://nodejs.org/en/ |
github pages | https://pages.github.com/ |
上面列举的工具就是我们接下来会用到的啦,请大家根据需要自行去官网下载:-O
因为我是用的linux-ubantu,所以git是自带的,我需要准备工具
只有node.js呢,当然我会在后面给出相关工具安装使用的帖子,希望能帮到大家。
node.js的安装
好吧,Linux下好像不需要装,下载后解压即用,真刺激。需要注意的是为了方便使用,我们最好需要对node,和npm做两个全局的链接。1
2
3
4# 我将node.js执行文件解压后放在了 /usr/local/node/呢,当然这个你们随意啦
# ln(link) -s (建一个软链接) 源文件(解压后的目录下的程序) 目标文件(生成的链接文件)
ln -s /usr/local/node-v6.10.2/bin/node /usr/local/bin/node
ln -s /usr/local/node-v6.10.2/bin/npm /usr/local/bin/npmhexo安装
hexo安装命令就在他们的官网首页,相当的简单,just one!1
2# 可能我们需要给hexo也配置下全局的一个链接,同上
npm install hexo-cli -g
到此我们需要的工具准备完毕了,如果大家在安装过程中遇到了什么困难,可以参考下面的文档或blog
开始用它之前尝试了解它吧
hexo给我们提供了详尽的文档,很多具体的细节需要我们去通读一遍hexo docs,下面是我自己对文档内容的一些梳理。
建站
1 | hexo init blog |
上面的几条命令是建站的基本命令了,其中npm install默认是安装需要的工具,其中包括了我们的hexo server,所有安装的工具都可以在根目录下的package.json中看到了。
hexo init 之后,整个文件夹变为我们的工作目录,目录结构如下:
1 | . |
文件 | 作用 |
---|---|
_config.yml | 我们配置的主要信息都在这,网站标题,url,站点存放目录,主题,模板设置等,详情 |
package.json | 已经安装的工具信息 |
scaffolds | 模板文件,我们的每篇blog肯定有一些相同的内容,如开头的front-matter,默认scaffolds文件夹中包含3个模板,post.md,page.md,drafts.md对应了我们三种layout(布局) |
source | 存放一些源文件,包括我们的blog.md,在_post中存放那个的是以hexo [layout,default post] new title.md建立的文件 |
themes | 主题,你可以在hexo-themes挑选一个自己喜欢的主题替换默认的landscape,我使用了litten大大的yilia主题 |
修改配置文件
我们需要简单修改下默认的_config.yml文件,替换为自己的一些信息就可以使用呢,详情参考
一般来说,我们仅需要修改下面几个相关内容的配置就可以使用了
- 网站
参数 | 说明 |
---|---|
title | 网站的标题 |
description | 网站的描述 |
author | 作者 |
language | 网站使用的语言 |
- 网址
参数 | 说明 |
---|---|
url | 你blog的url,比如使用的是github pages,那么改为https:username.github.io |
root | 根目录,一般为/,如果你想把部署的静态文件放在网站的二级目录www.xxx.com/blog下,设置为/blog |
- 目录
配置工作目录的一些信息,比如源文件,标签文件,分类文件存放在那些目录下,对于新手来说,不需要更改此部分的配置
- 文章
对于文章的一些设置,如设置标题格式,文章默认布局,是否显示草稿等
写作
我们开始写作时,需要新建一篇文章,使用hexo new ‘xxx.md’,这个命令会在source的_post中生成一个xxx.md文件,我们可以在scaffolds中建立自己的layout模板文件,使用自己的模板新建文章
1 | # post是我们配置的默认模板,可以省略不写 |
对于写好的文章,我们通过hexo g
or hexo generate
来生成静态文件,这些文件存放在public文件夹中,也是我们需要部署到网站上的文件,包括一些配置文件,html,css,js,img等。
部署blog
部署blog的方式有很多种,官方提供了多样化的部署方式,我们本次采用的方式是基于git部署我们的blog到github page上去,需要安装一个新的工具
1 | npm install hexo-deployer-git --save |
修改配置文件_config.yml1
2
3deploy:
type: git
repo: git@github.com:llcat/llcat.github.io.git
部署1
2
3hexo deploy
# 或者用简称
hexo d
使用过程中的一些错误
自己出现的一些错误
开启了post_asset_folder: true后
将图片放在相应文件夹下时,使用hexo g生成文件时报错如下
FATAL ENOTDIR: not a directory, open ‘/home/ypl/StudyNotes/blog/public/java/了解Map容器/2017-04/abstract_map.jpg’
说找不到这个文件夹,百度了一圈后发现是在_config.yml文件中一个设置出现了错误,在year-:month后少打了一个反斜线,hexo认为我配置的这个永久链接是个文件,不是文件夹,更改配置如下后正常
permalink: :category/:title/:year-:month/