Страдает ли Jekyll от максимального количества циклов for в 50 элементов, заявленного спецификацией Shopify Liquid?

документы Shopify Liquid для тега цикла {% for %} заявляют, что:

Циклы for могут выводить максимум 50 результатов на страницу. Если результатов более 50, используйте тег paginate, чтобы разделить их на несколько страниц.

Этот вопрос подтверждает, что четыре года назад , в Shopify было активно ограничение на 50 товаров.


Однако, если я соберу пост Jekyll с content как:

.{% for var in (1..100) %} {{ var }} .{% endfor %}

он отображается в сборке, как я и ожидал, включая все целые числа от одного до ста:

Скриншот визуализированного вывода

Итак, очевидно, что по крайней мере некоторые for циклы в Jekyll не ограничены этим ограничением в 50 элементов.

Jekyll полностью свободен от этого ограничения? Или бывают ситуации, когда циклы for неожиданно усекаются на 50 элементах?


person hBy2Py    schedule 14.08.2018    source источник


Ответы (1)


Нет, у Jekyll нет таких ограничений.

  • Согласно документации Liquid, существует несколько версий Liquid: "Самая популярные существующие версии Liquid: Liquid, Shopify Liquid и Jekyll Liquid." документация Jekyll's Liquid просто ссылается на документацию Liquid, в которой не упоминаются встроенные с фиксированным ограничением, что и документация Shopify Liquid.
  • Когда я искал это ограничение в сочетании с Shopify, я нашел много результатов о встроенном лимите. Но в сочетании с Jekyll я могу найти темы только о применение ограничения вручную - поскольку цикл for в Jekyll по умолчанию не ограничен.
  • Вы показали пример цикла for, говоря, что "некоторые циклы for" не ограничены. Я не могу придумать какой-либо другой цикл for, только, может быть, те, которые перебирают коллекцию, например сообщения. Поэтому я создал скрипт Bash, который проверяет, есть ли у Jekyll такие ограничения. Сценарий создает новый проект, создает 1000 копий примера сообщения, создает сайт и подсчитывает ссылки на сообщение на странице индекса. (На индексной странице стандартного примера проекта перечислены все сообщения без нумерации страниц.) Для меня он возвращает 1000, что означает, что Jekyll не обрезает результаты до 50.

    #!/bin/bash
    N=1000
    F=2018-08-14-welcome-to-jekyll
    rm -rf limit-test
    jekyll new limit-test
    cd limit-test
    for i in $(seq 2 $N); do
      cp _posts/$F.markdown _posts/$F-$i.markdown
    done
    jekyll build
    grep "post-link" _site/index.html | wc -l
    # 1000
    
person juzraai    schedule 14.08.2018