octopress安装和定制


ruby安装

参考:http://octopress.org/docs/setup/
一个是rvm,rbenv
rvm是出现最早功能最强大,但是有点复杂。
rbenv是37sigle功能推出的,比较受欢迎。


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


echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile
source ~/.bash_profile

# If using Zsh do this instead
echo '[[ -s $HOME/.rvm/scripts/rvm ]] && source $HOME/.rvm/scripts/rvm' >> ~/.zshrc
source ~/.zshrc
rbenv安装:


cd
git clone git://github.com/sstephenson/rbenv.git .rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
source ~/.bash_profile

touble shot:

在zsh中,启动rbenv init -会提示错误

$HOME/.rbenv/libexec/../completions/rbenv.bash:14: command not found: complete
修改为:


eval "$(rbenv init - zsh)"

安装ruby rehash


rbenv install 1.9.3-p0
rbenv global 1.9.3-p0
rbenv rehash
关于为什么要做rehash,解释如下:
新装的gem(以前重没装过)一定要rehash在.rbenv/shims下生成可执行程序,像zsh要自动补全还需要 hash -r .不过因为 rbenv init - 里会调用rbenv rehash,所有新开个窗口是不需要的.我的用法是bundler管理gemset,在~/.bundle/config里设置BUNDLE_PATH为vendor/bundle , 配合shell的一个小函数为常用命令添加alias,在发现Gemset的时候自动加上bundle exec ( rbenv.zsh ).通过bundler安装bundle exec执行是不需要rehash的。


openssl

启动时提示:
require’: cannot load such file – openssl (LoadError)
解决办法:
apt-get install libssl-dev
重新安装ruby
rbenv install 1.9.3-p0


安装octopress


git clone git://github.com/imathis/octopress.git octopress
cd octopress    # If you use RVM, You'll be asked if you trust the .rvmrc file (say yes).
ruby --version  # Should report Ruby 1.9.3
遇到的问题,安装后我clone了octopress然后执行gem但缺少zlib库。
解决办法:


sudo apt-get install zlib1g-dev
rvm reinstall 1.9.3 #重新安装ruby
安装依赖:


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

Deploying to Github Pages

参考:http://octopress.org/docs/deploying/github/


rake setup_github_pages
他会做几件事:

  1. 询问你的github url
  2. 把当前origin rename为imathis/octopress
  3. 把你的github pages作为default origin remote
  4. 从当前master分支转为source分支
  5. 把master分支设置为_deploy目录,用于发布页面


然后运行


rake generate
rake deploy
这会生成website在_deploy目录,然后提交到github。


然后提交source分支


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

gh-pages

还可以通过project pages页面来部署,这样你的页面的访问地址为:
http://username.github.com/project
适用于多个工程的情况,每个工程一个站点。
实际上显示时,github会搜索你工程下的gh-pages分支,作为显示。


重新安装octopress



git clone -b source git@github.com:username/username.github.com.git octopress #下载source版本(用于编辑)
cd octopress
git clone git@github.com:username/username.github.com.git _deploy #下载_deploy版本(用于发布)
bundle install
我是升级的octopress,所以我还是需要重复之前的安装过程,需要安装ruby,gem,bunlder等。
然后执行
rake setup_github_pages


rake install[theme]
安装一个主题,把github上的source中_post目录cp过来,以及修改的插件等手工合并进来,然后使用git push -f 强行push的。


安装主题

下载后放到.themes目录下,然后执行对应主题的安装,如:
rake install[‘bootstrap’]
rake generate


rake install\[‘blanket’\]
有一点不好的是,code区显示不完全。还是有点缺憾。


我目前使用的是:
bootstrap-theme虽然使用了bootstrap,基石很强大,但调整的不好。
文章和文章之间没有隔离,不方便区分。
还有就是字体使用的是固定px,13px行间距是18px,为什么不用em呢?
我尝试修改sass中的basefont为1em,但整体显示就乱了,有的code无法显示,所以干脆先这么用这吧。


主题下载页
https://github.com/bkutil/bootstrap-theme
重新安装octopress


配置

date_format: “%Y年%m月%d日”


个性化定制

邮箱地址图片化

很多博主都将邮箱地址转化成图片,目的是为了防止垃圾邮件,我也赶了一下时髦。


邮箱地址生成图片的网址是:


http://services.nexodyne.com/email/index.php
http://pic.sdodo.com/tool/mailpic/


about分页

在source下新建about目录,并在里面添加index.markdown文件。
编辑导航条source/_includes/custom/navigation.html
注意:index.markdown文件需要加上头,否则会找不到。


在侧边栏中a天际about me
在custom/asides/about.html中添加About Me信息


<section>
  <h1>About Me</h1>
  <p><img src="/images/about.jpg"></p>
  <p>some thing</p>
  <p><a href="mailto:emmoblin@gmail.com"><img src="/images/my_email.png" alt="emmoblin@gmail.com"></a></p>
</section>

添加友情链接

在custom/asides/blog_link.html中添加友情链接


  <h1>大牛博客</h1>
  <ul>
    <li>
      <a href="http://coolshell.cn/">酷壳CoolShell</a>
    </li>
    <li>
      <a href="http://mindhacks.cn/">刘未鹏MIND HACKS</a>
    </li>
    <li>
      <a href="http://blog.codingnow.com/">云风</a>
    </li>
    <li>
      <a href="http://www.cnblogs.com/Solstice/">陈硕</a>
    </li>
  </ul>
</section>

侧边栏添加Disqus评论

在custom/asides/recent_comment.html中添加Disqus评论


<section>
  <h1>近期评论</h1>
<script type="text/javascript" src="http://emmoblin.disqus.com/combination_widget.js?num_items=5&hide_mods=0&color=blue&default_tab=recent&excerpt_length=200"></script><a href="http://disqus.com/">Powered by Disqus</a>
</section>

增加一键分享

我目前使用的是bshare。


在_config.yml中增加bshare: true。 在“source_includes\post”下的sharing.html中增加如下代码.
上述的代码由bshare产生,可以自己选择所需的外观。 这样,在每一篇文章的最下方会出现一个分享的小工具。


参考资料

使用了org-jekyll.el

我是使用org-mode来管理笔记的,使用了org-jekyll插件来把org笔记转化为jekyll的格式。
首先通过C-c C-e 把整个project进行export,生成cache。
之后org-jekyll-export-blog,根据cache的内容生成对应的octopress文件。
org-jekyll是根据~/.org_timestamp/的cache生成的。所以先要export project,之后再用org-jekyll。


org-jekyll-export-current-entry 使用时光标所在entry进行导出。


所有source/_posts目录下的html都可以重新生成,注意有的时候格式不对,比如title中不能包含中文,
会导致rake genernate错误。