From 4fedc8bece3c0c5dba2f02377c4101dd86371128 Mon Sep 17 00:00:00 2001 From: codytseng Date: Sat, 25 Oct 2025 16:26:08 +0800 Subject: [PATCH] fix: update regex and improve bech32 handling in parseEditorJsonToText --- src/lib/tiptap.ts | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/lib/tiptap.ts b/src/lib/tiptap.ts index f9889cb..327b0bd 100644 --- a/src/lib/tiptap.ts +++ b/src/lib/tiptap.ts @@ -5,15 +5,19 @@ import { nip19 } from 'nostr-tools' export function parseEditorJsonToText(node?: JSONContent) { const text = _parseEditorJsonToText(node).trim() - const regex = /(?:^|\s)(nevent|naddr|nprofile|npub)1[a-zA-Z0-9]+/g + const regex = /(?:@|nostr:)?(nevent|naddr|nprofile|npub)1[a-zA-Z0-9]+/g return text.replace(regex, (match) => { - const trimmed = match.trim() - const leadingSpace = match.startsWith(' ') ? ' ' : '' + let bech32 = match.trim() + if (bech32.startsWith('@')) { + bech32 = bech32.slice(1) + } else if (bech32.startsWith('nostr:')) { + bech32 = bech32.slice(6) + } try { - nip19.decode(trimmed) - return `${leadingSpace}nostr:${trimmed}` + nip19.decode(bech32) + return `nostr:${bech32}` } catch { return match }