From f7b5239ab73d576f55041bc87b40c46dcc4707fb Mon Sep 17 00:00:00 2001 From: Hsiaoming Yang Date: Sat, 14 Jan 2017 10:49:16 +0900 Subject: [PATCH] Fix HTML attribute regex --- mistune.py | 2 +- tests/test_extra.py | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/mistune.py b/mistune.py index c8db6aa..5dfe76e 100644 --- a/mistune.py +++ b/mistune.py @@ -35,7 +35,7 @@ ] _pre_tags = ['pre', 'script', 'style'] _valid_end = r'(?!:/|[^\w\s@]*@)\b' -_valid_attr = r'''\s*[a-zA-Z\-](?:\=(?:"[^"]*"|'[^']*'|\d+))*''' +_valid_attr = r'''\s*[a-zA-Z\-](?:\=(?:"[^"]+"|'[^']+'|[^\s'">]+))?''' _block_tag = r'(?!(?:%s)\b)\w+%s' % ('|'.join(_inline_tags), _valid_end) _scheme_blacklist = ('javascript:', 'vbscript:') diff --git a/tests/test_extra.py b/tests/test_extra.py index 0009bd2..cd475ab 100644 --- a/tests/test_extra.py +++ b/tests/test_extra.py @@ -69,6 +69,16 @@ def test_parse_inline_html(): ) assert '' in ret + ret = mistune.markdown( + '**foo**', parse_inline_html=True, escape=False + ) + assert '' in ret + + ret = mistune.markdown( + '**foo**', parse_inline_html=True, escape=False + ) + assert '' in ret + ret = mistune.markdown( 'http://lepture.com', parse_inline_html=True, escape=False ) @@ -81,11 +91,23 @@ def test_block_html(): ) assert '
' in ret + def test_parse_block_html(): ret = mistune.markdown( '
**foo**
', parse_block_html=True, escape=False ) assert '
' in ret + + ret = mistune.markdown( + '
**foo**
', parse_block_html=True, escape=False + ) + assert '
' in ret + + ret = mistune.markdown( + '
**foo**
', parse_block_html=True, escape=False + ) + assert '
' in ret + ret = mistune.markdown( '**foo**', parse_block_html=True, escape=False )