{%- set ROW_HEIGHT = 24 -%} {%- set ROW_MARGIN = 2 -%} {%- set FONT_SIZE_PERCENT = 75 -%} {%- set FONT_SIZE = (ROW_HEIGHT - ROW_MARGIN) * FONT_SIZE_PERCENT / 100 -%} {%- set ROWS = 1 + versions|length + (versions.values()|map('length')|sum) -%} {%- set OUTER_MARGIN = 5 -%} {%- set REPO_LEFT_MARGIN = 15 -%} {%- set FONT_WIDENESS = 0.5 -%} {# ugh. just ugh. #} {%- set ns = namespace(longest_repo = 0, longest_version = 0) -%} {%- for family_contents in versions.values() -%} {%- set this_longest_repo = family_contents.keys()|map('length')|max -%} {%- set this_longest_version = family_contents.values()|map('string')|map('length')|max -%} {%- set ns.longest_repo = [ns.longest_repo, this_longest_repo]|max -%} {%- set ns.longest_version = [ns.longest_version, this_longest_version]|max -%} {%- endfor -%} {%- set VERSION_X = OUTER_MARGIN + REPO_LEFT_MARGIN + ns.longest_repo * FONT_WIDENESS * FONT_SIZE -%} {%- set VERSION_WIDTH = OUTER_MARGIN + ns.longest_version * FONT_WIDENESS * FONT_SIZE -%} {%- set WIDTH = VERSION_X + VERSION_WIDTH -%} {%- set ns = namespace(y = 0) -%} {%- macro y(offset=0) -%}{{ ns.y + offset }}{%- endmacro -%} {%- macro texty() -%}{{ y(FONT_SIZE) }}{%- endmacro -%} {%- macro end_row() -%}{%- set ns.y = ns.y + ROW_HEIGHT %}{%- endmacro -%} Packaging Status {{ end_row() }} {% for family, family_contents in versions.items() %} {{ family }}{{ end_row() }} {% for repo, version in family_contents.items() %} {{ repo }} {{ version }}{{ end_row() }} {% endfor %} {% endfor %}