Compare commits
2 Commits
64d52b071d
...
1dea2f76ad
Author | SHA1 | Date | |
---|---|---|---|
1dea2f76ad | |||
01fe023d06 |
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="event">
|
<div class="event">
|
||||||
<div v-if="event.type==='m.room.message'" :class="type==='send'?'messageSend':'messageReceive'" class="message">
|
<div v-if="event.type==='m.room.message'" :class="type==='send'?'messageSend':'messageReceive'" class="message">
|
||||||
<reply-event :event="replyEvent"/>
|
<reply-event :event="replyEvent" v-if="replyEvent"/>
|
||||||
|
|
||||||
<div v-if="event.content.msgtype==='m.text'" v-html="parseMessage(event.content.body)"/>
|
<div v-if="event.content.msgtype==='m.text'" v-html="parseMessage(event.content.body)"/>
|
||||||
<div v-else-if="event.content.msgtype==='m.notice'" class="notice" v-html="parseMessage(event.content.body)"/>
|
<div v-else-if="event.content.msgtype==='m.notice'" class="notice" v-html="parseMessage(event.content.body)"/>
|
||||||
|
@ -8,12 +8,21 @@ export function solveTextLinks(text){
|
|||||||
}
|
}
|
||||||
return `${space}<a href="${hyperlink}" target="_blank">${url}</a>`;
|
return `${space}<a href="${hyperlink}" target="_blank">${url}</a>`;
|
||||||
}
|
}
|
||||||
)
|
|
||||||
}
|
|
||||||
export function parseMessage(msg){
|
|
||||||
return solveTextLinks(
|
|
||||||
msg.replace(/>.*\n/gm, '').trim()
|
|
||||||
.replace(/</g, '<')
|
|
||||||
.replace(/>/g, '>')
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
export function solveMarkdownLinks(text){
|
||||||
|
return (text || '').replace(
|
||||||
|
/\[([\w\s\d/\\._+-]+)]\(((?:\/|https?:\/\/)[\w\d/.?=#_+-]+)\)/gi,
|
||||||
|
(match, text, url)=>{
|
||||||
|
return `<a href="${url}" target="_blank">${text}</a>`;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
export function fixHtml(text){
|
||||||
|
return text.replace(/>.*\n/gm, '').trim()
|
||||||
|
.replace(/</g, '<')
|
||||||
|
.replace(/>/g, '>');
|
||||||
|
}
|
||||||
|
export function parseMessage(text){
|
||||||
|
return solveMarkdownLinks(solveTextLinks(fixHtml(text)));
|
||||||
|
}
|
@ -26,6 +26,7 @@ export function getPreviewUrl(mxcUrl, size = 64, resizeMethod = 'crop'){
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function getMediaUrl(mxcUrl){
|
export function getMediaUrl(mxcUrl){
|
||||||
|
if (!mxcUrl) return undefined;
|
||||||
let mxc = parseMXC.parse(mxcUrl);
|
let mxc = parseMXC.parse(mxcUrl);
|
||||||
return `${matrix.baseUrl}/_matrix/media/r0/download/${
|
return `${matrix.baseUrl}/_matrix/media/r0/download/${
|
||||||
mxc.homeserver}/${mxc.id}`;
|
mxc.homeserver}/${mxc.id}`;
|
||||||
|
Loading…
Reference in New Issue
Block a user