{% macro source_heading(source) -%}Source ยท {{ source.name }} V{{ source.number }}{%- endmacro %} {% macro group_headings(fields, source, trailing=0) -%} {% set sources = fields|rejectattr('mapping_role', 'equalto', 'mapping_target')|list %} {% set targets = fields|selectattr('mapping_role', 'equalto', 'mapping_target')|list %} {{ source_heading(source) }} {% if targets %}Target{% endif %}{% if trailing %}{% endif %} {%- endmacro %} {% macro cell_class(fields, field, index) -%} {% set role = 'target' if field.mapping_role == 'mapping_target' else 'source' %} mapping-{{ role }}-cell{% if index == 0 or (fields[index - 1].mapping_role == 'mapping_target') != (role == 'target') %} mapping-group-start{% endif %}{% if index == fields|length - 1 or (fields[index + 1].mapping_role == 'mapping_target') != (role == 'target') %} mapping-group-end{% endif %} {%- endmacro %}