Add snudown as a markdown backend.

This commit is contained in:
Neil Williams
2011-11-17 12:11:51 -08:00
parent 385fb24282
commit 8865943a4a
3 changed files with 22 additions and 11 deletions

View File

@@ -312,8 +312,8 @@ takedown_sr = _takedowns
png_optimizer = /usr/bin/env optipng
# bad words that should be *'d out
profanity_wordlist =
# which markdown backent to use (c = discount, py = markdown.py)
markdown_backend = c
# which markdown backend to use (c = discount, py = markdown.py, snudown = snudown)
markdown_backend = snudown
# -- search --
# where is solor?

View File

@@ -23,6 +23,7 @@ import cgi
import os
import urllib
import re
import snudown
from cStringIO import StringIO
from xml.sax.handler import ContentHandler
@@ -131,6 +132,19 @@ def edit_comment_filter(text = ''):
text = unicode(text)
return url_escape(text)
valid_link_schemes = (
'/',
'http://',
'https://',
'ftp://',
'mailto:',
'steam://',
'irc://',
'news://',
'mumble://',
'ssh://',
)
class SouptestSaxHandler(ContentHandler):
def __init__(self, ok_tags):
self.ok_tags = ok_tags
@@ -148,12 +162,7 @@ class SouptestSaxHandler(ContentHandler):
if qname == 'a' and name == 'href':
lv = val.lower()
if not (lv.startswith('http://')
or lv.startswith('https://')
or lv.startswith('ftp://')
or lv.startswith('mailto:')
or lv.startswith('news:')
or lv.startswith('/')):
if not any(lv.startswith(scheme) for scheme in valid_link_schemes):
raise ValueError('HAX: Unsupported link scheme %r' % val)
markdown_ok_tags = {
@@ -200,8 +209,6 @@ def safemarkdown(text, nofollow=False, target=None, lang=None, wrap=True):
from r2.lib.c_markdown import c_markdown
from r2.lib.py_markdown import py_markdown
from contrib.markdown import markdown
if c.user.pref_no_profanity:
text = profanity_filter(text)
@@ -214,7 +221,9 @@ def safemarkdown(text, nofollow=False, target=None, lang=None, wrap=True):
if lang is None:
lang = g.markdown_backend
if lang == "c":
if lang == "snudown":
text = snudown.markdown(_force_utf8(text), nofollow, target)
elif lang == "c":
text = c_markdown(text, nofollow, target)
elif lang == "py":
text = py_markdown(text, nofollow, target)

View File

@@ -81,9 +81,11 @@ setup(
"amqplib",
"pylibmc==1.2.1-dev",
"py-bcrypt",
"snudown",
],
dependency_links=[
"https://github.com/downloads/reddit/pylibmc/pylibmc-1.2.1-dev.tar.gz#egg=pylibmc-1.2.1-dev",
"https://nodeload.github.com/reddit/snudown/tarball/v1.0.0#egg=snudown-1.0.0",
],
packages=find_packages(exclude=["ez_setup"]),
cmdclass=commands,