折腾Hexo这货已经有一段时间了,之前也不愿意去看官方文档,到处搜索如何搭建,如何设置等等,但是有时也无法找到自己想要的内容,于是只能研究官方文档了,奈何是英文的,从没有完整看完。最近静下心来,把Hexo Docs从头看了一遍,将官方文档的大体内容翻译(当然谈不上翻译,只是列出主要内容)了一下,这里只是用自己的话介绍一下主要功能,无用的东西就省略了。
官方Docs分为了4个部分,分别为:开始准备、基础用法、自定义、其他。Hexo的主要内容是在基础用法和自定义这两部分上。
这部分主要介绍了什么是Hexo、如何安装以及基本配置。
Hexo是一个快速的、简单的、功能强大的博客框架。你可以通过Markdown语言写文章,然后hexo帮你生成一个带有漂亮主题的静态页面。
1、安装
安装hexo的前提是要有Node.js以及Git,至于什么是Git和Node以及如何安装他们可以自行搜索了解。
安装完Node以及Git后,通过下面的命令安装Hexo:
npm install -g hexo-cli
2、启动
在电脑中找个目录,并进入目录,执行下面几个命令,hexo就准备就绪了。
hexo init
npm install
上面两条命令,第一条是初始化目录,会自动生成一些基础文件和目录,第二条命令是安装运行hexo的一些必要的组件。
OK,运行完,你会看到你的当前目录下,会自动创建一些目录,如下:
.
├── _config.yml
├── package.json
├── scaffolds/
├── scripts/
├── source/
| ├── _drafts
| └── _posts
└── themes/
下面依次介绍上面各个文件或者目录的用途:
-
_config.yml
站点配置文件,很多全局配置都在这个文件中。 -
package.json
应用数据。从它可以看出hexo版本信息,以及它所默认或者说依赖的一些组件。 -
scaffolds
模版文件。当你创建一篇新的文章时,hexo会依据模版文件进行创建,主要用在你想在每篇文章都添加一些共性的内容的情况下。 -
scripts
放脚本的文件夹, 就是放js文件的地方 -
source
这个文件夹就是放文章的地方了,除了文章还有一些主要的资源,比如文章里的图片,文件等等东西。这个文件夹最好定期做一个备份,丢了它,整个站点就废了。 -
themes
主题文件夹。
3、配置
前面说了,主要配置就是_config.yml这个文件了,所以来看看怎么配置它了。配置也是分了几个大块的。
(1)首先是Site部分,也就是站点的一些参数设置:
-
title
站点名字,也就是html的title,会显示在浏览器标签上。 -
subtitle
站点副标题,会显示在首页上,可以不填。 -
description
站点描述,可以不填。 -
author
作者 -
language
语言 -
timezone
站点时区,默认是电脑时间
(2)接下来是URL部分设置:
-
url
站点网址 -
root
站点根目录 -
permalink
文章的永久网址链接,默认是:year/:month/:day/:title/
,指的什么意思?比如我一篇叫『love』的文章是在2012年1月1日写的,那么它对应的链接就是http://yoururl/2012/01/01/love/
, permalink_default
如果网址是次级目录,比如:http://example.com/blog,那么就要设置
url
为http://example.com/blog
,并且root
要设置为/blog/
。
(3)再接下来就是目录配置:
-
source_dir
source目录,默认值为source -
public_dir
public目录,静态网站生成的地方,默认值为public -
tag_dir
tag目录 -
archive_dir
Archive目录 -
category_dir
分类目录 -
code_dir
代码目录 -
i18n_dir
i18n目录 -
skip_render
不想被渲染的路径
上面这一部分的值,我基本上没有改过,默认的就行了。
(4)接着是写作配置了:
-
new_post_name
新建文章默认文件名,默认值为 :title.md,比如你执行命令hexo new hello
,就会默认在_post目录下创建一个hello.md的文件。 -
default_layout
默认布局 titlecase
-
external_link
在新标签中打开一个外部链接,默认为true -
filename_case
转换文件名,1代表小写;2代表大写;默认为0,意思就是创建文章的时候,是否自动帮你转换文件名,默认就行,意义不大。 -
render_drafts
是否渲染_drafts目录下的文章,默认为false -
post_asset_folder
是否启用Asset Folder,默认为false,至于什么是Asset Folder,后面有讲解。 -
future
是否显示未来日期文章,默认为true -
highlight
代码块设置
这一部分也可以基本不变,默认值就行。
(5)接下来是分类和标签的设置:
-
default_category
默认分类,默认为无分类,当然你可以设置一个默认分类。 -
category_map
分类,不明白其作用 -
tag_map
标签,不明白其作用
(6)日期和时间格式配置:
Hexo使用的Moment.js来处理时间的。
-
data_format
日期格式,默认为MMM D YYYY,不过我将它改成了YYYY-MM-DD,符合个人口味,其他格式模版可以查看Moment.js -
time_format
时间格式,默认为H:mm:ss
(7)分页设置:
-
per_page
一页显示多少篇文章,0 为不分页,默认值为 10 -
pagination_dir
分页目录,默认值为page
(8)最后就是扩展配置:
-
theme
主题配置,此处填上主题名就OK了,当然在themes目录下一定要有你配置的主题文件夹。 -
deploy
部署配置,将本地public目录也就是网站部署到服务器上的配置。如何部署?Docs文档『基础用法』部分有说明。
4、命令
这块主要介绍了hexo的一些命令的使用方法。
-
hexo init [folder]
,使用该命令初始化一个站点,不加目录参数,就初始化当前目录 -
hexo new [layout] <title>
,创建一篇文章,如果不指定layout,那么就使用_config.yml
中default_layout
的值,标题中如果有空格,将整个title放到引号中。比如,hexo new "hello world"
创建一篇叫hello world的文章。 -
hexo generate
,简单的说,这个命令就是将md
格式的文章,生成静态网页。这个命令可以简写为hexo g
,它有两个参数选项:-
-d
,--deploy
生成完后直接部署 -
-w
,--watch
查看文件的改变
-
-
hexo publish [layout] <filename>
,发布一个草稿 -
hexo server
,启动一个本地服务,可以在本地查看网站,默认启动http://localhost:4000
,貌似这个不是默认,运行命令的时候可以查看提示消息。它也有一些参数:-
-p
,--port
指定端口 -
-s
,--static
仅服务静态文件 -
-l
,--log
开启日志
-
-
hexo deploy
部署站点,可以缩写hexo d
,有一个参数,hexo d -g
表示在部署前先重新生成一下站点 -
hexo render <file1> [file2] ...
渲染文件,具体我也不太明白这是干嘛的 -
hexo migrate <type>
迁移其他博客系统的命令,具体怎么使用DOCS后面有介绍。 -
hexo clean
删除缓存文件db.json以及生成的public目录,当你修改了某些样式或者配置时,如果发现hexo g
后也没有反应,就可以执行一下这个命令。 -
hexo list
没用过 -
hexo version
显示版本信息 -
hexo --safe
安全模式,使所有插件和脚本不生效 -
hexo --dehug
调试模式 -
hexo --silent
静默模式,不在终端上显示任何信息 -
hexo --config custom.yml
使用一个自定义配置文件替换默认_config.yml
-
hexo --draft
显示草稿文章(位于source/_drafts目录下) -
hexo --cwd /path/to/cwd
自定义当前工作目录路径,假如你没在工作目录下,可以使用这个命令指定一下工作目录路径。
5、迁移
从其他博客站点迁移文章到hexo中,像类似Jekyll和Octopress只要把.md的文章拷贝过来就OK了,还有一些需要安装插件。
(1)RSS
首先安装插件npm install hexo-migrator-rss --save
,待安装完成后,运行命令hexo migrate rss <source>
就可以从RSS迁移所有文章了。source
可以是一个文件路径或者URL
(2)Jekyll & Octopress
直接拷贝_posts文件夹里的文章到hexo的source/_posts
就OK了,然后修改new_post_name
参数为对应文章title命名规则就行了,如:year-:month-:day-:title.md
(3)WordPress
安装插件npm install hexo-migrator-wordpress --save
,使用WordPress导出功能导出文章,然后运行命令hexo migrate wordpress <source>
,source
为导出文件
(4)Joomla
安装插件npm install hexo-migrator-joomla --save
,使用J2XML
组件导出Joomla文章,然后运行命令hexo migrate joomla <source>
,source
为导出文件
导出或者导入,可能出现一些问题,可以自行百度搜索。