开始用Octopress写Blog

0

嗯, 貌似用Octopress的循例是将初夜(初篇)献给八爪君的各种触手. 那么我也来写写好了.

很多宅与Hacker都已经吐槽(解释)过如何打造自己的触手系博客了. 所以就再也没有必要在这个方面啰嗦啦, 还是说说日常的blog方面吧…

就算千辛万苦搭建好触手君, 写博文也不会立即变得好像抽根烟那么容易哎:
你要打开termial, 然后输入rake new_post[oo_xx], 才能下笔. 接着还要各种rake preview来预览, 如果博文太多就需要rake isolate[oo_xx]来提高预览的速度. 最后还要rake deploy来发布. 我好似忘记了说, 新建一篇博文之后, 你还得打开那个目录(别告诉我你就放在桌面!!!), 来寻找那片博文, 这要点击多少次鼠标啊, 我的苍天.

这是彻彻底底违背了宅星人的第一法则 :

做事情要能懒则懒 (当然要做好, 不然老板炒鱿鱼就不要来找我寻仇哦)

宅星人第一法则

于是就写了些脚本, 好让写blog能爽快点, 当然光脚本也是绝对不够的, 我们还要请alfred君, (quicksilver娘因为傲娇到连我也受不了, 所以决定去和alfred君好), 当然还得为alfred君准备他的powerpack, 不然就什么也做不到了.

要解决的问题是:

既然都已经输入 rake new_post[oo_xx], 为什么都不直接帮我打开, 让我编辑啊, 魂淡. 而且我还想要立刻就打开这个页面进行预览!!!!

1.首先修改你的Rakefile, 将task :preview那一段修改成这样 :

task :preview
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
desc "preview the site in a web browser"
task :preview, :filename do |t, args|
  raise "### You haven't set anything up yet. First run `rake install` to set up an Octopress theme." unless File.directory?(source_dir)
  puts "Starting to watch source with Jekyll and Compass. Starting Rack on port #{server_port}"
  system "compass compile --css-dir #{source_dir}/stylesheets" unless File.exist?("#{source_dir}/stylesheets/screen.css")
  jekyllPid = Process.spawn({"OCTOPRESS_ENV"=>"preview"}, "jekyll --auto")
  compassPid = Process.spawn("compass watch")
  rackupPid = Process.spawn("rackup --port #{server_port}")


  filename = args[:filename] || ""
  system "sleep 2; open http://localhost:4000/blog#{filename}"


  trap("INT") {
    [jekyllPid, compassPid, rackupPid].each { |pid| Process.kill(9, pid) rescue Errno::ESRCH }
    exit 0
  }

  [jekyllPid, compassPid, rackupPid].each { |pid| Process.wait(pid) }
end

主要就是将task :preview改成task :preview, :filename do |t, args|
然后在里面添加了filename = args[:filename] || ""system "sleep 2; open http://localhost:4000/blog#{filename}" 这样就能在预览的时候直接在浏览器打开blog.

2.接着去下载这个gist, 放到你存放Rakefile的目录里面. 这个gist的工作是创建文章, 打开文章, 预览文章:

3.翻出你的alfred君, 添加一个Shell Script Extension:

  • Title : 创建博文
  • Description: (留空即可)
  • Keyword : newpost
  • Options : (全不选!)
  • Advanced : (同样全部不选!)
  • Parameter : 选 “Required Parameter”

然后Command里面输入 : (当然/Your/Path/To/Rakefile/Folder要换成你存放Rakefile的目录)

cd /Your/Path/To/Rakefile/Folder
./newpost.rb "{query}"

这样, 准备功夫就完成了. 下面就试试吧 : 翻出alfred君, 然后输入newpost my fancy new post(是真的不用双引号哦~), 回车… 好基友SublimeText2是不是就弹出来让你操纵呢…

其他一些问题:

  1. 如果想用其他编辑器来编辑, 则需要将newpost.rb里面的EDITOR = "subl"换成 :

    • EDITOR = "mvim" (换成MacVim)
    • EDITOR = "mate" (换成TextMate)
  2. 因为博客不是放在根目录里, 只能rake preview的方法来预览, 否则加载的文件的路径都错了… 可惜目前没找到能让LiveReload来刷新页面的方法, sign.

  3. 用了这个脚本, 在准备更新到服务器之前的那次rake generate之前, 必须先rake integrate. 否则只有新建的那个blog文哦.
  4. 要用SublimeText2之前还得先在terminal运行一下代码, 这样才能用它的命令行工具:
1
sudo ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" /bin/subl

呼, 好累哎, 睡觉先 =, =

Comments