diff options
author | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2010-12-10 21:50:31 -0500 |
---|---|---|
committer | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2010-12-10 21:50:31 -0500 |
commit | a5179fb7ed427c7dc74290d9295ff1b292fd7f3e (patch) | |
tree | a3a36b630a7a0d622b0124bf8ebf0ba9eb9b4806 | |
parent | f9b5b5172a6f111a6ecd853e5dc4fc0e2b0dba6b (diff) | |
download | askbot-a5179fb7ed427c7dc74290d9295ff1b292fd7f3e.tar.gz askbot-a5179fb7ed427c7dc74290d9295ff1b292fd7f3e.tar.bz2 askbot-a5179fb7ed427c7dc74290d9295ff1b292fd7f3e.zip |
autolink urls
-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): |