{# Site-wide announcement bar (opt-in via [params.announcement] in bengal.toml). Invisible when unconfigured. Dismiss state persisted in localStorage by (see enhancements/announcement.js). Config shape: [params.announcement] message = "Welcome!" href = "/docs/" # optional link_text = "Learn more" # optional variant = "info" # info | warning | promo id = "launch-2026" # optional dismiss key dismissible = true # default true #} {% let _announcement = site?.params?.announcement ?? none %} {% if _announcement %} {% let _message = _announcement?.message ?? _announcement?.text ?? '' %} {% if _message %} {% let _variant = _announcement?.variant ?? 'info' %} {% let _href = _announcement?.href ?? _announcement?.url ?? none %} {% let _link_text = _announcement?.link_text ?? _announcement?.linkText ?? t('announcement.learn_more', default='Learn more') %} {% let _announcement_id = _announcement?.id ?? (_message | slugify) %} {% let _dismissible = _announcement?.dismissible ?? true %}
{% if _variant == 'warning' %} {{ icon('warning', size=18, css_class='site-announcement__icon') }} {% elif _variant == 'promo' %} {{ icon('star', size=18, css_class='site-announcement__icon') }} {% else %} {{ icon('info', size=18, css_class='site-announcement__icon') }} {% end %}

{{ _message }}

{% if _href %} {{ _link_text }} {{ icon('arrow-right', size=14, css_class='nav-arrow') }} {% end %}
{% if _dismissible %} {% end %}
{% end %} {% end %}