王绵杰的个人博客

博客搬家了!

我的博客之路

CSDN

如今进入互联网这一行,如果没有自己的博客你都不好意思跟人家聊技术,我在3、4年就开始在CSDN上记录自己的学习过程,那时候之所以在CSDN上建博客,一来是因为方便,再者是没有技术要求。然而久而久之你会发现,这东西已经无法满足我们的要求,丫每次打开博客的时候都下决心要自定义自己的博客,于是乎就有了基于Octopress的博客。
CSDN博客

Octopress

那是去年的第一场雪,比前年来的稍晚一些;我在自己的mac上键入疾飞,在克服重重困难之后终于在github上搭建了属于自己的博客。此博客用了一年之久,然而又久而久之,丫又满足不了我们的要求了。一是因为人懒了,好久没更新了,更重要是提交更新巨慢啊,rake preview之后,喝了一杯咖啡你会发现还有百分之十未完成。这是由于Octopress是基于Ruby的,生成博客文章的速度非常慢,于是我就查找到了代替它的东西Hexo

Hexo

使用Hexo的原因:

  • Hexo和Octopress都是生成静态文件,可以很方便的托管到github和coding上
  • Hexo是基于Node的,而Node的速度是非常快的
  • Hexo目前在github上的stars已经超过Octopress,更多的人在维护Hexo

配置Hexo的大致过程以及自己踩过的坑:

安装Hexo

要安装Hexo首先要安装npm:

入坑1:

当你安装npm的时候会提示你本地没有安装node,然后你去费劲周折安装node,回来再安装npm,觉得这次可以了吧。然后你会发现装不动啊,丫去查资料发现镜像是国外的,又是背墙的悲剧。换淘宝镜像,然后你终于发现在中国还是国产的好(当然核心还是国外的啊)!不过,最近发现NodeJs的安装包默认安装npm,这可方便了很多。

现在如下命令安装 Hexo:

npm install -g hexo-cli

如果报用户权限不够就试试sudo,如果提示各种ERR的话就试试:

npm install hexo --no-optional

实在不行,重新安装npm。

创建一个新的博客

接着我们创建一个新的博客目录:

$ hexo init myBlogFolder #本地建文件夹
$ cd myBlogFolder
$ npm install

以上命令完成后,会在目标目录生成以下的目录结构:

.
├── _config.yml
├── package.json
├── scaffolds
├── source
|   └── _posts
└── themes

之前的hexo会默认在source建很多文件夹,不过最近版的hexo只有一个_posts文件夹,其他需要自己创建。
可以看到,hexo的目录非常简单:

  • _config.yml 是博客的配置文件,里面可以配置你的Title,签名,头像等等(ps:配置文件有Key: value的格式,并且冒号后必须有空格)
  • scaffolds 是博客文章模板。
  • source 是博客文章目录,你可以在这里添加标签、关于等文件夹便于管理。
  • themes 存放主题风格文件,默认是landscape,我个人使用的是Next

OK!测试一下:

生成博客配置文件

hexo g

发布到本地服务器

hexo s

访问:localhost:4000
然后你会看到很朴素的博客就诞生了。

发布到github和coding

根目录的_config.yml中找到:

deploy:
    type: git
    repo:
    coding: https://git.coding.net/yourcoding/yourcoding.git,coding-pages
    github: https://github.com/yourgithub/yourgithub.github.io.git,master

入坑2:

在配置coding的时候,一定要放在coding-pages的分支,不要放在master,因为coding的pages功能默认在coding-pages分支上,当时我就是错设置为master,导致一直404;

入坑3:

在github建repository的时候,github默认每个用户只能建一个pages静态链接库,并且在创建repository时候加上.github.io

绑定域名

如果有需要可以购买属于自己的域名,设置解析域名,海外绑定github的地址,默认绑定coding的地址,这样就可以国内访问coding,国外访问github了。这里如何把github和coding绑定到自己的域名就不说了,网上有很多这方面的资料。

Future

记录学习与生活,希望自己在这一块净土,耕耘并记录自己的未来。