octopress博客搭建和个性化配置

使用octopress搭建博客的人,大概都会喜欢写关于如何搭建配置octopress的文章。因为它的高定制性,为极客们带来很多乐趣。从首页的配置,到分类,评论,个人信息,社会化分享等的配置,内容繁多。而且这是我第二次搭建octopress环境了,发现上一次的配置有一部分不能clone到本机上。因此,把配置的过程记录下来是十分有必要的。
我的意愿是记录配置的过程,顺便整理大牛们关于这方面的一些说明。网络上相关资料有很多,没有实践过的没有摘录在这里。所有的代码实现都是直接引用前辈们的。另外,本博的配置环境是linux fedora 18.

octopress官方网站

octopress的配置都可以在官网上找到。事实上,遇到问题查询官网文档是最有效率的方法。

github的设置

创建仓库

登陆github网站,注册一个用户,假设为grunmin。
创建一个仓库,命名为username.github.com,例如grunmin.github.com

使用密钥登陆github

[[ -f ~/.ssh/id_rsa.pub ]] || ssh-keygen -t rsa     #生成密钥对

按默认一直确认即可。
在github帐号设置里找到ssh的设置,添加一个ssh key。
进入~/.ssh/找到id_rsa.pub文件,把里面的内容填到key里,title不填。
这样做的好处是之后push到仓库上时可以不用输入密码。

安装ruby

查看ruby版本

ruby --version  # 必须显示1.9.3

安装方法:

curl -L https://get.rvm.io | bash -s stable --ruby
rvm install 1.9.3
rvm use 1.9.3
rvm rubygems latest

若有显示命名未找到,直接下载安装即可。

安装octopress

在安装octopress之前,确保已安装git。

git clone git://github.com/imathis/octopress.git octopress
cd octopress
gem install bundler
bundle install
rake install

这里容易出现三个问题:
1、已安装rvm和bundler,但显示找不到命令。

用绝对路径:/home/username/.rvm/bin/rvm
/home/username/.rvm/bin/bundler
2、执行bundler install时显示:GemfileNotFound error?

可能在安装的过程中退出了octopress目录,进入后执行即可。
3、执行rake install时显示

rake aborted!
No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)

同理,进入安装目录即可。

将博客部署到github上

rake setup_github_pages 

此时会要求输入仓库的url,可以在github仓库内容业的右下角找到。
例如我的是git@github.com:grunmin/grunmin.github.com.git
成功后即可用

rake new_post["title"]

生成新文章,文章在source/_post/目录下,文件名构成为时间和标题的拼音。之后执行

rake generate
rake preview   

此时可以预览(浏览器打开localhost:4000可看到效果。)如果没有问题,则执行

rake deploy 
git add .
git commit -m "comment"
git push origin source 

保存到仓库。
需要注意的是执行git命令时应处于octopress目录,并且checkout到source分支,

cd octopress
git checkout source
git add .
git commit -m "comment"
git push origin souce

octopress博客的个性化配置

添加文章分类(category)

1、增加category_list插件
将下面的代码写到plugins/category_list_tag.rb

module Jekyll
  class CategoryListTag < Liquid::Tag
    def render(context)
      html = ""
      categories = context.registers[:site].categories.keys
      categories.sort.each do |category|
        posts_in_category = context.registers[:site].categories[category].size
        category_dir = context.registers[:site].config['category_dir']
        category_url = File.join(category_dir, category.gsub(/_|\P{Word}/, '-').gsub(/-{2,}/, '-').downcase)
        html << "<li class='category'><a href='/#{category_url}/'>#{category} (#{posts_in_category})</a></li>\n"
      end
      html
    end
  end
end

Liquid::Template.register_tag('category_list', Jekyll::CategoryListTag)

2、增加侧边栏
将下面的代码写到source/_includes/asides/category_list.html

<section>
  <h1>Categories</h1>
  <ul id="categories">
    {%raw%}{% category_list %}{%endraw%} 
  </ul>
</section>

修改_config.yml文件,找到default_asides:
在中括号内添加
asides/category_list.html

添加的位置决定在页面显示的位置,注意用逗号隔开。
用vim编辑器粘贴的话可能会自动缩进,启用粘贴模式或用其他编辑器即可。

添加社会化评论

octopress 产生静态网页,不支持评论功能,所以我们用第三方评论系统。好消息是octopress已为我们配置好了Disqus,我们只需要稍微填写以下信息即可。
1、首先在Disqus 注册一个帐号,点击添加到我的网页,添加站点信息,比如我的grunmin.github.io
2、修改_config.yml文件,找到这一段:

# Disqus Comments 
disqus_short_name: 
disqus_show_comment_count: false

添加你的disqus用户名,并把false修改成true即可。注意冒号后面有空格。
此外,可以用国内的多说系统,速度较快,且比较符合景德镇村民的需要。之前我用的就是这个,但是没有记录配置过程,这次克隆时多说系统没有成功启动,因此不折腾了,有需要的话可以自行谷歌。

导航栏设置

导航栏的设置在source\_includes\custom\navigation.html
我们可以将Blog和Archives修改为首页和归档,也可以在此添加一个标签页,此时应使用命令rake new_page['about']创建一个页面,页面路径为source\about\index.markdown;
修改后的文件如下:

<ul class="main-navigation"> 
  <li><a href="{{ root_url }}/">首页</a></li> 
  <li><a href="{{ root_url }}/blog/archives">归档</a></li> 
  <li><a href="{{ root_url }}/about">关于</a></li> 
</ul>

从新电脑上恢复博客内容:

如果电脑重装了系统,或者要在另一台电脑编写博客,可以这样设置。
找到博客仓库的url,执行

git clone -b source (url) octopress   #把source 克隆到本地octopress目录上
cd octopress
git clone (url) _deploy   #克隆master分支,它存放着博客内容。
gem install bundler
bundle install
rake install
rake setup_github_pages

之后操作同上,有问题照葫芦画瓢。

其他问题

如果不能生成或者推送博客了,可以采取下述措施:

  • 在命令行输入/bin/bash --login,重试
  • 查看ruby的版本,如果不是1.9.3的话,执行rvm use 1.9.3

持续更新…………

参考文章:

利用Octopress搭建一个Github博客

Ruby开源项目介绍(1):octopress——像黑客一样写博客

为octopress添加分类(category)列表

冯威的学习专栏---记录工作学习点滴

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

推荐阅读更多精彩内容