tag', async ({
+ page,
+ workViewPage,
+ notePage,
+ testPrefix,
+ }) => {
+ await workViewPage.waitForTaskList();
+
+ const unique = `${testPrefix}-7013-locked`;
+ const noteContent = `- [ ] [${unique}-link](https://example.com)`;
+
+ await notePage.addNote(noteContent);
+
+ const note = page.locator('note', { hasText: `${unique}-link` }).first();
+ await expect(note).toBeVisible();
+
+ // Toggle lock via context menu ("Disable Markdown Parsing")
+ await note.hover();
+ const menuBtn = note.locator('button:has(mat-icon:has-text("more_vert"))');
+ await menuBtn.click();
+ const lockBtn = page
+ .locator('.mat-mdc-menu-content button')
+ .filter({ has: page.locator('mat-icon:has-text("lock_open")') });
+ await lockBtn.click();
+
+ // Locked path should still linkify URLs via RenderLinksPipe
+ const anchor = note.locator(`a:has-text("${unique}-link")`);
+ await expect(anchor).toBeVisible();
+ const href = await anchor.getAttribute('href');
+ expect(href).toContain('example.com');
+ });
+});
diff --git a/src/app/features/note/note/note.component.html b/src/app/features/note/note/note.component.html
index 6410df5ea6..d697c5c87c 100644
--- a/src/app/features/note/note/note.component.html
+++ b/src/app/features/note/note/note.component.html
@@ -18,9 +18,10 @@
- {{ isLongNote ? resolvedShortenedContent() : resolvedContent() }}
-
+ [innerHTML]="
+ (isLongNote ? resolvedShortenedContent() : resolvedContent()) | renderLinks
+ "
+ >
} @else {