2012-01-10 41 views
4

我想根據元數據中的狀態代碼將帖子呈現到不同的文件夾。如何在nanoc中創建「草稿」項目?

舉例來說,如果我有,我想對這些項目的status: draft屬性被渲染到了一個名爲/draft/文件夾,而status: live將呈現給/blog/。然後我可以用密碼保護draft文件夾,以便我只能查看它。如果完全沒有狀態,它將默認草稿。

這可能嗎?

回答

4

規則中的文件,使用以下命令:

route '*' do 
    if item.binary? 
    item.identifier.chop + '.' + item[:extension] 
    elsif item[:status] 
    '/' + item[:status] + item.identifier.chop + '.' + item[:extension] 
    else 
    item.identifier + 'index.html' 
    end 
end 

這將爲你有每個狀態的目錄。 例如:源文件以

--- 
title: file1 
status: testing 
--- 

將在/ testing /文件夾中創建。

要在編譯後刪除殘留文件,可以使用「nanoc prune」(nanoc 3.3.x中的新功能)。

+0

非常好,謝謝,這指出我在正確的方向。問題解決了。謝謝@Alkaline。 – 2012-01-10 13:57:47

+1

標識符之前不需要額外的'/',因爲標識符已經以斜槓開始。而且,在即將推出的nanoc 3.3版本中,您將能夠使用「nanoc prune」修剪剩餘的編譯文件,並且能夠自動修剪。 – ddfreyne 2012-02-07 08:04:05