summaryrefslogtreecommitdiff
path: root/themes/tabi-lean/templates/partials/footer.html
blob: db4bd859f4b39f08edfa7bbcd0a411247ab5343a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
{%- set separator = config.extra.separator | default(value="•") -%}

{%- set rel_attributes = macros_rel_attributes::rel_attributes() | trim -%}

{%- set blank_target = macros_target_attribute::target_attribute(new_tab=config.markdown.external_links_target_blank) -%}

{#- Feed icon -#}
{%- set feed_url = feed_utils::get_feed_url() -%}
{%- set should_show_feed = feed_utils::should_show_footer_feed_icon() == "true" -%}

{%- set should_show_footer_icons = should_show_feed or config.extra.socials or config.extra.email -%}

<footer>
    <section>
        <nav class="socials nav-navs">
            {%- if should_show_footer_icons -%}
                <ul>
                    {%- if should_show_feed -%}
                    <li>
                        <a class="nav-links no-hover-padding social" rel="{{ rel_attributes }}" {{ blank_target }} href="{{ get_url(path=feed_url, lang=lang, trailing_slash=false) | safe }}">
                        <img loading="lazy" alt="feed" title="feed" src="{{ get_url(path='/social_icons/rss.svg') }}">
                        </a>
                    </li>
                    {%- endif -%}

                    {# Mail icon #}
                    {%- if config.extra.email -%}
                        {%- set email_already_encoded = (config.extra.email is not containing("@")) -%}
                        {%- set email_needs_decoding = email_already_encoded or config.extra.encode_plaintext_email -%}

                        {%- if email_already_encoded -%}
                            {%- set encoded_email = config.extra.email -%}
                            {# Verify the pre-encoded e-mail is valid (i.e. contains an '@') #}
                            {%- set decoded_email = encoded_email | base64_decode -%}
                            {%- if '@' not in decoded_email -%}
                                {{ throw(message="ERROR: The provided e-mail appears to be base64-encoded, but does not decode to a valid e-mail address.")}}
                            {%- endif -%}
                        {%- elif config.extra.encode_plaintext_email -%}
                            {%- set encoded_email = config.extra.email | base64_encode -%}
                        {%- endif -%}

                        <li class="{% if email_needs_decoding %}js{% endif %}">
                            {%- if email_needs_decoding -%}
                                <a class="nav-links no-hover-padding social" href="#" data-encoded-email="{{ encoded_email | safe }}">
                            {%- else -%}
                                <a class="nav-links no-hover-padding social" href="mailto:{{ config.extra.email | safe }}">
                            {%- endif -%}
                                <img loading="lazy" alt="email" title="email" src="{{ get_url(path='social_icons/email.svg') }}">
                            </a>
                        </li>
                    {%- endif -%}

                    {%- if config.extra.socials %}
                        {% for social in config.extra.socials %}
                            <li>
                                <a class="nav-links no-hover-padding social" rel="{{ rel_attributes }} me" {{ blank_target }} href="{{ social.url | safe }}">
                                    <img loading="lazy" alt="{{ social.name }}" title="{{ social.name }}" src="{{ get_url(path='social_icons/' ~ social.icon ~ '.svg') }}">
                                </a>
                            </li>
                        {% endfor %}
                    {% endif %}
                </ul>
            {% endif %}
        </nav>

        {# Footer menu #}
        <nav class="nav-navs">
            {%- if config.extra.footer_menu %}
                <small>
                    <ul>
                        {% for menu in config.extra.footer_menu %}
                        <li>
                            {%- set trailing_slash = menu.trailing_slash | default(value=true) -%}

                            {%- if menu.url == "sitemap.xml" -%}
                                {%- set url = get_url(path=menu.url, trailing_slash=trailing_slash) -%}
                            {%- elif menu.url is starting_with("http") -%}
                                {%- if menu.trailing_slash -%}
                                    {%- set url = menu.url ~ "/" -%}
                                {%- else -%}
                                    {%- set url = menu.url -%}
                                {%- endif -%}
                            {%- else -%}
                                {%- set url = get_url(path=menu.url, lang=lang, trailing_slash=trailing_slash) -%}
                            {%- endif -%}

                            <a class="nav-links no-hover-padding" href="{{ url }}">
                                {{ macros_translate::translate(key=menu.name, default=menu.name, language_strings=language_strings) }}
                            </a>
                        </li>
                    {% endfor %}
                    </ul>
                </small>
        {% endif %}
        </nav>

        <div class="credits">
            <small>
                {% include "partials/copyright.html" %}

                {# Shows "Powered by Zola & tabi" notice #}
                {{ macros_translate::translate(key="powered_by", default="Powered by", language_strings=language_strings) }}
                <a rel="{{ rel_attributes }}" {{ blank_target }} href="https://www.getzola.org">Zola</a>
                {{ macros_translate::translate(key="and", default="&", language_strings=language_strings) }}
                <a rel="{{ rel_attributes }}" {{ blank_target }} href="https://github.com/welpo/tabi">tabi</a>

                {# Shows link to remote repository #}
                {%- if config.extra.remote_repository_url and config.extra.show_remote_source | default(value=true) -%}
                {{ separator }}
                    <a rel="{{ rel_attributes }}" {{ blank_target }} href="{{ config.extra.remote_repository_url }}">
                        {{ macros_translate::translate(key="site_source", default="Site source", language_strings=language_strings) }}
                    </a>
                {%- endif -%}
            </small>
        </div>
    </section>

    {# Load the decoding script if email is encoded #}
    {%- if email_needs_decoding -%}
        <script src="{{ get_url(path='js/decodeMail.min.js') }}" async></script>
    {%- endif -%}

    {# Modal structure for search #}
    {%- if config.build_search_index -%}
    {% include "partials/search_modal.html" %}
    {%- endif -%}
</footer>