From f6f05db2f68fc1963bbf9b51f72a8f9b0644b9ca Mon Sep 17 00:00:00 2001 From: Rodrigo Fernandes Date: Sun, 27 Aug 2023 21:37:39 +0100 Subject: [PATCH] fallback to plaintext when highlighting unloaded language --- src/ui/js/diff2html-ui-base.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/ui/js/diff2html-ui-base.ts b/src/ui/js/diff2html-ui-base.ts index 9b2317f..4368ea7 100644 --- a/src/ui/js/diff2html-ui-base.ts +++ b/src/ui/js/diff2html-ui-base.ts @@ -151,7 +151,7 @@ export class Diff2HtmlUI { this.config.highlightLanguages = new Map(Object.entries(this.config.highlightLanguages)); } - const hljsLanguage = + let hljsLanguage = language && this.config.highlightLanguages.has(language) ? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion this.config.highlightLanguages.get(language)! @@ -159,6 +159,11 @@ export class Diff2HtmlUI { ? getLanguage(language) : 'plaintext'; + // Fallback to plaintext in case language is not loaded + if (hljs.getLanguage(hljsLanguage) === undefined) { + hljsLanguage = 'plaintext'; + } + // Collect all the code lines and execute the highlight on them const codeLines = file.querySelectorAll('.d2h-code-line-ctn'); codeLines.forEach(line => {