前言
之前一段时间都是用wordpress
做个人博客,后来发现Git Page + hexo
可以免费做静态页面……尝试了一下,后面就真香了(x)
关于wordpress
和hexo
孰优孰劣的问题这里不做详细讨论,只是介绍一下如何用Git Page
+hexo
搭建一个个人博客。二者具体的比较可以参考知乎的激(you)烈(hao)讨论。
简介
What’s GitHub Page
简而言之就是 白嫖
GitHub
的服务器,通过仓库挂一个自己的静态网站。
What’s Hexo
一个渲染静态博客的框架,基于
Node.js
,将markdown
文件渲染成html
文件
Hexo + Github Page
- 利用
hexo
快速生成需要的页面,利用github
在公网展示出来
创建Github Pages
创建一个公网能访问的page
,让大家能看到你的博客,这里利用Github page
创建repo
创建一个名为xxx.github.io
的仓库,且允许公网访问:
创建Pages
在里面随便新建一个文件,确保main
分支有东西。
然后在Settings -> Pages
里面设置分支和网站根目录:这里直接设置为main
和/(root)
。如果网页上传在其他分支上可以在这里修改。
此时访问https://test.github.io
应该就能看到刚刚的网页了。(因为我已经开了一个xiabee.github.io
,而免费版只能开一个网页,所以test.github.io
就暂时无法展示)
环境搭建
Node.js
Linux
用户:直接包管理器安装即可1
2
3# 例如Ubuntu
apt update
apt install nodejs包管理器找不到
nodejs
的可以和Windows
用户一样取官网安装。Windows
用户:官网下载并安装
NPM
node.js
一般自带npm
,但是可能不是最新版的npm
,直接更新即可1
2
3
4
5
6
7
8
9
10apt-get install nodejs-legacy
apt-get install npm
npm install -g n
# 安装n模块
n stable
# 升级nodejs到最新stable版本
npm install npm@latest -g
# 升级最新npm如果没有自带
npm
可以去官网看看,手动安装npm
Git
HEXO
先装hexo-cli
:
1 | sudo npm install -g hexo-cli |
本地调试
hexo根目录
选择一个空目录做为hexo
的根目录,初始化并安装相关依赖:
这里建议把刚刚创建的Github Page
的repo
克隆下来,再把该目录删空作为根目录……不然可能会遇到分支没有共同基点不能合并的问题。
1 | hexo init |
常用hexo命令:
1 | hexo g # hexo generate |
访问http://localhost:4000,出现hexo
页面说明渲染成功
这里我修改过主页,所以可能看起来和初始模板不太一样。
Tips:如果server
一直起不来,可能是端口被占用了。Ctrl C
关闭服务器,运行 hexo server -p 5000
更改端口号后重试。
hexo常见目录结构
1 | ├── _config.yml # 网站配置信息 |
远程推送
把hexo
推送到github
中
安装hexo-deployer-git
1 | npm install hexo-deployer-git --save |
修改_comfig.yml
找到hexo
根目录下的_config.yml
,文末deploy:
模块:
1 | ## Docs: https://hexo.io/docs/one-command-deployment |
这里是做了Gitee+GitHub
双备份,如果不传gitee
的话可以只写github
的仓库地址。
此时指定hexo
上传的网页文件为main
分支,如果刚刚Github Page
的分支不是main
的可以修改一下……改哪个都可以,一致即可。
这里GitHub Pages
用的就是main
分支,不需要修改
推送
1 | hexo g |
此时访问公网地址,已经能看到该博客了:
写文章
编辑源文件
在_posts
目录下创建markdown
文件,仿照Hello World
写就行:
然后hexo g -d
,渲染、推送。
关于图床
如果是整个媒体库都上传到Github
上的话,相当于是把Github
作为图床了……然而众所周知Github
在国内的速度非常非常慢。所以建议换一个好用的图床。
关于图床的推荐可以参考一下知乎。
这里我个人使用的是微博图床,配合Chrome
插件新浪微博图床使用,可以直接微信截图到剪贴板,然后复制粘贴,灰常方便:
当然,用这个图床的前提是你得有一个微博账号(x)
Hexo备份
- 利用
Git
分支 - 参考这篇博客