| @@ -373,13 +373,21 @@ const Chat = { | |||
| const S = `0${dt.getSeconds()}`.slice(-2) | |||
| return `${H}:${M}:${S}` | |||
| }, | |||
| outboundLinks: (vnode) => { | |||
| vnode.dom.querySelectorAll('a').forEach(anchor => { | |||
| anchor.target = '_blank' | |||
| anchor.rel = 'noopener' | |||
| }) | |||
| }, | |||
| view() { | |||
| return m('.chat', | |||
| m('.posts', | |||
| State.posts.map(post => m('.post', {oncreate: scrollIntoView}, | |||
| m('.ts', Chat.prettifyTime(post.ts)), | |||
| m('.source', post.source || '~'), | |||
| m('.text', m.trust(DOMPurify.sanitize(marked(post.value)))), | |||
| m('.text', {oncreate: Chat.outboundLinks}, | |||
| m.trust(DOMPurify.sanitize(marked(post.value))) | |||
| ), | |||
| )), | |||
| ), | |||
| m(TextBox), | |||