Bluesky app fork with some witchin' additions 馃挮
at main 3.7 kB view raw
1{% extends "base.html" %} 2 3{% block head_title %} 4{%- if profileView -%} 5 @{{ profileView.Handle }} on Bluesky 6{%- else -%} 7 Bluesky 8{%- endif -%} 9{% endblock %} 10 11{% block html_head_extra -%} 12 <meta property="og:site_name" content="Bluesky Social"> 13 <meta property="og:type" content="profile"> 14{%- if requestURI %} 15 <meta property="og:url" content="{{ requestURI }}"> 16 <link rel="canonical" href="{{ requestURI|canonicalize_url }}" /> 17{% endif -%} 18 19{%- if profileView -%} 20 <meta property="profile:username" content="{{ profileView.Handle }}"> 21 {%- if profileView.DisplayName %} 22 <meta property="og:title" content="{{ profileView.DisplayName }} (@{{ profileView.Handle }})"> 23 {% else %} 24 <meta property="og:title" content="{{ profileView.Handle }}"> 25 {% endif -%} 26 27 <link rel="alternate" href="at://{{ profileView.Did }}/app.bsky.actor.profile/self" /> 28 29 <meta name="twitter:label1" content="Account DID"> 30 <meta name="twitter:value1" content="{{ profileView.Did }}"> 31 32 {%- if requestHost %} 33 <link rel="alternate" type="application/rss+xml" href="https://{{ requestHost }}/profile/{{ profileView.Did }}/rss"> 34 {% endif %} 35 36 {# Only show details if auth isn't required #} 37 {% if not requiresAuth %} 38 {%- if profileView.Description %} 39 <meta name="description" content="{{ profileView.Description }}"> 40 <meta property="og:description" content="{{ profileView.Description }}"> 41 {% endif -%} 42 {%- if profileView.Banner %} 43 <meta property="og:image" content="{{ profileView.Banner }}"> 44 <meta name="twitter:card" content="summary_large_image"> 45 {%- elif profileView.Avatar -%} 46 {# Don't use avatar image in cards; usually looks bad #} 47 <meta name="twitter:card" content="summary"> 48 {% endif %} 49 {% else %} 50 <meta name="description" content="This profile requires authentication to view."> 51 <meta property="og:description" content="This profile requires authentication to view."> 52 <meta property="twitter:description" content="This profile requires authentication to view."> 53 {% endif %} 54 55 <script type="application/ld+json"> 56 { 57 "@context": "https://schema.org", 58 "@type": "ProfilePage", 59 "dateCreated": "{{ profileView.CreatedAt }}", 60 "mainEntity": { 61 "@type": "Person", 62 {%- if profileView.DisplayName %} 63 "name": "{{ profileView.DisplayName }}", 64 "alternateName": "@{{ profileView.Handle }}", 65 {% else %} 66 "name": "@{{ profileView.Handle }}", 67 {% endif -%} 68 "identifier": "{{ profileView.Did }}", 69 "description": "{{ profileView.Description }}", 70 "image": "{{ profileView.Avatar }}", 71 "interactionStatistic": [ 72 { 73 "@type": "InteractionCounter", 74 "interactionType": "https://schema.org/FollowAction", 75 "userInteractionCount": {{ profileView.FollowersCount }} 76 } 77 ], 78 "agentInteractionStatistic": [ 79 { 80 "@type": "InteractionCounter", 81 "interactionType": "https://schema.org/FollowAction", 82 "userInteractionCount": {{ profileView.FollowsCount }} 83 }, 84 { 85 "@type": "InteractionCounter", 86 "interactionType": "https://schema.org/WriteAction", 87 "userInteractionCount": {{ profileView.PostsCount }} 88 } 89 ] 90 } 91 } 92 </script> 93{% endif -%} 94{%- endblock %} 95 96{% block noscript_extra -%} 97{%- if profileView -%} 98<div id="bsky_profile_summary"> 99 <h3>Profile</h3> 100 <p id="bsky_display_name">{{ profileView.DisplayName }}</p> 101 <p id="bsky_handle">{{ profileView.Handle }}</p> 102 <p id="bsky_did">{{ profileView.Did }}</p> 103 <p id="bsky_profile_description">{{ profileView.Description }}</p> 104</div> 105{% endif -%} 106{%- endblock %}