✨ feat(footer/socials): add base64 encoded email protection
This commit is contained in:
@@ -10,6 +10,34 @@
|
||||
</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 rel="noopener noreferrer" target="_blank" class="nav-links no-hover-padding social" href="#" data-encoded-email="{{ encoded_email | safe }}">
|
||||
{%- else -%}
|
||||
<a rel="noopener noreferrer" target="_blank" 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 rel="noopener noreferrer me" target="_blank" class="nav-links no-hover-padding social" href={{ social.url | safe }}>
|
||||
@@ -24,4 +52,9 @@
|
||||
<small>{%- if lang != config.default_language %} {{ trans(key="powered_by" | safe, lang=lang) }} {% else %} Powered by {% endif %} <a href="https://www.getzola.org" target="_blank">Zola</a> {%- if lang != config.default_language %} {{ trans(key="and" | safe, lang=lang) }} {% else %} & {% endif %} <a href="https://github.com/welpo/tabi" target="_blank">tabi</a></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 -%}
|
||||
</footer>
|
||||
|
Reference in New Issue
Block a user