aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorcel <cel@lOUVT+Phkvai9a/cCS/RKo+S9hnPAQdVixms/7ldpPA=.ed25519>2020-11-26 20:12:54 -0500
committercel <cel@lOUVT+Phkvai9a/cCS/RKo+S9hnPAQdVixms/7ldpPA=.ed25519>2020-11-26 20:54:34 -0500
commita255497647e95715d232ef3582a5afa1c0e1d7b3 (patch)
tree3307834108e7a3ba536748a9e27a6e7f6158b922 /lib
parent81d480f805f7e848f179ae9d877459d56c3d6ac9 (diff)
downloadpatchfoo-a255497647e95715d232ef3582a5afa1c0e1d7b3.tar.gz
patchfoo-a255497647e95715d232ef3582a5afa1c0e1d7b3.zip
Don't over-linkify channels in raw msg
Diffstat (limited to 'lib')
-rw-r--r--lib/render-msg.js2
-rw-r--r--lib/util.js7
2 files changed, 8 insertions, 1 deletions
diff --git a/lib/render-msg.js b/lib/render-msg.js
index 76bcfad..250719d 100644
--- a/lib/render-msg.js
+++ b/lib/render-msg.js
@@ -99,7 +99,7 @@ RenderMsg.prototype.raw = function (cb) {
// link to hashtags
// TODO: recurse
for (var k in c) {
- if (!c[k] || c[k][0] !== '#') continue
+ if (!u.isChannel(c[k])) continue
tok = u.token()
tokens[tok] = h('a', {href: this.toUrl(c[k])}, c[k])
c[k] = tok
diff --git a/lib/util.js b/lib/util.js
index 519289a..2fa5c63 100644
--- a/lib/util.js
+++ b/lib/util.js
@@ -7,6 +7,7 @@ var u = exports
u.ssbRefRegex = /((?:@|%|&|ssb:\/\/%)[A-Za-z0-9\/+]{43}=\.[\w\d]+)/g
u.ssbRefRegexOnly = /^(?:@|%|&|ssb:\/\/%)[A-Za-z0-9\/+]{43}=\.[\w\d]+$/
u.ssbRefEncRegex = /((?:ssb:\/\/)?(?:[@%&]|%26|%40|%25)(?:[A-Za-z0-9\/+]|%2[fF]|%2[bB]){43}(?:=|%3[dD])\.[\w\d]+)/g
+u.channelRegex = /^#[^\s#]+$/
u.isRef = function (str) {
if (!str) return false
@@ -14,6 +15,12 @@ u.isRef = function (str) {
return u.ssbRefRegexOnly.test(str)
}
+u.isChannel = function (value) {
+ return typeof value === 'string'
+ && value.length < 30
+ && u.channelRegex.test(value)
+}
+
u.readNext = function (fn) {
var next
return function (end, cb) {