Exemplo n.º 1
0
    def test2 (self):
        src = ur"""<UL><LI>Несортированный список. Элемент 1</LI><LI>Несортированный список. Элемент 2</LI><LI>Несортированный список. Элемент 3</LI><OL><LI>Вложенный сортированный список. Элемент 1</LI><LI>Вложенный сортированный список. Элемент 2</LI><LI>Вложенный сортированный список. Элемент 3</LI><LI>Вложенный сортированный список. Элемент 4</LI><UL><LI>Совсем вложенный сортированный список. Элемент 1</LI><LI>Совсем вложенный сортированный список. Элемент 2</LI></UL><LI>Вложенный сортированный список. Элемент 5</LI></OL><UL><LI>Вложенный несортированный список. Элемент 1</LI></UL></UL>"""

        expectedResult = ur"""
<UL>
<LI>Несортированный список. Элемент 1</LI>
<LI>Несортированный список. Элемент 2</LI>
<LI>Несортированный список. Элемент 3</LI>
<OL>
<LI>Вложенный сортированный список. Элемент 1</LI>
<LI>Вложенный сортированный список. Элемент 2</LI>
<LI>Вложенный сортированный список. Элемент 3</LI>
<LI>Вложенный сортированный список. Элемент 4</LI>
<UL>
<LI>Совсем вложенный сортированный список. Элемент 1</LI>
<LI>Совсем вложенный сортированный список. Элемент 2</LI>
</UL>
<LI>Вложенный сортированный список. Элемент 5</LI>
</OL>
<UL>
<LI>Вложенный несортированный список. Элемент 1</LI>
</UL>
</UL>"""

        result = HtmlImprover.run (src)
        self.assertEqual (expectedResult, result, result)
Exemplo n.º 2
0
    def test3 (self):
        src = ur"""qweqweqw qweqwe<BR>qwewqeqwe wqe<P>qweqweqw qwe qweqwe<PRE>
аап ываыв ываываыываы ыва ыва
ываыва выа выа

ываыв фывфв фывфывыф ыфв
вапвапввап вапвапвап

вапвапвап вапваапва</PRE><P>sdfsdf sdfsdf<BR>sdfsdf<BR>sdf sdfsdf sdf"""

        expectedResult = ur"""qweqweqw qweqwe
<BR>qwewqeqwe wqe</P>

<P>qweqweqw qwe qweqwe
<PRE>
аап ываыв ываываыываы ыва ыва
ываыва выа выа

ываыв фывфв фывфывыф ыфв
вапвапввап вапвапвап

вапвапвап вапваапва</PRE></P>

<P>sdfsdf sdfsdf
<BR>sdfsdf
<BR>sdf sdfsdf sdf"""

        result = HtmlImprover.run (src)
        self.assertEqual (expectedResult, result, result)
Exemplo n.º 3
0
    def test3 (self):
        src = ur"""qweqweqw qweqwe<br>qwewqeqwe wqe<p>qweqweqw qwe qweqwe<pre>
аап ываыв ываываыываы ыва ыва
ываыва выа выа

ываыв фывфв фывфывыф ыфв
вапвапввап вапвапвап

вапвапвап вапваапва</pre><p>sdfsdf sdfsdf<br>sdfsdf<br>sdf sdfsdf sdf"""

        expectedResult = ur"""qweqweqw qweqwe
<br>qwewqeqwe wqe</p>

<p>qweqweqw qwe qweqwe
<pre>
аап ываыв ываываыываы ыва ыва
ываыва выа выа

ываыв фывфв фывфывыф ыфв
вапвапввап вапвапвап

вапвапвап вапваапва</pre></p>

<p>sdfsdf sdfsdf
<br>sdfsdf
<br>sdf sdfsdf sdf"""

        result = HtmlImprover.run (src)
        self.assertEqual (expectedResult, result, result)
Exemplo n.º 4
0
    def makeHtml (self, stylepath):
        path = self.getResultPath()

        if self.canReadFromCache():
            return path

        factory = ParserFactory ()
        parser = factory.make(self.page, Application.config)

        content = self.page.content if len (self.page.content) > 0 else self._generateEmptyContent (parser)

        text = HtmlImprover.run (parser.toHtml (content) )
        head = parser.head

        tpl = HtmlTemplate (stylepath)

        result = tpl.substitute (content=text, userhead=head)


        with open (path, "wb") as fp:
            fp.write (result.encode ("utf-8"))

        try:
            self._getHashOption().value = self.getHash()
        except IOError:
            # Не самая страшная потеря, если не сохранится хэш.
            # Максимум, что грозит пользователю, каждый раз генерить старницу
            pass

        return path
Exemplo n.º 5
0
    def test2 (self):
        src = ur"""<ul><li>Несортированный список. Элемент 1</li><li>Несортированный список. Элемент 2</li><li>Несортированный список. Элемент 3</li><ol><li>Вложенный сортированный список. Элемент 1</li><li>Вложенный сортированный список. Элемент 2</li><li>Вложенный сортированный список. Элемент 3</li><li>Вложенный сортированный список. Элемент 4</li><ul><li>Совсем вложенный сортированный список. Элемент 1</li><li>Совсем вложенный сортированный список. Элемент 2</li></ul><li>Вложенный сортированный список. Элемент 5</li></ol><ul><li>Вложенный несортированный список. Элемент 1</li></ul></ul>"""

        expectedResult = ur"""
<ul>
<li>Несортированный список. Элемент 1</li>
<li>Несортированный список. Элемент 2</li>
<li>Несортированный список. Элемент 3</li>
<ol>
<li>Вложенный сортированный список. Элемент 1</li>
<li>Вложенный сортированный список. Элемент 2</li>
<li>Вложенный сортированный список. Элемент 3</li>
<li>Вложенный сортированный список. Элемент 4</li>
<ul>
<li>Совсем вложенный сортированный список. Элемент 1</li>
<li>Совсем вложенный сортированный список. Элемент 2</li>
</ul>
<li>Вложенный сортированный список. Элемент 5</li>
</ol>
<ul>
<li>Вложенный несортированный список. Элемент 1</li>
</ul>
</ul>"""

        result = HtmlImprover.run (src)
        self.assertEqual (expectedResult, result, result)
Exemplo n.º 6
0
    def generateHtml (self, page):
        path = self.getHtmlPath (page)

        if page.readonly and os.path.exists (path):
            # Если страница открыта только для чтения и html-файл уже существует, то покажем его
            return path

        style = Style()
        stylepath = style.getPageStyle (page)

        try:
            tpl = HtmlTemplate (stylepath)
        except:
            MessageBox (_(u"Page style Error. Style by default is used"),  
                    _(u"Error"),
                    wx.ICON_ERROR | wx.OK)

            tpl = HtmlTemplate (style.getDefaultStyle())

        if page.autoLineWrap:
            text = HtmlImprover.run (page.content)
            text = re.sub ("\n<br>\n(<li>)|(<li>)", "\n<LI>", text)
        else:
            text = page.content

        result = tpl.substitute (content=text)

        with open (path, "wb") as fp:
            fp.write (result.encode ("utf-8"))

        return path
Exemplo n.º 7
0
    def testImproved1 (self):
        src = u"""<ul><li>Несортированный список. Элемент 1</li><li>Несортированный список. Элемент 2</li><li>Несортированный список. Элемент 3</li><ol><li>Вложенный сортированный список. Элемент 1</li><li>Вложенный сортированный список. Элемент 2</li><li>Вложенный сортированный список. Элемент 3</li><li>Вложенный сортированный список. Элемент 4</li><ul><li>Совсем вложенный сортированный список. Элемент 1</li><li>Совсем вложенный сортированный список. Элемент 2</li></ul><li>Вложенный сортированный список. Элемент 5</li></ol><ul><li>Вложенный несортированный список. Элемент 1</li></ul></ul>"""

        expectedResult = u"""<!DOCTYPE html>
<html>
<head>
	<meta http-equiv='X-UA-Compatible' content='IE=edge' />
	<meta http-equiv='content-type' content='text/html; charset=utf-8'/>

	<style type='text/css'>
		body, div, p, table {
			font-size:10pt;
			font-family:Verdana;
		}

		img{border:none}
		
	</style>
	
</head>

<body>
<p>
<ul>
<li>Несортированный список. Элемент 1</li>
<li>Несортированный список. Элемент 2</li>
<li>Несортированный список. Элемент 3</li>
<ol>
<li>Вложенный сортированный список. Элемент 1</li>
<li>Вложенный сортированный список. Элемент 2</li>
<li>Вложенный сортированный список. Элемент 3</li>
<li>Вложенный сортированный список. Элемент 4</li>
<ul>
<li>Совсем вложенный сортированный список. Элемент 1</li>
<li>Совсем вложенный сортированный список. Элемент 2</li>
</ul>
<li>Вложенный сортированный список. Элемент 5</li>
</ol>
<ul>
<li>Вложенный несортированный список. Элемент 1</li>
</ul>
</ul></p>
</body>
</html>"""

        templatepath = os.path.join (getTemplatesDir(), "__default", "__style.html")
        tpl = HtmlTemplate (templatepath)

        result = tpl.substitute (HtmlImprover.run (src) )
        self.assertEqual (expectedResult, result, result)
Exemplo n.º 8
0
    def testImproved1 (self):
        src = u"""<UL><LI>Несортированный список. Элемент 1</LI><LI>Несортированный список. Элемент 2</LI><LI>Несортированный список. Элемент 3</LI><OL><LI>Вложенный сортированный список. Элемент 1</LI><LI>Вложенный сортированный список. Элемент 2</LI><LI>Вложенный сортированный список. Элемент 3</LI><LI>Вложенный сортированный список. Элемент 4</LI><UL><LI>Совсем вложенный сортированный список. Элемент 1</LI><LI>Совсем вложенный сортированный список. Элемент 2</LI></UL><LI>Вложенный сортированный список. Элемент 5</LI></OL><UL><LI>Вложенный несортированный список. Элемент 1</LI></UL></UL>"""

        expectedResult = u"""<!DOCTYPE html>
<HTML>
<HEAD>
	<META HTTP-EQUIV='X-UA-Compatible' CONTENT='IE=edge' />
	<META HTTP-EQUIV='CONTENT-TYPE' CONTENT='TEXT/HTML; CHARSET=UTF-8'/>

	<STYLE type='text/css'>
		body, div, p, table {
			font-size:10pt;
			font-family:Verdana;
		}

		img{border:none}
		
	</STYLE>
	
</HEAD>

<BODY>
<P>
<UL>
<LI>Несортированный список. Элемент 1</LI>
<LI>Несортированный список. Элемент 2</LI>
<LI>Несортированный список. Элемент 3</LI>
<OL>
<LI>Вложенный сортированный список. Элемент 1</LI>
<LI>Вложенный сортированный список. Элемент 2</LI>
<LI>Вложенный сортированный список. Элемент 3</LI>
<LI>Вложенный сортированный список. Элемент 4</LI>
<UL>
<LI>Совсем вложенный сортированный список. Элемент 1</LI>
<LI>Совсем вложенный сортированный список. Элемент 2</LI>
</UL>
<LI>Вложенный сортированный список. Элемент 5</LI>
</OL>
<UL>
<LI>Вложенный несортированный список. Элемент 1</LI>
</UL>
</UL></P>
</BODY>
</HTML>"""

        templatepath = os.path.join (getTemplatesDir(), "__default", "__style.html")
        tpl = HtmlTemplate (templatepath)

        result = tpl.substitute (HtmlImprover.run (src) )
        self.assertEqual (expectedResult, result, result)
Exemplo n.º 9
0
    def test1 (self):
        src = ur"""<H2>Attach links</H2><P>Attach:file.odt<BR><A HREF="__attach/file.odt">file.odt</A><BR><A HREF="__attach/file.odt">alternative text</A><BR><A HREF="__attach/file with spaces.pdf">file with spaces.pdf</A><P><H2>Images</H2>"""

        expectedResult = ur"""
<H2>Attach links</H2></P>

<P>Attach:file.odt
<BR><A HREF="__attach/file.odt">file.odt</A>
<BR><A HREF="__attach/file.odt">alternative text</A>
<BR><A HREF="__attach/file with spaces.pdf">file with spaces.pdf</A></P>

<P>
<H2>Images</H2>"""

        result = HtmlImprover.run (src)
        self.assertEqual (expectedResult, result)
Exemplo n.º 10
0
    def test1 (self):
        src = ur"""<h2>Attach links</h2><p>Attach:file.odt<br><a href="__attach/file.odt">file.odt</a><br><a href="__attach/file.odt">alternative text</a><br><a href="__attach/file with spaces.pdf">file with spaces.pdf</a><p><h2>Images</h2>"""

        expectedResult = ur"""
<h2>Attach links</h2></p>

<p>Attach:file.odt
<br><a href="__attach/file.odt">file.odt</a>
<br><a href="__attach/file.odt">alternative text</a>
<br><a href="__attach/file with spaces.pdf">file with spaces.pdf</a></p>

<p>
<h2>Images</h2>"""

        result = HtmlImprover.run (src)
        self.assertEqual (expectedResult, result)
Exemplo n.º 11
0
    def testImproved2 (self):
        src = ur"""<h2>Attach links</h2><p>Attach:file.odt<br><a href="__attach/file.odt">file.odt</a><br><a href="__attach/file.odt">alternative text</a><br><a href="__attach/file with spaces.pdf">file with spaces.pdf</a><p><h2>Images</h2>"""

        expectedResult = ur"""<!DOCTYPE html>
<html>
<head>
	<meta http-equiv='X-UA-Compatible' content='IE=edge' />
	<meta http-equiv='content-type' content='text/html; charset=utf-8'/>

	<style type='text/css'>
		body, div, p, table {
			font-size:10pt;
			font-family:Verdana;
		}

		img{border:none}
		
	</style>
	
</head>

<body>
<p>
<h2>Attach links</h2></p>

<p>Attach:file.odt
<br><a href="__attach/file.odt">file.odt</a>
<br><a href="__attach/file.odt">alternative text</a>
<br><a href="__attach/file with spaces.pdf">file with spaces.pdf</a></p>

<p>
<h2>Images</h2></p>
</body>
</html>"""

        templatepath = os.path.join (getTemplatesDir(), "__default", "__style.html")
        tpl = HtmlTemplate (templatepath)

        result = tpl.substitute (HtmlImprover.run (src) )
        self.assertEqual (expectedResult, result)
Exemplo n.º 12
0
    def testImproved2 (self):
        src = ur"""<H2>Attach links</H2><P>Attach:file.odt<BR><A HREF="__attach/file.odt">file.odt</A><BR><A HREF="__attach/file.odt">alternative text</A><BR><A HREF="__attach/file with spaces.pdf">file with spaces.pdf</A><P><H2>Images</H2>"""

        expectedResult = ur"""<!DOCTYPE html>
<HTML>
<HEAD>
	<META HTTP-EQUIV='X-UA-Compatible' CONTENT='IE=edge' />
	<META HTTP-EQUIV='CONTENT-TYPE' CONTENT='TEXT/HTML; CHARSET=UTF-8'/>

	<STYLE type='text/css'>
		body, div, p, table {
			font-size:10pt;
			font-family:Verdana;
		}

		img{border:none}
		
	</STYLE>
	
</HEAD>

<BODY>
<P>
<H2>Attach links</H2></P>

<P>Attach:file.odt
<BR><A HREF="__attach/file.odt">file.odt</A>
<BR><A HREF="__attach/file.odt">alternative text</A>
<BR><A HREF="__attach/file with spaces.pdf">file with spaces.pdf</A></P>

<P>
<H2>Images</H2></P>
</BODY>
</HTML>"""

        templatepath = os.path.join (getTemplatesDir(), "__default", "__style.html")
        tpl = HtmlTemplate (templatepath)

        result = tpl.substitute (HtmlImprover.run (src) )
        self.assertEqual (expectedResult, result)