Table of Contents
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 ~/.zshrcrbenv安装:
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
他会做几件事:
- 询问你的github url
- 把当前origin rename为imathis/octopress
- 把你的github pages作为default origin remote
- 从当前master分支转为source分支
- 把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错误。