\n'
blockedHashtagForm += \
' ' + \
@@ -524,7 +524,9 @@ def getRightImageFile(baseDir: str,
def htmlHeaderWithExternalStyle(cssFilename: str, instanceTitle: str,
- lang='en') -> str:
+ metadata: str, lang='en') -> str:
+ if metadata is None:
+ metadata = ''
cssFile = '/' + cssFilename.split('/')[-1]
htmlStr = \
'\n' + \
@@ -534,6 +536,7 @@ def htmlHeaderWithExternalStyle(cssFilename: str, instanceTitle: str,
' \n' + \
' \n' + \
' \n' + \
+ metadata + \
'
' + instanceTitle + '\n' + \
' \n' + \
' \n'
@@ -546,8 +549,9 @@ def htmlHeaderWithPersonMarkup(cssFilename: str, instanceTitle: str,
"""html header which includes person markup
https://schema.org/Person
"""
- htmlStr = htmlHeaderWithExternalStyle(cssFilename, instanceTitle, lang)
if not actorJson:
+ htmlStr = \
+ htmlHeaderWithExternalStyle(cssFilename, instanceTitle, None, lang)
return htmlStr
cityMarkup = ''
@@ -559,19 +563,19 @@ def htmlHeaderWithPersonMarkup(cssFilename: str, instanceTitle: str,
country = city.split(',', 1)[1].strip().title()
city = city.split(',', 1)[0]
countryMarkup = \
- ' "addressCountry": "' + country + '"\n'
+ ' "addressCountry": "' + country + '"\n'
addComma = ','
cityMarkup = \
- ' "address": {\n' + \
- ' "@type": "PostalAddress",\n' + \
- ' "addressLocality": "' + city + '"' + addComma + '\n' + \
+ ' "address": {\n' + \
+ ' "@type": "PostalAddress",\n' + \
+ ' "addressLocality": "' + city + '"' + addComma + '\n' + \
countryMarkup + \
- ' },\n'
+ ' },\n'
skillsMarkup = ''
if actorJson.get('hasOccupation'):
if isinstance(actorJson['hasOccupation'], list):
- skillsMarkup = ' "hasOccupation": [\n'
+ skillsMarkup = ' "hasOccupation": [\n'
firstEntry = True
for skillDict in actorJson['hasOccupation']:
if skillDict['@type'] == 'Role':
@@ -637,23 +641,90 @@ def htmlHeaderWithPersonMarkup(cssFilename: str, instanceTitle: str,
' "skills": ' + skillsListStr + '\n' + \
' }'
firstEntry = False
- skillsMarkup += '\n ],\n'
+ skillsMarkup += '\n ],\n'
description = removeHtml(actorJson['summary'])
nameStr = removeHtml(actorJson['name'])
+ domainFull = actorJson['id'].split('://')[1].split('/')[0]
+ handle = actorJson['preferredUsername'] + '@' + domainFull
+
personMarkup = \
- ' \n'
- htmlStr = htmlStr.replace('\n', '\n' + personMarkup)
+
+ description = removeHtml(description)
+ ogMetadata = \
+ " \n" + \
+ " \n" + \
+ " \n" + \
+ " \n" + \
+ " \n" + \
+ " \n" + \
+ " \n" + \
+ " \n" + \
+ " \n" + \
+ " \n" + \
+ " \n"
+ if actorJson.get('attachment'):
+ ogTags = (
+ 'email', 'openpgp', 'blog', 'xmpp', 'matrix', 'briar',
+ 'jami', 'cwtch', 'languages'
+ )
+ for attachJson in actorJson['attachment']:
+ if not attachJson.get('name'):
+ continue
+ if not attachJson.get('value'):
+ continue
+ name = attachJson['name'].lower()
+ value = attachJson['value']
+ for ogTag in ogTags:
+ if name != ogTag:
+ continue
+ ogMetadata += \
+ " \n"
+
+ htmlStr = \
+ htmlHeaderWithExternalStyle(cssFilename, instanceTitle,
+ ogMetadata + profileMarkup, lang)
return htmlStr
@@ -663,16 +734,13 @@ def htmlHeaderWithWebsiteMarkup(cssFilename: str, instanceTitle: str,
"""html header which includes website markup
https://schema.org/WebSite
"""
- htmlStr = htmlHeaderWithExternalStyle(cssFilename, instanceTitle,
- systemLanguage)
-
licenseUrl = 'https://www.gnu.org/licenses/agpl-3.0.rdf'
# social networking category
genreUrl = 'http://vocab.getty.edu/aat/300312270'
websiteMarkup = \
- ' \n'
- htmlStr = htmlStr.replace('\n', '\n' + websiteMarkup)
+ htmlStr = \
+ htmlHeaderWithExternalStyle(cssFilename, instanceTitle, websiteMarkup,
+ systemLanguage)
return htmlStr
@@ -707,9 +777,6 @@ def htmlHeaderWithBlogMarkup(cssFilename: str, instanceTitle: str,
"""html header which includes blog post markup
https://schema.org/BlogPosting
"""
- htmlStr = htmlHeaderWithExternalStyle(cssFilename, instanceTitle,
- systemLanguage)
-
authorUrl = localActorUrl(httpPrefix, nickname, domain)
aboutUrl = httpPrefix + '://' + domain + '/about.html'
@@ -718,7 +785,7 @@ def htmlHeaderWithBlogMarkup(cssFilename: str, instanceTitle: str,
contentLicenseUrl = 'https://creativecommons.org/licenses/by/3.0'
blogMarkup = \
- ' \n'
- htmlStr = htmlStr.replace('\n', '\n' + blogMarkup)
+ htmlStr = \
+ htmlHeaderWithExternalStyle(cssFilename, instanceTitle, blogMarkup,
+ systemLanguage)
return htmlStr
@@ -1458,7 +1527,7 @@ def htmlShowShare(baseDir: str, domain: str, nickname: str,
instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
- return htmlHeaderWithExternalStyle(cssFilename, instanceTitle) + \
+ return htmlHeaderWithExternalStyle(cssFilename, instanceTitle, None) + \
shareStr + htmlFooter()
diff --git a/webapp_welcome.py b/webapp_welcome.py
index 24f687094..517a22761 100644
--- a/webapp_welcome.py
+++ b/webapp_welcome.py
@@ -86,7 +86,7 @@ def htmlWelcomeScreen(baseDir: str, nickname: str,
if os.path.isfile(baseDir + '/welcome.css'):
cssFilename = baseDir + '/welcome.css'
- welcomeForm = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
+ welcomeForm = htmlHeaderWithExternalStyle(cssFilename, instanceTitle, None)
welcomeForm += \
'