1
0
Fork 0
mirror of https://github.com/codex-team/codex.docs.git synced 2025-07-19 21:29:41 +02:00
codex.docs/src/frontend/js/classes/codeStyler.js

47 lines
1.1 KiB
JavaScript
Raw Normal View History

import hljs from "highlight.js/lib/highlight";
import javascript from 'highlight.js/lib/languages/javascript';
import style from 'highlight.js/styles/github-gist.css';
/**
* @class CodeStyles
* @classdesc Provides styling for code blocks
*/
export default class CodeStyler {
/**
* @param {string} selector - CSS selector for code blocks
* @param {string[]} languages - list of languages to highlight, see hljs.listLanguages()
*/
constructor({selector, languages = [ 'javascript' ]}) {
this.codeBlocksSelector = selector;
this.languages = languages;
this.langsAvailable = {
javascript
};
this.init();
}
/**
* Start to highlight
*/
init() {
const codeBlocks = document.querySelectorAll(this.codeBlocksSelector);
if (!codeBlocks.length) {
return;
}
this.languages.forEach(lang => {
hljs.registerLanguage(lang, this.langsAvailable[lang]);
});
hljs.configure({
languages: this.languages
});
Array.from(codeBlocks).forEach(block => {
hljs.highlightBlock(block);
});
}
}