折腾 HEXO

折腾了好久的 Ubuntu 下 HEXO 安装与使用方法

久别的重逢

看了一下在 Github 上的第一篇也是唯一一篇 blog,居然是三个月之前写的。当时刚入职,以为就要开始新的人生,同时也想维护起来自己的技术博客,希望能记录下来成长历程。不过后来操作系统换成 ubuntu 之后 hexo 一直没有安装成功,博客也就一直荒废在那儿,默默记录着我的懒惰。

趁着周末,我实在看不下去博客就这么荒着,再加上工作了三四个月也接触到了很多东西,积累了很多想法,就趁着周末好好折腾了一下 hexo,现在终于能运行良好了(当然不能自动部署到 github 这种小问题是可以忽略的)。

HEXO 概述

HEXO 是基于 nodejs 的快速简单并且强大的静态博客框架。

HEXO 特性

  • 快速生成文章( 从 Markdown 编译成 HTML)
  • 支持 Github 风格的 Markdown 语法和大部分 Octopress 插件
  • 一键部署到 Github Pages,Heroku 等
  • 强大的插件系统

快速入门(是的,快速入门其实是给有经验的人看的)

就我个人经验,快速入门其实并不是太适合纯新手。当然快速入门可以作为接触 hexo 的开始,然后当你踩过很多坑之后你,回过头来看才会真正地喜欢上快速入门。

安装

前提是必须先安装 nodejs

1
npm install hexo -g

开始博客之旅

1
2
3
$ hexo init blog
$ cd blog
$ npm install

启动博客服务器

1
hexo server

新建一篇博客

1
hexo new "Hello Hexo"

生成静态文件

1
hexo generate

然后就可以在localhost:4000访问刚才新生成的 Hello World 文章了。

坑与解决方案

从源码安装 nodejs

  1. 从 github 下载 v4.2.1(LTS)版源码

    1
    wget https://github.com/nodejs/node/releases/tag/v4.2.1
  2. 从源码安装

    1
    2
    3
    4
    5
    tar zxvf node-4.2.1
    cd node-4.2.1/
    ./configure
    make
    sudo make install
  3. 查看 node 版本

    1
    2
    node -v
    # v4.2.1
  4. 一个服务器 demo

    1
    2
    3
    4
    5
    6
    7
    8
    # http.js
    var http = require("http");
    http.createServer(function(request, response) {
    response.writeHead(200, {"Content-Type": "text/html"});
    response.write("Hello Node!");
    response.end();
    }).listen(8000);
    console.log("server start at 8000");
  5. 运行 http 服务器

    1
    2
    3
    node http.js
    # server start at 8000
    # 然后就能从 http://localhost:8000/ 访问了

hexo deploy 无法部署到 github

1
2
3
4
cd sfyumi.github.io
git clone git@github.com:sfyumi/sfyumi.github.io.git public
cd pubic/
git push

通过 git 手动 push 到 github

总结

我遇到的问题当然不止这些,不然也不会拖了三个月才又重新开始 hexo 之旅,但到目前来说它们都被解决了(当你看到这篇博客出现在我的主页上的时候)。

本文链接 http://sfyumi.github.io/2015/10/31/work-on-hexo
作者 sfyumi