fix: strip HTML tags from comment previews in activity feed

Added stripHtml() helper method to ActivityService to remove HTML tags
from comment content before creating the preview text. This ensures that
comments display as plain text in the activity feed instead of showing
raw HTML like "<p>test</p>".

The regex pattern /<[^>]*>/g removes all HTML tags whilst preserving
the actual text content, which is then trimmed and truncated to 100
characters for the preview.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-02-20 00:11:08 -08:00
parent f0052cad76
commit 512e7eec13
+12 -4
View File
@@ -224,11 +224,12 @@ export class ActivityService {
entityTitle = comment.manga.title; entityTitle = comment.manga.title;
} }
// Get first 100 characters of comment // Strip HTML tags and get first 100 characters of comment
const plainText = this.stripHtml(comment.content);
const commentPreview = const commentPreview =
comment.content.length > 100 plainText.length > 100
? `${comment.content.slice(0, 100)}...` ? `${plainText.slice(0, 100)}...`
: comment.content; : plainText;
return { return {
id: `comment-${comment.id}`, id: `comment-${comment.id}`,
@@ -350,4 +351,11 @@ export class ActivityService {
return "Unknown Item"; return "Unknown Item";
} }
} }
/**
* Strip HTML tags from content for plain text preview.
*/
private stripHtml(html: string): string {
return html.replace(/<[^>]*>/g, "").trim();
}
} }