diff --git a/AUTHORS b/AUTHORS index 951570ee8b..4a2c22cb5a 100644 --- a/AUTHORS +++ b/AUTHORS @@ -92,3 +92,4 @@ Felipe Montoya Julia Hansbrough Pavel Yushchenko Nicolas Chevalier +Iain Dunning diff --git a/common/lib/xmodule/xmodule/js/spec/problem/edit_spec.coffee b/common/lib/xmodule/xmodule/js/spec/problem/edit_spec.coffee index fcf35c70f6..c0c9b88441 100644 --- a/common/lib/xmodule/xmodule/js/spec/problem/edit_spec.coffee +++ b/common/lib/xmodule/xmodule/js/spec/problem/edit_spec.coffee @@ -314,6 +314,10 @@ describe 'MarkdownEditingDescriptor', -> bad tests require drivel + + [code] + Code should be nicely monospaced. + [/code] """) expect(data).toEqual("""

Not a header

@@ -382,5 +386,9 @@ describe 'MarkdownEditingDescriptor', ->

bad tests require drivel

+ +

+        Code should be nicely monospaced.
+        
""") # failure tests diff --git a/common/lib/xmodule/xmodule/js/src/problem/edit.coffee b/common/lib/xmodule/xmodule/js/src/problem/edit.coffee index c9c319196f..ba85db574b 100644 --- a/common/lib/xmodule/xmodule/js/src/problem/edit.coffee +++ b/common/lib/xmodule/xmodule/js/src/problem/edit.coffee @@ -268,18 +268,24 @@ class @MarkdownEditingDescriptor extends XModule.Descriptor var selectString = '\n
\nExplanation\n\n' + p1 + '\n
\n
'; return selectString; }); + + // replace code blocks + xml = xml.replace(/\[code\]\n?([^\]]*)\[\/?code\]/gmi, function(match, p1) { + var selectString = '
\n' + p1 + '
'; + return selectString; + }); - // split scripts and wrap paragraphs - var splits = xml.split(/(\<\/?script.*?\>)/g); + // split scripts and preformatted sections, and wrap paragraphs + var splits = xml.split(/(\<\/?(?:script|pre).*?\>)/g); var scriptFlag = false; for(var i = 0; i < splits.length; i++) { - if(/\