Skip to content

Commit b8f979d

Browse files
committed
WIP: add fallback option
1 parent 0d74549 commit b8f979d

File tree

1 file changed

+22
-4
lines changed

1 file changed

+22
-4
lines changed

src/highlightjs-lang.js

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
if (lang !== '') {
5757
var langPanel = document.createElement('div');
5858
langPanel.className = 'hljs-lang';
59-
langPanel.textContent = convertLangName(lang, internalOptions.overrideNames);
59+
langPanel.textContent = convertLangName(lang, internalOptions);
6060
element.parentNode.insertBefore(langPanel, element);
6161
}
6262
}
@@ -70,6 +70,7 @@
7070
options = options || {};
7171
return {
7272
overrideNames: getOverrideNamesOption(element, langKey, options),
73+
fallback: getFallbackOption(options),
7374
};
7475
}
7576

@@ -91,6 +92,23 @@
9192
return overrideNames;
9293
}
9394

95+
function getFallbackOption (options) {
96+
return !!options.fallback
97+
? options.fallback
98+
: defaultFallbackOption;
99+
}
100+
101+
function defaultFallbackOption (codeLang) {
102+
if (!!codeLang) {
103+
var lang = codeLang.trim();
104+
if (lang.length > 0) {
105+
lang[0] = lang[0].toUpperCase();
106+
return lang;
107+
}
108+
}
109+
return codeLang;
110+
}
111+
94112
function getLangNameFromElement (element) {
95113
var classes = element.className.split(' ');
96114
var lang = getLangNameFromClasses(classes);
@@ -105,9 +123,9 @@
105123
return '';
106124
}
107125

108-
function convertLangName(langKey, overrideNamesMap)
126+
function convertLangName(langKey, options)
109127
{
110-
var overriddenLangName = overrideNamesMap[langKey];
128+
var overriddenLangName = options.overrideNames[langKey];
111129
if (!!overriddenLangName) {
112130
return overriddenLangName;
113131
}
@@ -117,7 +135,7 @@
117135
return langName;
118136
}
119137

120-
return langKey;
138+
return options.fallback(langKey);
121139
}
122140

123141
/**

0 commit comments

Comments
 (0)