как я могу получить 10 случайных документов на docpad?

У меня есть папка под названием «клиенты» с 30 изображениями внутри, и я хочу возвращать из docpad 10 случайных изображений каждый раз, когда загружаю страницу. это возможно? Я искал возврат случайных вещей с помощью docpad и не нашел никакой документации по этому поводу.


person Francisco Javier Arenas Ulloa    schedule 07.06.2013    source источник


Ответы (1)


Скелет docpad "Kitchen Sink" содержит пример генерации случайного числа при каждой загрузке страницы. См. страницу Динамический контент.

Ключевым моментом является установка для свойства dynamic в метаданных страницы значения true (динамический: true). Вам также необходимо убедиться, что у вас установлен плагин docpad «cleanurls» (docpad-plugin-cleanurls) — это не сразу очевидно.

После этого нужно просто использовать стандартный javascript Math.random. Я использую что-то подобное, чтобы получить случайный пост в моем файле .eco.

<%=i = Math.floor((Math.random()*10))%>
<% document = @getCollection('posts').toJSON()[i] %>

надеюсь, это поможет

Редактировать — пример Джейд

  - var i = Math.floor((Math.random()*10))
  - var doc = getCollection('posts').toJSON()[i]

Дефис перед оператором 'var' важен. см. https://github.com/visionmedia/jade#a8.

person Steve Mc    schedule 07.06.2013
comment
и как мне написать это в нефрите? я пытался, но не повезло... может быть, такие вещи хорошо добавить в основную конфигурацию? - person Francisco Javier Arenas Ulloa; 09.06.2013
comment
Есть ли шанс отметить это как ответ? Может помочь другим людям, просматривающим этот пост - person Steve Mc; 23.01.2014