Angular Highlight.js
Super easy to use, auto highlight code and auto-detect language
Installation
- To install this library, run:
$ npm install --save ngx-highlightjs
-
Head to highlight.js download page and get your custom package bundle including only the languages you need.
-
Create new folder in src/assets/highlight.js
and extract the downloaded zip file.
-
import highlight.js script in index.html
<script src="assets/highlight.js/highlight.pack.js"></script>
- import highlight.js theme in global style
style.scss
@import 'assets/highlight.js/styles/monokai-sublime.css';
List of all available themes from highlight.js
SystemJS
If you are using SystemJS, you should also adjust your configuration to point to the UMD bundle.
In your systemjs config file, map needs to tell the System loader where to look for ngx-highlightjs
:
map: {
'ngx-highlightjs': 'node_modules/ngx-highlightjs/bundles/ngx-highlightjs.umd.js',
}
Here is a working plunker.
Usage
Import HighlightModule
library from any module:
import { HighlightModule } from 'ngx-highlightjs';
@NgModule({
imports: [
HighlightModule
]
})
export class AppModule { }
<pre><code highlight [textContent]="someCode"></code></pre>
<div [textContent]="anotherCode"></div>
- Highlight all code elements
<div highlight="all">
<pre><code [textContent]="htmlCode"></code></pre>
<pre><code [textContent]="tsCode"></code></pre>
<pre><code [textContent]="cssCode"></code></pre>
</div>
- Highlight custom elements
<div highlight="section code">
<section><code [textContent]="pythonCode"></code></section>
<section><code [textContent]="swiftCode"></code></section>
</div>
Options
[highlight]: string, default ''
if you just use highlight
on the element, it will highlight it
if you use highlight="all"
: highlights all child code elements.
if you use highlight="p code"
: highlights custom child elements.
- Auto-highlight on changes
[hlAuto]: boolean, default true
;
[hlDelay]: number, default 200
ms;
Development
To generate all *.js
, *.d.ts
and *.metadata.json
files:
$ npm run build
To lint all *.ts
files:
$ npm run lint
Issues
If you identify any errors in the library, or have an idea for an improvement, please open an issue. I am excited to see what the community thinks of this project, and I would love your input!
Author
Murhaf Sousli