Dont produce uncompilable latex if no space after item star or hash
authorSam Tygier <samtygier@yahoo.co.uk>
Thu, 16 Aug 2012 16:51:14 +0000 (17:51 +0100)
committerValentin Haenel <valentin.haenel@gmx.de>
Tue, 9 Apr 2013 16:02:45 +0000 (18:02 +0200)
Fixes: 3558540
http://sourceforge.net/tracker/?func=detail&aid=3558540&group_id=195885&atid=955238

code/wiki2beamer
tests/test_wiki2beamer.py

index 56be007a14335faa88cd6c9a10464380fab44afd..bce5467530ef2e4cb71616126c10707da14a087f 100755 (executable)
@@ -199,8 +199,8 @@ def transform_itemenums(string, state):
     state.enum_item_level = my_enum_item_level
     
     # now, substitute item markers
-    p = re.compile("^([\*\#]+)(.*)$")
-    _string = p.sub(r"  \\item\2", string)
+    p = re.compile("^([\*\#]+)\s*(.*)$")
+    _string = p.sub(r"  \\item \2", string)
     string = preamble + _string
  
     return string
index 536938838bbf870ca54d6afa79862a9eff2f5e94..d3379ccc96a3329f013547242ef72da56b12d4ee 100755 (executable)
@@ -241,12 +241,24 @@ class TestConvert2Beamer(unittest.TestCase):
         out = convert2beamer(lines)
         self.assertEqual(out, expected)
 
+    def test_itemize_nospace(self):
+        lines = ['*foo', '*bar', '**foobar']
+        expected = ['\n', '\\begin{itemize}\n  \\item foo', '  \\item bar', '\\begin{itemize}\n  \\item foobar', '\\end{itemize}\n\\end{itemize}\n']
+        out = convert2beamer(lines)
+        self.assertEqual(out, expected)
+
     def test_enumerate(self):
         lines = ['# one', '# two', '## onetwo']
         expected = ['\n', '\\begin{enumerate}\n  \\item one', '  \\item two', '\\begin{enumerate}\n  \\item onetwo', '\\end{enumerate}\n\\end{enumerate}\n']
         out = convert2beamer(lines)
         self.assertEqual(out,expected)
 
+    def test_enumerate_nospace(self):
+        lines = ['#one', '#two', '##onetwo']
+        expected = ['\n', '\\begin{enumerate}\n  \\item one', '  \\item two', '\\begin{enumerate}\n  \\item onetwo', '\\end{enumerate}\n\\end{enumerate}\n']
+        out = convert2beamer(lines)
+        self.assertEqual(out,expected)
+
     def test_itemenum(self):
         lines = ['# one', '#* onefoo', '#* onebar', '## oneone', '#*# onefooone']
         expected = ['\n', '\\begin{enumerate}\n  \\item one', '\\begin{itemize}\n  \\item onefoo', '  \\item onebar', '\\end{itemize}\n\\begin{enumerate}\n  \\item oneone', '\\end{enumerate}\n\\begin{itemize}\n\\begin{enumerate}\n  \\item onefooone', '\\end{enumerate}\n\\end{itemize}\n\\end{enumerate}\n']