From 891bc2ffadd5dedae316fcc80856ff859e6f8336 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 16 Apr 2020 16:12:10 +0200 Subject: [PATCH] Support rel="me" links in markdown --- .../config/shared/batch-domains-validators.service.ts | 2 +- client/src/app/core/plugins/plugin.service.ts | 3 ++- client/src/app/shared/renderer/html-renderer.service.ts | 7 +++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/client/src/app/+admin/config/shared/batch-domains-validators.service.ts b/client/src/app/+admin/config/shared/batch-domains-validators.service.ts index 154ef3a23..46fa6514d 100644 --- a/client/src/app/+admin/config/shared/batch-domains-validators.service.ts +++ b/client/src/app/+admin/config/shared/batch-domains-validators.service.ts @@ -1,7 +1,7 @@ import { I18n } from '@ngx-translate/i18n-polyfill' import { Validators, ValidatorFn } from '@angular/forms' import { Injectable } from '@angular/core' -import { BuildFormValidator, validateHost } from '@app/shared' +import { BuildFormValidator, validateHost } from '@app/shared/forms/form-validators' @Injectable() export class BatchDomainsValidatorsService { diff --git a/client/src/app/core/plugins/plugin.service.ts b/client/src/app/core/plugins/plugin.service.ts index b4ed56cbe..039fd6ff1 100644 --- a/client/src/app/core/plugins/plugin.service.ts +++ b/client/src/app/core/plugins/plugin.service.ts @@ -12,7 +12,8 @@ import { ClientHook, ClientHookName, clientHookObject } from '@shared/models/plu import { PluginClientScope } from '@shared/models/plugins/plugin-client-scope.type' import { RegisterClientHookOptions } from '@shared/models/plugins/register-client-hook.model' import { HttpClient } from '@angular/common/http' -import { AuthService, Notifier } from '@app/core' +import { AuthService } from '@app/core/auth' +import { Notifier } from '@app/core/notification' import { RestExtractor } from '@app/shared/rest' import { PluginType } from '@shared/models/plugins/plugin.type' import { PublicServerSetting } from '@shared/models/plugins/public-server.setting' diff --git a/client/src/app/shared/renderer/html-renderer.service.ts b/client/src/app/shared/renderer/html-renderer.service.ts index 94a8aa4c6..1ddd8fe2f 100644 --- a/client/src/app/shared/renderer/html-renderer.service.ts +++ b/client/src/app/shared/renderer/html-renderer.service.ts @@ -19,15 +19,18 @@ export class HtmlRendererService { allowedTags: [ 'a', 'p', 'span', 'br', 'strong', 'em', 'ul', 'ol', 'li' ], allowedSchemes: [ 'http', 'https' ], allowedAttributes: { - 'a': [ 'href', 'class', 'target' ] + 'a': [ 'href', 'class', 'target', 'rel' ] }, transformTags: { a: (tagName, attribs) => { + let rel = 'noopener noreferrer' + if (attribs.rel === 'me') rel += ' me' + return { tagName, attribs: Object.assign(attribs, { target: '_blank', - rel: 'noopener noreferrer' + rel }) } }