let MARKUP_TYPE = "com.example.richtext.facet#markup" let r = String.raw let whitespace = r`\s\u00AD\u2060\u200A\u200B\u200C\u200D\u20e2` let url = r`[-\w/%&=#+~@$*'!?,.;:]*` let url_final = r`[-\w/%&=#+~@$*']` let big_regex = RegExp([ r`\b(?https?://${url}${url_final}([(]${url}[)](${url}${url_final})?)?)(?\[)?`, // alternative less strict link regex: //r`\b(?(https?://|([a-zA-Z0-9-]+[.])+[a-zA-Z0-9-]{2,}(?=[/]))${url}${url_final}([(]${url}[)](${url}${url_final})?)?)(?\[)?`, // urls must either have a scheme, or have a slash after the domain, to be considered. // ie we will never link common "word.word" mistakes. r`(?<=^|\s)[##](?(?!\uFE0F)[^${whitespace}]*[^\p{P}${whitespace}])`, // note: must filter out #123 r`(?<=^|\s|[(])@(?[-a-zA-Z0-9]+([.][-a-zA-Z0-9]+)+)\b`, r`(?