From 7b1ac9b75434e1acd222f4e3de3b1a3c9d2538a2 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Sat, 23 Jun 2018 19:28:42 +0100 Subject: [PATCH 1/3] upgrade minimum version of linkifyjs for more TLD support Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 33aa428d4b..74f97bad9c 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "glob": "^5.0.14", "highlight.js": "^9.0.0", "isomorphic-fetch": "^2.2.1", - "linkifyjs": "^2.1.3", + "linkifyjs": "^2.1.6", "lodash": "^4.13.1", "lolex": "2.3.2", "matrix-js-sdk": "0.10.4", From 2d11d6dcc03b75ee117a57beb05cc18887419e39 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Sat, 23 Jun 2018 19:28:48 +0100 Subject: [PATCH 2/3] accept repeated TLDs Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/linkify-matrix.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/linkify-matrix.js b/src/linkify-matrix.js index d72319948a..e36450b07f 100644 --- a/src/linkify-matrix.js +++ b/src/linkify-matrix.js @@ -70,6 +70,8 @@ function matrixLinkify(linkify) { S_HASH_NAME_COLON_DOMAIN_DOT.on(TT.DOMAIN, S_HASH_NAME_COLON_DOMAIN); S_HASH_NAME_COLON_DOMAIN_DOT.on(TT.TLD, S_ROOMALIAS); + S_ROOMALIAS.on(TT.DOT, S_HASH_NAME_COLON_DOMAIN_DOT); // accept repeated TLDs (e.g .org.uk) + const USERID = function(value) { MultiToken.call(this, value); @@ -111,6 +113,8 @@ function matrixLinkify(linkify) { S_AT_NAME_COLON_DOMAIN_DOT.on(TT.DOMAIN, S_AT_NAME_COLON_DOMAIN); S_AT_NAME_COLON_DOMAIN_DOT.on(TT.TLD, S_USERID); + S_USERID.on(TT.DOT, S_AT_NAME_COLON_DOMAIN_DOT); // accept repeated TLDs (e.g .org.uk) + const GROUPID = function(value) { MultiToken.call(this, value); @@ -151,6 +155,8 @@ function matrixLinkify(linkify) { S_PLUS_NAME_COLON_DOMAIN.on(TT.DOT, S_PLUS_NAME_COLON_DOMAIN_DOT); S_PLUS_NAME_COLON_DOMAIN_DOT.on(TT.DOMAIN, S_PLUS_NAME_COLON_DOMAIN); S_PLUS_NAME_COLON_DOMAIN_DOT.on(TT.TLD, S_GROUPID); + + S_GROUPID.on(TT.DOT, S_PLUS_NAME_COLON_DOMAIN_DOT); // accept repeated TLDs (e.g .org.uk) } // stubs, overwritten in MatrixChat's componentDidMount From 1d2945036f29650208547a26f7134b242073c0f8 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Sat, 23 Jun 2018 19:42:03 +0100 Subject: [PATCH 3/3] allow TLD to come anywhere in the domain, because `com` isn't JUST a TLD Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/linkify-matrix.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/linkify-matrix.js b/src/linkify-matrix.js index e36450b07f..132695b9de 100644 --- a/src/linkify-matrix.js +++ b/src/linkify-matrix.js @@ -66,6 +66,7 @@ function matrixLinkify(linkify) { S_HASH_NAME_COLON.on(TT.DOMAIN, S_HASH_NAME_COLON_DOMAIN); S_HASH_NAME_COLON.on(TT.LOCALHOST, S_ROOMALIAS); // accept #foo:localhost + S_HASH_NAME_COLON.on(TT.TLD, S_ROOMALIAS); // accept #foo:com (mostly for (TLD|DOMAIN)+ mixing) S_HASH_NAME_COLON_DOMAIN.on(TT.DOT, S_HASH_NAME_COLON_DOMAIN_DOT); S_HASH_NAME_COLON_DOMAIN_DOT.on(TT.DOMAIN, S_HASH_NAME_COLON_DOMAIN); S_HASH_NAME_COLON_DOMAIN_DOT.on(TT.TLD, S_ROOMALIAS); @@ -109,6 +110,7 @@ function matrixLinkify(linkify) { S_AT_NAME_COLON.on(TT.DOMAIN, S_AT_NAME_COLON_DOMAIN); S_AT_NAME_COLON.on(TT.LOCALHOST, S_USERID); // accept @foo:localhost + S_AT_NAME_COLON.on(TT.TLD, S_USERID); // accept @foo:com (mostly for (TLD|DOMAIN)+ mixing) S_AT_NAME_COLON_DOMAIN.on(TT.DOT, S_AT_NAME_COLON_DOMAIN_DOT); S_AT_NAME_COLON_DOMAIN_DOT.on(TT.DOMAIN, S_AT_NAME_COLON_DOMAIN); S_AT_NAME_COLON_DOMAIN_DOT.on(TT.TLD, S_USERID); @@ -152,6 +154,7 @@ function matrixLinkify(linkify) { S_PLUS_NAME_COLON.on(TT.DOMAIN, S_PLUS_NAME_COLON_DOMAIN); S_PLUS_NAME_COLON.on(TT.LOCALHOST, S_GROUPID); // accept +foo:localhost + S_PLUS_NAME_COLON.on(TT.TLD, S_GROUPID); // accept +foo:com (mostly for (TLD|DOMAIN)+ mixing) S_PLUS_NAME_COLON_DOMAIN.on(TT.DOT, S_PLUS_NAME_COLON_DOMAIN_DOT); S_PLUS_NAME_COLON_DOMAIN_DOT.on(TT.DOMAIN, S_PLUS_NAME_COLON_DOMAIN); S_PLUS_NAME_COLON_DOMAIN_DOT.on(TT.TLD, S_GROUPID);