Depth.Love Blog

GitHub:https://github.com/depthlove

0%

Mac搭建hexo博客

一、安装git

启动Mac终端,在终端执行命令

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

brew install git

二、安装Node.js

nvm (Node Version Manager),详见官方介绍:https://github.com/creationix/nvm#node-version-manager

在终端执行命令

git clone git://github.com/creationix/nvm.git ~/.nvm

cd /Users/dev.temobi/.nvm  (备注:/Users/dev.temobi/.nvm 是执行上一条命令的结果显示.nvm所在的路径)

sh install.sh

补充说明:对于Mac系统而言,可以跳过步骤一、步骤二,直接去node.js官网https://nodejs.org/en/#download下载软件,然后安装到Mac电脑上,node.js 就成功安装到了电脑上了,采用这种方法更简单,更直接。

三、安装hexo

在终端执行命令

npm install -g hexo

创建文件夹,根据自己实际情况,文件夹名可以任取,文件夹的路径可以选择你想放文件夹的路径。

我创建的文件夹为 ZZ_HexoBlog,路径为 /Users/dev.temobi/Desktop/sunmmMainPrj/ZZ_HexoBlog

进入文件夹ZZ_HexoBlog所在路径,在终端执行命令

cd /Users/dev.temobi/Desktop/sunmmMainPrj/ZZ_HexoBlog

继续执行命令

hexo init

npm install

现在已经搭建起本地的hexo博客了。

执行命令

hexo generate

hexo server

然后到浏览器输入 http://0.0.0.0:4000/ 就可以预览博客了

四、部署hexo博客到github

在自己的github账号中创建Repository

Repository name需要符合username.github.io的命名规则。比如我的Github账号是depthlove,我就要创建名为depthlove.github.io 的仓库。

获取自己的Repository地址

我的为 https://github.com/depthlove/depthlove.github.io.git

修改_config.yml文件

在终端上执行命令

vim _config.yml

找到

deploy:
  type:

修改为:

deploy:
     type: git
     repo: https://github.com/depthlove/depthlove.github.io.git
  branch: master

保存退出

在终端执行命令 ls -al /.ssh,查看是否已经有SSH keys,如果之前在该电脑上使用过git管理过代码,结果是/.ssh中会存在 id_rsa id_rsa.pub known_hosts 三个文件

在终端继续执行命令

ls -al ~/.ssh

若之前没有使用过git,该目录就是空的。有用过git管理项目结果如下

total 32
drwx------   5 dev.temobi  staff   170  6  8 17:00 .
drwxr-xr-x+ 69 dev.temobi  staff  2346  6 12 13:47 ..
-rw-------   1 dev.temobi  staff  1675  6  8 16:46 id_rsa
-rw-r--r--@  1 dev.temobi  staff   399  6  8 17:04 id_rsa.pub
-rw-r--r--   1 dev.temobi  staff  1593  6  8 18:27 known_hosts

执行命令

ssh-keygen -t rsa -C "depthlove@163.com"  

depthlove@163.com 是注册github账号时所用的邮箱

执行上面的命令后,会出现一些提示,什么都不用管,直接回车,再回车

继续输入命令

ssh-agent -s

结果为

SSH_AUTH_SOCK=/var/folders/0r/y1__8yjx579743zfttfrflsr0000gq/T//ssh-a9zU09oKAnpw/agent.17852;
export SSH_AUTH_SOCK;
SSH_AGENT_PID=17853; export SSH_AGENT_PID;
echo Agent pid 17853;

继续输入命令

ssh-add ~/.ssh/id_rsa

结果为

Identity added: /Users/dev.temobi/.ssh/id_rsa (/Users/dev.temobi/.ssh/id_rsa)

如果执行ssh-add ~/.ssh/id_rsa 出错,就输入以下指令:

eval `ssh-agent -s`

ssh-add

现在就成功生成了 SSH keys。

把SSH keys添加到github账户中。

前往文件夹 ~/.ssh,用文本编辑器打开文件id_rsa.pub,复制其中的内容,然后粘贴到github add SSH keys的文本框中。操作完之后,github会要求输入github的登陆密码,输入完密码就成功添加了 SSH keys。

若还不放心,还可以通过 ssh -T git@github.com 命令查看SSH keys是否添加成功,继续在终端执行命令

ssh -T git@github.com

结果如下

Are you sure you want to continue connecting (yes/no)?yes // 输入yes
Warning: Permanently added the RSA host key for IP address '192.xx.xxx.xxx’ to the list of known hosts.
Hi depthlove! You've successfully authenticated, but GitHub does not provide shell access.

到这里准备工作都已做好,现在就是部署了。

继续在终端执行命令

hexo generate

hexo deploy

结果出现错误

ERROR Deployer not found: git

此时,就要检查为什么出现这种错误了,解决方法是上网百度寻求解决方案,还有一种就是靠自己的经验了。我发现在我修改文件_config.yml的时候发现

# Deployment
## Docs: http://hexo.io/docs/deployment.html
deploy:
  type:

发现有个word文档说明,而且我在执行hexo deploy出错,说明解决方法肯定在word链接中,结果是答案真的就在这里面。

在浏览器中输入 http://hexo.io/docs/deployment.html

然后按照网页上的文档说明,继续在终端上执行命令

npm install hexo-deployer-git --save

最后在终端上执行命令

hexo deploy

OK,成功了!结果如下

INFO  Deploying: git
INFO  Setting up Git deployment...
初始化空的 Git 版本库于 /Users/dev.temobi/Desktop/sunmmMainPrj/ZZ_HexoBlog/.deploy_git/.git/
[master(根提交) e8f14ef] First commit
 Committer: dev.temobi <dev.temobi@devtemobideMac-mini.local>
您的姓名和邮件地址基于登录名和主机名进行了自动设置。请检查它们正确
与否。您可以通过下面的命令对其进行明确地设置以免再出现本提示信息:

git config --global user.name "Your Name"
git config --global user.email you@example.com

设置完毕后,您可以用下面的命令来修正本次提交所使用的用户身份:

git commit --amend --reset-author
……
……
……
create mode 100644 index.html
create mode 100644 js/script.js
delete mode 100644 placeholder
Username for 'https://github.com': depthlove  // 输入自己的github用户名
Password for 'https://depthlove@github.com':  // 输入自己的github密码
To https://github.com/depthlove/depthlove.github.io.git
 + f0b2e27...cd56463 master -> master (forced update)
分支 master 设置为跟踪来自 https://github.com/depthlove/depthlove.github.io.git 的远程分支 master。
INFO  Deploy done: git

现在,就可以在浏览器中输入 http://depthlove.github.io ,访问我的hexo博客了

注意:每次修改本地文件后,都要在hexo博客所在的目录下,执行命令 hexo generate 保存;想要上传文件到Github时,就应该在hexo博客所在的目录下先执行命令 hexo generate 保存之后,再执行命令 hexo deploy

补充

hexo现在支持更加简单的命令格式了,比如:

hexo g == hexo generate

hexo d == hexo deploy

hexo s == hexo server

hexo n == hexo new