Dublin core metadata on individual posts

main
Bob Mottram 2022-11-20 13:26:50 +00:00
parent cd27b6a2a3
commit 4e4532912b
1 changed files with 17 additions and 0 deletions

View File

@ -109,12 +109,21 @@ def _html_post_metadata_open_graph(domain: str, post_json_object: {},
"""Returns html OpenGraph metadata for a post """Returns html OpenGraph metadata for a post
""" """
metadata = \ metadata = \
" <link rel=\"schema.DC\" " + \
"href=\"http://purl.org/dc/elements/1.1/\" />\n"
metadata += \
" <link rel=\"schema.DCTERMS\" " + \
"href=\"http://purl.org/dc/terms/\" />\n"
metadata += \
" <meta content=\"" + domain + "\" property=\"og:site_name\" />\n" " <meta content=\"" + domain + "\" property=\"og:site_name\" />\n"
metadata += \ metadata += \
" <meta content=\"article\" property=\"og:type\" />\n" " <meta content=\"article\" property=\"og:type\" />\n"
obj_json = post_json_object obj_json = post_json_object
if has_object_dict(post_json_object): if has_object_dict(post_json_object):
obj_json = post_json_object['object'] obj_json = post_json_object['object']
if obj_json.get('id'):
metadata += " <meta name=\"DC.identifier\" " + \
"scheme=\"DCTERMS.URI\" content=\"" + obj_json['id'] + "\" />"
if obj_json.get('attributedTo'): if obj_json.get('attributedTo'):
if isinstance(obj_json['attributedTo'], str): if isinstance(obj_json['attributedTo'], str):
attrib = obj_json['attributedTo'] attrib = obj_json['attributedTo']
@ -122,6 +131,10 @@ def _html_post_metadata_open_graph(domain: str, post_json_object: {},
if actor_nick: if actor_nick:
actor_domain, _ = get_domain_from_actor(attrib) actor_domain, _ = get_domain_from_actor(attrib)
actor_handle = actor_nick + '@' + actor_domain actor_handle = actor_nick + '@' + actor_domain
metadata += \
" <meta name=\"DC.creator\" " + \
"scheme=\"DCTERMS.URI\" content=\"" + \
attrib + "\">\n"
metadata += \ metadata += \
" <meta content=\"@" + actor_handle + \ " <meta content=\"@" + actor_handle + \
"\" property=\"og:title\" />\n" "\" property=\"og:title\" />\n"
@ -130,6 +143,9 @@ def _html_post_metadata_open_graph(domain: str, post_json_object: {},
" <meta content=\"" + obj_json['url'] + \ " <meta content=\"" + obj_json['url'] + \
"\" property=\"og:url\" />\n" "\" property=\"og:url\" />\n"
if obj_json.get('published'): if obj_json.get('published'):
metadata += " <meta name=\"DC.date\" " + \
"scheme=\"DCTERMS.W3CDTF\" content=\"" + \
obj_json['published'] + "\">\n"
metadata += \ metadata += \
" <meta content=\"" + obj_json['published'] + \ " <meta content=\"" + obj_json['published'] + \
"\" property=\"og:published_time\" />\n" "\" property=\"og:published_time\" />\n"
@ -2634,6 +2650,7 @@ def html_individual_post(recent_posts_cache: {}, max_recent_posts: int,
system_language) system_language)
header_str = html_header_with_external_style(css_filename, header_str = html_header_with_external_style(css_filename,
instance_title, metadata_str) instance_title, metadata_str)
return header_str + post_str + html_footer() return header_str + post_str + html_footer()