高見龍

iOS app/Ruby/Rails Developer & Instructor, 喜愛非主流的新玩具 :)

縮短重新產生文章的時間

搬到Octopress之後,用Markdown寫文章感覺還不錯,不過慢慢的發現,每次我要寫一篇文章,想要看看它的樣子的時候,都得重新產生一次文章。雖然藉助一些可以所見即所得或內建預覽功能的markdown editor(例如MouByword之類的),但畢竟layout看起來還是不太一樣。

我這種小咖的文章只有大概200篇左右,也許是我電腦等級比較差,每次重新產生文章大概都得等個半分鐘左右,我開始好奇有上千篇文章的人在重新產生一次要花多久時間了。

正想說開發Octopress的人這麼聰明,應該不可能沒想到要怎麼解決這個問題。原來Octopress有寫好了一個rake指令叫做rake isolate,例如這樣:

> rake isolate[some-post]

後面接的是某一篇markdown的檔名(不包含日期),這樣一來它會把所有的文章搬到source/_stash底下,只留下some-post這個markdown檔在source/_post,這樣不管你是用Pow或是rake preview在本機預覽你的文章,因為只會重新產生一篇文章,速度都會快得多。放在source/_stashs的檔案在重新產生的時候會暫時被忽略。

如果寫好了,準備要來發佈了,可以來一下rake integrate,它會把剛剛移過去source/_stash的檔案再度的搬回來source/_post,再次rake generate之後就可以deploy出去了。這樣一來,每次需要等比較久的時間就只有最後要發佈出去的那次了。不過我覺得這樣還是不太滿足,難道不能比對檔案是否有變動然後只對有變動的markdown檔案做regenerate就行了嗎? 看來似乎得去改寫jekyll才有辦法的樣子 :)

上面這些動作,不管是rake isolate或是rake integrate,如果不放心或是懶得打指令的話,也都可以自己手動的來移動這些檔案。

Comments