xP: detect links in the log
This commit is contained in:
		@@ -277,6 +277,12 @@ for (let i = 0; i < 24; i++) {
 | 
			
		||||
 | 
			
		||||
// ---- UI ---------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
let linkRE = [
 | 
			
		||||
	/https?:\/\//,
 | 
			
		||||
	/([^\[\](){}<>"'\s]|\([^\[\](){}<>"'\s]*\))+/,
 | 
			
		||||
	/[^\[\](){}<>"'\s,.:]/,
 | 
			
		||||
].map(r => r.source).join('')
 | 
			
		||||
 | 
			
		||||
let Toolbar = {
 | 
			
		||||
	toggleAutoscroll: () => {
 | 
			
		||||
		bufferAutoscroll = !bufferAutoscroll
 | 
			
		||||
@@ -349,13 +355,7 @@ let Content = {
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	linkify: (text, attrs) => {
 | 
			
		||||
		let re = new RegExp([
 | 
			
		||||
			/https?:\/\//,
 | 
			
		||||
			/([^\[\](){}<>"'\s]|\([^\[\](){}<>"'\s]*\))+/,
 | 
			
		||||
			/[^\[\](){}<>"'\s,.:]/,
 | 
			
		||||
		].map(r => r.source).join(''), 'g')
 | 
			
		||||
 | 
			
		||||
		let a = [], end = 0, match
 | 
			
		||||
		let re = new RegExp(linkRE, 'g'), a = [], end = 0, match
 | 
			
		||||
		while ((match = re.exec(text)) !== null) {
 | 
			
		||||
			if (end < match.index)
 | 
			
		||||
				a.push(m('span', attrs, text.substring(end, match.index)))
 | 
			
		||||
@@ -480,8 +480,21 @@ let Log = {
 | 
			
		||||
			vnode.dom.scrollTop = vnode.dom.scrollHeight
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	linkify: text => {
 | 
			
		||||
		let re = new RegExp(linkRE, 'g'), a = [], end = 0, match
 | 
			
		||||
		while ((match = re.exec(text)) !== null) {
 | 
			
		||||
			if (end < match.index)
 | 
			
		||||
				a.push(text.substring(end, match.index))
 | 
			
		||||
			a.push(m('a[target=_blank]', {href: match[0]}, match[0]))
 | 
			
		||||
			end = re.lastIndex
 | 
			
		||||
		}
 | 
			
		||||
		if (end < text.length)
 | 
			
		||||
			a.push(text.substring(end))
 | 
			
		||||
		return a
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	view: vnode => {
 | 
			
		||||
		return m(".log", {}, bufferLog)
 | 
			
		||||
		return m(".log", {}, Log.linkify(bufferLog))
 | 
			
		||||
	},
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user