上一篇我们完成了Hexo所需求的环境的部署,本篇文章将会教学你初始化自己的博客,了解博客的文件结构,以及如何修改自己的博客。
初始化你的博客
- 打开CMD
- (可选)输入
cd <你想要存储博客文件夹的目录>
,如果你是第一次搭建博客,我并不推荐你进行修改 - 输入
hexo init <文件夹名称>
,如hexo init myblog
- 输入
cd <文件夹名称>
,如cd myblog
- 输入
npm install
,等待进度条结束即可
CMD输出参考
1 | C:\Users\Lynn>hexo init myblog |
你可以在CMD中输入hexo
来判断是否初始化成功,若输出的结果与下图一致,则成功部署
启动你的博客系统
- 在CMD中输入
cd <文件夹名称>
切换到你的博客文件夹 - 输入
npm install hexo-server --save
- 输入
hexo server
启动你的博客
当你看到以下提示的时候,你的本地服务器就已经可以使用了
1 | INFO Validating config |
在浏览器中访问http://localhost:4000/
,当你看到下面的页面时候,代表你的博客已经成功建立了!
恭喜你,你已经完成了博客建设的绝大部分过程,现在你的博客已经准备好在本地生成了!
接下来,你将要学习博客文件夹的结构和配置文件的内容,这将有助于你对自己的博客更好的自定义
了解博客文件夹的结构
现在,你可以打开你的博客文件夹了,文件夹的目录在CMD中有所显示,如C:\Users\Lynn\myblog
1 | ├── _config.yml |
_config.yml
网站的 配置 信息,您可以在此配置大部分的参数。
package.json
应用程序的信息,包含了所有的依赖文件,请不要删除,我们会在Hexo 进阶篇中教你如何在云端构建并部署博客
1 | package.json{ |
scaffolds
模版 文件夹。当您新建文章时,Hexo 会根据 scaffold 来建立文件。
Hexo的模板是指在新建的文章文件中默认填充的内容。例如,如果您修改scaffold/post.md中的Front-matter内容,那么每次新建一篇文章时都会包含这个修改。
source
资源文件夹是存放用户资源的地方。除 _posts
文件夹之外,开头命名为 _
(下划线)的文件 / 文件夹和隐藏的文件将会被忽略。Markdown 和 HTML 文件会被解析并放到 public
文件夹,而其他文件会被拷贝过去。
themes
主题 文件夹。Hexo 会根据主题来生成静态页面。
学习配置文件的内容
以下内容来自Hexo官网,你可以在阅读后进行修改
博主删除了一些内容,帮助你更好的入门搭建
部分内容将在后续的进阶篇进行教学
大部分博客的设置可以在 _config.yml
中修改
网站
参数 | 描述 |
---|---|
title |
网站标题 |
subtitle |
网站副标题 |
description |
网站描述 |
keywords |
网站的关键词。支持多个关键词。 |
author |
您的名字 |
language |
网站使用的语言。对于简体中文用户来说,使用不同的主题可能需要设置成不同的值,请参考你的主题的文档自行设置,常见的有 zh-Hans 和 zh-CN |
timezone |
网站时区。Hexo 默认使用您电脑的时区。请参考 时区列表 进行设置,如 America/New_York , Japan , 和 UTC 。一般的,对于中国大陆地区可以使用 Asia/Shanghai 。 |
其中,description
主要用于SEO,告诉搜索引擎一个关于您站点的简单描述,通常建议在其中包含您网站的关键词。author
参数用于主题显示文章的作者。
网址
参数 | 描述 | 默认值 |
---|---|---|
url |
网址, 必须以 http:// 或 https:// 开头 |
|
root |
网站根目录 | url's pathname |
permalink |
文章的 永久链接 格式 | :year/:month/:day/:title/ |
permalink_defaults |
永久链接中各部分的默认值 | |
pretty_urls |
改写 permalink 的值来美化 URL |
|
pretty_urls.trailing_index |
是否在永久链接中保留尾部的 index.html ,设置为 false 时去除 |
true |
pretty_urls.trailing_html |
是否在永久链接中保留尾部的 .html , 设置为 false 时去除 (对尾部的 index.html 无效) |
true |
网站存放在子目录
如果您的网站存放在子目录中,例如
http://example.com/blog
,则请将您的url
设为http://example.com/blog
并把root
设为/blog/
。
例如:
1 | # 比如,一个页面的永久链接是 http://example.com/foo/bar/index.html |
目录
参数 | 描述 | 默认值 |
---|---|---|
source_dir |
资源文件夹,这个文件夹用来存放内容。 | source |
public_dir |
公共文件夹,这个文件夹用于存放生成的站点文件。 | public |
tag_dir |
标签文件夹 | tags |
archive_dir |
归档文件夹 | archives |
category_dir |
分类文件夹 | categories |
code_dir |
Include code 文件夹,source_dir 下的子目录 |
downloads/code |
i18n_dir |
国际化(i18n)文件夹 | :lang |
skip_render |
跳过指定文件的渲染。匹配到的文件将会被不做改动地复制到 public 目录中。您可使用 glob 表达式来匹配路径。 |
例如:
1 | skip_render: "mypage/**/*" |
提示
如果您刚刚开始接触 Hexo,通常没有必要修改这一部分的值。
文章
参数 | 描述 | 默认值 |
---|---|---|
new_post_name |
新文章的文件名称 | :title.md |
default_layout |
预设布局 | post |
auto_spacing |
在中文和英文之间加入空格 | false |
titlecase |
把标题转换为 title case | false |
external_link |
在新标签中打开链接 | true |
external_link.enable |
在新标签中打开链接 | true |
external_link.field |
对整个网站(site )生效或仅对文章(post )生效 |
site |
external_link.exclude |
需要排除的域名。主域名和子域名如 www 需分别配置 |
[] |
filename_case |
把文件名称转换为 (1) 小写或 (2) 大写 | 0 |
render_drafts |
显示草稿 | false |
post_asset_folder |
启动 Asset 文件夹 | false |
relative_link |
把链接改为与根目录的相对位址 | false |
future |
显示未来的文章 | true |
highlight |
代码块的设置, 请参考 Highlight.js 进行设置 | |
prismjs |
代码块的设置, 请参考 PrismJS 进行设置 |
相对地址
默认情况下,Hexo 生成的超链接都是绝对地址。例如,如果您的网站域名为
example.com
,您有一篇文章名为hello
,那么绝对链接可能像这样:http://example.com/hello.html
,它是绝对于域名的。相对链接像这样:/hello.html
,也就是说,无论用什么域名访问该站点,都没有关系,这在进行反向代理时可能用到。通常情况下,建议使用绝对地址。
分类 & 标签
参数 | 描述 | 默认值 |
---|---|---|
default_category |
默认分类 | uncategorized |
category_map |
分类别名 | |
tag_map |
标签别名 |
日期 / 时间格式
Hexo 使用 Moment.js 来解析和显示时间。
参数 | 描述 | 默认值 |
---|---|---|
date_format |
日期格式 | YYYY-MM-DD |
time_format |
时间格式 | HH:mm:ss |
updated_option |
当 Front Matter 中没有指定 updated 时 updated 的取值 |
mtime |
updated_option
updated_option
控制了当 Front Matter 中没有指定updated
时,updated
如何取值:
mtime
: 使用文件的最后修改时间。这是从 Hexo 3.0.0 开始的默认行为。date
: 使用date
作为updated
的值。可被用于 Git 工作流之中,因为使用 Git 管理站点时,文件的最后修改日期常常会发生改变empty
: 直接删除updated
。使用这一选项可能会导致大部分主题和插件无法正常工作。
use_date_for_updated
选项已经被废弃,将会在下个重大版本发布时去除。请改为使用updated_option: 'date'
。
分页
参数 | 描述 | 默认值 |
---|---|---|
per_page |
每页显示的文章量 (0 = 关闭分页功能) | 10 |
pagination_dir |
分页目录 | page |
扩展
参数 | 描述 |
---|---|
theme |
当前主题名称。值为false 时禁用主题 |
theme_config |
主题的配置文件。在这里放置的配置会覆盖主题目录下的 _config.yml 中的配置 |
deploy |
部署部分的设置 |
meta_generator |
Meta generator 标签。 值为 false 时 Hexo 不会在头部插入该标签 |
包括或不包括目录和文件
在 Hexo 配置文件中,通过设置 include/exclude 可以让 Hexo 进行处理或忽略某些目录和文件夹。你可以使用 glob 表达式 对目录和文件进行匹配。
include
和 exclude
选项只会应用到 source/
,而 ignore
选项会应用到所有文件夹.
参数 | 描述 |
---|---|
include |
Hexo 默认会不包括 source/ 下的文件和文件夹(包括名称以下划线和 . 开头的文件和文件夹,Hexo 的 _posts 和 _data 等目录除外)。通过设置此字段将使 Hexo 处理他们并将它们复制到 source 目录下。 |
exclude |
Hexo 不包括 source/ 下的这些文件和目录 |
ignore |
Hexo 会忽略整个 Hexo 项目下的这些文件夹或文件 |
举例:
1 | # 处理或不处理目录或文件 |
列表中的每一项都必须用单引号或双引号包裹起来。
include
和 exclude
并不适用于 themes/
目录下的文件。如果需要忽略 themes/
目录下的部分文件或文件夹,可以使用 ignore
或在文件名之前添加下划线 _