Compare commits

..

2 Commits

Author SHA1 Message Date
fiatjaf
d3ddd490c2 nip27: test emoji behavior when no tags. 2025-11-22 22:23:03 -03:00
fiatjaf
7730e321a5 nip27: support more image, audio and video extensions. 2025-11-22 20:36:04 -03:00
2 changed files with 9 additions and 3 deletions

View File

@@ -107,3 +107,9 @@ test('parse content with hashtags and emoji shortcodes', () => {
{ type: 'emoji', shortcode: 'star', url: 'https://example.com/star.png' },
])
})
test('emoji shortcodes are treated as text if no event tags', () => {
const blocks = Array.from(parse('hello :alpaca:'))
expect(blocks).toEqual([{ type: 'text', text: 'hello :alpaca:' }])
})

View File

@@ -131,19 +131,19 @@ export function* parse(content: string | NostrEvent): Iterable<Block> {
yield { type: 'text', text: content.slice(prevIndex, u - prefixLen) }
}
if (/\.(png|jpe?g|gif|webp)$/i.test(url.pathname)) {
if (/\.(png|jpe?g|gif|webp|heic|svg)$/i.test(url.pathname)) {
yield { type: 'image', url: url.toString() }
index = end
prevIndex = index
continue mainloop
}
if (/\.(mp4|avi|webm|mkv)$/i.test(url.pathname)) {
if (/\.(mp4|avi|webm|mkv|mov)$/i.test(url.pathname)) {
yield { type: 'video', url: url.toString() }
index = end
prevIndex = index
continue mainloop
}
if (/\.(mp3|aac|ogg|opus)$/i.test(url.pathname)) {
if (/\.(mp3|aac|ogg|opus|wav|flac)$/i.test(url.pathname)) {
yield { type: 'audio', url: url.toString() }
index = end
prevIndex = index