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