教程:一步步在github上建立octopress博客

照此教程,可搭建此博客.

Octopress LOGO

目标

创建网址为http://never.doubting.me的博客.博客使用octopress程序,搭建在github的服务器上.网页与本地机器的never.doubting.me文件夹同步.

步骤

0) 配置环境

octopress需要ruby和git支持. 因此我们需要先安装这两个程序. 这儿分windows和Mac分别讲下.

Windows(简略说下,详细教程请搜索):

下载并安装git:

http://git-scm.com/download

下载并安装Ruby和开发组件(DEVELOPMENT KIT),共两个文件,Ruby推荐1.9.3版,对octopuses支持很好:

http://rubyinstaller.org/downloads/

Mac:

Mac本身自带了git,因此不需要单独安装.

Octopress需要带openssl组件的ruby支持.

但新版本的ruby似乎编译对参数--with-openssl-dir=my/openssl/dir支持有问题, 因此推荐使用rvm安装管理多版本的Ruby, rvm默认安装Ruby 2.0版本, 这儿为了不发生兼容性问题, 除了默认的2.0, 再安装个带openssl的1.9.3版.

  • 确认Xcode和其自带的命令行工具已经安装.

    如没有,Xcode可在App Store免费下载.命令行工具可以在Xcode- Preferences - Download 中 点击安装 Command Line Tools.

  • 安装rvm, rvm是个软件管理工具,和Linux上的apt-get,yum之类类似.

sudo curl -L https://get.rvm.io | bash -s stable

在~/.bash_profile文件末尾添加:

echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"

加载下配置文件:

source ~/.bash_profile
  • 安装1.93版支持openssl的Ruby.
rvm install 1.9.3 --with-gcc=clang ----with-openssl-dir=$HOME/.rvm/usr
rvm use 1.9.3 --default

1) 下载octopress至本地never.doubting.me文件夹

octopress的源代码同样在github上管理,因此我们使用git克隆一份到本地的never.doubting.me文件夹,并进入此文件夹. 如你没有域名,可以使用github提供的默认域名:yourname.github.com,yourname是你github的用户名.

git clone git://github.com/imathis/octopress.git never.doubting.me
cd never.doubting.me

2) 安装相关组件

gem install bundler
bundle install

3) 安装主题

rake install

上条命令安装默认主题,在https://github.com/imathis/octopress/wiki/3rd-Party-Octopress-Themes可以找到许多第三方主题,这儿我们选择slash主题,如询问是否覆盖,选择是:

git clone git://github.com/tommy351/Octopress-Theme-Slash.git .themes/slash
rake install['slash']

4) 在github上创建repository

Github上注册个账户,选择免费套餐.

新建一个repository.

注意:repository的名字一定要yourname.github.com这样的格式. yourname是你注册时的用户名.

这儿我创建名为znithy.github.com的repository,创建好后拷贝ssh地址.

https://github.com/znithy/znithy.github.com.git

5) 建立本地与github的联系

rake setup_github_pages

输入上述ssh地址,注意区分大小写. 如遇验证问题,提示类似

rake aborted!
undefined method
[]' for nil:NilClass

Tasks: TOP => setup_github_pages
(See full trace by running task with --trace)

的信息,请看此文:github设置ssh验证

6) 绑定域名

首先把你的域名指向207.97.227.245,如不知怎么操作,请咨询域名注册商. 在source文件夹下建立CNAME文件:

echo 'never.doubting.me' >> source/CNAME

7) 生成网页并推送到github

rake generate
rake deploy

稍等几分钟,你就可通过域名访问博客了.并且收到一封博客建立的信件.

8) 自定义博客

博客的基本信息在_config.yml文件中修改. 自定义css等在source文件夹中. 修改后别忘了:

rake generate
rake deploy

9) 发表文章

rake new_post["教程:一步步在github上建立octopress博客"]

这儿我新建了一篇名为教程:一步步在github上建立octopress博客的文章. 之后去source/_post/文件夹找到对应.markdown文件修改.

打开文件后可以看到文件头包含一些文章的信息,这儿我修改为:

---
layout: post    
title: "教程:一步步在github上建立octopress博客"    
date: 2013-04-18 01:13    
author: znithy    
comments: true    
categories:     
- 教程    
- github    
- octopress    
published: false
---

第一张指明此篇是post,后面是标题,时间和作者,我加了教程 github octopuses 三个标签,并且允许评论,published: false表示不要发表,如想要发表改成published: true或者直接删掉这行.

文章直接写在这部分内容下面.

10) 发表外链文章

点击标题转向其他网页.创建方法同上,只是需要添加external-url这个条目. 下面是一个例子:

---        
layout: post    
title: "非常不错的科学博客"    
date: 2013-04-18 01:13         
comments: true        
external-url: http://keep.doubting.me/        
---

11) 发表页面

创建网址为http://never.doubting.me/about/i.html的网页:

rake new_page[about/i.html]

post不同的是,此时没有categories这个条目,但多了sharingfooter,具体有什么作用,不妨自己试下.

---    
layout: page        
title: "Super Awesome"    
date: 2011-07-03 5:59    
comments: true    
sharing: true    
footer: true        
---

12) 管理文章

直接增加或删除.markdown文件即可. 每次更新文件后别忘了:

rake generate
rake deploy

其他

git设置用户名

默认情况下直接使用系统的用户名,也可通过下面的命令自定义:

git config --global user.name author #将用户名设为author    
git config --global user.email author@mail.com #将用户邮箱设为author@mail.com

关于怎样使用git,这份教程很不错,推荐.

看日记学git.pdf

第三方插件地址:

https://github.com/imathis/octopress/wiki/3rd-party-plugins

中文问题:

如遇到此类提示(可能因设置了中文的catagory):

...
Liquid Exception: invalid byte sequence in UTF-8 in atom.xml
/Documents/never.doubting.me/plugins/octopress_filters.rb:75:in `gsub'
/Documents/never.doubting.me/plugins/octopress_filters.rb:75:in `cdata_escape'
...

最方便的方法是换用kramdown.首先安装kramdown:

gem install kramdown

之后修改_config.yml文件:

markdown: kramdown