- handle missing content (PWI opt-out) better - use opengraph "article" and "profile" types, not just website for everything - fix timestamps, and used indexed at not created at
		
			
				
	
	
		
			50 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| {% extends "base.html" %}
 | |
| 
 | |
| {% block head_title %}
 | |
| {%- if profileView -%}
 | |
|   @{{ profileView.Handle }} on Bluesky
 | |
| {%- else -%}
 | |
|   Bluesky
 | |
| {%- endif -%}
 | |
| {% endblock %}
 | |
| 
 | |
| {% block html_head_extra -%}
 | |
| {%- if profileView -%}
 | |
|   <meta property="og:site_name" content="Bluesky Social">
 | |
|   <meta property="og:type" content="profile">
 | |
|   <meta property="profile:username" content="{{ profileView.Handle }}">
 | |
|   {%- if requestURI %}
 | |
|   <meta property="og:url" content="{{ requestURI }}">
 | |
|   {% endif -%}
 | |
|   {%- if profileView.DisplayName %}
 | |
|   <meta property="og:title" content="{{ profileView.DisplayName }} (@{{ profileView.Handle }})">
 | |
|   {% else %}
 | |
|   <meta property="og:title" content="{{ profileView.Handle }}">
 | |
|   {% endif -%}
 | |
|   {%- if profileView.Description %}
 | |
|   <meta name="description" content="{{ profileView.Description }}">
 | |
|   <meta property="og:description" content="{{ profileView.Description }}">
 | |
|   {% endif -%}
 | |
|   {%- if profileView.Banner %}
 | |
|   <meta property="og:image" content="{{ profileView.Banner }}">
 | |
|   <meta name="twitter:card" content="summary_large_image">
 | |
|   {%- elif profileView.Avatar -%}
 | |
|   {# Don't use avatar image in cards; usually looks bad #}
 | |
|   <meta name="twitter:card" content="summary">
 | |
|   {% endif %}
 | |
|   <meta name="twitter:label1" content="Account DID">
 | |
|   <meta name="twitter:value1" content="{{ profileView.Did }}">
 | |
| {% endif -%}
 | |
| {%- endblock %}
 | |
| 
 | |
| {% block noscript_extra -%}
 | |
| {%- if profileView -%}
 | |
| <div id="bsky_profile_summary">
 | |
|   <h3>Profile</h3>
 | |
|   <p id="bsky_display_name">{{ profileView.DisplayName }}</p>
 | |
|   <p id="bsky_handle">{{ profileView.Handle }}</p>
 | |
|   <p id="bsky_did">{{ profileView.Did }}</p>
 | |
|   <p id="bsky_profile_description">{{ profileView.Description }}</p>
 | |
| </div>
 | |
| {% endif -%}
 | |
| {%- endblock %}
 |