看着大家都在写博客,我也终于忍不住了。
这是我的第一篇博文,记录了使用hexo+github搭建博客的方法,以及过程中遇到的问题和解决方案。
也是告诉自己不忘初心,持之以恒!
搭建博客
准备工作
初始化 Blog
安装 Hexo 完成后,执行下列命令,会在指定文件夹中新建所需要的文件:
$ hexo init <folder> $ cd <folder> $ npm install
执行下列命令,可以查看在本地预览:
$ hexo g # 生成静态页面 $ hexo s # 启动本地 blog 服务器
打开浏览器,在地址栏输入 localhost:4000,就可以查看本地博客了
同步 Hexo 到 Github
- 新建 Github 项目,命名为
XXX.github.io
,XXX 为自己的GitHub 用户名。 - 打开本地文件夹内的
_config.yml
配置文件,进行如下修改:deploy: type: git repository: https://github.com/XXX/XXX.github.io.git branch: master
- 运行以下命令:
此时,打开浏览器,访问 http://XXX.github.io$ npm install hexo-deployer-git -save # 安装 hexo-deployer-git $ hexo g # 本地生成静态文件 $ hexo d # 将本地静态文件推送至Github
添加 ssh key 到 GitHub
检查 ssh key 是否存在,如果存在可以跳过下一步:
$ ls -al ~/.ssh
生成新的 ssh key:
$ ssh-keygen -t rsa -C "your_email"
默认会在相应路径下(
~/.ssh/id_rsa.pub
)生成id_rsa
私钥文件和id_rsa.pub
公钥文件,私钥不要公开或者上传,公钥可以上传至github进行验证。将ssh key添加至 Github
用终端打开 id_rsa.pub
,复制内容,进入 github -> settings -> ssh and gpg keys -> new ssh key
粘贴。
更换主题
在Hexo官网上选择感兴趣的主题,将主题项目拷贝到 themes 文件夹下:
$ cd <folder> git clone https://github.com/litten/hexo-theme-yilia.git themes/yilia
修改
_config.yml
,将主题设置为 yiliatheme: yilia
问题一:多终端同步 Hexo
hexo 的原理
$ hexo clean # 清理你的项目缓存 $ hexo g # 将你刚刚编写的md编译为浏览器可以识别的html $ hexo d # 发布到远程仓库
hexo d
是发布到_config.yml
中配置的branch
分支上(一般都是master
主分支),所以就可以将 hexo 主文件(未编译的)放到另一个仓库中,更新文章时,只需再将这个仓库提交一下就可以了。开始
# 将更改的文件加入 git 仓库中 $ git add source $ git commit -m "your desciption" # 新建 hexo 分支 $ git branch hexo # 切换到 hexo 分支 $ git checkout hexo # 将本地与 Github 项目对接 $ git remote add origin https://github.com/yourname/yourname.github.io.git # push 到 Github 项目的 hexo 分支上 $ git push origin hexo
至此,hexo主站程序上传到hexo分支了,发布文章时,正常流程写md,
hexo clean
,hexo g -d
就可以啦~另外一个终端更新
# 将Github中hexo分支clone到本地 $ git clone https://github.com/XXX/XXX.github.io.git # cheackout 远程代码到本地hexo分支 $ git checkout -b hexo origin/hexo # 注意,这里一定要切换到刚刚clone的文件夹内执行,安装必要的所需组件,不用再init $ npm install
每次切换终端时,记得先执行 git pull origin hexo 将本地与远程同步哦~
问题二:新换 theme 无法同步远程
刚开始我的主题是 next,后来嫌弃它太单调了,就换成了现在的主题,但是发现 push 不上去了,于是开始各种 Google。
终于找到了可靠的解决方案。原文链接点这里
由于 themes 中 yilia 是 clone 的,所以不在我的版本库中,自然也就 push 不上去。
需要删除 .git
文件夹,重新 add commit push
。
$ git rm -rf --cached themes/yilia
$ git add themes/yilia/*
$ git commit
$ git push
在此感谢提供各种解决方法的博主们~
出现的问题其实还有一些,但是 Google 就够了,以后继续加油吧!
- Post link: http://yoursite.com/tool/hexo/
- Copyright Notice: All articles in this blog are licensed under unless stating additionally.
若您想及时得到回复提醒,建议跳转 GitHub Issues 评论。
若没有本文 Issue,您可以使用 Comment 模版新建。
GitHub Issues