0%

搭建Hexo博客与github部署指南

Git

因为经常会要用到Git以及Github,首先安装Git:https://git-scm.com/download/linux

1
$ apt update; apt install git

Node.js

Hexo是一款基于Node.js的静态博客框架,所以我们还需要安装它:https://nodejs.org/en/download/
下载后移动到任意路径下解压,tar.xz解压命令为tar -xvJf 。然后建立全局软链接(全局变量)
sudo ln -s /../node.js/bin/npm /usr/local/bin/
sudo ln -s /../node.js/bin/node /usr/local/bin
然后检测是否成功

1
2
node -v
npm -v

如果成功会出现版本号,这里是v8.11.1与5.6.0
附: node.js源码安装教程

Hexo

然后开始安装Hexo。

1
npm install hexo-cli -g        //这是用npm方式部署hexo静态博客。

遇到安装异常sh: 1: node-gyp: Permission denied,运行
1
2
npm config set unsafe-perm true       //以后,再运行
npm install -g hexo-cli //但是我好像没有遇到这个问题。

我的话主要是教程里都没有提醒我创建hexo的全局变量,导致我一直显示未找到命令。创建了变量后就成功了。这里用
1
hexo -v

若出现版本信息,则安装成功,已在本地机器上搭建起了Hexo环境。

部署Hexo文件夹。

任意位置创建文件夹hexo,在该文件夹内初始化hexo

1
2
hexo init             //将该文件夹初始化为博客目录   
npm install

安装相关依赖包,具体安装内容可以在package.json文件里找到
其中,_config.yml是配置站点的文件,public是hexo生成的静态站点文件夹,scaffolds是模板文件夹,source是存在用户资源的文件夹,themes是主题文件夹。接着
1
hexo generate

生成hexo静态页面,将我们写的Markdown文件 (.md后缀) 转换成html静态页面
生成完毕之后,hexo文件夹内又多了一个public文件夹,这就是静态博客的目录,如果我们需要部署到服务器或者托管平台,只要将hexo生成静态之后,将public文件夹里的文件传上去就可以了。其他系统文件还是放在本地。

博客预览

1
hexo server

然后在浏览器中输入地址http://localhost:4000
使用

1
hexo server -p 5000

可以改变接入端口。默认接入端口为4000。但是听说如果打开了福昕阅读器,他会占用4000端口。
也可以在_config.yml内加上如下代码更改hexo-server运行时的端口号:
1
2
3
4
server:
port: 5000
compress: true
header: true

也可以先使用
1
netstat -ant |grep 4000

命令查看端口被什么占用,若是个没人用的东西,就kill掉这个进程

进一步配置

找到博客根目录下的配置文件_config.yml,# Site部分,title是博客的名字,subtitle是副标题,author即为作者名字。

接下来是下一部分:

#将Hexo托管到Github
首先现在Github账户上新建一个仓库,作为以后博客的存放位置。仓库名为GithubUserName.github.io,然后Create

配置Github:
配置Name和Email:

1
2
$ git config --global user.name "yourName"
$ git config --global user.eamil "email@example.com"

在某个项目根路径下面可以设置单独的Email与姓名:
1
2
git config user.name "tiemaocsdn"
git config user.email "tiemaocsdn@qq.com"

创建公钥
1
ssh-keygen -C "email@example.com" -t rsa

在用户~/.ssh/下建立相应的密钥文件~/.ssh/id-rsa.pub,gedit打开该文件,复制文本。
添加公钥:
在Github首页点击setting,选择New SSH KEY,然后将密钥文件复制进去。

Hexo部署到github
打开hexo文件下的_config_yml,在底部添加

1
2
3
4
deploy:
type: git
repo: https://github.com/GithubUserName/GithubUserName.github.io
branch: master

注:这是关键点!首先:后边必须有一个空格!然后次行repo有的教程是repository,听说会有bug;然后几乎所有教程io后会加.git,其实不用不知道为什么。最靠谱的是直接将你的仓库地址复制过来。
最后,因为hexo3.0以后deploy与hexo分离,所以还添加个插件就能将博客push到git上
npm install hexo-deployer-get –save

然后不要忘了上传

1
2
3
4
5
6
7
8
hexo g -d
hexo g 为生成静态文件
hexo g -d 为文件生成后立即部署网站
或者hexo g 然后hexo d也行
hexo d -g 为部署网站前生成静态文件

git push [-u origin master] 仓库数据进行同步
git pull 每次修改前进行更新

编写博客
1
2
3
hexo new "博客名"
显示博客的.md文件地址,打开即可编写
hexo g -d

本地Git库与远程仓库(Github)的关联建立

只有在本地初始化git后才能使用git。
选择一个文件夹,执行命令

1
git init  初始化该本地文件夹为git管理的本地仓库

注:Git将自动创建唯一一个master分支。当前目录下多了一个.git的目录(隐藏文件夹),这个目录是Git来跟踪管理本地库的,修改文件需谨慎,易破坏Git仓库。可通过删除目录来断开本地仓库与远程仓库的连接,就像刚刚没有创建本地仓库,每次更新都需要输入用户名与密码。
关联指定远程仓库
1
git remote add origin git@github.com:YotrolZ/helloTest.git

注:origin即为远程库的名字,这是Git默认的叫法,可以改成别的;
git@github.com:YotrolZ/helloTest.git 为我们远程仓库的路径,可为url或仓库名。这里还直接仓库地址保险。

此时,可以尝试git pull拉取。


完结 撒花 ฅ>ω<*ฅ