Как создать «черновик» в nanoc?

Я хотел бы отображать сообщения в разных папках в зависимости от кода состояния в метаданных.

Например, если у меня есть атрибут status: draft, я бы хотел, чтобы эти элементы отображались в папке с именем /draft/, а status: live — в /blog/. Затем я мог бы защитить паролем папку draft, чтобы только я мог ее просматривать. Если статуса нет вообще, по умолчанию будет черновик.

Это возможно?


person Charles Roper    schedule 10.01.2012    source источник


Ответы (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).

person Bernard    schedule 10.01.2012
comment
Отлично, спасибо, что указали мне правильное направление. Задача решена. Спасибо @Alkaline. - person Charles Roper; 10.01.2012
comment
Дополнительный «/» перед идентификатором не нужен, так как идентификатор уже начинается с косой черты. Кроме того, в грядущем выпуске nanoc 3.3 вы сможете удалять оставшиеся скомпилированные файлы с помощью «nanoc prune», а также сможете выполнять обрезку автоматически. - person Denis Defreyne; 07.02.2012