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 pluginHere’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-nameattribute ofcodeelement, 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