From 65deec58618f7078e7171922a1dff19f53fbea24 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 14 Dec 2024 01:07:53 +0200 Subject: [PATCH] feat(text-note): add Terraform HCL support for code blocks --- libraries/highlightjs/terraform.js | 6 +----- src/public/app/services/library_loader.js | 12 ++++++++++-- src/public/app/services/mime_types.js | 1 + 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/libraries/highlightjs/terraform.js b/libraries/highlightjs/terraform.js index 1874b795d..514e727cf 100644 --- a/libraries/highlightjs/terraform.js +++ b/libraries/highlightjs/terraform.js @@ -80,8 +80,4 @@ return { } } -module.exports = function(hljs) { - hljs.registerLanguage('terraform', hljsDefineTerraform); -}; - -module.exports.definer = hljsDefineTerraform; \ No newline at end of file +hljs.registerLanguage('terraform', hljsDefineTerraform); \ No newline at end of file diff --git a/src/public/app/services/library_loader.js b/src/public/app/services/library_loader.js index 6a85d8984..b5507d1d6 100644 --- a/src/public/app/services/library_loader.js +++ b/src/public/app/services/library_loader.js @@ -107,8 +107,16 @@ const HIGHLIGHT_JS = { const scriptsToLoad = new Set(); scriptsToLoad.add("node_modules/@highlightjs/cdn-assets/highlight.min.js"); for (const mimeType of mimeTypes) { - if (mimeType.enabled && mimeType.highlightJs) { - scriptsToLoad.add(`node_modules/@highlightjs/cdn-assets/languages/${mimeType.highlightJs}.min.js`); + const id = mimeType.highlightJs; + if (!mimeType.enabled || !id) { + continue; + } + + if (mimeType.highlightJsSource === "libraries") { + scriptsToLoad.add(`libraries/highlightjs/${id}.js`); + } else { + // Built-in module. + scriptsToLoad.add(`node_modules/@highlightjs/cdn-assets/languages/${id}.min.js`); } } diff --git a/src/public/app/services/mime_types.js b/src/public/app/services/mime_types.js index 0aef44ecf..adb863673 100644 --- a/src/public/app/services/mime_types.js +++ b/src/public/app/services/mime_types.js @@ -142,6 +142,7 @@ const MIME_TYPES_DICT = [ { default: true, title: "Swift", mime: "text/x-swift" }, { title: "SystemVerilog", mime: "text/x-systemverilog" }, { title: "Tcl", mime: "text/x-tcl", highlightJs: "tcl" }, + { title: "Terraform (HCL)", mime: "text/x-hcl", highlightJs: "terraform", highlightJsSource: "libraries" }, { title: "Textile", mime: "text/x-textile" }, { title: "TiddlyWiki ", mime: "text/x-tiddlywiki" }, { title: "Tiki wiki", mime: "text/tiki" },