{%- set separator = config.extra.separator | default(value="•") -%} {%- set rel_attributes = macros_rel_attributes::rel_attributes() | trim -%} {%- if config.markdown.external_links_target_blank -%} {%- set blank_target = "target=_blank" -%} {%- else -%} {%- set blank_target = "" -%} {%- endif -%} <footer> <section> <nav class="socials nav-navs"> {%- if config.extra.socials %} <ul> {%- if config.generate_feed and config.extra.feed_icon -%} <li> <a class="nav-links no-hover-padding social" rel="{{ rel_attributes }}" {{ blank_target }} href={{ get_url(path=config.feed_filename, lang=lang, trailing_slash=false) | safe }}> <img 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 alt="email" title="email" src="{{ get_url(path='social_icons/email.svg') }}"> </a> </li> {%- endif -%} {% 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 alt={{ social.name }} title={{ social.name }} src="{{ get_url(path='social_icons/' ~ social.icon ~ '.svg') }}"> </a> </li> {% endfor %} </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" %} Subscribe to <a href="/subscribe" target="_self">Salar Rahmanian's Newsletter</a> to be informed of new posts. </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>