|
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