Ubuntu下建立Octopress博客过程
1
|
sudo apt-get install git
|
1
|
curl -L https://get.rvm.io | bash -s stable --ruby=1.9.3
|
1
|
git clone git://github.com/imathis/octopress.git
|
1
2
3
4
5
|
gem sources -a http://ruby.taobao.org/
gem sources -r http://rubygems.org/
gem sources -l #确保只有淘宝的ruby镜像
gem install bundle
bundle install #建议更改Gemfile第一行source为taobao镜像
|
1
2
|
git clone git://github.com/tommy351/Octopress-Theme-Slash.git .themes/slash
rake install['slash']
|
可以定制slash
主题,由于众所周知的原因,我把博客的分享换成了国内的jiathis,评论系统换成了国内的多说,需要更改的地方也不是很多,就不详细叙述了,具体可以参考我的代码。当然你也可以使用其他的分享、评论系统,或者使用默认的也行。至于其他的第三方帐号,我只使用了Google Analytics,这个也很简单,就不赘述了。
1
|
rake generate && rake preview
|
如果你没有改动Rakefile
里的server_port
的话,默认就可以在 http://localhost:4000/ 查看博客了。
首先你得有一个github帐号,比如说yourname,然后create repo,名字是yourname.github.com。新手的话可能还需要设置下git和github服务器通信,可以参考github的帮助页,setup-git和generating-ssh-keys等来进行设置。
OK,以上搞定后,可以在本地操作了。
1
|
rake setup_github_pages
|
按照提示输入你的github repo url就可以了。
然后部署。
1
|
rake generate && rake deploy
|
等几分种刷新下http://yourname.github.com 应该就不会显示404页面而是你的博客页了。
- 把修改后的
octopress
和slash
主题也push到github
1
2
3
|
git add .
git commit -m 'push source'
git push origin source
|
这样子的话,这个repo就有了2个branch,一个是master,就是rake generate
生成的博客网站,一个是source,就是你修改的octopress配置文件和slash主题。
1
|
echo "youdomain.com" >>source/CNAME
|
到域名服务商那里设置DNS就可以了。
1
|
rake new_post['new-post-title']
|
这个命令会在source/_posts目录下生成一个markdown文件,编辑这个markdown文件即可。markdown的语法可以在gitcafe上查看。
写了新文章后,push到github。
1
2
3
|
git add .
git commit -m 'new post'
git push origin source
|
然后deploy到github page
1
2
|
rake generate
rake deploy
|
过不了多久就可以在http://yourname.github.com 上查看最新写的文章了。
- 更换工作环境后,恢复octopress和原来的文章
1
|
git clone -b source git@github.com:yourname/yourname.github.com.git
|
剩下的安装rvm
等参考前面文章。
获得博客网站有两种方式,一是rake generate
直接在本地生成,另一种是从github服务器上取回来。
1
2
3
4
5
|
cd yourname.github.com
mkdir _deploy && cd _deploy
git init
git remote add origin git@github.com:yourname/yourname.github.com.git
git pull origin master
|
OK,现在可以继续写博客,然后po了。
后记:
- 写了文章,执行
rake deploy
可能会显示错误,修改Rakefile文件里的deploy函数中的push
为push -f
即可,注意文件中的第18行是修改过的。
desc "deploy public directory to github pages"
multitask :push do
puts "## Deploying branch to Github Pages "
puts "## Pulling any updates from Github Pages "
cd "#{deploy_dir}" do
system "git pull"
end
(Dir["#{deploy_dir}/*"]).each { |f| rm_rf(f) }
Rake::Task[:copydot].invoke(public_dir, deploy_dir)
puts "\n## Copying #{public_dir} to #{deploy_dir}"
cp_r "#{public_dir}/.", deploy_dir
cd "#{deploy_dir}" do
system "git add -A"
puts "\n## Commiting: Site updated at #{Time.now.utc}"
message = "Site updated at #{Time.now.utc}"
system "git commit -m \"#{message}\""
puts "\n## Pushing generated #{deploy_dir} website"
system "git push -f origin #{deploy_branch}"
puts "\n## Github Pages deploy complete"
end
end