前言
参考Hexo官方文档。新手时期写的水文,熟悉之后就觉得没什么用了,有问题可以翻官方最新的文档,自己写的可能已经过时。当然自己抄一遍之后记忆会更加深刻。
Hexo目录
1 2 3 4 5 6 7 8 9 10 11 12
| . ├── _config.yml # 站点配置文件 ├── package.json # npm配置 ├── scaffolds # 模版 文件夹。当您新建文章时,Hexo 会根据 scaffold 来建立文件。 ├── source # 子文件夹相当于一个个页面(page),每个页面对应一个布局文件,可以修改主题里的配置文件改变样式 | ├── _drafts # 草稿页面:存放所有草稿 | ├── _posts # 文章页面:存放所有文章,所有文章都是同一个布局 | ├── about # 关于页面 | ├── categories # 分类页面 | ├── tags # 标签页面 | └──……………… └── themes # 主题
|
Hexo一些基本概念
Front-matter
前页(扉页、版权页、目次等),位于文章最上方---
分隔的区域,做一些变量声明和配置。也可以用json格式,使用;;;
分隔
参数 |
描述 |
默认值 |
layout |
布局 |
|
title |
标题 |
|
date |
建立日期 |
文件建立日期 |
updated |
更新日期 |
文件更新日期 |
comments |
开启文章的评论功能 |
true |
tags |
标签(不适用于分页),无顺序 |
|
categories |
分类(不适用于分页),有顺序 |
|
permalink |
覆盖文章网址 |
|
模板(Scaffold)
模板决定了网站内容的呈现方式,可以根据模板生成初始化文章
模板 |
用途 |
回调 |
index |
首页 |
post |
post |
文章 |
index |
page |
分页 |
index |
archive |
归档 |
index |
category |
分类归档 |
archive |
tag |
标签归档 |
archive |
局部模版(Partial)
可以在不同模板之间共享相同的组件,例如页首(Header)、页脚(Footer)或侧边栏(Sidebar)等,可利用局部模板功能分割为个别文件,让维护更加便利
布局(Layout)
如果页面结构类似,例如两个模板都有页首(Header)和页脚(Footer),您可考虑通过「布局」让两个模板共享相同的结构。一个布局文件必须要能显示 body 变量的内容,如此一来模板的内容才会被显示
变量
全局变量
变量 |
描述 |
site |
网站变量 |
page |
针对该页面的内容以及 front-matter 所设定的变量。 |
config |
网站配置 |
theme |
主题配置。继承自网站配置。 |
_ (单下划线) |
Lodash 函数库 |
path |
当前页面的路径(不含根路径) |
url |
当前页面的完整网址 |
env |
环境变量 |
网站变量
变量 |
描述 |
site.posts |
所有文章 |
site.pages |
所有分页 |
site.categories |
所有分类 |
site.tags |
所有标签 |
页面变量
页面(page)
变量 |
描述 |
page.title |
页面标题 |
page.date |
页面建立日期(Moment.js 对象) |
page.updated |
页面更新日期(Moment.js 对象) |
page.comments |
留言是否开启 |
page.layout |
布局名称 |
page.content |
页面的完整内容 |
page.excerpt |
页面摘要 |
page.more |
除了页面摘要的其余内容 |
page.source |
页面原始路径 |
page.full_source |
页面的完整原始路径 |
page.path |
页面网址(不含根路径)。我们通常在主题中使用 url_for(page.path) 。 |
page.permalink |
页面的完整网址 |
page.prev |
上一个页面。如果此为第一个页面则为 null 。 |
page.next |
下一个页面。如果此为最后一个页面则为 null 。 |
page.raw |
文章的原始内容 |
page.photos |
文章的照片(用于相簿) |
page.link |
文章的外部链接(用于链接文章) |
文章(post):和 page
布局类似,但是添加了下列变量。
Variable |
Description |
page.published |
如果该文章已发布则为True |
page.categories |
该文章的所有分类 |
page.tags |
该文章的所有标签 |
首页(index)
变量 |
描述 |
page.per_page |
每页显示的文章数量 |
page.total |
总文章数 |
page.current |
目前页数 |
page.current_url |
目前分页的网址 |
page.posts |
本页文章 |
page.prev |
上一页的页数。如果此页是第一页的话则为 0 。 |
page.prev_link |
上一页的网址。如果此页是第一页的话则为 '' 。 |
page.next |
下一页的页数。如果此页是最后一页的话则为 0 。 |
page.next_link |
下一页的网址。如果此页是最后一页的话则为 '' 。 |
page.path |
当前页面的路径(不含根目录)。我们通常在主题中使用 url_for(page.path) 。 |
归档 (archive):与 index
布局相同,但新增以下变量。
变量 |
描述 |
page.archive |
等于 true |
page.year |
年份归档 (4位) |
page.month |
月份归档 (没有前导零的2位数) |
分类 (category):与 index
布局相同,但新增以下变量。
标签 (tag):与 index
布局相同,但新增以下变量。
Hexo常用命令
安装插件
命令 |
解释 |
npm install -g hexo-cli |
安装hexo插件 |
npm update -g hexo-cli |
升级 |
npm install hexo-deployer-git –save |
安装部署git插件 |
hexo –version、hexo -v |
查看版本 |
hexo list |
列出网站资料 |
简写
简写 |
完整 |
解释 |
hexo n “我的博客” |
hexo new “我的博客” |
新建文章 |
hexo p |
hexo publish |
发表草稿 |
hexo g |
hexo generate |
生成, |
hexo s |
hexo server |
启动服务预览 |
hexo d |
hexo deploy |
将.deploy目录部署到GitHub |
基本流程
命令 |
解释 |
hexo init [folder] |
新建站点。如果没有设置 folder ,Hexo 默认在目前的文件夹建立站点。 |
hexo server |
启动服务,监视文件变动并自动更新,无须重启服务器。默认地址:http://localhost:4000/ |
hexo server -s |
静态模式,只使用静态文件 |
hexo server -p 5000 |
指定服务端口启动,默认4000 |
hexo server -i 192.168.1.1 |
自定义 IP,默认localhost |
hexo server -l |
启动日记记录,使用覆盖记录格式 |
hexo clean |
清除缓存文件 (db.json ) 和已生成的静态文件 (public )。 |
hexo g |
生成静态网页至public目录 |
hexo g –watch |
监视文件变动 |
hexo d |
部署网站 |
写作
hexo new [layout] <title>
:新建文章。如果指定设置 layout
的话,默认使用站点配置文件 _config.yml 中的 default_layout
参数(默认为post)代替。如果标题包含空格的话,使用引号括起来。
- hexo new post 文章名:新建文章,会在
source/_post/
目录下新建文件
- hexo new draft 草稿名:新建草稿,会在
source/_draft/
目录下新建文件
- hexo new page 页面名:新建页面,会生成
source/页面名/index.md
,如关于、分类、标签
可以自定义模版,在scaffolds
目录下新建或修改模版文件,hexo new
会从scaffolds
文件夹下找到对应的模版,生成文件。
其他选项
命令 |
解释 |
hexo –safe |
在安全模式下,不会载入插件和脚本。安装新插件遭遇问题时,可以尝试以安全模式重新执行 |
hexo –debug |
在终端中显示调试信息并记录到 debug.log |
hexo –silent |
隐藏终端信息 |
hexo –config custom.yml |
自定义配置文件的路径,执行后将不再使用 _config.yml |
hexo –draft |
显示 source/_drafts 文件夹中的草稿文章 |
hexo –cwd /path/to/cwd |
自定义当前工作目录(Current working directory)的路径。 |
Hexo配置参数说明
站点配置文件:站点根目录/_config.yml
字段 |
说明 |
title |
网站标题 |
subtitle |
副标题 |
description |
描述、签名 |
keywords |
博客关键字,利于SEO(搜索引擎优化) |
author |
作者、昵称 |
language |
语言,如zh-Hans |
timezone |
时区 |
theme |
主题 |
deploy |
部署网站 |
permalink |
永久链接 |
1 2 3 4
| deploy: type: 部署方式,如git repo: 仓库地址 branch: 分支名
|
permalink配置示例:
使用hexo new post "文章"
生成文章时会自动命名,并且生成静态文件时会生成相应的文件夹路径。
参数 |
结果 |
:year/:month/:day/:title/ |
2013/07/14/hello-world |
:year-:month-:day-:title.html |
2013-07-14-hello-world.html |
:category/:title |
foo/bar/hello-world |
permalink变量
| 变量 | 描述 |
| ————- | ———————————————————- |
| :year
| 文章的发表年份(4 位数) |
| :month
| 文章的发表月份(2 位数) |
| :i_month
| 文章的发表月份(去掉开头的零) |
| :day
| 文章的发表日期 (2 位数) |
| :i_day
| 文章的发表日期(去掉开头的零) |
| :title
| 文件名称 |
| :post_title
| 文章标题 |
| :id
| 文章 ID |
| :category
| 分类。如果文章没有分类,则是 default_category
配置信息。 |
Hexo图片路径配置
Hexo Markdown文章中使用图片需要将图片放到source/images
文件夹下,通过![](/images/图片名称)
引用。
这种方式在Typora中无法预览图片
解决方案:
- 修改_config.yml文件:
post_asset_folder: true
- 使用
hexo new post 文章名称
时,会创建相同名称的文件夹
- 将要引用的图片放到该文件夹下
- 安装插件:
npm install https://github.com/CodeFalling/hexo-asset-image
- 文章中引用图片路径:
![](文件夹名称/图片名称)
Hexo支持mermaid图表
- 安装插件:
npm install hexo-filter-mermaid-diagrams
- 旧版本配置步骤多一点
- 新版本直接在主题配置文件中启用mermaid即可
1 2 3 4 5 6
|
mermaid: enable: true theme: forest
|