github/gitee/coding+hexo搭建部署个人博客

一、安装

1、安装 node.js

1
https://nodejs.org/en/	下载安装

2、安装 git

1
https://git-scm.com/	下载安装

3、安装 Hexo

1
执行安装命令 npm install -g hexo-cli

二、建站

1、创建存放博客的文件夹blog

2、在该文件夹下,打开 git bash

3、初始化hexo,在该文件夹下新建所需文件

1
2
   执行命令		hexo init
完成后,执行命令 npm install

4、创建一篇新文章

1
2
3
4
   hexo new [layout] <title>
如果文章标题有空格,则需把整个标题用引号包起来

可以在命令中指定文章的布局(layout),默认为 post,可以通过修改 _config.yml 中的 default_layout 参数来指定默认布局

布局(Layout)

Hexo 有三种默认布局:post、page 和 draft,它们分别对应不同的路径,而自定义的其他布局和 post 相同,都将储存到 source/_posts 文件夹

1
2
3
4
布局	路径
post source/_posts
page source
draft source/_drafts

不要处理我的文章

1
如果你不想你的文章被处理,你可以将 Front-Matter 中的 layout: 设为 false

文件名称

Hexo默认以标题做为文件名称, 但您可编辑 new_post_name 参数来改变默认的文件名称, 举例来说, 设为:

1
2
3
4
5
6
7
8
9
year-:month-:day-:title.md 可让您更方便的通过日期来管理文章

变量 描述
:title 标题(小写, 空格将会被替换为短杠)
:year 建立的年份,比如 2020
:month 建立的月份(有前导零),比如, 04
:i_month 建立的月份(无前导零),比如, 4
:day 建立的日期(有前导零),比如, 07
:i_day 建立的日期(无前导零),比如, 7

草稿

刚刚提到了 Hexo 的一种特殊布局:draft,这种布局在建立时会被保存到 source/_drafts 文件夹,您可通过 publish 命令将草稿移动到 source/_posts 文件夹,该命令的使用方式与 new 十分类似,您也可在命令中指定 layout 来指定布局

1
2
    hexo publish [layout] <title>
草稿默认不会显示在页面中,您可在执行时加上 --draft 参数,或是把 render_drafts 参数设为 true 来预览草稿

模版(Scaffold)

在新建文章时,Hexo 会根据 scaffolds 文件夹内相对应的文件来建立文件,例如:

1
hexo new photo "My Gallery"

在执行这行指令时,Hexo 会尝试在 scaffolds 文件夹中寻找 photo.md,并根据其内容建立文章,以下是您可以在模版中使用的变量:

1
2
3
4
变量	描述
layout 布局
title 标题
date 文件建立日期

Front-matter

Front-matter 是文件最上方以 — 分隔的区域,用于指定个别文件的变量,举例来说:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    title: Hello World
date: 2013/7/13 20:46:25
---

以下是预先定义的参数,您可在模板中使用这些参数值并加以利用

参数 描述 默认值
layout 布局
title 标题
date 建立日期 文件建立日期
updated 更新日期 文件更新日期
comments 开启文章的评论功能 true
tags 标签(不适用于分页)
categories 分类(不适用于分页)
permalink 覆盖文章网址

分类和标签

只有文章支持分类和标签,您可以在 Front-matter 中设置。在其他系统中,分类和标签听起来很接近,但是在 Hexo 中两者有着明显的差别:分类具有顺序性和层次性,也就是说 Foo, Bar 不等于 Bar, Foo;而标签没有顺序和层次

1
2
3
4
5
categories:
- Diary
tags:
- PS3
- Games

分类方法的分歧

如果有过使用WordPress的经验,就很容易误解Hexo的分类方式。WordPress支持对一篇文章设置多个分类,而且这些分类可以是同级的,也可以是父子分类。但是Hexo不支持指定多个同级分类。下面的指定方法:

1
2
3
4
categories:
- Diary
- Life
会使分类Life成为Diary的子分类,而不是并列分类。因此,有必要为您的文章选择尽可能准确的分类。

JSON Front-matter

除了 YAML 外,你也可以使用 JSON 来编写 Front-matter,只要将 — 代换成 ;;; 即可

1
2
3
"title": "Hello World",
"date": "2020/5/27 20:46:25"
;;;

三、配置

在 _config.yml 中修改大部份的配置

1
2
3
4
5
6
title		网站标题
subtitle 网站副标题
description 网站描述
author 您的名字
language 网站使用的语言
timezone 网站时区。Hexo 默认使用您电脑的时区。时区列表。比如说:America/New_York, Japan, 和 UTC

其中,description 主要用于SEO,告诉搜索引擎一个关于您站点的简单描述,通常建议在其中包含您网站的关键词。author 参数用于主题显示文章的作者。)

1
2
3
4
5
6
7
8
参数			描述			默认值
url 网址
root 网站根目录
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/foo/bar/index.html

1
2
pretty_urls:
trailing_index: false

此时页面的永久链接会变为:

http://example.com/foo/bar/

如果网站存放在子目录中,例如 http://yoursite.com/blog,则将 url 设为 http://yoursite.com/blog 并把 root 设为 /blog/

覆盖主题配置

通常情况下,Hexo 主题是一个独立的项目,并拥有一个独立的 _config.yml 配置文件。

你可以在站点的 _config.yml 配置文件中配置你的主题,这样你就不需要 fork 一份主题并维护主题独立的配置文件。

以下是一个覆盖主题配置的例子:

1
2
3
4
5
6
7
# _config.yml
theme_config:
bio: "My awesome bio"

# themes/my-theme/_config.yml
bio: "Some generic bio"
logo: "a-cool-image.png"

最终主题配置的输出是:

1
2
3
4
{
bio: "My awesome bio",
logo: "a-cool-image.png"
}

四、指令

init————————–>

1
2
hexo init [folder]
新建一个网站。如果没有设置 folder ,Hexo 默认在目前的文件夹建立网站

new————————–>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
hexo new [layout] <title>
新建一篇文章。如果没有设置 layout 的话,默认使用 _config.yml 中的 default_layout 参数代替。如果标题包含空格的话,请使用引号括起来
例如:hexo new "post title with whitespace"

参数 描述
-p, --path 自定义新文章的路径
-r, --replace 如果存在同名文章,将其替换
-s, --slug 文章的 Slug,作为新文章的文件名和发布后的 URL
默认情况下,Hexo 会使用文章的标题来决定文章文件的路径。对于独立页面来说,Hexo 会创建一个以标题为名字的目录,并在目录中放置一个 index.md 文件。你可以使用 --path 参数来覆盖上述行为、自行决定文件的目录:

hexo new page --path about/me "About me"
以上命令会创建一个 source/about/me.md 文件,同时 Front Matter 中的 title 为 "About me"

注意!title 是必须指定的!如果你这么做并不能达到你的目的:

hexo new page --path about/me
此时 Hexo 会创建 source/_posts/about/me.md,同时 me.md 的 Front Matter 中的 title 为 "page"。这是因为在上述命令中,hexo-cli 将 page 视为指定文章的标题、并采用默认的 layout。

generate————————–>

1
2
3
4
5
6
7
8
9
10
11
12
hexo generate
生成静态文件
该命令可以简写为: hexo g

选项 描述
-d, --deploy 文件生成后立即部署网站
-w, --watch 监视文件变动
-b, --bail 生成过程中如果发生任何未处理的异常则抛出异常
-f, --force 强制重新生成文件
Hexo 引入了差分机制,如果 public 目录存在,那么 hexo g 只会重新生成改动的文件。
使用该参数的效果接近 hexo clean && hexo generate
-c, --concurrency 最大同时生成文件的数量,默认无限制

publish————————–>

1
2
hexo publish [layout] <filename>
发表草稿

server————————–>

1
2
3
4
5
6
7
8
hexo server
启动服务器。默认情况下,访问网址为:http://localhost:4000/
该命令可以简写为: hexo s

选项 描述
-p, --port 重设端口
-s, --static 只使用静态文件
-l, --log 启动日记记录,使用覆盖记录格式

deploy————————–>

1
2
3
4
5
6
hexo deploy
部署网站
该命令可以简写为: hexo d

参数 描述
-g, --generate 部署之前预先生成静态文件

render————————–>

1
2
3
4
5
hexo render <file1> [file2] ...
渲染文件

参数 描述
-o, --output 设置输出路径

migrate————————–>

1
2
3
hexo migrate <type>

从其他博客系统 迁移内容

clean————————–>

1
2
3
4
5
6
hexo clean

清除缓存文件 db.json 和已生成的静态文件 public


在某些情况(尤其是更换主题后),如果发现您对站点的更改无论如何也不生效,您可能需要运行该命令

list————————–>

1
2
3
hexo list <type>

列出网站资料

version————————–>

1
2
3
hexo version

显示 Hexo 版本

选项————————–>

安全模式

1
2
3
hexo --safe

在安全模式下,不会载入插件和脚本。当您在安装新插件遭遇问题时,可以尝试以安全模式重新执行

调试模式

1
2
3
hexo --debug

在终端中显示调试信息并记录到 debug.log。当您碰到问题时,可以尝试用调试模式重新执行一次,并 提交调试信息到 GitHub

简洁模式

1
2
hexo --silent
隐藏终端信息

自定义配置文件的路径

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
使用 custom.yml 代替默认的 _config.yml
hexo server --config custom.yml

使用 custom.ymlcustom2.json,其中 custom2.json 优先级更高
hexo generate --config custom.yml,custom2.json,custom3.yml

自定义配置文件的路径,指定这个参数后将不再使用默认的 _config.yml
可以使用一个 YAMLJSON 文件的路径,也可以使用逗号分隔(无空格)的多个 YAMLJSON 文件的路径。
例如:
使用 custom.yml 代替默认的 _config.yml
hexo server --config custom.yml

使用 custom.yml, custom2.jsoncustom3.yml,其中 custom3.yml 优先级最高,其次是 custom2.json
hexo generate --config custom.yml,custom2.json,custom3.yml

当指定了多个配置文件以后,Hexo 会按顺序将这部分配置文件合并成一个 _multiconfig.yml。如果遇到重复的配置,排在后面的文件的配置会覆盖排在前面的文件的配置。这个原则适用于任意数量、任意深度的 YAMLJSON 文件。

显示草稿

1
2
hexo --draft
显示 source/_drafts 文件夹中的草稿文章

自定义 CWD

1
2
hexo --cwd /path/to/cwd
自定义当前工作目录(Current working directory)的路径

五、关于ssh密钥

1、检查现有密钥

① 打开 Git Bash。

② 输入 ls -al ~/.ssh 以查看是否存在现有 SSH 密钥:

1
2
$ ls -al ~/.ssh
# Lists the files in your .ssh directory, if they exist

③ 检查目录列表以查看是否已经有 SSH 公钥。 默认情况下,公钥的文件名是以下之一:

1
2
3
id_rsa.pub
id_ecdsa.pub
id_ed25519.pub

2、github

生成新 SSH 密钥

① 打开 Git Bash。

② 粘贴下面的文本(替换为您的 GitHub 电子邮件地址)。

1
2
3
4
5
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

这将创建以所提供的电子邮件地址为标签的新 SSH 密钥。

Generating public/private rsa key pair.

③ 提示“Enter a file in which to save the key(输入要保存密钥的文件)”时,按 Enter 键。 这将接受默认文件位置。

1
Enter a file in which to save the key (/c/Users/you/.ssh/id_rsa):[Press enter]

④ 在提示时输入安全密码。

1
2
3
Enter passphrase (empty for no passphrase): [Type a passphrase]

Enter same passphrase again: [Type passphrase again]

3、gitee

生成/添加新 SSH 密钥

码云提供了基于SSH协议的Git服务,在使用SSH协议访问仓库仓库之前,需要先配置好账户/仓库的SSH公钥。

可以按如下命令来生成 sshkey:

1
2
ssh-keygen -t rsa -C "xxxxx@xxxxx.com"  
# Generating public/private rsa key pair...

按照提示完成三次回车,即可生成 ssh key。通过查看 ~/.ssh/id_rsa.pub 文件内容,获取到你的 public key

1
2
3
cat ~/.ssh/id_rsa.pub

# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....

复制生成后的 ssh key,通过仓库主页 「管理」->「部署公钥管理」->「添加部署公钥」 ,添加生成的 public key 添加到仓库中。

添加后,在终端(Terminal)中输入

1
2
3
4
ssh -T git@gitee.com
首次使用需要确认并添加主机到本机SSH可信列表。若返回:
Hi XXX! You've successfully authenticated, but Gitee.com does not provide shell access.
则证明添加成功。

4、coding

生成新 SSH 密钥

打开命令行终端输入 ssh-keygen -m PEM -t rsa -b 4096 -C “your.email@example.com“( 邮箱),连续点击 Enter 键即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
ssh-keygen -t rsa -b 4096 -C "your.email@example.com"
# Creates a new ssh key, using the provided email as a label
# Generating public/private rsa key pair.
Enter file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter] // 推荐使用默认地址

Enter passphrase (empty for no passphrase): //此处点击 Enter 键即可,也可以填写密码,填写密码后每次使用 SSH 方式推送代码时都会要求输入密码,由于这个 Key 也不是用于军事目的,所以也无需设置密码。

若需要使用多个 SSH 密钥对(您可能同时在多个代码托管平台工作),在提示“Enter file in which to save the key” 时,输入一个新的文件名称就不会覆盖默认的密钥对。

成功之后显示如下信息:
Your identification has been saved in /Users/you/.ssh/id_rsa.
# Your public key has been saved in /Users/you/.ssh/id_rsa.pub.
# The key fingerprint is:
# 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your.email@example.com

添加公钥

CODING 提供账户 SSH 公钥和项目 SSH 公钥设置。本质上账户公钥和部署公钥是一样的,只是关联的方式不同。

一个 SSH 公钥文件,如果和 CODING 账户关联,便称为账户 SSH 公钥,配置后拥有账户下所有项目的读写权限;如果和某一个项目关联,则称为部署公钥,配置后默认拥有该项目的只读权限。

添加账户公钥

① 在终端输入 open ~/.ssh,用文本编辑器打开 id_rsa.pub 文件(此处是生成公钥的默认名称,如果生成公钥时采用了其他名称,打开相对应的文件即可),复制全部内容。

② 登录 CODING ,点击右上角【个人设置】,选择菜单【SSH 公钥】,点击【新增公钥】按钮。

③ 将第一步中复制的内容填写到【公钥内容】一栏,公钥名称按需填写即可。

④ 设定公钥有效期,可选择具体日期或设置永久有效。

⑤ 点击【添加】,然后输入账户密码即可成功添加公钥。

⑥ 完成后在命令行测试,首次建立链接会要求信任主机。命令 :

1
ssh -T git@e.coding.net

添加部署公钥

① 在终端输入 open ~/.ssh,用文本编辑器打开 id_deploy.pub 文件(此处部署公钥名称为 id_deploy.pub,在生成部署公钥的时候完全可以自定义名称),复制全部内容。

② 登录 CODING,进入目标项目,点击【代码仓库】-> 【仓库设置】-> 【部署公钥】->【新建部署公钥】。

③ 将第一步中复制的内容填写到【公钥内容】一栏,公钥名称自定义。

④ 点击【新建】,然后输入账户密码即可成功添加部署公钥

⑤ 部署公钥默认拥有该项目的只读权限,如果需要获取推送权限,请勾选部署公钥设置里的【授予推送权限】。

Hexo Next主题美化

Hexo Next主题美化

Hexo Next主题美化2.0

点击查看

本文标题:github/gitee/coding+hexo搭建部署个人博客

文章作者:Mango

发布时间:2020年05月06日 - 21:23:42

最后更新:2023年08月22日 - 15:44:10

原始链接:https://mango185.github.io/post/7d43abd0.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------------本文结束 感谢您的阅读-------------------