33 lines
836 B
TypeScript
33 lines
836 B
TypeScript
|
import { Component, ElementRef, AfterViewInit, Input, NgModule, ViewChild } from '@angular/core';
|
||
|
import { CommonModule } from '@angular/common';
|
||
|
|
||
|
@Component({
|
||
|
selector: 'app-code',
|
||
|
template: `
|
||
|
<pre [ngClass]="'language-' + lang"><code #code><ng-content></ng-content>
|
||
|
</code></pre>
|
||
|
`,
|
||
|
styleUrls: ['./app.code.component.scss']
|
||
|
})
|
||
|
export class AppCodeComponent implements AfterViewInit {
|
||
|
|
||
|
@Input() lang = 'markup';
|
||
|
|
||
|
@ViewChild('code') codeViewChild: ElementRef;
|
||
|
|
||
|
constructor(public el: ElementRef) { }
|
||
|
|
||
|
ngAfterViewInit() {
|
||
|
if (window['Prism']) {
|
||
|
window['Prism'].highlightElement(this.codeViewChild.nativeElement);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@NgModule({
|
||
|
imports: [CommonModule],
|
||
|
exports: [AppCodeComponent],
|
||
|
declarations: [AppCodeComponent]
|
||
|
})
|
||
|
export class AppCodeModule { }
|