Register the same language aliases as Rouge (#5040)

This allows the use of the same aliases as GitLab.
Этот коммит содержится в:
Jazz
2017-01-13 14:54:22 +01:00
коммит произвёл enahum
родитель 4e160c78ab
Коммит 7d6fa7f8bf
2 изменённых файлов: 46 добавлений и 34 удалений

Просмотреть файл

@@ -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 '';
}
}
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);
});
}