Angular for syntax highlighting with highlight.js
npm install --save ngx-highlight-js
Load the highlight.js and theme css in page.
<link rel="stylesheet" href="https://github.com/cipchk/ngx-highlight-js/blob/master//cdn.jsdelivr.net/gh/highlightjs/cdn-release/build/styles/atom-one-dark.min.css" />
<script src="https://github.com/cipchk/ngx-highlight-js/raw/master//cdn.jsdelivr.net/gh/highlightjs/cdn-release/build/highlight.min.js"></script>
NgModule
Import the HighlightJsModule
in to your root AppModule
.
import { HighlightJsModule } from 'ngx-highlight-js';
@NgModule({
imports: [ HighlightJsModule ],
bootstrap: [AppComponent]
})
export class AppModule {
}
Standalone
import { Component } from '@angular/core';
import { HighlightJsDirective } from 'ngx-highlight-js';
@Component({
selector: 'test',
template: `<textarea highlight-js [lang]="'bash'">npm install --save ngx-highlight-js</textarea>`,
standalone: true,
imports: [HighlightJsDirective],
})
export class SimpleComponent {}
<textarea highlight-js [options]="{}" [lang]="'typescript'">
/* tslint:disable */
import { Component } from '@angular/core';
@Component({
selector: 'demo',
templateUrl: './demo.component.html',
styleUrls: ['./demo.component.scss']
})
export class DemoComponent {
switchStatus: boolean = true;
}
</textarea>
Will render each <pre><code>
:
<textarea highlight-js mode="default">
<p>
The bare minimum for using highlight.js on a web page is linking to the library along with one of the styles and calling
<a href="http://highlightjs.readthedocs.io/en/latest/api.html#inithighlightingonload"><code>initHighlightingOnLoad</code></a
>:
</p>
<pre><code class="language-html"><link rel="stylesheet" href="/path/to/styles/default.css">
<script src="/path/to/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
</code></pre>
<p>
This will find and highlight code inside of <code><pre><code></code> tags; it tries to detect the language automatically. If
automatic detection doesn’t work for you, you can specify the language in the <code>class</code> attribute:
</p>
<pre><code class="language-html"><pre><code class="html">...</code></pre>
</code></pre>
</textarea>
Property | Description | Type | Default | Global Config |
---|---|---|---|---|
[mode] |
- default Will render each <pre><code> - simple Render all content according to lang language |
default, simple |
simple |
✅ |
[options] |
Equar configure(options) | any |
- | ✅ |
[lang] |
Uses language detection by default but you can specify the language | string |
html |
✅ |
[code] |
Specify content | string |
html |
- |
Global Config
@NgModule({
providers: [
{
provide: HIGHLIGHTJS_CONFIG,
useValue: {
lang: 'html'
} as HighlightJsConfig
}
],
imports: [ HighlightJsModule ],
})
export class AppDemoModule {}
Please follow this guidelines when reporting bugs and feature requests:
Thanks for understanding!
The MIT License (see the LICENSE file for the full text)