nunjucks-highlight.js
Version:
A custom nunjucks tag to highlight code blocks using highlight.js
89 lines (61 loc) • 2 kB
Markdown
[![Slack Status][slack-image]][slack-url]
[![NPM version][npm-image]][npm-url]
[![MIT License][license-image]][license-url]
An extension for [Nunjucks][nunjucks] that adds support for [Highlight.js][highlightjs] `code` blocks. Built into [CrocodileJS][crocodile-url]!
<img src="https://cdn.rawgit.com/niftylettuce/nunjucks-highlight.js/master/media/example-screenshot.png" width="600" height="74" />
```bash
npm install --save nunjucks-highlight.js
```
Register the extension with nunjucks:
```js
import NunjucksCodeHighlight from 'nunjucks-highlight.js';
import hljs from 'highlight.js';
const highlight = new NunjucksCodeHighlight(nunjucks, hljs);
const env = nunjucks.configure('views', {});
env.addExtension('NunjucksCodeHighlight', highlight);
```
Add code blocks to your templates:
> Automatic language detection:
Input:
```njk
{% code %}
(function () {
console.log('hello world');
}());
{% endcode %}
```
Output:
```html
(<span class="hljs-name">function</span>() {
console.log(<span class="hljs-name">'hello</span> world')<span class="hljs-comment">;</span>
}())<span class="hljs-comment">;</span>
```
> Specify language of code block:
Input:
```njk
{% code %}js
(function() {
console.log('hello world');
}());
{% endcode %}
```
Output:
```html
(<span class="hljs-name">function</span>() {
console.log(<span class="hljs-name">'hello</span> world')<span class="hljs-comment">;</span>
}())<span class="hljs-comment">;</span>
```
[][license]
[]: https://github.com/mozilla/nunjucks
[]: https://github.com/isagalaev/highlight.js/
[]: http://img.shields.io/badge/license-MIT-blue.svg
[]: LICENSE
[]: https://img.shields.io/npm/v/nunjucks-highlight.js.svg
[]: https://npmjs.org/package/nunjucks-highlight.js
[]: https://crocodilejs.com
[]: http://slack.crocodilejs.com/badge.svg
[]: http://slack.crocodilejs.com