Commit 3a98ee58 by David Baumgold

Merge pull request #1295 from IainNZ/patch-1

Added a [code] block to the problem markdown parser
parents 1be7dbe3 a75b764c
......@@ -92,3 +92,4 @@ Felipe Montoya <felipe.montoya@edunext.co>
Julia Hansbrough <julia@edx.org>
Pavel Yushchenko <pavelyushchenko@gmail.com>
Nicolas Chevalier <nicolas.chevalier@epitech.eu>
Iain Dunning <idunning@mit.edu>
......@@ -314,6 +314,10 @@ describe 'MarkdownEditingDescriptor', ->
bad tests require drivel
</div>
[code]
Code should be nicely monospaced.
[/code]
""")
expect(data).toEqual("""<problem>
<p>Not a header</p>
......@@ -382,5 +386,9 @@ describe 'MarkdownEditingDescriptor', ->
<p>bad tests require drivel</p>
</div>
<pre><code>
Code should be nicely monospaced.
</code></pre>
</problem>""")
# failure tests
......@@ -268,18 +268,24 @@ class @MarkdownEditingDescriptor extends XModule.Descriptor
var selectString = '<solution>\n<div class="detailed-solution">\nExplanation\n\n' + p1 + '\n</div>\n</solution>';
return selectString;
});
// replace code blocks
xml = xml.replace(/\[code\]\n?([^\]]*)\[\/?code\]/gmi, function(match, p1) {
var selectString = '<pre><code>\n' + p1 + '</code></pre>';
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(/\<script/.test(splits[i])) {
if(/\<(script|pre)/.test(splits[i])) {
scriptFlag = true;
}
if(!scriptFlag) {
splits[i] = splits[i].replace(/(^(?!\s*\<|$).*$)/gm, '<p>$1</p>');
}
if(/\<\/script/.test(splits[i])) {
if(/\<\/(script|pre)/.test(splits[i])) {
scriptFlag = false;
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment