Register the same language aliases as Rouge (#5040)
This allows the use of the same aliases as GitLab.
Этот коммит содержится в:
@@ -737,63 +737,63 @@ export const Constants = {
|
||||
},
|
||||
CODE_PREVIEW_MAX_FILE_SIZE: 500000, // 500 KB
|
||||
HighlightedLanguages: {
|
||||
actionscript: {name: 'ActionScript', extensions: ['as']},
|
||||
actionscript: {name: 'ActionScript', extensions: ['as'], aliases: ['as', 'as3']},
|
||||
applescript: {name: 'AppleScript', extensions: ['applescript', 'osascript', 'scpt']},
|
||||
bash: {name: 'Bash', extensions: ['bash', 'sh', 'zsh']},
|
||||
clojure: {name: 'Clojure', extensions: ['clj', 'boot', 'cl2', 'cljc', 'cljs', 'cljs.hl', 'cljscm', 'cljx', 'hic']},
|
||||
coffeescript: {name: 'CoffeeScript', extensions: ['coffee', '_coffee', 'cake', 'cjsx', 'cson', 'iced']},
|
||||
cpp: {name: 'C/C++', extensions: ['cpp', 'c', 'cc', 'h', 'c++', 'h++', 'hpp']},
|
||||
cs: {name: 'C#', extensions: ['cs', 'csharp']},
|
||||
coffeescript: {name: 'CoffeeScript', extensions: ['coffee', '_coffee', 'cake', 'cjsx', 'cson', 'iced'], aliases: ['coffee', 'coffee-script']},
|
||||
cpp: {name: 'C/C++', extensions: ['cpp', 'c', 'cc', 'h', 'c++', 'h++', 'hpp'], aliases: ['c++']},
|
||||
cs: {name: 'C#', extensions: ['cs', 'csharp'], aliases: ['c#', 'csharp']},
|
||||
css: {name: 'CSS', extensions: ['css']},
|
||||
d: {name: 'D', extensions: ['d', 'di']},
|
||||
d: {name: 'D', extensions: ['d', 'di'], aliases: ['dlang']},
|
||||
dart: {name: 'Dart', extensions: ['dart']},
|
||||
delphi: {name: 'Delphi', extensions: ['delphi', 'dpr', 'dfm', 'pas', 'pascal', 'freepascal', 'lazarus', 'lpr', 'lfm']},
|
||||
diff: {name: 'Diff', extensions: ['diff', 'patch']},
|
||||
diff: {name: 'Diff', extensions: ['diff', 'patch'], aliases: ['patch', 'udiff']},
|
||||
django: {name: 'Django', extensions: ['django', 'jinja']},
|
||||
dockerfile: {name: 'Dockerfile', extensions: ['dockerfile', 'docker']},
|
||||
erlang: {name: 'Erlang', extensions: ['erl']},
|
||||
dockerfile: {name: 'Dockerfile', extensions: ['dockerfile', 'docker'], aliases: ['docker']},
|
||||
erlang: {name: 'Erlang', extensions: ['erl'], aliases: ['erl']},
|
||||
fortran: {name: 'Fortran', extensions: ['f90', 'f95']},
|
||||
fsharp: {name: 'F#', extensions: ['fsharp', 'fs']},
|
||||
gcode: {name: 'G-Code', extensions: ['gcode', 'nc']},
|
||||
go: {name: 'Go', extensions: ['go']},
|
||||
go: {name: 'Go', extensions: ['go'], aliases: ['golang']},
|
||||
groovy: {name: 'Groovy', extensions: ['groovy']},
|
||||
handlebars: {name: 'Handlebars', extensions: ['handlebars', 'hbs', 'html.hbs', 'html.handlebars']},
|
||||
haskell: {name: 'Haskell', extensions: ['hs']},
|
||||
handlebars: {name: 'Handlebars', extensions: ['handlebars', 'hbs', 'html.hbs', 'html.handlebars'], aliases: ['hbs', 'mustache']},
|
||||
haskell: {name: 'Haskell', extensions: ['hs'], aliases: ['hs']},
|
||||
haxe: {name: 'Haxe', extensions: ['hx']},
|
||||
java: {name: 'Java', extensions: ['java', 'jsp']},
|
||||
javascript: {name: 'JavaScript', extensions: ['js', 'jsx']},
|
||||
javascript: {name: 'JavaScript', extensions: ['js', 'jsx'], aliases: ['js']},
|
||||
json: {name: 'JSON', extensions: ['json']},
|
||||
julia: {name: 'Julia', extensions: ['jl']},
|
||||
julia: {name: 'Julia', extensions: ['jl'], aliases: ['jl']},
|
||||
kotlin: {name: 'Kotlin', extensions: ['kt', 'ktm', 'kts']},
|
||||
less: {name: 'Less', extensions: ['less']},
|
||||
lisp: {name: 'Lisp', extensions: ['lisp']},
|
||||
lua: {name: 'Lua', extensions: ['lua']},
|
||||
makefile: {name: 'Makefile', extensions: ['mk', 'mak']},
|
||||
markdown: {name: 'Markdown', extensions: ['md', 'mkdown', 'mkd']},
|
||||
matlab: {name: 'Matlab', extensions: ['matlab', 'm']},
|
||||
objectivec: {name: 'Objective C', extensions: ['mm', 'objc', 'obj-c']},
|
||||
makefile: {name: 'Makefile', extensions: ['mk', 'mak'], aliases: ['make', 'mf', 'gnumake', 'bsdmake']},
|
||||
markdown: {name: 'Markdown', extensions: ['md', 'mkdown', 'mkd'], aliases: ['md', 'mkd']},
|
||||
matlab: {name: 'Matlab', extensions: ['matlab', 'm'], aliases: ['m']},
|
||||
objectivec: {name: 'Objective C', extensions: ['mm', 'objc', 'obj-c'], aliases: ['objective_c', 'objc']},
|
||||
ocaml: {name: 'OCaml', extensions: ['ml']},
|
||||
perl: {name: 'Perl', extensions: ['perl', 'pl']},
|
||||
php: {name: 'PHP', extensions: ['php', 'php3', 'php4', 'php5', 'php6']},
|
||||
powershell: {name: 'PowerShell', extensions: ['ps', 'ps1']},
|
||||
puppet: {name: 'Puppet', extensions: ['pp']},
|
||||
python: {name: 'Python', extensions: ['py', 'gyp']},
|
||||
r: {name: 'R', extensions: ['r']},
|
||||
ruby: {name: 'Ruby', extensions: ['ruby', 'rb', 'gemspec', 'podspec', 'thor', 'irb']},
|
||||
rust: {name: 'Rust', extensions: ['rs']},
|
||||
perl: {name: 'Perl', extensions: ['perl', 'pl'], aliases: ['pl']},
|
||||
php: {name: 'PHP', extensions: ['php', 'php3', 'php4', 'php5', 'php6'], aliases: ['php3', 'php4', 'php5']},
|
||||
powershell: {name: 'PowerShell', extensions: ['ps', 'ps1'], aliases: ['posh']},
|
||||
puppet: {name: 'Puppet', extensions: ['pp'], aliases: ['pp']},
|
||||
python: {name: 'Python', extensions: ['py', 'gyp'], aliases: ['py']},
|
||||
r: {name: 'R', extensions: ['r'], aliases: ['r', 's']},
|
||||
ruby: {name: 'Ruby', extensions: ['ruby', 'rb', 'gemspec', 'podspec', 'thor', 'irb'], aliases: ['rb']},
|
||||
rust: {name: 'Rust', extensions: ['rs'], aliases: ['rs']},
|
||||
scala: {name: 'Scala', extensions: ['scala']},
|
||||
scheme: {name: 'Scheme', extensions: ['scm', 'sld']},
|
||||
scss: {name: 'SCSS', extensions: ['scss']},
|
||||
smalltalk: {name: 'Smalltalk', extensions: ['st']},
|
||||
smalltalk: {name: 'Smalltalk', extensions: ['st'], aliases: ['st', 'squeak']},
|
||||
sql: {name: 'SQL', extensions: ['sql']},
|
||||
swift: {name: 'Swift', extensions: ['swift']},
|
||||
tex: {name: 'TeX', extensions: ['tex']},
|
||||
tex: {name: 'TeX', extensions: ['tex'], aliases: ['latex']},
|
||||
text: {name: 'Text', extensions: ['txt']},
|
||||
vbnet: {name: 'VB.Net', extensions: ['vbnet', 'vb', 'bas']},
|
||||
vbnet: {name: 'VB.Net', extensions: ['vbnet', 'vb', 'bas'], aliases: ['vb', 'visualbasic']},
|
||||
vbscript: {name: 'VBScript', extensions: ['vbs']},
|
||||
verilog: {name: 'Verilog', extensions: ['v', 'veo']},
|
||||
xml: {name: 'HTML, XML', extensions: ['xml', 'html', 'xhtml', 'rss', 'atom', 'xsl', 'plist']},
|
||||
yaml: {name: 'YAML', extensions: ['yaml']}
|
||||
yaml: {name: 'YAML', extensions: ['yaml'], aliases: ['yml']}
|
||||
},
|
||||
PostsViewJumpTypes: {
|
||||
BOTTOM: 1,
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user