diff --git a/pinaxcon/templates/symposion/schedule/presentation_detail.html b/pinaxcon/templates/symposion/schedule/presentation_detail.html index 62c01cc7..a79957ec 100644 --- a/pinaxcon/templates/symposion/schedule/presentation_detail.html +++ b/pinaxcon/templates/symposion/schedule/presentation_detail.html @@ -36,11 +36,14 @@ {{ speaker }}

{{ speaker }}
+ {% if speaker.mastodon_username %} + {{ speaker.mastodon_username|twitter_handle }} + {% endif %} {% if speaker.twitter_username %} - {{ speaker.twitter_username|twitter_handle }}
+ {{ speaker.twitter_username|twitter_handle }}
{% endif %} {% if speaker.homepage %} - {{ speaker.homepage }} + {{ speaker.homepage }} {% endif %}

{{ speaker.biography | markdownify }}
diff --git a/pinaxcon/templates/symposion/speakers/speaker_profile.html b/pinaxcon/templates/symposion/speakers/speaker_profile.html index 245e808f..99de0ad1 100644 --- a/pinaxcon/templates/symposion/speakers/speaker_profile.html +++ b/pinaxcon/templates/symposion/speakers/speaker_profile.html @@ -9,12 +9,17 @@ {% block head_title %}Speaker - {{ speaker.name }}{% endblock %} {% block page_title %}Speaker - {{ speaker.name }}{% endblock %} {% block page_lead %} +{% if speaker.mastodon_username %} + {{ speaker.mastodon_username|twitter_handle }} +{% endif %} +{% one_or_more_populated speaker.twitter_username speaker.homepage as has_second %} +{% if speaker.mastodon_username and has_second %} | {% endif %} {% if speaker.twitter_username %} - {{ speaker.twitter_username|twitter_handle }} + {{ speaker.twitter_username|twitter_handle }} {% endif %} {% if speaker.twitter_username and speaker.homepage %} | {% endif %} {% if speaker.homepage %} - {{ speaker.homepage }} + {{ speaker.homepage }} {% endif %} {% endblock %} diff --git a/pinaxcon/templatetags/lca2019_tags.py b/pinaxcon/templatetags/lca2019_tags.py index d971373a..bc89be5a 100644 --- a/pinaxcon/templatetags/lca2019_tags.py +++ b/pinaxcon/templatetags/lca2019_tags.py @@ -71,3 +71,23 @@ def clean_text(txt): def twitter_handle(txt): # Add @ to twitter handle if not present return txt if txt.startswith('@') else '@{}'.format(txt) + + +@register.filter +def mastodon_url(txt): + parts = txt.split('@') + if len(parts) == 2: + # Assume missing the leading @, so: ACCOUNT_NAME@SERVER_NAME + account_name, server_name = parts + elif len(parts) == 3: + # This is the standard format: @ACCOUNT_NAME@SERVER_NAME + _, account_name, server_name = parts + else: + return '' + + return f'https://{server_name}/@{account_name}' + + +@register.simple_tag(takes_context=True) +def one_or_more_populated(context, *args): + return any(args) \ No newline at end of file