summaryrefslogtreecommitdiffstats
path: root/webapp/utils/syntax_highlighting.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/utils/syntax_highlighting.jsx')
-rw-r--r--webapp/utils/syntax_highlighting.jsx22
1 files changed, 17 insertions, 5 deletions
diff --git a/webapp/utils/syntax_highlighting.jsx b/webapp/utils/syntax_highlighting.jsx
index 47ba5bd4e..73e1087cb 100644
--- a/webapp/utils/syntax_highlighting.jsx
+++ b/webapp/utils/syntax_highlighting.jsx
@@ -123,9 +123,9 @@ hlJS.registerLanguage('yaml', hljsYaml);
const HighlightedLanguages = Constants.HighlightedLanguages;
export function highlight(lang, code) {
- const language = lang.toLowerCase();
+ const language = getLanguageFromNameOrAlias(lang);
- if (HighlightedLanguages[language]) {
+ if (language) {
try {
return hlJS.highlight(language, code).value;
} catch (e) {
@@ -147,13 +147,25 @@ export function getLanguageFromFileExtension(extension) {
}
export function canHighlight(language) {
- return Boolean(HighlightedLanguages[language.toLowerCase()]);
+ return Boolean(getLanguageFromNameOrAlias(language));
}
export function getLanguageName(language) {
if (canHighlight(language)) {
- return HighlightedLanguages[language.toLowerCase()].name;
+ return HighlightedLanguages[getLanguageFromNameOrAlias(language)].name;
}
return '';
-} \ No newline at end of file
+}
+
+function getLanguageFromNameOrAlias(name) {
+ const langName = name.toLowerCase();
+ if (HighlightedLanguages[langName]) {
+ return langName;
+ }
+
+ return Object.keys(HighlightedLanguages).find((key) => {
+ const aliases = HighlightedLanguages[key].aliases;
+ return aliases && aliases.find((a) => a === langName);
+ });
+}