Merge remote-tracking branch 'origin/develop' into develop

This commit is contained in:
Weblate 2018-06-18 08:35:53 +00:00
commit 05c1fcbe01
3 changed files with 17 additions and 12 deletions

View file

@ -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

View file

@ -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;
}
} }
}, },

View file

@ -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}`;