{% macro renderDescendantList(descendants, descendantType, recursed, docTypeMatcher) %} {% if descendants.length %} <ul> {% for descendant in descendants %} <li> <code>{$ descendant.name $}</code> {$ renderDescendantList(descendant.descendants | filterByPropertyValue('docType', docTypeMatcher) | filterByPropertyValue('privateExport', undefined), docType, recursed, docTypeMatcher) $} </li> {% endfor %} </ul> {% endif %} {% endmacro -%} {%- macro renderDescendants(doc, descendantType, title='', recursed=true, docTypeMatcher=descendantType) %} {% set descendants = doc.descendants | filterByPropertyValue('docType', docTypeMatcher) | filterByPropertyValue('privateExport', undefined) %} {% if descendants.length %} <div class="descendants {$ descendantType $}"> {% if title %}<h2>{$ title $}</h2>{% endif %} {$ renderDescendantList(descendants, descendantType, recursed, docTypeMatcher) $} </div> {% endif %} {% endmacro %}