Как создать "черновой" элемент в 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).

Другие вопросы по тегам