Fix pygments language to Ace mode translation
This commit is contained in:
@@ -244,6 +244,27 @@ function highlight( element, language ) {
|
||||
element.parentNode.parentNode.replaceChild( newDiv, element.parentNode );
|
||||
}
|
||||
|
||||
// Pygments and Ace have different names for languages.
|
||||
function pygmentsLanguageToAceMode( declaredLanguage ) {
|
||||
switch ( declaredLanguage ) {
|
||||
case 'c':
|
||||
case 'c++':
|
||||
case 'cpp':
|
||||
case 'objective-c':
|
||||
return 'c_cpp';
|
||||
case 'c#':
|
||||
return 'csharp';
|
||||
case 'coffeescript':
|
||||
return 'coffee';
|
||||
case 'html+erb':
|
||||
return 'html'
|
||||
}
|
||||
|
||||
// Assume language name is the same
|
||||
// if it's not handled above.
|
||||
return declaredLanguage;
|
||||
}
|
||||
|
||||
var makePreviewHtml = function () {
|
||||
var text = editorSession.getValue();
|
||||
|
||||
@@ -294,21 +315,7 @@ var makePreviewHtml = function () {
|
||||
// the syntax for code highlighting means all code, even one line, contains newlines.
|
||||
if ( txt.length > 1 && codeHTML.match( /\n/ ) ) {
|
||||
var declaredLanguage = element.className.toLowerCase();
|
||||
var aceMode = declaredLanguage;
|
||||
|
||||
// GitHub supports 'c', 'c++', 'cpp'
|
||||
// which must trigger the 'c_cpp' mode in Ace.
|
||||
if ( declaredLanguage === 'c' ||
|
||||
declaredLanguage === 'c++' ||
|
||||
declaredLanguage === 'cpp' ) {
|
||||
aceMode = 'c_cpp';
|
||||
}
|
||||
|
||||
// Pygments's name for CoffeeScript is 'coffeescript', but Ace
|
||||
// calls it 'coffee'.
|
||||
if ( declaredLanguage === 'coffeescript' ) {
|
||||
aceMode = 'coffee';
|
||||
}
|
||||
var aceMode = pygmentsLanguageToAceMode( declaredLanguage );
|
||||
|
||||
if ( $.inArray( declaredLanguage, languages ) === -1 ) {
|
||||
// Unsupported language.
|
||||
|
||||
Reference in New Issue
Block a user