使用 draft 機制撰寫草稿

有時可能我們同時編輯多篇文章,其中一篇文章寫完了需要發佈,但其他文章因為篇幅較龐大,暫時還沒有寫完。

當然我們不希望為了發佈其中一篇文章,而將其他未完成的文章也一併發佈,此時我們可以使用 Hexo 所提供的 draft 機制,讓我們可以在本機預覽草稿,但發佈時只發佈已經完成的文章。

Version


Hexo 3.1.1

傳統建立文章方式


一般我們都會使用 hexo new <title> 來建立文章,這種建立方法會將新文章建立在 source/_posts 目錄下,當使用 hexo generate 指令編譯 markdown 文件時,會將其 HTML 結果編譯在 public 目錄下,之後 hexo deploy 將會把 public目錄下所有檔案部署到 GitHub,這是我們熟悉的 Hexo 流程。

這種建立文章方式的缺點是:若我們同時編輯多篇文章,只要其中一篇文章尚未編輯完成,也會隨著 hexo deploy一起部署到 GitHub,也就是 GitHub 可能會看到我們尚未完成的文章。

建立文章草稿


1
$ hexo new draft <title>

Hexo 另外提供 draft 機制,它的原理是新文章將建立在 source/_drafts 目錄下,因此 hexo generate 並不會將其編譯到 public 目錄下,所以 hexo deploy 也不會將其部署到 GitHub。

本機預覽草稿


1
$ hexo server --draft

雖然 hexo generate 不會編譯 source/_drafts 目錄下的檔案,但 Hexo 的 Hexo server 另外提供 --draft參數,這讓我們只要搭配 hexo-browsersync plugins,就可以達到一邊使用 Sublime Text 編輯 markdown 文章,一邊使用瀏覽器預覽的目標。

將草稿發佈為正式文章


1
$ hexo publish <filename>

其中 <filename> 為不包含 md 副檔名的檔案名稱。它的原理只是將文章從 source/_drafts 移動到 source/_posts 而已。

之後的 hexo generatehexo deploy 的用法就完全一樣了。

若日後想將正式文章反悔成為草稿,只需手動將文章從 source/_posts 目錄移動到 source/_drafts 目錄即可。

Conclusion


  • 透過這種 draft 機制寫作,我們就可以同時編輯多篇文章,且可以自行挑選編輯完成的文章發佈,再也不會將未完成的文章部署到 GitHub 了
2015-08-31