diff --git a/server/ui-src/templates/Message.vue b/server/ui-src/templates/Message.vue index a0919d6..f212f4b 100644 --- a/server/ui-src/templates/Message.vue +++ b/server/ui-src/templates/Message.vue @@ -163,6 +163,27 @@ export default { self.scrollInPlace = true; self.$emit('loadMessages'); }); + }, + + // Convert plain text to HTML including anchor links + textToHTML: function (s) { + // escape to HTML + let html = s + .replace(/&/g, "&") + .replace(//g, ">") + .replace(/"/g, """) + .replace(/'/g, "'") + + // full links with http(s) + let re = /(\b(https?|ftp):\/\/[\-\w@:%_\+.~#?,&\/\/=;]+)\b/gim + html = html.replace(re, '$&') + + // plain www links without https?:// prefix + let re2 = /(^|[^\/])(www\.[\S]+(\b|$))/gim + html = html.replace(re2, '$1$2') + + return html } } } @@ -272,28 +293,28 @@ export default { role="tab" aria-controls="nav-html" aria-selected="true" v-if="message.HTML" v-on:click="showMobileBtns = true; resizeIframes()">HTML + :class="message.HTML == '' ? 'show' : ''" v-on:click=" showMobileBtns = false">Text + v-on:click=" showMobileBtns = false">Raw -