{# Shared template macros. Import with: {% from "_macros.html" import crumbs %} #} {# Breadcrumb trail. `items` is a list of (label, href) pairs, ordered root→current. Intermediate items with a truthy href render as links; the last item (or any item with an empty href) renders as plain current text. #} {% macro crumbs(items) -%} {%- endmacro %} {# Threshold emphasis for a numeric metric (CPU/mem/disk %, etc). Returns an inline-style fragment to drop into a span's style="": amber + semibold at >= warn, red + bold at >= crit, empty (inherit) when the value is normal or None. This makes the FAILING METRIC ITSELF stand out — not just the status dot. Defaults suit percentage gauges (warn 80 / crit 90); pass explicit warn/crit for other scales. Keep thresholds here so they live in one place rather than hardcoded per template. #} {% macro metric_style(value, warn=80, crit=90) -%} {%- if value is not none and value >= crit -%}color:var(--red);font-weight:700; {%- elif value is not none and value >= warn -%}color:var(--yellow);font-weight:600; {%- endif -%} {%- endmacro %} {# Inverted emphasis for "higher is better" metrics like uptime %: amber below `warn`, red below `crit`. The mirror of metric_style — same one-place-for- thresholds discipline, opposite direction. Defaults suit SLA percentages. #} {% macro uptime_style(value, warn=99.0, crit=95.0) -%} {%- if value is not none and value < crit -%}color:var(--red);font-weight:700; {%- elif value is not none and value < warn -%}color:var(--yellow);font-weight:600; {%- endif -%} {%- endmacro %}