Написать рекурсивный цикл в DotLiquid

У меня есть этот цикл в DotLiquid:

{% for page in Page -%}
    {{ page.Title }}
    <ul>
       {% for subpage in page.Pages -%}
           <li>{{ subpage.Title }}</li>
           <!-- subpage.Pages has more pages and so on... -->
       {% endfor -%}
    </ul>
{% endfor -%}

каждый subpage объект имеет Pages свойство с другими подстраницами в списке (как первый Page объект.

Как мне написать рекурсивную итерацию по этим подстраницам для создания полного дерева?

1 ответ

Решение

Переместите свой код в отдельный файл и используйте include тег.

Этот связанный вопрос включает в себя пример кода шаблона - он предназначен для Ruby-версии Liquid, но он должен быть непосредственно переносимым.

В зависимости от того, что вам нужно сделать, вы можете установить Template.FileSystem на встроенный LocalFileSystem решить включает или создать свой собственный. Смотрите исходный код дляLocalFileSystem для примера реализации IFileSystem,

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