小皮博客 | Xiaopi's Blog

使用hexo+github+next搭建个人博客的最佳实践

为了帮助@小土 把个人博客搭建起来,创建了这个文章。最佳实践是个好词,避免了你说,我这个是最完美的方案,因为世界上没有最完美的。实践出来,比较好的方案。😄 TODO: 未完成的部分由@小土来完成吧。

技术说明

  • github: 用来托管你的静态博客,并且可以供外部访问的。好处是github提供了一个 your-account.github.io 的项目,并且可以通过 your-account.github.io 这样的链接去访问的一个地址作为你的静态博客,与此同时,它还支持通过CNAME配置把你的域名转发过去。鉴于github已经是最佳实践,所以这里不提供替代方案。
  • git仓库: git仓库用来存储你的版本管理项目,不仅限于源代码,所以博客文本也是一个很好的版本管理的内容,同时,你还可以把你的博客本身,和主题分别(建立两个库)纳入版本管理。这里我使用的是gitee的私有仓库,毕竟不想公开所有的东西。
  • git: 不用多说了,用来做你的博客发布内容,hexo博客工作空间,博客主题的版本管理的。
  • hexo: 这里hexo有个工作空间,通过hexo将工作空间的内容生成全静态的博客页面。github本质上是提供了静态页面的托管。同时又有版本管理,很赞。
  • next: hexo最实用的主题,包含了hexo本身的诸多最佳实践,简单,响应式等。替代方案得自己研究别的主题落。
  • sublime: Mac下比较简单好用的文本编辑器,便于你对hexo的工作空间做各种配置修改,比其他IDE轻量级(足够用了,至少不用打开半天来写配置),比VIM要好用。别的系统也可以用,当然也可以有替代方案。
  • MacDown: Mac下比较好用的MarkDown编辑器,所见即所得,你真正写博客文章的时候用,也可以用Mou之类的,当然你非要用sublime来写也可以(看不到效果)。
  • Node: hexo的基础,包含了各种组件。
  • 域名: baidu.com 就是一个域名,你可以买一个域名,并且通过DNS解析到你的博客。

安装git

关于git的安装教程,可以参考链接起步-安装 Git

github及相关准备

配置SSH keys

仅仅生成了github项目,你可以下载它,但是无法将你生成的博客内容上传。你需要在本地配置github的ssh keys

Mac&Linux系统

在进入终端输入如下命令

$ cd ~/.ssh #检查本机的ssh密钥, 如果提示 No such file or directory 说明你是第一次使用 git。你也可以创建这个文件夹。

生成你的密钥

$ ssh-keygen -t rsa -C “your-email@address”

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/RedTea/.ssh/id_rsa): github-183[需要替换成你自己的名字]
Enter passphrase (empty for no passphrase): [输入密码]
Enter same passphrase again: 
Your identification has been saved in github-183.
Your public key has been saved in github-183.pub.
The key fingerprint is:
b5:7e:2b:ba:a0:3c:44:9b:73:1a:b7:7d:3c:cc:c1:bb 183098350@qq.com
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|      . o        |
|      *   .      |
|    .    . .     |
|   . o  S..      |
|    * o  .o      |
|   . *.o +.o.    |
|   .o.o . O. .   |
|    o.  o+E+.    |
+-----------------+

提交到github

  • 将密钥加入到github,后续git就会直接使用~/.ssh/目录下的密钥去提交到github,注意不能超过7组。
  • 打开 https://github.com/settings/keys # 或者github右上角头像(个人),下拉菜单选settings -> 左侧菜单列表选SSH and GPG keys
  • 点击 New SSH Key
  • 可以自己取个名字填写到Title(比如之前的github-183), 然后使用纯文本编辑器将~/.ssh/github-183.pub 打开并拷贝,粘贴到key的框里。然后保存。保存过程中会让你输入github账号的密码。(毕竟要设置自动登录提交代码了)
  • 验证,在终端中输入 ssh -T git@GitHub.com ,会提示你安装成功。

图1 添加SSH Key

Windows系统

TODO

安装nodeJS

Mac&Linux系统

使用工具安装

# 我们安装时要附加参数,因为在新版中,默认的安装参数不会安装npm包管理器。
$ brew install node --with-npm # Mac使用Brew安装
$ sudo apt-get install node --with-npm # Ubuntu系统安装
# 其他linux发行版使用对应的工具即可
# 检查安装是否成功
$ node -v
v7.4.0 # 会显示你安装的Node版本
$ npm -v
4.0.5
# 安装cnpm
$ sudo npm install -g cnpm --registry=https://registry.npm.taobao.org
# 检查cnpm
$ cnpm -version

源代码安装

TODO 且不推荐,有洁癖的自行采用。

官方安装包安装

Windows系统

建议采用上面的官方安装包安装方式

博客初始化及配置

前面做完了准备工作,现在进入正题。

初始化博客

安装hexo

npm install -g hexo-cli

初始化项目

$ cd /path/to/workspace/
$ hexo init your-blog-name
$ cd your-blog-name
$ ls -l # 文件结构应该如下,windows可以通过文件夹查看。
total 40
-rw-r--r--    1 shengl  staff   1938  8  3 11:41 _config.yml
-rw-r--r--    1 shengl  staff    174  8  5 12:13 db.json
drwxr-xr-x  306 shengl  staff  10404  7 30 15:11 node_modules
-rw-r--r--    1 shengl  staff    607  7 30 15:01 package.json
drwxr-xr-x   20 shengl  staff    680  8  3 11:56 public
drwxr-xr-x    5 shengl  staff    170  7  4 16:54 scaffolds
drwxr-xr-x   15 shengl  staff    510  8  3 11:56 source
-rw-r--r--    1 shengl  staff    111  6  7 15:36 tail.md
drwxr-xr-x    6 shengl  staff    204  6  7 12:16 themes

TODO 补充一个说明

hexo配置

详细配置可以参考官方说明

TODO 补充基本配置

测试

hexo s

TODO 补充效果图 2 访问 localhost:4000

上传博客

hexo d

TODO 补充效果图 3 访问 a0geek.github.io

将自己的域名映射到博客

TODO 补充效果图并且将域名映射到github.io, 加上在万网的配置截图

Next主题基本配置

TODO

托管project仓库到gitee,且将theme配置也托管到gitee

TODO

最佳实践汇总:

完成这篇教程之后,你每次写博客的工作会包括如下部分:

  1. hexo n “feature-name”
  2. 使用MacDown打开你创建的/path-to/feature-name
  3. 编写文章
  4. hexo g 生成静态内容
  5. hexo d 发布博客

版权声明

本文标题:使用hexo+github+next搭建个人博客的最佳实践

文章作者:盛领

发布时间:2018年08月05日 - 11:10:21

原始链接:http://blog.xiaoyuyu.net/post/43679e20.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

如您有任何商业合作或者授权方面的协商,请给我留言:sunsetxiao@126.com

盛领 wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
坚持原创技术分享,您的支持将鼓励我继续创作!