Highlight.js plugin for display language of syntax highlight.
npm i highlightjs-lang.js
<script src="https://cdn.jsdelivr.net/npm/highlightjs-lang.js@latest/dist/highlightjs-lang.min.js"></script>
highlightjs-lang.js 1.1.0 is known to work with highlight.js 11.3.1+
Download plugin and include file after highlight.js:
<script src="path/to/highlight.min.js"></script>
<!-- Load plugin: -->
<script src="path/to/highlightjs-lang.min.js"></script>
Add styles:
.hljs-lang {
background: #333;
text-align: center;
color: #fff;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
Initialize plugin after highlight.js:
hljs.highlightAll();
hljs.initLangOnLoad(); // <-- init plugin
Here’s an equivalent way to calling initLangBlock
using jQuery:
$(document).ready(function() {
$('code.hljs').each(function(i, block) {
hljs.initLangBlock(block);
});
});
After version 1.1.0 plugin has optional parameter options
- for custom setup:
version | name | type | default value | description |
---|---|---|---|---|
v1.1.0 | overrideNames | object | {} | Override the default language names |
v1.1.1 | fallback | func(str): str | (lang) => lang | Fallback to convert unknown names |
Options can be used in these calls:
hljs.initLangOnLoad(myOptions);
hljs.initLangBlock(myCodeBlock, myOptions);
If you want to override the default language name, you can specify a overridden language names, in one of the following ways:
- Specifying the desired value in js code, as in:
var myOptions = {
// ...
overrideNames: {
cs: 'C#',
},
// ...
};
- Specifying the desired value in
data-lang-name
attribute ofcode
element, as in:
<pre>
<code class="cs" data-lang-name="C#">
...
</code>
</pre>
In both cases language name will be C#
.
Specifying the desired format for undeclared language names:
var myOptions = {
// ...
fallback: function (lang) {
return '~~' + lang;
},
// ...
};
Convert all undeclared language names to names with ~~
prefix:
xyz -> ~~xyz
(Applies to hljs.initLangOnLoad()
initialization only.)
If you want to skip some of your code
blocks (to leave them unnumbered), you can mark them with .nohljslang
class.
- highlightjs-line-numbers.js — Line numbering plugin.
© 2015 Yauheni Pakala | MIT License