UI/Previewers/PreviewerHTML.py

branch
maintenance
changeset 6826
c6dda2cbe081
parent 6646
51eefa621de4
parent 6794
10c368c9c02b
equal deleted inserted replaced
6764:d14ddbfbbd36 6826:c6dda2cbe081
9 9
10 from __future__ import unicode_literals 10 from __future__ import unicode_literals
11 11
12 try: # Only for Py2 12 try: # Only for Py2
13 import StringIO as io # __IGNORE_EXCEPTION__ 13 import StringIO as io # __IGNORE_EXCEPTION__
14 str = unicode
14 except (ImportError, NameError): 15 except (ImportError, NameError):
15 import io # __IGNORE_WARNING__ 16 import io # __IGNORE_WARNING__
16 17
17 import os 18 import os
18 import threading 19 import threading
657 for key in unloadKeys: 658 for key in unloadKeys:
658 sys.modules.pop(key) 659 sys.modules.pop(key)
659 660
660 try: 661 try:
661 import docutils.core # __IGNORE_EXCEPTION__ 662 import docutils.core # __IGNORE_EXCEPTION__
663 import docutils.utils # __IGNORE_EXCEPTION__
662 except ImportError: 664 except ImportError:
663 return self.tr( 665 return self.tr(
664 """<p>ReStructuredText preview requires the""" 666 """<p>ReStructuredText preview requires the"""
665 """ <b>python-docutils</b> package.<br/>Install it with""" 667 """ <b>python-docutils</b> package.<br/>Install it with"""
666 """ your package manager, 'pip install docutils' or see""" 668 """ your package manager, 'pip install docutils' or see"""
668 """this page.</a></p>""") 670 """this page.</a></p>""")
669 671
670 # redirect sys.stderr because we are not interested in it here 672 # redirect sys.stderr because we are not interested in it here
671 origStderr = sys.stderr 673 origStderr = sys.stderr
672 sys.stderr = io.StringIO() 674 sys.stderr = io.StringIO()
673 html = docutils.core.publish_string( 675 try:
674 text, writer_name=htmlFormat.lower()).decode("utf-8") 676 html = docutils.core.publish_string(
677 text, writer_name=htmlFormat.lower()).decode("utf-8")
678 except docutils.utils.SystemMessage as err:
679 errStr = str(err).split(":")[-1].replace("\n", "<br/>")
680 return self.tr(
681 """<p>Docutils returned an error:</p><p>{0}</p>"""
682 ).format(errStr)
683
675 sys.stderr = origStderr 684 sys.stderr = origStderr
676 return html 685 return html
677 686
678 def __convertMarkdown(self, text, convertNewLineToBreak, htmlFormat): 687 def __convertMarkdown(self, text, convertNewLineToBreak, htmlFormat):
679 """ 688 """

eric ide

mercurial