diff --git a/src/calibre/ebooks/txt/processor.py b/src/calibre/ebooks/txt/processor.py
index 6a20703cbb..b2a6292748 100644
--- a/src/calibre/ebooks/txt/processor.py
+++ b/src/calibre/ebooks/txt/processor.py
@@ -102,25 +102,26 @@ def convert_basic(txt, title='', epub_split_size_kb=0):
DEFAULT_MD_EXTENSIONS = ('footnotes', 'tables', 'toc')
-def convert_markdown(txt, title='', extensions=DEFAULT_MD_EXTENSIONS):
- from calibre.ebooks.conversion.plugins.txt_input import MD_EXTENSIONS
+def create_markdown_object(extensions):
from calibre.ebooks.markdown import Markdown
- extensions = ['calibre.ebooks.markdown.extensions.' + x.lower() for x in extensions if x.lower() in MD_EXTENSIONS]
+ from calibre.ebooks.conversion.plugins.txt_input import MD_EXTENSIONS
+ extensions = [x.lower() for x in extensions if x.lower() in MD_EXTENSIONS]
md = Markdown(extensions=extensions)
+ return md
+
+
+def convert_markdown(txt, title='', extensions=DEFAULT_MD_EXTENSIONS):
+ md = create_markdown_object(extensions)
return HTML_TEMPLATE % (title, md.convert(txt))
def convert_markdown_with_metadata(txt, title='', extensions=DEFAULT_MD_EXTENSIONS):
- from calibre.ebooks.conversion.plugins.txt_input import MD_EXTENSIONS
- from calibre.ebooks.markdown import Markdown
from calibre.ebooks.metadata.book.base import Metadata
from calibre.utils.date import parse_only_date
from calibre.db.write import get_series_values
- extensions = ['calibre.ebooks.markdown.extensions.' + x.lower() for x in extensions if x.lower() in MD_EXTENSIONS]
- meta_ext = 'calibre.ebooks.markdown.extensions.meta'
- if meta_ext not in extensions:
- extensions.append(meta_ext)
- md = Markdown(extensions=extensions)
+ if 'meta' not in extensions:
+ extensions.append('meta')
+ md = create_markdown_object(extensions)
html = md.convert(txt)
mi = Metadata(title or _('Unknown'))
m = md.Meta
diff --git a/src/calibre/test_build.py b/src/calibre/test_build.py
index c38baac7bf..64470fa025 100644
--- a/src/calibre/test_build.py
+++ b/src/calibre/test_build.py
@@ -269,9 +269,9 @@ class BuildTest(unittest.TestCase):
del readline
def test_markdown(self):
- from calibre.ebooks.markdown import Markdown
+ from calibre.ebooks.txt.processor import create_markdown_object
from calibre.ebooks.conversion.plugins.txt_input import MD_EXTENSIONS
- Markdown(extensions=MD_EXTENSIONS)
+ create_markdown_object(MD_EXTENSIONS)
from calibre.library.comments import sanitize_comments_html
sanitize_comments_html(b'''xxx
''')