def content_to_html(text, extra_params='rel="nofollow"'): if not text.strip(): return "" if extra_params: extra_params = " " + extra_params.strip() def make_link(m): url = m.group(1) proto = m.group(2) href = m.group(1) if not proto: href = "http://" + href # no proto specified, use http params = extra_params if '.' in href: name_extension = href.split('.')[-1].lower() if name_extension in ('jpg', 'png', 'gif', 'jpeg'): return u'<img src="%s" />' % href return u'<a href="%s"%s>%s</a>' % (href, params, url) def cover_email(m): data = {'mail': m.group(1), 'end': m.group(2)} return u'<a href="mailto:%(mail)s">%(mail)s</a>%(end)s' % data def convert_mention(m): data = {} data['begin'], data['user'] = m.group(1).split('@') data["user_profile"] = url_for("user.profile", name=data['user']) t = u'%(begin)s<a href="%(user_profile)s" class="mention_user">' \ u'@%(user)s</a>' return t % data def convert_floor(m): data = {} data['begin'], data['floor'] = m.group(1).split('#') t = u'%(begin)s<a href="#reply_%(floor)s" ' \ u'class="mention_floor">#%(floor)s</a>' return t % data def highligt(m): try: name = m.group(1) lexer = get_lexer_by_name(name) except ValueError: lexer = TextLexer() text = m.group(2).replace('"', '"').replace('&', '&') text = text.replace('<', '<').replace('>', '>') text = text.replace(' ', ' ') return highlight(text, lexer, formatter) text = to_unicode(xhtml_escape(text)).replace(' ', ' ') text = _CODE_RE.sub(highligt, text).replace('\n', '<br />') text = _MENTION_RE.sub(convert_mention, text) text = _EMAIL_RE.sub(cover_email, text) text = _FLOOR_RE.sub(convert_floor, text) return Markup(_URL_RE.sub(make_link, text))
def content_to_html(text, extra_params='rel="nofollow"'): if not text.strip(): return "" if extra_params: extra_params = " " + extra_params.strip() def make_link(m): url = m.group(1) proto = m.group(2) href = m.group(1) if not proto: href = "http://" + href # no proto specified, use http params = extra_params if '.' in href: name_extension = href.split('.')[-1].lower() if name_extension in ('jpg', 'png', 'git', 'jpeg'): return u'<img src="%s" />' % href return u'<a href="%s"%s>%s</a>' % (href, params, url) def cover_email(m): data = {'mail': m.group(1), 'end': m.group(2)} return u'<a href="mailto:%(mail)s">%(mail)s</a>%(end)s' % data def convert_mention(m): data = {} data['begin'], data['user'] = m.group(1).split('@') data["user_profile"] = url_for("user.profile", name=data['user']) t = u'%(begin)s<a href="%(user_profile)s" class="mention_user">' \ u'@%(user)s</a>' return t % data def convert_floor(m): data = {} data['begin'], data['floor'] = m.group(1).split('#') t = u'%(begin)s<a href="#reply_%(floor)s" ' \ u'class="mention_floor">#%(floor)s</a>' return t % data def highligt(m): try: name = m.group(1) lexer = get_lexer_by_name(name) except ValueError: lexer = TextLexer() text = m.group(2).replace('"', '"').replace('&', '&') text = text.replace('<', '<').replace('>', '>') text = text.replace(' ', ' ') return highlight(text, lexer, formatter) text = to_unicode(xhtml_escape(text)).replace(' ', ' ') text = _CODE_RE.sub(highligt, text).replace('\n', '<br />') text = _MENTION_RE.sub(convert_mention, text) text = _EMAIL_RE.sub(cover_email, text) text = _FLOOR_RE.sub(convert_floor, text) return Markup(_URL_RE.sub(make_link, text))
def make_content(text, extra_params='rel="nofollow"'): """https://github.com/facebook/tornado/blob/master/tornado/escape.py#L238 """ if extra_params: extra_params = " " + extra_params.strip() def make_link(m): url = m.group(1) proto = m.group(2) href = m.group(1) if not proto: href = "http://" + href params = extra_params if '.' in href: name_extension = href.split('.')[-1].lower() if name_extension in ('jpg', 'png', 'gif', 'jpeg'): return u'<img src="%s" />' % href return u'<a href="%s"%s>%s</a>' % (href, params, url) def cover_email(m): data = {'mail': m.group(1), 'end': m.group(2)} return u'<a href="mailto:%(mail)s">%(mail)s</a>%(end)s' % data def convert_mention(m): data = {} data['begin'], data['user'] = m.group(1).split('@') t = u'%(begin)s<a href="/member/%(user)s" class="mention">' \ u'@%(user)s</a>' return t % data def convert_floor(m): data = {} data['begin'], data['floor'] = m.group(1).split('#') t = u'%(begin)s<a href="#reply%(floor)s"' \ ' class="mention mention_floor">#%(floor)s</a>' return t % data def convert_topic(m): data = {} data['begin'], data['topic_link'] = m.group(1).split('t') data['topic_link_short'] = data['topic_link'][:6] t = u"""%(begin)s<a href="%(topic_link)s" class="mention mention_topic" _id=%(topic_link)s>t%(topic_link_short)s</a>""" return t % data text = _unicode(text).replace('\n', '<br />') text = text.replace(''', '\'') text = _EMAIL_RE.sub(cover_email, text) text = _MENTION_RE.sub(convert_mention, text) text = _FLOOR_RE.sub(convert_floor, text) text = _TOPIC_RE.sub(convert_topic, text) return _URL_RE.sub(make_link, text)
def make_content(text, extra_params='rel="nofollow"'): """https://github.com/facebook/tornado/blob/master/tornado/escape.py#L238 """ if extra_params: extra_params = " " + extra_params.strip() def make_link(m): url = m.group(1) proto = m.group(2) href = m.group(1) if not proto: href = "http://" + href # no proto specified, use http params = extra_params if '.' in href: name_extension = href.split('.')[-1].lower() if name_extension in ('jpg', 'png', 'git', 'jpeg'): return u'<img src="%s" />' % href return u'<a href="%s"%s>%s</a>' % (href, params, url) def cover_email(m): data = {'mail': m.group(1), 'end': m.group(2)} return u'<a href="mailto:%(mail)s">%(mail)s</a>%(end)s' % data def convert_mention(m): data = {} data['begin'], data['user'] = m.group(1).split('@') t = u'%(begin)s<a href="/member/%(user)s" class="mention">' \ u'@%(user)s</a>' return t % data def highligt(m): try: name = m.group(1) lexer = get_lexer_by_name(name) except ValueError: lexer = TextLexer() text = m.group(2).replace('"', '"').replace('&', '&') text = text.replace('<', '<').replace('>', '>') text = text.replace(' ', ' ') return highlight(text, lexer, formatter) text = _unicode(xhtml_escape(text)).replace(' ', ' ') text = _CODE_RE.sub(highligt, text).replace('\n', '<br />') text = _EMAIL_RE.sub(cover_email, text) text = _MENTION_RE.sub(convert_mention, text) return _URL_RE.sub(make_link, text)
def make_content(text, extra_params='rel="nofollow"'): """https://github.com/facebook/tornado/blob/master/tornado/escape.py#L238 """ if extra_params: extra_params = " " + extra_params.strip() def make_link(m): url = m.group(1) proto = m.group(2) href = m.group(1) if not proto: href = "http://" + href # no proto specified, use http params = extra_params if "." in href: name_extension = href.split(".")[-1] if name_extension in ("jpg", "png", "git", "jpeg"): return u'<img src="%s" />' % href return u'<a href="%s"%s>%s</a>' % (href, params, url) def cover_email(m): data = {"mail": m.group(1), "end": m.group(2)} return u'<a href="mailto:%(mail)s">%(mail)s</a>%(end)s' % data def convert_mention(m): data = {} data["begin"], data["user"] = m.group(1).split("@") t = u'%(begin)s<a href="/member/%(user)s" class="mention">' u"@%(user)s</a>" return t % data def highligt(m): try: name = m.group(1) lexer = get_lexer_by_name(name) except ValueError: lexer = TextLexer() text = m.group(2).replace(""", '"').replace("&", "&") text = text.replace("<", "<").replace(">", ">") return highlight(text, lexer, formatter) text = _unicode(xhtml_escape(text)) text = _CODE_RE.sub(highligt, text).replace("\n", "<br />") text = _EMAIL_RE.sub(cover_email, text) text = _MENTION_RE.sub(convert_mention, text) return _URL_RE.sub(make_link, text)