Skip to content
Snippets Groups Projects
Commit 5b4f2355 authored by Nicholas Mangold's avatar Nicholas Mangold
Browse files

#3382238: Dynamically register languages.

parent 1510b32d
No related branches found
No related tags found
1 merge request!1#3382238: Dynamically register languages.
/**
* @file
* Enables syntax highlighting via HighlightJS.
*/
(function (hljs) {
'use strict';
hljs.initHighlightingOnLoad();
})(hljs);
highlightjs:
version: VERSION
js:
//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/highlight.min.js: { type: external, minified: true }
assets/js/init_highlightjs.js: { minified: false }
js/highlightjs_input_filter.js: { attributes: { type: module }, minified: false }
css:
theme:
//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/xcode.min.css: { type: external }
/**
* @file
* Enables syntax highlighting via HighlightJS.
*/
import hljs from 'https://unpkg.com/@highlightjs/cdn-assets@11.8.0/es/core.min.js';
(function (Drupal, drupalSettings) {
const languages = drupalSettings.highlightJsLanguages || [];
const promises = languages.map(language => {
return import(`https://unpkg.com/@highlightjs/cdn-assets@11.8.0/es/languages/${language}.min.js`)
.then(module => hljs.registerLanguage(language, module.default));
});
Drupal.behaviors.highlightInit = {
attach () {
Promise.all(promises).then(() => {
hljs.highlightAll();
})
}
}
})(Drupal, drupalSettings)
......@@ -26,11 +26,23 @@ class HighlightJs extends FilterBase {
return $result;
}
$pattern = "/language-[^\"]+/i";
if (preg_match_all($pattern, $result, $matches)) {
foreach ($matches as $match) {
foreach ($match as $language_id) {
$languages[] = str_replace('language-', '', $language_id);
}
}
}
// Add needed JS.
$result->addAttachments([
'library' => [
'highlightjs_input_filter/highlightjs',
],
'drupalSettings' => [
'highlightJsLanguages' => array_unique($languages),
],
]);
return $result;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment