Skip to content
This repository has been archived by the owner on Apr 19, 2019. It is now read-only.

Commit

Permalink
Fix pygments language to Ace mode translation
Browse files Browse the repository at this point in the history
  • Loading branch information
bootstraponline committed Oct 11, 2012
1 parent 4776d0b commit 8d06b5e
Showing 1 changed file with 22 additions and 15 deletions.
37 changes: 22 additions & 15 deletions lib/gollum/frontend/public/gollum/livepreview/js/livepreview.js
Original file line number Diff line number Diff line change
Expand Up @@ -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();

Expand Down Expand Up @@ -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.
Expand Down

0 comments on commit 8d06b5e

Please sign in to comment.