aboutsummaryrefslogtreecommitdiffstats
path: root/markdown
diff options
context:
space:
mode:
Diffstat (limited to 'markdown')
-rw-r--r--markdown/core.py10
-rw-r--r--markdown/extensions/extra.py1
-rw-r--r--markdown/extensions/legacy_em.py30
-rw-r--r--markdown/extensions/smart_strong.py37
-rw-r--r--markdown/inlinepatterns.py20
5 files changed, 40 insertions, 58 deletions
diff --git a/markdown/core.py b/markdown/core.py
index 2144f00..d25f20d 100644
--- a/markdown/core.py
+++ b/markdown/core.py
@@ -47,11 +47,6 @@ class Markdown(object):
doc_tag = "div" # Element used to wrap document - later removed
- option_defaults = {
- 'tab_length': 4,
- 'smart_emphasis': True,
- }
-
output_formats = {
'html': to_html_string,
'xhtml': to_xhtml_string,
@@ -73,13 +68,10 @@ class Markdown(object):
* "xhtml": Outputs XHTML style tags. Default.
* "html": Outputs HTML style tags.
* tab_length: Length of tabs in the source. Default: 4
- * smart_emphasis: Treat `_connected_words_` intelligently Default: True
"""
- # Loop through kwargs and assign defaults
- for option, default in self.option_defaults.items():
- setattr(self, option, kwargs.get(option, default))
+ self.tab_length = kwargs.get('tab_length', 4)
self.ESCAPED_CHARS = ['\\', '`', '*', '_', '{', '}', '[', ']',
'(', ')', '>', '#', '+', '-', '.', '!']
diff --git a/markdown/extensions/extra.py b/markdown/extensions/extra.py
index 19b9db0..e498a74 100644
--- a/markdown/extensions/extra.py
+++ b/markdown/extensions/extra.py
@@ -37,7 +37,6 @@ from .. import util
import re
extensions = [
- 'smart_strong',
'fenced_code',
'footnotes',
'attr_list',
diff --git a/markdown/extensions/legacy_em.py b/markdown/extensions/legacy_em.py
new file mode 100644
index 0000000..5cc0f6d
--- /dev/null
+++ b/markdown/extensions/legacy_em.py
@@ -0,0 +1,30 @@
+'''
+Legacy Em Extension for Python-Markdown
+=======================================
+
+This extention provides legacy behavior for _connected_words_.
+
+Copyright 2015-2018 The Python Markdown Project
+
+License: [BSD](http://www.opensource.org/licenses/bsd-license.php)
+
+'''
+
+from __future__ import absolute_import
+from __future__ import unicode_literals
+from . import Extension
+from ..inlinepatterns import SimpleTagInlineProcessor
+
+EMPHASIS_RE = r'(\*|_)(.+?)\1'
+STRONG_RE = r'(\*{2}|_{2})(.+?)\1'
+
+
+class LegacyEmExtension(Extension):
+ """ Add legacy_em extension to Markdown class."""
+
+ def extendMarkdown(self, md, md_globals):
+ """ Modify inline patterns. """
+ md.inlinePatterns.register(SimpleTagInlineProcessor(STRONG_RE, 'strong'), 'strong', 40)
+ md.inlinePatterns.register(SimpleTagInlineProcessor(EMPHASIS_RE, 'em'), 'emphasis', 30)
+ md.inlinePatterns.deregister('strong2')
+ md.inlinePatterns.deregister('emphasis2')
diff --git a/markdown/extensions/smart_strong.py b/markdown/extensions/smart_strong.py
deleted file mode 100644
index e7a15d9..0000000
--- a/markdown/extensions/smart_strong.py
+++ /dev/null
@@ -1,37 +0,0 @@
-'''
-Smart_Strong Extension for Python-Markdown
-==========================================
-
-This extension adds smarter handling of double underscores within words.
-
-See <https://Python-Markdown.github.io/extensions/smart_strong>
-for documentation.
-
-Original code Copyright 2011 [Waylan Limberg](http://achinghead.com)
-
-All changes Copyright 2011-2014 The Python Markdown Project
-
-License: [BSD](http://www.opensource.org/licenses/bsd-license.php)
-
-'''
-
-from __future__ import absolute_import
-from __future__ import unicode_literals
-from . import Extension
-from ..inlinepatterns import SimpleTagInlineProcessor
-
-SMART_STRONG_RE = r'(?<!\w)(_{2})(?!_)(.+?)(?<!_)\1(?!\w)'
-STRONG_RE = r'(\*{2})(.+?)\1'
-
-
-class SmartEmphasisExtension(Extension):
- """ Add smart_emphasis extension to Markdown class."""
-
- def extendMarkdown(self, md, md_globals):
- """ Modify inline patterns. """
- md.inlinePatterns.register(SimpleTagInlineProcessor(STRONG_RE, 'strong'), 'strong', 40)
- md.inlinePatterns.register(SimpleTagInlineProcessor(SMART_STRONG_RE, 'strong'), 'strong2', 10)
-
-
-def makeExtension(**kwargs): # pragma: no cover
- return SmartEmphasisExtension(**kwargs)
diff --git a/markdown/inlinepatterns.py b/markdown/inlinepatterns.py
index 8d49d07..e4af53e 100644
--- a/markdown/inlinepatterns.py
+++ b/markdown/inlinepatterns.py
@@ -95,10 +95,8 @@ def build_inlinepatterns(md, **kwargs):
inlinePatterns.register(DoubleTagInlineProcessor(STRONG_EM_RE, 'em,strong'), 'strong_em', 50)
inlinePatterns.register(SimpleTagInlineProcessor(STRONG_RE, 'strong'), 'strong', 40)
inlinePatterns.register(SimpleTagInlineProcessor(EMPHASIS_RE, 'em'), 'emphasis', 30)
- if md.smart_emphasis:
- inlinePatterns.register(SimpleTagInlineProcessor(SMART_EMPHASIS_RE, 'em'), 'emphasis2', 20)
- else:
- inlinePatterns.register(SimpleTagInlineProcessor(EMPHASIS_2_RE, 'em'), 'emphasis2', 20)
+ inlinePatterns.register(SimpleTagInlineProcessor(SMART_STRONG_RE, 'strong'), 'strong2', 20)
+ inlinePatterns.register(SimpleTagInlineProcessor(SMART_EMPHASIS_RE, 'em'), 'emphasis2', 10)
return inlinePatterns
@@ -119,7 +117,13 @@ ESCAPE_RE = r'\\(.)'
EMPHASIS_RE = r'(\*)([^\*]+)\1'
# **strong**
-STRONG_RE = r'(\*{2}|_{2})(.+?)\1'
+STRONG_RE = r'(\*{2})(.+?)\1'
+
+# __smart__strong__
+SMART_STRONG_RE = r'(?<!\w)(_{2})(?!_)(.+?)(?<!_)\1(?!\w)'
+
+# _smart_emphasis_
+SMART_EMPHASIS_RE = r'(?<!\w)(_)(?!_)(.+?)(?<!_)\1(?!\w)'
# ***strongem*** or ***em*strong**
EM_STRONG_RE = r'(\*|_)\1{2}(.+?)\1(.*?)\1{2}'
@@ -127,12 +131,6 @@ EM_STRONG_RE = r'(\*|_)\1{2}(.+?)\1(.*?)\1{2}'
# ***strong**em*
STRONG_EM_RE = r'(\*|_)\1{2}(.+?)\1{2}(.*?)\1'
-# _smart_emphasis_
-SMART_EMPHASIS_RE = r'(?<!\w)(_)(?!_)(.+?)(?<!_)\1(?!\w)'
-
-# _emphasis_
-EMPHASIS_2_RE = r'(_)(.+?)\1'
-
# [text](url) or [text](<url>) or [text](url "title")
LINK_RE = NOIMG + r'\['