diff options
-rw-r--r-- | askbot/utils/markup.py | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/askbot/utils/markup.py b/askbot/utils/markup.py index 86c4c3b8..8347811a 100644 --- a/askbot/utils/markup.py +++ b/askbot/utils/markup.py @@ -1,13 +1,26 @@ +import re from askbot import const from askbot.conf import settings as askbot_settings from markdown2 import Markdown +#url taken from http://regexlib.com/REDetails.aspx?regexp_id=501 by Brian Bothwell +URL_RE = re.compile("(?<!href=['\"])((http|https|ftp)\://([a-zA-Z0-9\.\-]+(\:[a-zA-Z0-9\.&%\$\-]+)*@)*((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|localhost|([a-zA-Z0-9\-]+\.)*[a-zA-Z0-9\-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(\:[0-9]+)*(/($|[a-zA-Z0-9\.\,\?\'\\\+&%\$#\=~_\-]+))*)") + +LINK_PATTERNS = [ + (URL_RE, r'\1'), +] + def get_parser(): + extras = ['link-patterns',] if askbot_settings.ENABLE_MATHJAX or \ askbot_settings.MARKUP_CODE_FRIENDLY: - return Markdown(html4tags=True, extras=['code-friendly',]) - else: - return Markdown(html4tags=True) + extras.append('code-friendly') + + return Markdown( + html4tags=True, + extras=extras, + link_patterns = LINK_PATTERNS + ) def format_mention_in_html(mentioned_user): |