1 、前言
使用github pages服务搭建博客的好处有:
- 全是静态文件,访问速度快;
- 免费方便,不用花一分钱就可以搭建一个自由的个人博客,不需要服务器不需要后台;
- 可以随意绑定自己的域名,不仔细看的话根本看不出来你的网站是基于github的;
- 数据绝对安全,基于github的版本管理,想恢复到哪个历史版本都行;
- 博客内容可以轻松打包、转移、发布到其它平台;
- 等等;
1.1、工欲善其事,必先利其器
在开始之前首先以下内容你已具备:
- 一个github账号,没有的花可以去github.com注册一个,很简单的
- 您的系统安装了nodejs,npm,git并且了解最基本的使用方法
本文将使用以下环境:
- 系统:ubuntu: Linux 5.3.0-45-generic linux x64
- hexo-cli: 3.1.0
- node: 12.16.1
- npm: 6.13.4
- git: 2.20.1
2、github配置:
新建仓库: 新建一个名为你的用户名.github.io的仓库,比如说,如果你的github用户名是test,那么你就新建test.github.io的仓库
需要注意:
- 仓库名字必须是:username.github.io,其中username是你的用户名 如果不是这个格式不能使用username.github.io这个域名访问你的博客,如果你有自己域名可以忽略
2.1、本地配置:
配置SSH key为什么要配置这个呢?因为你提交代码肯定要拥有你的github权限才可以,但是直接使用用户名和密码太不安全了,所以我们使用ssh key来解决本地和服务器的连接问题。
$ cd ~/. ssh #检查本机已存在的ssh密钥
如果提示:No such file or directory 说明你是第一次使用git。
ssh-keygen -t rsa -C “邮件地址” 然后连续3次回车,在用户目录会生成.ssh隐藏目录,打开用户目录,
显示隐藏文件的方法:
- ubuntu:Ctrl+H
- windwos: 控制面板->文件夹选项->查看->高级设置->选择显示隐藏的文件、文件夹和驱动器->确定
- Mac: 打开终端输入以下命令:
显示隐藏文件命令:
defaults write com.apple.finder AppleShowAllFiles -boolean true ; killall Finder
关闭显示隐藏文件命令:
defaults write com.apple.finder AppleShowAllFiles -boolean false ; killall Finder
如果不想麻烦可以直接使用如下命令复制id_rsa.pub公钥内容
ubuntu:~$ cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2AAABgQC4ynFg9LU2wV6SH0e4IrhgO2pA6I+dZgN6t/6nnZvXETEAPVDaI/lo1PQJiosqhJtOoaTTOme53+dS0AtHZGa4wG0GY9CHkoij0W4UivsASW+O/EpTfIhjDe06dnBtKS2xyId9gtuNloa9za4dP7nf95E= [email protected]
github添加sshkey:
浏览器打开GITHUB,打开刚刚创建的仓库,找到Settings
然后左侧选择Deploy keys–>Add deploy key
然后将复制的.ssh/id_rsa.pub公钥内容,添加到GitHub deploy keys中,如下图:
2.2测试ssh配置
使用命令:
ssh -T [email protected]
出现下面内容就说名配置成功了
-ubuntu:~$ ssh -T [email protected]
Hi xxx/xx.github.io! You've successfully authenticated, but GitHub does not provide shell access.
2.3、配置环境
1、安装git、nodejs 、npm
sudo apt install git nodejs npm
3、安装hexo
npm install hexo-cli -g #安装hexo
hexo init blog #初始化hexo程序
cd blog #切换到blog目录
npm install #下载hexo程序到blog目录
hexo server #本地预览
hexo目录结构
hexo-install-directory
├── CNAME
├── _config.yml //Hexo的配置文件,可以配置主题、语言等
├── avatar.jpg
├── db.json
├── debug.log
├── node_modules //hexo 插件库
├── package.json
├── public //执行hexo g命令后,生成的内容会在这里,包括所有的文章、页面、分类、tag等.
│ ├── 2020
│ ├── 404.html
│ ├── Staticfile
│ ├── archives
│ ├── atom.xml
│ ├── categories
│ ├── css
│ ├── images
│ ├── index.html
│ ├── js
│ ├── page
│ ├── sitemap.xml
│ └── vendors
├── scaffolds //保存着默认模板,自定义模板就是修改该目录下的文件
│ ├── draft.md //默认的草稿模板
│ ├── page.md //默认的页面模板
│ └── post.md //默认的文章模板
├── source //Hexo存放编辑页面的地方,可以使用vim或其他编辑器编辑这里的内容
│ ├── 404.html //自定义404页面,
│ ├── Staticfile
│ ├── _drafts //存放所有的草稿文件的目录
│ ├── _posts //存放所有的文章文件的目录,用的最多,比如执行hexo n "post_name"之后,post_name这篇文章就存放在这个目录下
│ ├── categories
│ └── images //这是我自己定义的,用于存博客中的图片,当然也可以使用图床
└── themes //Hexo的所有主题
├── landscape
└── next //这是我目前用的主题
3.1、hexo配置
打开hexo配置文件 _config.yml (根目录)
找到deploy按照以下格式配置
# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
repo: [email protected]:username/username.github.io.git
branch: master
其他按需设置,这里就不详细介绍了
3.2、撰写博客
进入/source/_posts目录(或者使用命令:hexo new xxx来生成文章名为xxx的文章) 新建xx.md文件(xx即是你要写的文章标题) 使用markdown编辑其或者任意文本编辑器,使用markdown语法编写你的博客巴!
3.2生成并部署到github
然后使用以下命令生成并部署到github
hexo g #生成静态页面
hexo d #部署到github
4、结束
至此博客已经部署完成,通过xxx.github.io来欣赏你的新博客。 常用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
组合命令:
hexo s -g #生成并本地预览
hexo d -g #生成并上传