用Octopress来写博客并发布到Github上

2012-04-21 20:54

用过不少博客,MSN spaces,blogger.com,myspace, wordpress,搜狐,总是觉得少了点自由发挥的空间。直到现有有了octopress,就像我这个博客一样,这才是咱程序猿该有的!

  1. 安装
  2. 配置
  3. 发布
  4. 写第一个博文

安装

#Install octopress
git clone git://github.com/imathis/octopress.git octopress
cd octopress
bundler install
rake install

配置

你要先有个github.com的帐号,如果没有赶快注册吧。 注册好后新建一个软件仓库 https://github.com/new ,注意仓库名称要以下这种格式哦yourname.github.com,这样代码发布后自动这个url就可以访问了。

rake setup_github_pages

这个命令主要做以下的操作

  1. 问你github上的url。 我的是 git@github.com:wongyouth/wongyouth.github.com.git
  2. 将原始的imathis/octopress远端仓库origin名称改为octopress
  3. 把你输入的url作为远端仓库名origin
  4. 把当前目录从分支master切换到source
  5. 把当前目录与origin的仓库关联,能默认push到github中
  6. 配置_deploy目录作为github仓库的master分支

要做的就是把原始的blog代码放在source分支中,当要发布时会自动生成发布代码到_deploy目录下以master分支更新到github上。github会以master中的代码作为blog的原始代码。

发布

# Deploy blog
rake generate
rake deploy

当你发布之后,你就可以到 http://yourname.github.com 上看到你的博客了,是不是很酷呢。

写第一个博文

# Create first post
rake new_post['first post']

引号里面是博文的标题,这个命令会在source/_posts下面生成一个markdown为后缀的文件,我们要做的就是编辑这个文件的内容,然后

#Start a local server for preview
rake preview

会在本地启动sinatra服务,用浏览器打开 http://localhost:4000 就可以看到效果了。如果都没有问题就可以发布了。

有时候写了一半的博文想要先留为草稿放到服务器但是不发布这样情况。 我们可以在单独的这篇博文开头的yaml里面追加设置

published: false

这样deploy的时候就不会发布了。

其他

你可以仔细查看以下三个文件,如果觉得有必要就按照自己的配置修改。

  1. _config.yml
  2. config.rb
  3. config.ru

_config.yml中有关联其他一些社区的配置,比如github.com帐号,facebook帐号等。我认为比较有用的是disqus的评论帐号。到disqus注册一下,然后设置好disqus_short_name这样你的博客就有了评论功能了,而不是你一个人在唱独角戏了。

在其他电脑里面同步时的操作

git clone git@github.com:wongyouth/wongyouth.github.com.git
cd wongyouth.github.com
git checkout source
git clone git@github.com:wongyouth/wongyouth.github.com.git _deploy

_deploy目录是用来与远程代码库同步的目录,所以我们要把它checkout出来预先做好关联

make a new post and something else …

rake generate
rake deploy
除非注明,文章均为 wongyouth 原创,转载请注明本文地址:http://wongyouth.com/blog/2012/04/21/install-octopress-to-write-blogs-and-deploy-on-github-dot-com/
  • 关于我
  • 破而后立 系统架构师
    全栈式 Rails 开发者
    最近折腾了一些前端框架
    关注 Web,移动,创业
  • 近期评论
    • 使用手机阅读或分享至微信朋友圈