|
56 | 56 | if (lang !== '') {
|
57 | 57 | var langPanel = document.createElement('div');
|
58 | 58 | langPanel.className = 'hljs-lang';
|
59 |
| - langPanel.textContent = convertLangName(lang, internalOptions.overrideNames); |
| 59 | + langPanel.textContent = convertLangName(lang, internalOptions); |
60 | 60 | element.parentNode.insertBefore(langPanel, element);
|
61 | 61 | }
|
62 | 62 | }
|
|
70 | 70 | options = options || {};
|
71 | 71 | return {
|
72 | 72 | overrideNames: getOverrideNamesOption(element, langKey, options),
|
| 73 | + fallback: getFallbackOption(options), |
73 | 74 | };
|
74 | 75 | }
|
75 | 76 |
|
|
91 | 92 | return overrideNames;
|
92 | 93 | }
|
93 | 94 |
|
| 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 | + |
94 | 112 | function getLangNameFromElement (element) {
|
95 | 113 | var classes = element.className.split(' ');
|
96 | 114 | var lang = getLangNameFromClasses(classes);
|
|
105 | 123 | return '';
|
106 | 124 | }
|
107 | 125 |
|
108 |
| - function convertLangName(langKey, overrideNamesMap) |
| 126 | + function convertLangName(langKey, options) |
109 | 127 | {
|
110 |
| - var overriddenLangName = overrideNamesMap[langKey]; |
| 128 | + var overriddenLangName = options.overrideNames[langKey]; |
111 | 129 | if (!!overriddenLangName) {
|
112 | 130 | return overriddenLangName;
|
113 | 131 | }
|
|
117 | 135 | return langName;
|
118 | 136 | }
|
119 | 137 |
|
120 |
| - return langKey; |
| 138 | + return options.fallback(langKey); |
121 | 139 | }
|
122 | 140 |
|
123 | 141 | /**
|
|
0 commit comments