Как создать "черновой" элемент в nanoc?
Я хочу отображать сообщения в разных папках в зависимости от кода состояния в метаданных.
Например, если у меня есть атрибут status: draft
Я хотел бы, чтобы эти элементы отображались в папке с именем /draft/
, в то время как status: live
будет оказано /blog/
, Я мог бы тогда защитить паролем draft
папка, чтобы только я мог ее просмотреть. Если статуса нет вообще, он по умолчанию будет черновиком.
Это возможно?
1 ответ
Решение
В вашем файле правил используйте следующее:
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).