diff --git a/core/html.py b/core/html.py index b3d8568..6015089 100644 --- a/core/html.py +++ b/core/html.py @@ -92,9 +92,9 @@ class ContentRenderer: html = self.imageify_emojis(html, identity=post.author) return mark_safe(html) - def render_identity(self, html: str, identity, strip: bool = False) -> str: + def render_identity_summary(self, html: str, identity, strip: bool = False) -> str: """ - Given identity field HTML, normalises it and renders it for presentation. + Given identity summary HTML, normalises it and renders it for presentation. """ if not html: return "" @@ -107,6 +107,20 @@ class ContentRenderer: html = self.imageify_emojis(html, identity=identity) return mark_safe(html) + def render_identity_data(self, html: str, identity, strip: bool = False) -> str: + """ + Given name/basic value HTML, normalises it and renders it for presentation. + """ + if not html: + return "" + if strip: + html = strip_html(html) + else: + html = sanitize_html(html) + if self.local: + html = self.imageify_emojis(html, identity=identity) + return mark_safe(html) + def linkify_mentions(self, html: str, post) -> str: """ Links mentions _in the context of the post_ - as in, using the mentions diff --git a/users/models/identity.py b/users/models/identity.py index 764325f..2318057 100644 --- a/users/models/identity.py +++ b/users/models/identity.py @@ -283,7 +283,7 @@ class Identity(StatorModel): @property def safe_summary(self): - return ContentRenderer(local=True).render_identity(self.summary, self) + return ContentRenderer(local=True).render_identity_summary(self.summary, self) @property def safe_metadata(self): @@ -293,8 +293,8 @@ class Identity(StatorModel): return [] return [ { - "name": renderer.render_identity(data["name"], self, strip=True), - "value": renderer.render_identity(data["value"], self, strip=True), + "name": renderer.render_identity_data(data["name"], self, strip=True), + "value": renderer.render_identity_data(data["value"], self, strip=True), } for data in self.metadata ] @@ -367,7 +367,7 @@ class Identity(StatorModel): """ Return the name_or_handle with any HTML substitutions made """ - return ContentRenderer(local=True).render_identity( + return ContentRenderer(local=True).render_identity_data( self.name_or_handle, self, strip=True )