socialnetworknews-web

A open-source Paper.li clone
git clone git://archive.git.mtrnord.blog/SocialNetworkNews/socialnetworknews-web.git
Log | Files | Refs | README | LICENSE

linkifier.ts (608B)


      1 import {Inject, Pipe, PipeTransform} from '@angular/core';
      2 import * as linkify from 'linkifyjs';
      3 import * as linkifyStr from 'linkifyjs/string';
      4 import hashtag from 'linkifyjs/plugins/hashtag';
      5 import mention from 'linkifyjs/plugins/mention';
      6 import {DOCUMENT} from '@angular/common';
      7 
      8 @Pipe({name: 'linkify'})
      9 export class LinkifyPipe implements PipeTransform {
     10   constructor(
     11     @Inject(DOCUMENT) dom: Document) {
     12     hashtag(linkify);
     13     mention(linkify);
     14   }
     15   transform(str: string): string {
     16     return str ? linkifyStr(str, {target: '_blank', attributes: {rel: 'noopener noreferrer'}}) : str;
     17   }
     18 }