Hexo 搭建博客-基础配置篇

前言

建博客的想法缘来已久,绝非一天两天了。
名博阮一峰曾经说过:

喜欢写Blog的人,会经历三个阶段。

  • 第一阶段,刚接触Blog,觉得很新鲜,试着选择一个免费空间来写。
  • 第二阶段,发现免费空间限制太多,就自己购买域名和空间,搭建独立博客。
  • 第三阶段,觉得独立博客的管理太麻烦,最好在保留控制权的前提下,让别人来管,自己只负责写文章。

实际上,内容的输出才是Blog的核心与王道。在如今渠道如此丰富的业态之下,其实有一方土地给自己一些慰藉也是好的,正如我喜欢记笔记,但是又闲自己的字写得难看一样。希望拜托了书写困境的我在输出和记录的道路上一路顺利,我也很高兴与认识的不认识的朋友分享点滴。

小提示(我走的弯路):

  1. 所有标点符号都是英文的,所以输入时请切换到英文状态。
  2. 冒号后面一定要有个空格,否则回报错。
  3. 所有文件(不管是以md为后缀的,还是以yml结尾的),都必须转换成UTF-8格式,可以在notepad++的格式里转换下,否则在本地查看(localhost:4000)中会出现乱码。
  4. 文件夹选项中要勾选“显示隐藏的文件”,而下面的“隐藏已知文件类型的扩展名”则不要勾选
  5. 最新版Hexo(3.0.0或以上版本)默认未安装hexo-deployer-git插件,即部署(上传)到gitcafe或github要用的插件,所以如果不安装这个插件,就要报错。
  6. Git Bash右键点击左上角的图标,选择属性,右侧编辑选项中“快速编辑模式”打勾,这是为了在Git Bash中点击右键就能粘贴。
  7. 不建议用默认hexo主题,建议在网上找个其他主题,不仅因为好看,还因为其他主题往往集成了多说、支持中文简体等优势,省去了你自己折腾的时间。

Hexo简介


** 什么是Hexo?**

Hexo是一款基于Node.js的静态博客生成程序,作者是台湾的tommy351

tommy351对Hexo的介绍:

  • 超快速度 Node.js 所带来的超快生成速度,让上百个页面在几秒内瞬间完成渲染。
  • 支持 Markdown Hexo 支持 GitHub Flavored Markdown 的所有功能,甚至可以整合 Octopress 的大多数插件。
  • 一键部署 只需一条指令即可部署到 GitHub Pages, Heroku 或其他网站。
  • 丰富的插件 Hexo 拥有强大的插件系统,安装插件可以让 Hexo 支持 Jade, CoffeeScript。

** 为什么用Hexo? **

  • 免费

    可以部署到GitHub、GitCafe、七牛,都是完全免费的。

  • 简单

    比部署WordPress要简单得多,只需要简单几部就能搭建好环境,仅需要记住几条简短的命令、简单的Markdown语法,即可写出精彩的文章。

  • 稳定

    再也不用去操心主机的运维了。

  • 快速

同时部署到GitHub、GitCafe、七牛,在全球都可获得优秀的访问速度。

Hexo:安装和配置


{% alert success %}这部分主要介绍Hexo如何安装、使用,以及配置文件。{% endalert %}

运行环境准备

本系列文章以Hexo 3.0.0为例,操作系统为Windows 8.1 Pro VL x64 。

首先需要安装以下程序:

  • Node.js
    下载最新版的 Node.js,一路next安装到C盘。

  • Git
    如果是Windows平台,则下载msysgit,安装建议勾选Git Bash Here,方便以后的操作,然后一路next即可。

  • AtomNotepad++ (可选)
    文本编辑器,用于修改配置文件及写文章。

安装Hexo

  1. 新建一个文件夹,例如blog
  2. 进入blog文件夹,右键点击Git Bash Here
  3. 安装Hexo
    输入代码
$ npm install hexo-cli -g
  1. 初始化blog文件夹
$ hexo init
  1. 安装依赖和插件
$ npm install
  1. 启动服务器进行本地预览
$ hexo s
  1. 当看到INFO Hexo is running at http://0.0.0.0:4000/. Press Ctrl+C to stop.时就说明我们已经搭建起本地的hexo博客了,
    在浏览器中打开 http://localhost:4000 注意:不要打开提示的0.0.0.0:4000。, 成功的话即可看到博客页面,至此安装就完成了。

  2. 然后回到命令窗口按Ctrl+C停止服务(有时要按两次Ctrl+C,因为有时Git Bash认为当前在进行复制操作),直到出现 “$”标志就结束了。 然后关闭Git Bash.
    然后回到命令窗口按Ctrl+C停止服务(有时要按两次Ctrl+C,因为有时Git Bash认为当前在进行复制操作),直到出现 “$”标志就结束了。
    然后关闭Git Bash.

  3. 安装插件

npm install hexo-deployer-git --save'''

#### 常用命令
Hexo的命令极简单,安装后只需要记住四个常用的即可。执行命令需要Git当前处于blog文件夹根目录下。

* generate 生成静态文件。

hexo g

* server 启动服务器。

hexo s

* deploy 部署网站。部署网站前,需要预先生成静态文件。

hexo d

* clean 清除缓存文件 (db.json) 和已生成的静态文件 (public)。

hexo clean

#### 其他
* Q:如何卸载Hexo?   
A:3.0.0版本执行`$ npm uninstall hexo-cli -g`,之前版本执行`$ npm uninstall hexo -g`。
* Q:如何安装旧版本Hexo?    
  A:先卸载当前版本,以2.8.3为例,执行`npm install hexo@2.8.3 -g`,再初始化并安装依赖和插件。

### 配置gitcafe
---------
>注意:以下假设你的gitcafe账号或者用户名是:`hello`,你的邮箱为:`hello@gmail.com`,密码为`hello123`


----------


到 [https://gitcafe.com][6] 注册个账号,然后创建项目,右上角的那个图标可以新建项目,右侧也有“新建”字样。
凡是选填的可以不填,其他默认。


>**注意:项目名需要与你的用户名相同,还有就是要选择“公开项目”。**

下图是别人的图片,虽然用户名(项目名)不是hello,但实际操作时注意项目名称要和注册ID一样,项目主页可以不填。
![gitcaf项目][7]


### 配置SSH公钥
首先我们需要检查你电脑上现有的ssh key:

``` bash
cd ~/.ssh

如果提示:No such file or directory 说明你是第一次使用git。

生成新的SSH Key

ssh-keygen -t rsa -C "hello@gmail.com"

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/your_user_directory/.ssh/id_rsa):<回车就好>

出现


sshkeygen
sshkeygen

然后系统会要你输入密码:

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

这个设置是防止别人往你的项目里提交内容,我直接回车。

看到入下图所示后,SSH key就生成成功了。


sshkeyok
sshkeyok

然后你可以去开始,打开你的用户目录,有一个“.ssh”文件夹,里面有
“id_rsa” “id_rsa.pub” 和 “known_hosts”这三个文件。

ssh文件
ssh文件

其中“id_rsa”是你的私钥文件,“id_rsa.pub”是你的公钥文件,一会儿要用。
接下来下载notepad++ 文本编辑器,比windows自带的记事本更强大,这里我们主要用它来打开id_rsa.pub文件。
这是他的官网:notepad++官网
下载后,直接把“id_rsa.pub”文件拖进notepad++中,然后复制里面的所有内容到剪贴板。

添加SSH Key到Gitcafe

然后去GitCafe,点击右上角的那个图标,选择账户设置,左侧SSH公钥管理,添加新的公钥,在名称文本框中输入任意字符,在公钥文本框粘贴刚才复制的公钥字符串全部内容(包括结尾的邮箱),输入GitCafe账户密码,按保存按钮完成操作。


这样我们本地就和GitCafe服务端连接上了。

测试是否可以连接GitCafe服务器

在桌面上双击打开Git Bash,输入:

ssh -T git@gitcafe.com

如果是第一次连接的话,会出现:

The authenticity of host 'gitcafe.com (50.116.2.223)' can't be established.
#RSA key fingerprint is 84:9e:c9:8e:7f:36:28:08:7e:13:bf:43:12:74:11:4e.
#Are you sure you want to continue connecting (yes/no)?

直接输入yes回车,然后会提示你输入 passphrase 口令:

Enter passphrase for key ‘/c/Users/USERNAME/.ssh/id_rsa’:

刚才我们根本就没设置,所以这次也直接回车,当看到

Hi starsky! You've successfully authenticated, but GitCafe does not provide shell access.

我们就连接成功了。


设置用户信息

# 设置你的用户名
git config --global user.name "hello"  
# 设置你的邮箱
git config --global user.email "hello@gmail.com"

到此为止,SSH Key配置成功,本机已成功连接到gitcafe.
就差最后一步了,把博客部署到gitcafe.

修改hexo配置文件

在 Hexo 文件夹下找到 _config.yml 文件,并拖到notepad++ 打开。



找到其中的 deploy 标签,改成下图所示,并保存:

deploy:
  type: git
  repository: https://gitcafe.com/hello/hello.git
  branch: gitcafe-pages

注意:除了 “https://” 中的冒号以外,其他每个冒号后面都有个空格,最后保存。

把hexo博客部署到gitcafe

注意:以下假设你注册gitcafe时使用的密码是hello123

打开我的电脑,进入D盘的hexo目录,在该目录内右键,选择Git Bash,打开后看到Git Bash标题栏的路径为/D/hexo.

注意:以后我们很多的博客操作都要在此目录下运行Git Bash才行,比如新建博文、上传部署等等。

输入:

hexo d

运行中要输入你的用户名:输入hello,回车,然后要输入密码,输入hello123(这时当你输入时,你会发现输入之后密码是不显示的,也不显示星号,这是为了安全,并非是你没输上),回车后显示Deploy done等等就成功部署上了!如图:

如果出错改成下面的代码试一下:

deploy:
  type: git
  repository: git@gitcafe.com:hello/hello.git
  branch: gitcafe-pages

每次deploy时不输入邮箱和密码

如果觉得每次部署的时候都要输入用户名和密码,可以这样解决:开始,到你的用户目录下新建一个_netrc文件。
我的操作:可以直接复制一个.gitconfig文件复件,然后改名为_netrc注意:n前面有个下划线。
然后把_netrc文件拖入notepad++ 里,输入:

machine gitcafe.com
login hello
password hello123

,这样每次部署的时候就不用输入用户名和密码了。
来源:
把Hexo同时部署到GitHub和GitCafe
Git push时重复输入用户名密码的问题

大功告成 :)

这时你就成功把hexo博客部署到了gitcafe上,快打开 http://hello.gitcafe.io/ 看看吧!

最后的最后,别忘了最最重要的一件事,现在,跟着我一起做,闭上双眼,双手合十,心里默念:感谢GitCafe!!!

其他问题

问题集1:

  1. 有网友反应右键菜单中没有git bash选项,可以进入开始菜单找到git bash,然后通过cd进入相应目录执行命令。
  1. 在github部署完成之后,马上访问可能出现404错误,这是正常的,(最多)等待十分钟左右就可以访问了。如果还不行,那很可能是 github 发送给你的验证邮件你没有打开看,据多方反映,验证后就没问题了。
  2. 如果在hexo d之后出现fatal: 'username.github.io' does not appear to be a git repository,一是检查 repo 的名字是否合乎规范、是否含有大写字母、config.yml 中的 deploy 配置是否正确,二是把 git bash 关掉,重新打开再执行命令。
  3. 有的同学可能不是 IT 界的,或者对shell 命令不太了解。在要求输入密码时,你输入之后密码是不显示的,这是为了安全,并非是你没输上。
  4. 出现乱码的,不要使用 windows 中的「记事本」打开并编辑文件,推荐使用 sublime text,很简单。如果已经在「记事本」中编辑过,需要使用 sublime text 转码为「utf8」。
  5. 安装 hexo 时卡在那儿不动,很可能是网络不给力,能全局 break wall 就好了。
  6. 遇到什么其他的问题,不妨删除.deploy 和db.json 再重新生成试一试。

来源:hexo系列教程:(二)搭建hexo博客

问题集2:

1.安装NoteJs,出现问题,安装到最后提示error 52**
过程:重新下载安装了几次都不行,不懂为什么,最后通过Hexo的文档提供下载地址进行下载,然后安装问题就没有出现了。 可能原因:
a.下载的安装包有问题的原因
b.我的C盘占用过多,盘符标红,然后卸载一些不常用软件解决,再安装再加上上面重新下载的安装包,之后安装成功。

2.部署提示找不到git
解决办法: 在Hexo 3.0版本后deploy git 被分开的,所以需要安装,安装命令如下:npm install hexo-deployer-git --save ,安装好后在尝试一下就ok。

3.部署提示 `event type error ***`
解决办法:
安装了git bash没有配置到环境变量path中,添加进去在试试。

4.部署的时候执行:hexo deploy 命令行没有任何输出,也没有错误。
解决办法:
在部署的_config.yml文件中,找到deploy:标签,在每个冒号后面必须要空格,否则就会出现上述问题。我的配置如下:
deploy:
type: git
repository: https://github.com/wx962464/wx962464.github.io.git
branch: master
顺便提示下,如果使用ssh部署不成功的话,请使用https的方式试试,这个就是每次会让你输入用户名和密码。其实效果是一样的。

5.修改主题不起作用,而且hexo generate还报错
解决办法:
需要到相应的主题文件夹下面进行修改,比如我的主题为:themes\jacman 则在根目录下找到该文件夹下,修改_config.yml文件,根目录下面也有个同样的名字,不注意,容易弄混,要主要修改的文件是否正确。

6.执行hexo server显示running at http://0.0.0.0:4000/

问题说明:
开始的时候以为启动服务器有问题,一直在找问题,找了半天没有答案,最后在浏览器直接尝试http://0.0.0.0:4000/ 是没办法访问的,然后就试了下http://localhost:4000/ 发现是可以访问的,大喜!~~

7.执行hexo server提示找不到该指令
解决办法:
在Hexo 3.0 后server被单独出来了,需要安装server,安装的命令如下:npm install hexo-server --save 安装此server后再试,问题解决。

8.以上就是我在这几天使用Hexo的一些问题,当然问题列的不够详细,只是一个大致思路,这些也是凭着自己的印象做的笔记,所以有些错误的地方希望大家指出,共同学习,共同进步!

来源:Hexo 使用中遇到的问题总结


参考

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容