{# Shared renderer for a resolved value: literals, links, restrictions and nested statements. #} {% macro render_value(v, depth=0, full_link=false) %} {% if v.type == 'Statement' and v.nested %}
{% set main = v.nested.main %} {% if main and main.value and main.value.text %}
{{ main.predicate }}:{{ render_value(main.value, depth + 1, full_link) }}
{% endif %} {% if v.nested.siblings %} {% for s in v.nested.siblings %}
{{ s.predicate }}:{{ render_value(s.value, depth + 1, full_link) }}
{% endfor %} {% endif %}
{% else %} {% set v_type = v.type.lower() if v.type else '' %} {% set is_md = ('str' in v_type) or ('literal' in v_type) %} {% set dep_class = 'text-decoration-line-through text-muted' if v.is_deprecated else '' %} {% set dep_title = ' -- Deprecated ' if v.is_deprecated else '' %} {% if v.link %} {% set precise_key = v.link ~ '|' ~ v_type %} {% if v.is_external %} {{ v.link if full_link and v_type == 'resource' else v.text }} {% elif precise_key in anchor_map %} {{ v.text }} {% elif v.link in anchor_map %} {{ v.text }} {% elif is_static %} {{ v.text }} {% else %} {{ v.text }} {% endif %} {% if v_type in type_map %} {{ type_map[v_type].abb }} {% endif %} {% else %} {# inline inside a nested statement so "name: value" stays on one line #} {% set tag = 'span' if depth else 'div' %} <{{ tag }}> <{{ tag }} class="markdown-with-badge {{ dep_class }} {% if is_md %}render-markdown inline-markdown{% endif %}" title="{{ v.link }}{{dep_title}}" {% if is_md %}data-md="{{ v.text | e }}"{% endif %}> {{ v.text }} {% if is_md and v.lan %} {{ v.lan }} {% endif %} {% endif %} {% endif %} {% endmacro %}