1 相关介绍

Octopress

Octopress是利用Jekyll博客引擎开发的一个博客系统,生成的静态页面能够很好的在github page上展现。如果用Jekyll写博客的话,得要自己写HTML模板、CSS、Javascript,并且要自己做配置。但是如果用Octopress,这些都帮你做好了,只要clone or fork Octopress,安装些依赖的库和主题就行了。

Github pages

GitHub是全球最大的社交编程及代码托管网站,GitHub可以托管、分享各种代码库或项目,并提供一个web界面。

Github Pages就是为你或你的项目提供一个静态的网站。原理就是把你的一个特殊的repository (yourname.github.io),或者某个repository特殊分支(gh-pages)的静态文件以网页形式展现出来,前者一般作为个人主页,后面一般作为项目的主页,这两种情况后面会说到。

这种方案优势:1.搭建、发布简单;2.免费、无限流量,3.绑定自己域名

2 安装Octopress

安装前准备

可以通过安装RVM,来安装、管理ruby版本

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

接着是安装Ruby 1.9.3

1
2
rvm install 1.9.3
rvm use 1.9.3

安装Octopress

克隆Octopress的代码库

1
2
git clone git://github.com/imathis/octopress.git octopress
cd octopress

安装依赖库

1
2
3
gem install bundler
rbenv rehash    # If you use rbenv, rehash to be able to run the bundle command
bundle install

安装Octopress默认主题

1
rake install

3 配置Octopress

Octopress的作者已经让配置尽量简化了,一般情况只需要配置_config.ymlRakefile文件即可。下面是Octopress的配置文件列表。

1
2
3
4
_config.yml       # 主要配置文件 (Jekyll的设置)
Rakefile          # 部署相关配置
config.rb         # Compass config
config.ru         # Rack config

_config.yml文件中主要有三大配置段:Main ConfigsJekyll & Plugins3rd Party Settings。一般,该文件中其中url是必须要填写的,这里的url是在github上创建的一个仓库地址,具体请看第四步中创建的地址。另外再修改一下title、subtitle和author,根据需求,再开启一些第三方组件服务。

参见 Configuring Octopress

4 部署到Github Pages

Github User/Organization pages

如果想放到http://username.github.io域名下,就用这种方式。以前是.com域名,现在改成.io了。不过可以配置自己的域名,这个后面会说到。

首先需要在GitHub上创建一个新的仓库,命名为username.github.iousername就是你在Github的用户名。等后面配置好部署到Github上以后,就可以通过http://username.github.io访问了。这种方式需要一个master分支来存放生成的博客内容(_deploy目录),source分支存放整个源码。用octopress的一个rake任务可以自动完成以上配置。

1
rake setup_github_pages

这条rake任务会让你输入仓库的地址,SSH和HTTPS的URL都可以。执行后,会做以下事情:
1. 存储Github Pages的仓库地址
2. 将octopress的远程仓库origin重命名为octopress
3. 将Github Pages仓库作为默认的远程origin
4. 将当前分支从master切换到source
5. 根据仓库地址配置博客的URL
6. 在部署目录_deploy中创建master分支

然后执行:

1
2
rake generate
rake deploy

这两条命令会生成博客系统的主要文件并拷贝到_deploy/目录,然后添加到git版本控制,提交并推送到远程主分支。过一会就可以访问http://username.github.com了。

然后把源码提交到source分支

1
2
3
git add .
git commit -m 'your message'
git push origin source

Github Project pages (gh-pages分支)

Github的Project Pages服务可以为项目提供网站页面。它会在项目仓库中寻找gh-pages分支,然后通过http://username.github.io/project访问项目网站。

执行Octopress的rake任务命令

1
rake setup_github_pages

然后执行

1
2
rake generate
rake deploy

这几条命令的执行结果基本与上面的类似。

参见 Deploying to Github Pages

自定义域名

首先在source/目录下新建一个名为CNAME的文件,并填入你的域名,比如example.comblog.example.com

然后到你的域名登记或DNS管理网站添加一条域名记录

  • 如果是顶级域名,比如example.com,那么需要创建一条A记录,并指向204.232.175.78
  • 如果是二级域名,比如blog.example.com,那么创建一条CNAME记录,并指向username.github.io

然后执行

1
2
rake generate
rake deploy

大概过个10分钟,就可以用新的域名访问了。

5 开始写博客

Octopress提供了一些rake任务来创建博文和页面。博文必须存储在source/_posts目录下,其中预置了一些元数据,并且以Jekyll的命名规范命名:YYYY-MM-DD-post-title.markdown。博文的名字会被当做url的一部分,而其中的日期用于对博文的区分和排序。

创建博文

通过Octopress提供的rake任务可以正确的按照命名规范创建博文,并且在博文中会预知一些常用的yaml元数据。

1
rake new_post["title"]

其中title为博文的文件名,创建出来的文件默认是markdown格式。上面的命令会创建出这样一个文件:source/_posts/2013-08-03-title.markdown。用文本编辑器打开这个文件,可以看到里面有一块yaml元数据(Jekyll博客引擎会根据这些内容处理博文和页面):

1
2
3
4
5
6
7
8
---
layout: post
title: "Zombie Ninjas Attack: A survivor's retrospective"
date: 2011-07-03 5:59
comments: true
external-url:
categories:
---

设置博文

在以上的yaml元数据块里可以:

  • 关闭评论
  • 给博文添加分类
  • 如果是多人博客,可以添加author: Your Name到元数据
  • 如果只是想作为草稿,不想在发布后公开,那么可以添加published: false
  • 如果是想发布个外链博文,只要为博文添加个external-url

你还可以想下面这样添加一个或多个分类:

1
2
3
4
5
6
7
8
9
10
11
# 一个分类
categories: Sass
 
# 多个分类,示例1
categories: [CSS3, Sass, Media Queries]
 
# 多个分类,示例2
categories:
- CSS3
- Sass
- Media Queries

撰写博文

在元数据块下面就可以撰写博文正文了。

如果想在首页中只显示博文的部分正文,可以在博文中写入<!--more-->,这样首页的博文就只显示<!--more-->标识之前的内容,并在每篇博文底下加一个Read on超链接。

生成并预览

1
2
rake generate   # 生成post和page到public目录
rake preview    # 启动服务并预览 http://localhost:4000

预览无勿的话,就可以部署了

1
rake deploy

参见 Start blogging with Octopress

参考文章

SSL证书申请与在Nginx下的配置

http协议默认情况下是不加密的,各种信息都是明文传送。SSL是Secure Socket Layer的简称,具体的作用就是在部署了SSL证书的网站跟用户浏览器之间建立一个安全的会话。以防止信息在互联网任何中间节点上被盗用。####购买SSL如果购买就不赘述了,我是从 [ …… 阅读全文

评论