{# Macro initials — dos letras para el avatar de un usuario a partir de su email (o de cualquier texto con la misma forma). Uso: {% from "core/components/initials.html" import initials %} Parte lo anterior a la arroba por puntos, guiones y guiones bajos: con dos o más trozos toma la inicial de los dos primeros (ana.garcia → AG); con uno, sus dos primeras letras (ana → AN). Sin texto útil, "?". El panel de usuarios repite este algoritmo en JavaScript (initials() de core/admin/users_panel.html): si cambia aquí, cambia allí. #} {% macro initials(text) -%} {%- set _parts = ((text or "") | string).split("@")[0] | replace("_", ".") | replace("-", ".") -%} {%- set _parts = _parts.split(".") | select | list -%} {{- ((_parts[0][:1] ~ (_parts[1][:1] if _parts | length > 1 else _parts[0][1:2])) if _parts else "?") | upper -}} {%- endmacro %}