diff --git a/rhodecode/lib/markup_renderer.py b/rhodecode/lib/markup_renderer.py --- a/rhodecode/lib/markup_renderer.py +++ b/rhodecode/lib/markup_renderer.py @@ -26,6 +26,7 @@ import re import logging +import traceback from rhodecode.lib.utils2 import safe_unicode, MENTIONS_REGEX @@ -93,7 +94,7 @@ class MarkupRenderer(object): return '
' + source.replace("\n", '
') @classmethod - def markdown(cls, source): + def markdown(cls, source, safe=True): source = safe_unicode(source) try: import markdown as __markdown @@ -101,9 +102,15 @@ class MarkupRenderer(object): except ImportError: log.warning('Install markdown to use this function') return cls.plain(source) + except Exception: + log.error(traceback.format_exc()) + if safe: + return source + else: + raise @classmethod - def rst(cls, source): + def rst(cls, source, safe=True): source = safe_unicode(source) try: from docutils.core import publish_parts @@ -125,6 +132,12 @@ class MarkupRenderer(object): except ImportError: log.warning('Install docutils to use this function') return cls.plain(source) + except Exception: + log.error(traceback.format_exc()) + if safe: + return source + else: + raise @classmethod def rst_with_mentions(cls, source):