1. 安装nodejs

因为Hexo是基于nodejs的,所以要使用Hexo,那么第一步肯定是安装nodejs。安装分为以下几个步骤:

  1. 下载nodejs

  2. 安装nodejs,mac和win下都是安装程序,直接安装就行了,linux下可以通过命令直接从仓库安装也可下载二进制包安装(ps:linux不同发行版本安装命令不一样,这里不再赘述)。安装完成之后可以在终端输入node
    -v和npm -v查看是否安装成功,这两条命令如果都输出了版本号,那么就表示安装成功了。

  3. 安装完成之后因为nodejs的仓库是是国外仓库的原因,所以在下载模块的时候会巨慢(当然,如果你是有过墙梯的人,就当我没说),那么就需要添加国内的仓库。 在终端执行:

1
npm config set registry https://registry.npm.taobao.org

2.安装Hexo

nodejs准备就绪了,那么现在就可以安装Hexo了。执行命令:

1
npm install hexo-cli -g

如果报权限问题就使用root权限来执行命令:

1
sudo npm install hexo-cli -g

安装命令执行完成之后,在终端执行hexo -v如果输出了Hexo的相关信息则表示Hexo已经安装成功

3. 初始化Hexo博客文件夹

找一个好位置,执行命令:

1
hexo init blog // blog 为创建的目录,你可以自己定义

执行后会生成一个blog工程文件夹。进入到 blog工程文件夹。

用于更新nodejs的模块,执行命令:

1
npm install

启动hexo服务,执行命令:

1
hexo server //或者 hexo s

输出如下:

1
2
INFO  Start processing
INFO Hexo is running at http://localhost:4000 . Press Ctrl+C to stop.

说明Hexo的服务已经启动成功了,你可以在你的浏览器访问http://localhost:4000就会出现你的博客(个人网站)主页了。

4. 配置网站

4.1 配置基本信息

在blog工程根文件夹下,找到_config.yml文件,这个文件是Hexo的配置文件,大体如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# Hexo Configuration
## Docs: https://hexo.io/docs/configuration.html
## Source: https://github.com/hexojs/hexo/

# Site
title: 你的博客(个人网站)名称
subtitle: 你的博客(个人网站)子名称
description: '你的博客(个人网站)的描述'
keywords: 你的博客(个人网站)的关键字
author: 你的博客(个人网站)的作者
language: 你的博客(个人网站)语言 en:英文 zh-CN:简体中文
timezone: '时区(可以不用配置)'

# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: 你的博客(个人网站)网址
root: /
permalink: :year/:month/:day/:title/
permalink_defaults:
pretty_urls:
trailing_index: true # Set to false to remove trailing 'index.html' from permalinks
trailing_html: true # Set to false to remove trailing '.html' from permalinks

# Directory
source_dir: source
public_dir: public
tag_dir: tags
archive_dir: archives
category_dir: categories
code_dir: downloads/code
i18n_dir: :lang
skip_render:

# Writing
new_post_name: :title.md # File name of new posts
default_layout: post
titlecase: false # Transform title into titlecase
external_link:
enable: true # Open external links in new tab
field: site # Apply to the whole site
exclude: ''
filename_case: 0
render_drafts: false
post_asset_folder: false
relative_link: false
future: true
highlight:
enable: true
line_number: true
auto_detect: false
tab_replace: ''
wrap: true
hljs: false

# Home page setting
# path: Root path for your blogs index page. (default = '')
# per_page: Posts displayed per page. (0 = disable pagination)
# order_by: Posts order. (Order by date descending by default)
index_generator:
path: ''
per_page: 10
order_by: -date

# Category & Tag
default_category: uncategorized
category_map:
tag_map:

# Metadata elements
## https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta
meta_generator: true

# Date / Time format
## Hexo uses Moment.js to parse and display date
## You can customize the date format as defined in
## http://momentjs.com/docs/#/displaying/format/
date_format: YYYY-MM-DD
time_format: HH:mm:ss
## Use post's date for updated date unless set in front-matter
use_date_for_updated: false

# Pagination
## Set per_page to 0 to disable pagination
per_page: 10
pagination_dir: page

# Include / Exclude file(s)
## include:/exclude: options only apply to the 'source/' folder
include:
exclude:
ignore:

# Extensions
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: landscape

# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: ''

可以把你的博客(个人网站)的信息配置一下,其余的配置可根据自己的需求配置,不需要就默认即可。

配置好了, 更新一下nodejs的模块

1
npm install

再次 hexo s,启动hexo就可以看到变化了。

4.2 配置 好看的theme主题

  1. https://hexo.io/themes/ 网站查看、预览,选择自己喜欢的额主题。
  2. 下载主题源码。解压到:D:\york_workspace\hexo_workspace\blog\themes\
1
2
//BlogShow为下载的 hexo theme 主题源码。
D:\york_workspace\hexo_workspace\blog\themes\BlogShow
  1. 根据主题的使用规则,配置D:\york_workspace\hexo_workspace\blog\themes\BlogShow_config.yml
  2. 在blog工程根文件夹下,找到_config.yml文件,修改配置将 theme: landscape 改为 theme: BlogShow

再次 hexo s,启动hexo就可以看到主题变成了你喜欢的了。

5. 配置网站文章管理器——安装 Hexo-Admin 插件

hexo-admin插件可为hexo提供可视化界面,用来管理博客文章,发布博客。

5.1 安装

博客blog工程根目录打开 git bash,执行命令:

1
npm install --save hexo-admin

5.2 启动hexo服务

1
hexo s

此时应能打开 http://localhost:4000/admin。但是作为管理者,并不希望别人可以进行编辑管理,
所以可以为admin设置访问密码。

5.3 配置Hexo-Admin 插件

点击settings, 在seetings下,点击 “setup authentication here” 链接 输入自定义 username、password 和 Secret
copy生成的“admin config section” 文本,放到博客根目录 _config.yml 配置文件中。内容示例如下:

1
2
3
4
5
# hexo-admin authentification
admin:
username: username
password_hash: $2a$10$L.XAIqIWgTc5S1zpvV3MEu7/rH34p4Is/nq824smv8EZ3lIPCp1su
secret: my super secret phrase

5.4 Hexo-Admin 插件的使用

5.4.1 汉化

找一个汉化bundle.js,替换掉:blog/node_modules/hexo-admin/www/bundle.js

5.4.2 使用说明
  • 文章:点击文章,可查看到文章列表
  • 新建文章:点击 +新增文章,可以新建md文章,输入文件名称,默认为:Untitled.md
  • 分页:点击分页,可查看分页列表。
  • 分页编辑:点击 +新建分页。
  • 部署:点击部署既可以提交最新的内容到github、gitee上。

6. 配置gitee或github的ssh以方便本地电脑访问

使用SSH公钥可以让你在你的电脑和 gitee或github 通讯的时候使用安全连接 (Git的Remote要使用SSH地址)。

配置主要分三个步骤:

  1. 使用秘钥生成工具生成rsa秘钥和公钥
  2. 将rsa公钥添加到代码托管平台
  3. 将rsa秘钥添加到ssh-agent中,为ssh client指定使用的秘钥文件

6.1 在个人电脑上生成SSH密钥

1.检查本地主机是否已经存在ssh key:

1
2
cd ~/.ssh
ls

看是否存在 id_rsa 和 id_rsa.pub文件,如果存在,说明已经有SSH Key。如下则说明存在。

1
id_rsa  id_rsa.pub  known_hosts

2.如果不存在,则生成ssh-key

1
ssh-keygen -t rsa -C "xxx@xxx.com"

执行后一直按回车键即可,不用输入密码,设置了密码那每次提交到远程都需要输入密码,麻烦。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$ ssh-keygen -t rsa -C linux_york@163.com
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/linux/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/linux/.ssh/id_rsa
Your public key has been saved in /c/Users/linux/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:Y5AsJkoyNnlIo4MXOTxvrej7Tv8yqTw4DUo3CrQYtPI linux_york@163.com
The key's randomart image is:
+---[RSA 3072]----+
| +.. |
|+.O. . . |
|B*+=o.+ |
|*Booo... |
|=o.o . S |
|ooEo. . . |
|ooo+o . |
|..+oo.+ |
| .==o.+. |
+----[SHA256]-----+

linux@little-PC MINGW64 ~/.ssh
//查看一下生产的文件。显示如下则说明已生成好了ssh key
$ ls
id_rsa id_rsa.pub known_hosts

3.获取ssh key公钥内容(id_rsa.pub)

1
2
cd ~/.ssh
cat id_rsa.pub

拷贝id_rsa.pub的内容到剪贴板,等待添加到代码托管平台。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
linux@little-PC MINGW64 ~/.ssh
$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDijblE2o0M5M2v35nkO1SasWI08
cuFhiIqaY+tJ42eDxoloVC2jGnJeqtl6dW4uX15lowniXNP0eU0xm4hyI+8ghKOTw
TVkzT2We3Edj/mDivRsScTCxyrZfZdjxo4TEuK6oMY8nAHoIvSgKg4yLehSoETIYS
TLh8xNYeNc6DvUuLv59WgB8GMsxbKSHvsU9JxrbIIAu19mykxpmL24nWDPb/TB+mB
/e5ehoJL9B/f0E8XQ9EmkdIShuj1xDA6F2m1ZmDABVCVZzzELBz4rWZhagjzujaWu
j5gNGqkFFm8pEBXDMGc1tvaMSoJcvqPdVx1uWSCCS/IA3rEglFx4vDiLdWj6+GuvD
PiFgT8tXkotAeSgKqWjX4ZZOerPcp9eapKzEqmzKXbtvYUF4B2VPUuZXkiZp40JOC
f0NBD9mXnJyfBb0VpIAsXtUlAZLXQ5rJmZ9qLBopmQ5M38QmYWz0shQydYaKUokBK
8IEkqSSyi+BcMH3lcZf5kfTOZts7hf0= linux_york@163.com

linux@little-PC MINGW64 ~/.ssh

6.2 配置网站的SSH密钥

以 gitee为例。 主要步骤:

  • 登录gitee,点击个人头像的下拉菜单,选择设置
  • 在设置项找到SSH公钥
  • 添加公钥,添加标题(最好区分一下电脑)、拷贝在粘贴板的ssh key内容。

验证是否设置成功:

1
2
3
4
5
6
linux@little-PC MINGW64 ~
$ ssh -T git@gitee.com
Hi yueshichang! You've successfully authenticated, but GITEE.COM does
not provide shell access.

linux@little-PC MINGW64 ~

设置成功后,即可不需要账号密码pull和push代码.

7. 创建Github/gitee仓库

  1. 登录到Github/gitee主页,新建仓库进入到创建仓库页面。

Repository name: york.github.io 注意:

如果你想直接通过域名就能访问你的博客(个人网站)的话,创建仓库的时候你的仓库名就需要和你注册github/gitee的时候的用户名一样。

例如:用户名为york,创建的仓库名是york,那我访问的时候直接使用york.gitee.io就可以直接访问了。
但是,如果我创建的仓库名和用户名不一样,比如我创建仓库的时候,仓库名为blog,那我访问的时候,就必须要域名+仓库名才能访问。

  1. 选择public。因为接下来需要部署静态网站,private访问不了的。

  2. 点击配置Pages GitHub/Gitee Pages

选择Branch 也就可以供访问了。

8.配置Hexo工程的部署地址。

在blog工程根文件夹下,找到_config.yml文件。在最后配置:

1
2
3
4
deploy:
type: git
repository: https://gitee.com/york/york.gitee.io.git
branch: master

此时需要安装一个上传工具 输入命令:

1
npm install hexo-deployer-git

接下来就可以做一系列创作操作了,开启hexo、用hexo-admin编辑文章、部署文章到github、gitee…… 这里对常用的 hexo 指令做一下说明:

1
2
3
hexo g #生成静态网页 (执行 $ hexo g后会在站点根目录下生成public文件夹, hexo会将"/blog/source/" 下面的.md后缀的文件编译为.html后缀的文件,存放在"/blog/public/ " 路径下)
hexo d #将本地数据部署到远端服务器(如:github、gitee)
hexo s #启动本地hexo服务器。

9.并部署项目

  1. 生成静态网页
1
hexo g

执行 hexo g 后会在站点根目录下生成public文件夹, hexo会将”/blog/source/“ 下面的.md后缀的文件编译为.html后缀的文件, 存放在”/blog/public/ “
路径下

  1. 启动本地hexo,查看效果。
1
hexo s
  1. 若没啥问题,就上传部署到github、gitee。
1
hexo d
  1. 输入网址:york.gitee.io 。即可在查看到自己的网站了。