|
@@ -1,16 +1,12 @@
|
|
-from importlib import import_module
|
|
|
|
-
|
|
|
|
-from bs4 import BeautifulSoup
|
|
|
|
-from django.conf import settings
|
|
|
|
import markdown
|
|
import markdown
|
|
-
|
|
|
|
from misago.markup.bbcode import inline, blocks
|
|
from misago.markup.bbcode import inline, blocks
|
|
|
|
+from misago.markup.pipeline import pipeline
|
|
|
|
|
|
|
|
|
|
-__all__ = ['parse_text']
|
|
|
|
|
|
+__all__ = ['parse']
|
|
|
|
|
|
|
|
|
|
-def parse_text(text, author=None, allow_mentions=True, allow_links=True,
|
|
|
|
|
|
+def parse(text, author=None, allow_mentions=True, allow_links=True,
|
|
allow_images=True, allow_blocks=True):
|
|
allow_images=True, allow_blocks=True):
|
|
"""
|
|
"""
|
|
Message parser
|
|
Message parser
|
|
@@ -96,30 +92,3 @@ def md_factory(author=None, allow_mentions=True, allow_links=True,
|
|
del md.parser.blockprocessors['ulist']
|
|
del md.parser.blockprocessors['ulist']
|
|
|
|
|
|
return pipeline.extend_markdown(md)
|
|
return pipeline.extend_markdown(md)
|
|
-
|
|
|
|
-
|
|
|
|
-class MarkupPipeline(object):
|
|
|
|
- """
|
|
|
|
- Small framework for extending parser
|
|
|
|
- """
|
|
|
|
- def extend_markdown(self, md):
|
|
|
|
- for extension in settings.MISAGO_MARKUP_EXTENSIONS:
|
|
|
|
- module = import_module(extension)
|
|
|
|
- if hasattr(module, 'extend_markdown'):
|
|
|
|
- hook = getattr(module, 'extend_markdown')
|
|
|
|
- hook.extend_markdown(md)
|
|
|
|
- return md
|
|
|
|
-
|
|
|
|
- def process_result(self, result):
|
|
|
|
- soup = BeautifulSoup(result['parsed_text'])
|
|
|
|
- for extension in settings.MISAGO_MARKUP_EXTENSIONS:
|
|
|
|
- module = import_module(extension)
|
|
|
|
- if hasattr(module, 'clean_parsed'):
|
|
|
|
- hook = getattr(module, 'clean_parsed')
|
|
|
|
- hook.process_result(result, soup)
|
|
|
|
-
|
|
|
|
- souped_text = unicode(soup.body).strip()[6:-7]
|
|
|
|
- result['parsed_text'] = souped_text
|
|
|
|
- return result
|
|
|
|
-
|
|
|
|
-pipeline = MarkupPipeline()
|
|
|