Angular: cómo acceder y reemplazar innerHTML desde una directiva

Estoy tratando de crear una directiva que modifique el elementoinnerHTML agregando enlaces a esas subcadenas que comienzan con@ símbolo.

Esto es lo que he intentado hasta ahora

linkify.directive.ts

  constructor(private elementRef: ElementRef, private renderer: Renderer2) { 
      let elementText = this.elementRef.nativeElement.innerHTML;
      // elementText = '@user mentioned you';
      console.log(`Element Text: ${elementText}`);
      this.renderer.setProperty(this.elementRef.nativeElement, 'innerHTML', this.stylize(elementText));
  }

y lo estoy usando así

<p linkify> Hey @user check this out! </p>

Mientras depuraba, hice las siguientes observaciones:

this.elementRef.nativeElement.innerHTML siempre tiene una cadena vacía.this.renderer.setProperty(this.elementRef.nativeElement, 'innerHTML', 'something'); esanexando something al comienzo del texto del elemento en lugar de reemplazarlo.

Pregunta 1: Cómo acceder ainnerHTML de un elemento?

Pregunta 2: ¿Cómo establecer el innerHTML de un elemento desde una directiva?

Stackblitz demostrando el problema

Probé la documentación paraRenderer2, pero no me sirve de nada.

Respuestas a la pregunta(1)

Su respuesta a la pregunta