Changeset 50


Ignore:
Timestamp:
01/10/06 12:35:34 (14 years ago)
Author:
laszlo
Message:

closes #89 spent 90m

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Module.py

    r47 r50  
    2020        accessor="getBody", 
    2121        widget=WYSIWYMWidget( 
    22             label="Our body", 
     22            label="Body", 
    2323            label_msgid="label_body", 
    24             description="Our body", 
     24            description="Module body", 
    2525            description_msgid="desc_body", 
    2626            i18n_domain="toolbox",), 
  • trunk/WYSIWYMWidget.py

    r47 r50  
    88     
    99    def getBody(self): 
    10         body=str(self.body) 
     10        body="\n\n%s\n\n" % str(self.body) 
     11         
     12        lf1 = re.compile('\r\n') 
     13        lf2 = re.compile('\r') 
     14        body = lf1.sub('\n',body) 
     15        body = lf2.sub('\n',body) 
     16 
     17        body = re.sub(r'\n\n\*\s', r'\n\n<ul><li>', body) 
     18        body = re.sub(r'\n\*\s(.*)\n\n', r'</li><li>\1</li></ul>\n\n', body) 
     19        body = re.sub(r'\n\*\s', r'</li><li>', body) 
     20 
     21        body = re.sub(r'\n\n\#\s', r'\n\n<ol><li>', body) 
     22        body = re.sub(r'\n\#\s(.*)\n\n', r'</li><li>\1</li></ol>\n\n', body) 
     23        body = re.sub(r'\n\#\s', r'</li><li>', body) 
     24 
     25        body = re.sub('\n\n<ul>',"</p><ul>",body) 
     26        body = re.sub('</ul>\n\n',"</ul><p>",body) 
     27        body = re.sub('\n\n<ol>',"</p><ol>",body) 
     28        body = re.sub('</ol>\n\n',"</ol><p>",body) 
     29        body = re.sub('\n\n',"</p><p>",body) 
     30        body = re.sub('\n',"<br/>",body) 
     31     
     32        body = re.sub(r'\A</p>', '', body) 
     33        body = re.sub(r'<p>\Z', '', body) 
     34 
     35        body = re.sub(r'\[(\S+?)\s(.*?)\]', r'<a href="\1">\2</a>', body) 
     36         
    1137        #raise 'FOO', str(body) 
    12         body=re.sub(r'\*(.*?)\*', r'<b>\1</b>',body) 
    13         body=re.sub(r'\_(.*?)\_', r'<i>\1</i>',body) 
     38        body=re.sub(r'([\s>])\*(\S.*?\S)\*([\s<])', r'\1<b>\2</b>\3',body) 
     39        body=re.sub(r'([\s>])_(\S.*?\S)_([\s<])', r'\1<i>\2</i>\3',body) 
     40        body = re.sub(r'\A\s(.*)\s\Z',r'<p>\1</p>',body) 
    1441        return body 
    1542 
  • trunk/tests/testWYSIWYM.py

    r46 r50  
    3030    def testHTMLRendering(self): 
    3131        translations = (('*bold*','<p><b>bold</b></p>'), 
     32                        #('1 < 2 or 3 > 4/5', '<p>1 &lt; 2 or 3 &gt; 4/5</p>') 
    3233                        ('Bolding*or*italics only_work_on whole words','<p>Bolding*or*italics only_work_on whole words</p>'), 
     34                        ('No * bold * here','<p>No * bold * here</p>'), 
    3335                        ('*Several words* can _be affected_','<p><b>Several words</b> can <i>be affected</i></p>'), 
    3436                        ('_italic_','<p><i>italic</i></p>'), 
    35                         ('Line1\n\nLine2','<p>Line1</p><p>Line2</p>'), 
    36                         ('Line1\nLine2','<p>Line1<br/>Line2</p>'), 
    37                         ('Line with *bold* in it\n\nLine with _italic_ in it.', 
     37                        ('Line1\r\n\r\nLine2','<p>Line1</p><p>Line2</p>'), 
     38                        ('Line1\r\nLine2','<p>Line1<br/>Line2</p>'), 
     39                        ('Line with *bold* in it\r\n\r\nLine with _italic_ in it.', 
    3840                         '<p>Line with <b>bold</b> in it</p><p>Line with <i>italic</i> in it.</p>'), 
    39                         ('* Item1\n* Item2\n* Third item', 
     41                        ('* Item1\r\n* Item2\r\n* Third item', 
    4042                         '<ul><li>Item1</li><li>Item2</li><li>Third item</li></ul>'), 
    41                         ('Paragraph1\n\n* Item1\n* Item2\n\nParagraph2', 
     43                        ('# Item1\r\n# Item2\r\n# Third item', 
     44                         '<ol><li>Item1</li><li>Item2</li><li>Third item</li></ol>'), 
     45                        ('This is a [http://foo.bar Link].','<p>This is a <a href="http://foo.bar">Link</a>.</p>'), 
     46                        ('Paragraph1\r\n\r\n* Item1\r\n* Item2\r\n\r\nParagraph2', 
    4247                         '<p>Paragraph1</p><ul><li>Item1</li><li>Item2</li></ul><p>Paragraph2</p>'), 
    4348                        ) 
     49        errors='' 
    4450        for (body,rbody) in translations: 
    4551            self.ob.edit(body=body) 
    46             self.assertEqual(self.ob.getBody(), rbody, 'Wrong rendering for "%s": "%s" (expected "%s")' % (body,self.ob.getBody(),rbody)) 
     52            if self.ob.getBody()!=rbody: 
     53                errors = errors + 'Wrong rendering for "%s": "%s" (expected "%s")\n' % (body,self.ob.getBody(),rbody) 
     54        self.failIf(errors,errors) 
    4755 
    4856def test_suite(): 
Note: See TracChangeset for help on using the changeset viewer.