ngx-highlight-js
Angular for syntax highlighting with highlight.js
Demo
Installation instructions
1、Install
npm install --save ngx-highlight-js
2、Add highlight.js
Load the highlight.js and theme css in page.
<link rel="stylesheet" href="//cdn.jsdelivr.net/gh/highlightjs/cdn-release/build/styles/atom-one-dark.min.css" />
<script src="//cdn.jsdelivr.net/gh/highlightjs/cdn-release/build/highlight.min.js"></script>
Usage
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 {}
Simple mode
<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>
Default mode
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>
Parameter
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 {}
Troubleshooting
Please follow this guidelines when reporting bugs and feature requests:
- Use GitHub Issues board to report bugs and feature requests (not our email address)
- Please always write steps to reproduce the error. That way we can focus on fixing the bug, not scratching our heads trying to reproduce it.
Thanks for understanding!
License
The MIT License (see the LICENSE file for the full text)