Hexo博客环境搭建for Mac

  • 文/一月筠 -- 转载请注明 --
  • hexo是一款基于Node.js的静态博客框架,这篇文章针对Mac用户,熟悉hexo的同学可以绕道哈。初步搭建只需要简单的几步,动动你的手指头,在终端试一下吧…

前言

hexo是一款基于Node.js的静态博客框架,这篇文章针对Mac用户,熟悉hexo的同学可以绕道哈。初步搭建只需要简单的几步,动动你的手指头,在终端试一下吧…

目录

了解Github Pages

关于Github Pages请移步我的另一篇博客

搭建环境

本文只针对Mac用户,windows用户以及Linux用户可自行Google。在Mac上,推荐先安装homebrew。homebrew是Mac OS上的软件包管理工具。

Homebrew 安装

Git安装和Github设置

  • 使用homebrew安装gitbrew install git
  • 查看git是否已安装成功git --version
  • 确认Github上已经创建名为“你的用户名.github.io”的仓库

Node.js安装

快速安装

  • 使用homebrew安装nodebrew install node
  • node.js的包中已经集成了npm,npm是Node.js的模块依赖管理工具
  • 查看node和npm是否已安装成功node -vnpm -v

官网安装

本站使用的是在node官网下的Node.js的pkg安装包进行的安装,安装的版本为v6.10.0,可能现在的版本已经升级。可以通过查看历史版本进行下载。附上链接地址:https://nodejs.org/download/release/v6.10.0/

Hexo安装

Hexo是一个基于Node.js的静态博客框架,作者是@tommy351

Hexo官网

  • cd到你在本地的博客文件夹cd /users/GuoYanjun/Documents/yajon_blog,然后执行下面的安装命令

npm install hexo-cli -g

Hexo本地部署

  • cd到你在本地的博客文件夹,然后执行下面的命令
1
2
3
4
5
cd /users/GuoYanjun/Documents/yajon_blog
hexo init #执行init命令初始化hexo到当前目录
hexo new post "post_name" # 新建一篇文章
hexo g # g == generate 自动根据当前目录下文件,生成静态网页
hexo s # s == server 运行本地服务
  • 部署步骤

每次部署的步骤,可按以下三步来进行。

1
2
3
hexo clean
hexo generate
hexo deploy

这里有必要提下Hexo常用的几个命令:

1
2
3
hexo generate       #自动根据当前目录下文件,生成静态网页,会在当前目录下生成一个public的文件夹
hexo server #启动本地web服务,预览访问(默认端口4000,'ctrl + c'关闭server)
hexo deploy #部署播客到远端(比如github, coding等平台)

常用命令

1
2
3
4
5
$ hexo new "postName"         #新建文章,其中postName是文章题目
$ hexo new page "pageName" #新建页面
$ hexo help #查看帮助
$ hexo version #查看Hexo的版本
$ hexo clean #清除缓存 网页正常情况下可以忽略此条命令

常用简写

1
2
3
4
5
$ hexo n "我的博客" == hexo new "我的博客" #新建文章
$ hexo p == hexo publish
$ hexo g == hexo generate #生成
$ hexo s == hexo server #启动服务预览
$ hexo d == hexo deploy #部署

常用组合

1
2
$ hexo d -g #生成部署
$ hexo s -g #生成预览

服务器

1
2
3
4
$ hexo server #Hexo 会监视文件变动并自动更新,您无须重启服务器。 
$ hexo server -s #静态模式
$ hexo server -p 5000 #更改端口
$ hexo server -i 192.168.1.1 #自定义 IP

监视文件变动

1
2
hexo generate				#生成静态文件 
hexo generate --watch #监视文件变动

以下为上述部署步骤的相关截图。

hexo init 之后出现的文件夹

npm install 之后出现 node_modules

hexo generate 之后出现 public 和 db.json

  • 最后,可以在本地查看localhost:4000
    在Mac terminal按下ctrl+C结束

运行效果图

相关错误及解决方法

  • 出现类似Error: Module version mismatch. Expected 48, got 51.的错误

如果终端出现类似上述的错误,可能是因为你的node.js版本与之前项目的版本不一致造成的。可以移除之前的node.js,按照之前的版本重新安装node.js.

step1: node.js在Mac下的卸载

在 node 官网上下载的安装包,用安装包安装的node.应该可以用一下命令行卸载:

在终端输入以下命令:

1
sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*}

删除/usr/local/lib中的所有nodenode_modules
删除/usr/local/lib中的所有nodenode_modules的文件夹
如果是从brew安装的, 运行brew uninstall node
检查~/中所有的local, lib或者include文件夹, 删除里面所有nodenode_modules
/usr/local/bin中, 删除所有node的可执行文件
最后运行以下代码:(可能具体安装路径会有区别 ,find ~ -name "node"可以找到所有

step2: hexo在Mac下的移除

接着移除hexo,移除的命令请参照以下:

1
2
npm uninstall hexo-cli -g #3.0.0版本执行
npm uninstall hexo -g #之前版本执行

step3: 重新install hexo

移除之后,在本地博客的文件夹中执行npm install hexo-cli -g命令即可。

配置SSH密钥

  • Mac下已安装的ssh的id_rsa.pub文件位置

如果之前生成的SSH Key是选择默认路径的,因此要找到ssh文件夹下的id_rsa.pub文件,只需要:
打开终端输入open ~/.ssh即可。

step1: 看看是否存在SSH密钥(keys)

首先,我们需要看看是否看看本机是否存在SSH keys,打开Git Bash,并运行:

1
$ cd ~/. ssh

检查你本机用户home目录下是否存在.ssh目录

如果,不存在此目录,则进行第二步操作,否则,你本机已经存在ssh公钥和私钥,可以略过第二步,直接进入第三步操作。

step2: 创建一对新的SSH密钥(keys)

  • 按照你提供的邮箱地址,创建一对密钥
1
$ssh-keygen -t rsa -C "your_email@example.com"

运行完之后会出现以下提示:

1
2
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/yourname/.ssh/id_rsa):
  • 直接回车,则将密钥按默认文件进行存储。此时也可以输入特定的文件名,比如/Users/yourname/.ssh/github_rsa
  • 接着,根据提示,你需要输入密码和确认密码(说到这里,如果你很放心,其实可以不用密码,就是到输密码的地方,都直接回车,所以每次push就只管回车就行了。所谓的最安全的密码,就是没有密码)。这个密码会在你提交项目时使用,如果为空的话提交项目时则不用输入。这个设置是防止别人往你的项目里提交内容。注意:输入密码的时候没有*字样的,你直接输入就可以了。

相关提示如下:

1
2
Enter passphrase (empty for no passphrase): <输入加密串>
Enter same passphrase again: <再次输入加密串>

输入完成之后,屏幕会显示如下信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Your identification has been saved in /Users/yourname/.ssh/id_rsa.
Your public key has been saved in /Users/yourname/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx your_email@example.com
The key's randomart image is:
+---[RSA 2048]----+
| |
| |
| |
| |
| |
| |
| |
| |
| |
+----[SHA256]-----+

step3: 在GitHub账户中添加你的公钥

运行如下命令,从Finder中找到你的id_rsa.pub文件,打开之后,将其内容全部复制。看清楚是全部复制!!!

1
$ cd ~/. ssh

step4: 将密钥添加到你的GitHub账户中

  • step1: 登陆GitHub,进入你的Account Settings.
    Account Settings
  • step2: 选择SSH Keys
    SSH Keys
  • step3: 粘贴密钥,添加即可

粘贴密钥

step5: 测试

添加完密钥后可以输入下面的命令,看看设置是否成功,git@github.com的部分不要修改:

1
$ ssh -T git@github.com

如果是下面的反馈:

1
2
3
The authenticity of host 'github.com (207.97.227.239)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?

不要紧张,输入yes就好,然后会看到:

1
Hi Yajon! You've successfully authenticated, but GitHub does not provide shell access.

step5: 设置用户信息

现在你已经可以通过SSH链接到GitHub了,还有一些个人信息需要完善的。
Git会根据用户的名字和邮箱来记录提交。GitHub也是用这些信息来做权限的处理,输入下面的代码进行个人信息的设置,把名称和邮箱替换成你自己的,名字必须是你的真名,而不是GitHub的昵称。

1
2
$ git config --global user.name "Yajon"//用户名
$ git config --global user.email "your_email@gmail.com"//填写自己的邮箱

Extensions