add jinja2-based renderer for object diagrams

This commit is contained in:
Joeri Exelmans 2024-12-17 15:32:24 +01:00
parent 26d8655147
commit 200f2a3ede
4 changed files with 85 additions and 3 deletions

View file

@ -0,0 +1,18 @@
{% macro render_name(name) %}{{ name if not hide_names or name.startswith("__") else "" }}{% endmacro %}
{% macro render_attributes(obj) %} {
{% for attr_name in odapi.get_slots(obj) %}
{{ attr_name}} = {{ display_value(
val=odapi.get_slot_value(obj, attr_name),
type_name=odapi.get_type_name(odapi.get_slot(obj, attr_name)),
indentation=4) }};
{% endfor %}
}{% endmacro %}
{% for obj_name, obj in objects %}
{{ render_name(obj_name) }}:{{ odapi.get_type_name(obj) }}{{ render_attributes(obj) }}
{% endfor %}
{% for lnk_name, lnk in links %}
{{ render_name(obj_name) }}:{{ odapi.get_type_name(lnk) }} ({{odapi.get_name(odapi.get_source(lnk))}} -> {{odapi.get_name(odapi.get_target(lnk))}}){{ render_attributes(lnk) }}
{% endfor %}