1.前言及Hexo介绍
昨天youtube看到hugo,搭建了有点问题,搜索时又看到了hexo 其实之前查资料时也看到了解过,一搜索参考几篇文章就有了这个站点,但是参考文章里要么github里有变化,要么步骤上有不全不详细的地方,总之没有给初次接触者详细参考的;可能本身也不是特别难搭建吧。废话完了。
Hexo 是基于 Node.js 的快速、简洁且高效的博客框架,拥有超快速度、一键部署、支持 Markdown、丰富的插件等优秀的特性。以上是官方对于Hexo的描述,出了以上的描述,利用Hexo搭建个人博客还有以下特点:
- 全是静态文件,访问速度快;
- 免费方便,不用花一分钱就可以搭建一个自由的个人博客,不需要服务器不需要后台;
- 可以随意绑定自己的域名,不仔细看的话根本看不出来你的网站是基于github的;
- 数据绝对安全,基于github的版本管理,想恢复到哪个历史版本都行;
- 博客内容可以轻松打包、转移、发布到其它平台;
1.1准备工作
一个GitHub账户(本文以 WIN环境下 GitHub 为例)
安装Node.js,Node.js 是多平台的,去官网选择相应的系统版本下载安装即可,安装选项全部默认,一路点击
Next
。最后安装好之后,按
Win+R
打开命令提示符,输入node -v
和npm -v
,如果出现版本号,那么就安装成功了。安装Git,
Git
也是多平台的,去官网选择相应的系统版本下载安装即可,安装完成后在命令提示符中输入git --version
验证是否安装成功。
2.设置GitHub博客
2.1. 创建 GitHub 仓库
注册登录后,点右上角头像左边+号,点 New repository ,新建一个名为你的用户名
.github.io
的仓库。比如说,如果你的 GitHub 用户名是rsgdxp,那么你就新建的仓库就是rsgdxp.github.io,网站访问地址也是这个地址。需要注意的是注册github的邮箱一定要验证,否则不会成功
仓库名字必须是:username.github.io,其中username是你的github用户名
2.2. 绑定域名(可选)
本例没有操作,比较好解决。
2.3 设置 GitHub Pages
GitHub Pages
是GitHub
为我们提供的静态页面服务Hexo
就是一个静态博客框架。我们只有开始GitHub Pages
才能使我们的博客生效并且能够被访问。
打开你的GitHub
博客仓库 点击 Settings (设置 )圆圈1 选择一个主题 等待一会儿,圆圈2 开启SSL访问 ,圆圈3 就是上面说的绑定域名了。
3.配置
3.1配置SSH Key
因为你提交代码肯定要拥有你的 GitHub 权限才可以,但是直接使用用户名和密码太不安全了,所以我们使用 SSK key 来解决本地和服务器的连接问题。
桌面空白处(其实建立好hexo目录后 在目录右键也可以),鼠标右键,选择Git bash here 打开终端。
cd ~/. ssh
测试一下是否有 SSH key 的命令,如果提示 No such file or directory或者其它 继续
ssh-keygen -t rsa -C "邮件地址"
这里的邮件地址
最好写注册GitHub
的地址,这样方便以后的管理。敲入代码后连续按3次回车(如果之前操作那么看提示 我就是这样),最终会生成一个文件在用户目录下
git bash中输入
cat ~/.ssh/id_rsa.pub
打开你的 GitHub 主页,进入个人设置 -> SSH and GPG keys -> New SSH key,并将刚刚输出的内容填入 Key 那里。Title 你可以随便起。最后别忘了保存。
3.2. 测试 SSH key是否成功
在终端里面敲入一下命令行并回车:
ssh -T git@github.com
如果提示Are you sure you want to continue connecting (yes/no)?,输入yes 并回车,然后会看到:
Hi rsgdxp! You've successfully authenticated, but GitHub does not provide shell access.
3.3. 配置 Git
在终端里面敲入以下命令行并回车:
git config --global user.name "你的 GitHub 用户名"
git config --global user.email "你的 GitHub 注册邮箱"
4. 搭建 Hexo 博客
4.1. 安装 Hexo
在终端里面敲入以下命令行并回车:
npm install hexo-cli -g
4.2. 初始化 Hexo
在电脑的里新建一个存放你博客文件的文件夹(名字可以随便取),比如我的是 F:\hexo
cd F:\hexo
hexo init
执行完上面代码,等待下载完。然后生成blog文件
hexo g
Hexo 就会在 public 文件夹生成相关 html 文件,这些文件将来都是要提交到 GitHub 去的。
先本地预览一下:
hexo s
根据提示,打开浏览器访问 http://localhost:4000 即可看到内容。默认的主题Licardo一般。
按ctrl+c
关闭
4.3. 修改主题
接下来自己可以替换一个喜欢的主题。这是 官方主题库,里面有很多好看的、实用的主题。
个人比较喜欢的主题是:hexo-theme-matery
,预览 https://blinkfox.github.io/
首先下载这个主题,在终端里面执行下面的命令:
请在稳定版与最新版中二选一
cd F:\hexo\themes
git clone https://github.com/blinkfox/hexo-theme-matery.git # 稳定版
git clone -b develop https://github.com/blinkfox/hexo-theme-matery.git # 最新版
本次我选的最新版 预览:https://rsgdxp.github.io/
然后修改Hexo
的配置文件,让Hexo
使用我们下载的主题来生成博客。找到博客
根目录下的_config.yml
文件,将其中的theme: landscape
改为theme: hexo-theme-matery
这里注意:如果改完报错 can not read a block mapping entry
修改 根目录下的_config.yml文件 后 报这个错
查了半天 冒号后面要有空格;还有说的用中文双引号;还有的说文件编码问题……
突然看到一条网友回复:
还有报下一行的错其实是上一行出问题了。。。
擦 怪不得我修改报错那行半天 怎么改怎么不行,删除还是报错下一行……
然后在终端里面执行下面的命令:
hexo clean
hexo g
hexo s
再次打开浏览器访问 http://localhost:4000 即可看到更改主题之后的样子了。
4.4 上传到 GitHub
首先要配置好Hexo
的配置文件,让Hexo
知道要上传到哪里
修改博客文件夹根目录下的_config.yml
中有关deploy
的部分:
deploy:
type: git
repository: git@github.com:rsgdxp/rsgdxp.github.io.git
branch: master
替换上面rsgdxp为自己github用户名即可。
然后安装 Hexo 上传到 GitHub 的插件,终端里面执行:
npm install hexo-deployer-git --save
最后执行
hexo d
打开你的网站看看效果吧。
4.5 Hexo 相关命令
hexo new "postName" # 新建文章 hexo new page "pageName" # 新建页面 hexo generate # 生成静态页面至public文件夹 hexo server # 开启预览访问端口(默认端口4000,'ctrl + c'关闭server) hexo deploy # 部署到GitHub hexo help # 查看帮助 hexo version # 查看Hexo的版本
缩写:
hexo n == hexo new hexo g == hexo generate hexo s == hexo server hexo d == hexo deploy
4.6 根目录 _config.yml 文件
这里面都是一些Hexo
的全局配置(要区别主题目录里同名文件哦,主题一些个性化定义在此文件修改),每个参数的意思都比较简单明了,所以就不作详细介绍了。
需要特别注意的地方是,冒号后面必须有一个空格,否则可能会出问题
5. 发布文章
hexo new '文章标题'
Hexo 会帮我们在 /source/_posts 文件夹下生成相关 md 格式的文件 ;md
格式是Markdown
文件的格式,所以只要使用规范的Markdown
语法进行书写即可。可以用 Typora 等Markdown
编辑器写文章。
一般完整格式如下:
---
title: postName #文章页面上的显示名称,一般是中文
date: 2020-05-29 15:30:16 #文章生成时间,一般不改,当然也可以任意修改
categories: 默认分类 #分类
tags: [tag1,tag2,tag3] #文章标签,可空,多标签请用格式,注意:后面有个空格
description: 附加一段文章摘要,字数最好在140字以内,会出现在meta的description里面
---
以下是正文
写好文章后 执行
hexo d
我这里实际是需要等待一会儿,刷新网页即可看到最新状态。
参考: