Probably still not perfect, but better.
- don't user avatar image. use banner for profile and post img, or
  nothing
- most twitter metadata fields were redundant; twitter will parse out
  opengraph ("og:"), so don't duplicate those
- add regular HTML description (for google, etc)
- include URI
- actually include text
		
	
			
		
			
				
	
	
		
			48 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
	
		
			1.6 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:type" content="website">
 | |
|   <meta property="og:site_name" content="Bluesky Social">
 | |
|   {%- 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 }}">
 | |
|   <meta name="twitter:site" content="@bluesky">
 | |
| {% endif -%}
 | |
| {%- endblock %}
 | |
| 
 | |
| {% block noscript_extra -%}
 | |
| <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>
 | |
| {%- endblock %}
 |