Added support for links in lists. Either markdown-links or plain links
parent
04900313cb
commit
b3ace89d8c
|
@ -204,6 +204,8 @@ class Store {
|
||||||
amount = amount || 1;
|
amount = amount || 1;
|
||||||
checked = Number(checked) || 0;
|
checked = Number(checked) || 0;
|
||||||
|
|
||||||
|
text = insertLinks(text);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
price = Number(price);
|
price = Number(price);
|
||||||
this.itemsObj[itemID] = { text: text, price: price, itemID: itemID, amount: amount, checked: checked };
|
this.itemsObj[itemID] = { text: text, price: price, itemID: itemID, amount: amount, checked: checked };
|
||||||
|
@ -624,4 +626,34 @@ function handleAjaxErrors(jqxhr, textStatus, error){
|
||||||
else {
|
else {
|
||||||
alert("An error occured:\n"+error);
|
alert("An error occured:\n"+error);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function insertLinks(text){
|
||||||
|
let markdownLink = /\[([a-zA-ZæøåÆØÅ0-9 &+-]+)\]\(((?:|http(?:|s):\/\/)[a-zA-Z0-9\/.\-+?=&]+)\)/gm;
|
||||||
|
let m;
|
||||||
|
|
||||||
|
while((m = markdownLink.exec(text)) !== null){
|
||||||
|
// This is necessary to avoid infinite loops with zero-width matches
|
||||||
|
if(m.index === markdownLink.lastIndex){
|
||||||
|
markdownLink.lastIndex++;
|
||||||
|
}
|
||||||
|
|
||||||
|
text = text.replace(m[0], "<a href='"+m[2]+"' target='_blank'>"+m[1]+"</a>");
|
||||||
|
}
|
||||||
|
|
||||||
|
let linkRegex = /(?:([("']|)((?:[A-Za-z]{3,9}:(?:\/\/)?)(?:[\-;:&=\+\$,\w]+@)?[A-Za-z0-9\.\-]+|(?:www\.|[\-;:&=\+\$,\w]+@)[A-Za-z0-9\.\-]+)(?:(?:\/[\+~%\/\.\w\-_]*)?\??(?:[\-\+=&;%@\.\w_]*)#?(?:[\.\!\/\\\w]*))?)/gm;
|
||||||
|
let n;
|
||||||
|
let inputText = text;
|
||||||
|
while((n = linkRegex.exec(inputText)) !== null){
|
||||||
|
// This is necessary to avoid infinite loops with zero-width matches
|
||||||
|
if(n.index === linkRegex.lastIndex){
|
||||||
|
linkRegex.lastIndex++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(n[1] === ""){
|
||||||
|
text = text.replace(n[0], "<a href='"+(n[0][0] !== "h"?"//":'')+n[0]+"' target='_blank'>"+(n[2].replace('https://','').replace('http://', ''))+(n[2].length<n[0].length?"/...":"")+"</a>");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return text;
|
||||||
}
|
}
|
Loading…
Reference in New Issue