mirror of
https://github.com/reddit-archive/reddit.git
synced 2026-01-27 15:58:06 -05:00
wiki: Validate wiki markdown with the wiki md processor.
This commit is contained in:
@@ -274,7 +274,7 @@ class WikiController(RedditController):
|
||||
class WikiApiController(WikiController):
|
||||
@wiki_validate(VModhash(),
|
||||
pageandprevious=VWikiPageRevise(('page', 'previous'), restricted=True),
|
||||
content=VMarkdown(('content')),
|
||||
content=VMarkdown(('content'), renderer='wiki'),
|
||||
page_name=VWikiPageName('page'),
|
||||
reason=VPrintable('reason', 256))
|
||||
@api_doc(api_section.wiki, uri='/api/wiki/edit')
|
||||
|
||||
@@ -194,11 +194,14 @@ markdown_xhtml_dtd_path = os.path.join(
|
||||
|
||||
markdown_dtd = '<!DOCTYPE div- SYSTEM "file://%s">' % markdown_xhtml_dtd_path
|
||||
|
||||
def markdown_souptest(text, nofollow=False, target=None):
|
||||
def markdown_souptest(text, nofollow=False, target=None, renderer=None):
|
||||
if not text:
|
||||
return text
|
||||
|
||||
smd = safemarkdown(text, nofollow=nofollow, target=target)
|
||||
|
||||
if not renderer:
|
||||
smd = safemarkdown(text, nofollow=nofollow, target=target)
|
||||
elif renderer == 'wiki':
|
||||
smd = wikimarkdown(text)
|
||||
|
||||
# Prepend a DTD reference so we can load up definitions of all the standard
|
||||
# XHTML entities ( , etc.).
|
||||
|
||||
@@ -571,14 +571,15 @@ class VTitle(VLength):
|
||||
}
|
||||
|
||||
class VMarkdown(VLength):
|
||||
def __init__(self, param, max_length = 10000, **kw):
|
||||
def __init__(self, param, max_length = 10000, renderer=None, **kw):
|
||||
VLength.__init__(self, param, max_length, **kw)
|
||||
self.renderer = renderer
|
||||
|
||||
def run(self, text, text2 = ''):
|
||||
text = text or text2
|
||||
VLength.run(self, text)
|
||||
try:
|
||||
markdown_souptest(text)
|
||||
markdown_souptest(text, renderer=self.renderer)
|
||||
return text
|
||||
except ValueError:
|
||||
import sys
|
||||
|
||||
Reference in New Issue
Block a user