{%- macro set_title() -%}

{# Setup. #}
{%- set prefix = config.title | safe -%}
{%- set custom_separator = config.extra.separator | default(value="•") -%}
{%- set separator = " " ~ custom_separator ~ " " -%}

{# Get the base path for the current language. #}
{%- if lang != config.default_language %}
    {%- set base_path = "/" ~ lang ~ "/" %}
{%- else -%}
    {%- set base_path = "/" %}
{%- endif %}

{%- if current_path and current_path == base_path -%}
    {%- set suffix = "" -%}
    {%- set separator = "" -%}
{% elif title %}
    {%- set suffix =  title -%}
{% elif section.title -%}
    {%- set suffix = section.title -%}
{% elif page.title %}
    {%- set suffix = page.title -%}
{% elif term.name %}
    {# Individual tags. #}
    {%- set suffix = term.name -%}
{% elif taxonomy.name %}
    {# List of tags. #}
    {%- if lang != config.default_language -%}
        {%- set suffix = trans(key=taxonomy.name | safe, lang=lang) | capitalize -%}
    {% else %}
        {%- set suffix = taxonomy.name | capitalize -%}
    {% endif %}
{% else %}
    {%- set suffix = "404" %}
{%- endif -%}

{# Return the final concatenated string. #}
{{- prefix ~ separator ~ suffix -}}

{%- endmacro set_title -%}
