Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
commit
05c1fcbe01
3 changed files with 17 additions and 12 deletions
|
@ -36,6 +36,7 @@ import * as ContextualMenu from '../../structures/ContextualMenu';
|
||||||
import SettingsStore from "../../../settings/SettingsStore";
|
import SettingsStore from "../../../settings/SettingsStore";
|
||||||
import PushProcessor from 'matrix-js-sdk/lib/pushprocessor';
|
import PushProcessor from 'matrix-js-sdk/lib/pushprocessor';
|
||||||
import ReplyThread from "../elements/ReplyThread";
|
import ReplyThread from "../elements/ReplyThread";
|
||||||
|
import {host as matrixtoHost} from '../../../matrix-to';
|
||||||
|
|
||||||
linkifyMatrix(linkify);
|
linkifyMatrix(linkify);
|
||||||
|
|
||||||
|
@ -304,7 +305,7 @@ module.exports = React.createClass({
|
||||||
// never preview matrix.to links (if anything we should give a smart
|
// never preview matrix.to links (if anything we should give a smart
|
||||||
// preview of the room/user they point to: nobody needs to be reminded
|
// preview of the room/user they point to: nobody needs to be reminded
|
||||||
// what the matrix.to site looks like).
|
// what the matrix.to site looks like).
|
||||||
if (host == 'matrix.to') return false;
|
if (host === matrixtoHost) return false;
|
||||||
|
|
||||||
if (node.textContent.toLowerCase().trim().startsWith(host.toLowerCase())) {
|
if (node.textContent.toLowerCase().trim().startsWith(host.toLowerCase())) {
|
||||||
// it's a "foo.pl" style link
|
// it's a "foo.pl" style link
|
||||||
|
|
|
@ -169,11 +169,18 @@ matrixLinkify.VECTOR_URL_PATTERN = "^(?:https?:\/\/)?(?:"
|
||||||
+ "(?:www\\.)?(?:riot|vector)\\.im/(?:app|beta|staging|develop)/"
|
+ "(?:www\\.)?(?:riot|vector)\\.im/(?:app|beta|staging|develop)/"
|
||||||
+ ")(#.*)";
|
+ ")(#.*)";
|
||||||
|
|
||||||
matrixLinkify.MATRIXTO_URL_PATTERN = "^(?:https?:\/\/)?(?:www\\.)?matrix\\.to/#/((#|@|!).*)";
|
matrixLinkify.MATRIXTO_URL_PATTERN = "^(?:https?:\/\/)?(?:www\\.)?matrix\\.to/#/([#@!+].*)";
|
||||||
matrixLinkify.MATRIXTO_MD_LINK_PATTERN =
|
matrixLinkify.MATRIXTO_MD_LINK_PATTERN =
|
||||||
'\\[([^\\]]*)\\]\\((?:https?:\/\/)?(?:www\\.)?matrix\\.to/#/((#|@|!)[^\\)]*)\\)';
|
'\\[([^\\]]*)\\]\\((?:https?:\/\/)?(?:www\\.)?matrix\\.to/#/([#@!+][^\\)]*)\\)';
|
||||||
matrixLinkify.MATRIXTO_BASE_URL= baseUrl;
|
matrixLinkify.MATRIXTO_BASE_URL= baseUrl;
|
||||||
|
|
||||||
|
const matrixToEntityMap = {
|
||||||
|
'@': '#/user/',
|
||||||
|
'#': '#/room/',
|
||||||
|
'!': '#/room/',
|
||||||
|
'+': '#/group/',
|
||||||
|
};
|
||||||
|
|
||||||
matrixLinkify.options = {
|
matrixLinkify.options = {
|
||||||
events: function(href, type) {
|
events: function(href, type) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
|
@ -204,24 +211,20 @@ matrixLinkify.options = {
|
||||||
case 'userid':
|
case 'userid':
|
||||||
case 'groupid':
|
case 'groupid':
|
||||||
return matrixLinkify.MATRIXTO_BASE_URL + '/#/' + href;
|
return matrixLinkify.MATRIXTO_BASE_URL + '/#/' + href;
|
||||||
default:
|
default: {
|
||||||
var m;
|
|
||||||
// FIXME: horrible duplication with HtmlUtils' transform tags
|
// FIXME: horrible duplication with HtmlUtils' transform tags
|
||||||
m = href.match(matrixLinkify.VECTOR_URL_PATTERN);
|
let m = href.match(matrixLinkify.VECTOR_URL_PATTERN);
|
||||||
if (m) {
|
if (m) {
|
||||||
return m[1];
|
return m[1];
|
||||||
}
|
}
|
||||||
m = href.match(matrixLinkify.MATRIXTO_URL_PATTERN);
|
m = href.match(matrixLinkify.MATRIXTO_URL_PATTERN);
|
||||||
if (m) {
|
if (m) {
|
||||||
const entity = m[1];
|
const entity = m[1];
|
||||||
if (entity[0] === '@') {
|
if (matrixToEntityMap[entity[0]]) return matrixToEntityMap[entity[0]] + entity;
|
||||||
return '#/user/' + entity;
|
|
||||||
} else if (entity[0] === '#' || entity[0] === '!') {
|
|
||||||
return '#/room/' + entity;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return href;
|
return href;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,8 @@ See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
export const baseUrl = "https://matrix.to";
|
export const host = "matrix.to";
|
||||||
|
export const baseUrl = `https://${host}`;
|
||||||
|
|
||||||
export function makeEventPermalink(roomId, eventId) {
|
export function makeEventPermalink(roomId, eventId) {
|
||||||
return `${baseUrl}/#/${roomId}/${eventId}`;
|
return `${baseUrl}/#/${roomId}/${eventId}`;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue