Добрый день!
Мне кажется, что получился некий каламбур. Не совсем пойму: каждый проект делится на страницы или же на страницах выводятся проекты?
Исходя из Вашего кода, можно сделать вывод, что происходит и то, и то, что невозможно :)
Также, хочу заметить, что не имел дел с этим шаблонизатором, но, на мой взгляд, должно выйти что-то в духе:
- var projects = getCollection('projects').toJSON()
- var count = projects.length
- var ppage = 16 // per page
- var pages = Math.ceil(count / ppage)
- var cpage = 1 // current page
// добавляем пустые элементы в projects
- if (count < ppage*pages)
- for (var n = count+1; n <= ppage*pages; n++)
projects[n] = null
.entry-list
each project, i in projects
- if (i == (1 + ppage * (cpage - 1))) // 1,17,33,etc
.entry-list-page.page$cpage // не знаю, как вывести переменную
// тут, возможно, нужен endif какой-то
- if (project != null)
.hentry
a(href=project.url).entry-link
h3= project.title
- else
.hentry.empty
Вместо добавления пустых элементо в projects можно было бы просто после each (когда он закончится уже) сделать еще for, который дописал бы "пустые" теги, но, насколько понимаю, этого сделать нельзя, т.к. див .entry-list-page.page2 будет закрыт внутри последней итерации each.
Исходя из этого есть такой вариант еще:
- var projects = getCollection('projects').toJSON()
- var count = projects.length
- var ppage = 16 // per page
- var pages = Math.ceil(count / ppage)
- var cpage = 1 // current page
.entry-list
each project, i in projects // это подсмотрел на stackoverflow, должно возвращать индекс
- if (i == (1 + ppage * (cpage - 1))) // 1,17,33,etc
.entry-list-page.page$cpage // не знаю, как вывести переменную
// тут, возможно, нужен endif какой-то
.hentry
a(href=project.url).entry-link
h3= project.title
- if (i == count && count < ppage*pages)
- for (var n = count+1; n <= ppage*pages; n++)
.hentry.empty
Извиняюсь, если мои идеи только запутают, но алгоритмически это должно работать.
Необходимо пофиксить вывод переменной и проверить each.
Ну и все прочие элементы синтаксиса :)