diff -Nru python-markdown2-2.3.9/CHANGES.md python-markdown2-2.3.10/CHANGES.md --- python-markdown2-2.3.9/CHANGES.md 2020-05-12 00:07:43.000000000 +0000 +++ python-markdown2-2.3.10/CHANGES.md 2020-10-19 17:54:59.000000000 +0000 @@ -1,5 +1,14 @@ # python-markdown2 Changelog +## python-markdown2 2.3.10 + +- [pull #356] Don't merge sequential quotes into a single blockquote +- [pull #357] use style=text-align for table alignment +- [pull #360] introduce underline extra +- [pull #368] Support for structured and nested values in metadata +- [pull #371] add noopener to external links + + ## python-markdown2 2.3.9 - [pull #335] Added header support for wiki tables diff -Nru python-markdown2-2.3.9/CONTRIBUTORS.txt python-markdown2-2.3.10/CONTRIBUTORS.txt --- python-markdown2-2.3.9/CONTRIBUTORS.txt 2020-05-04 17:00:34.000000000 +0000 +++ python-markdown2-2.3.10/CONTRIBUTORS.txt 2020-09-18 00:16:07.000000000 +0000 @@ -44,3 +44,6 @@ Shivam Kumar Jha (github.com/thealphadollar) ryanvilbrandt (github.com/ryanvilbrandt) Gareth Simpson (github.com/xurble) +Kat Hagan (github.com/codebykat) +Stɑrry Shivɑm (github.com/starry69) +André Nasturas (github.com/andrenasturas) diff -Nru python-markdown2-2.3.9/debian/changelog python-markdown2-2.3.10/debian/changelog --- python-markdown2-2.3.9/debian/changelog 2020-06-02 17:54:20.000000000 +0000 +++ python-markdown2-2.3.10/debian/changelog 2021-01-16 22:04:54.000000000 +0000 @@ -1,3 +1,18 @@ +python-markdown2 (2.3.10-1) unstable; urgency=medium + + [ Ondřej Nový ] + * d/control: Update Maintainer field with new Debian Python Team + contact address. + * d/control: Update Vcs-* fields with new Debian Python Team Salsa + layout. + + [ Pierre-Elliott Bécue ] + * New upstream release 2.3.10 + * Bump Standards-Version to 4.5.1 + * Enable tests both at build time and via autopkgtest + + -- Pierre-Elliott Bécue Sat, 16 Jan 2021 23:04:54 +0100 + python-markdown2 (2.3.9-1) unstable; urgency=medium [ Ondřej Nový ] diff -Nru python-markdown2-2.3.9/debian/control python-markdown2-2.3.10/debian/control --- python-markdown2-2.3.9/debian/control 2020-06-02 17:52:29.000000000 +0000 +++ python-markdown2-2.3.10/debian/control 2021-01-16 22:01:44.000000000 +0000 @@ -1,19 +1,20 @@ Source: python-markdown2 Section: python Priority: optional -Maintainer: Debian Python Modules Team +Maintainer: Debian Python Team Uploaders: Pierre-Elliott Bécue Build-Depends: debhelper-compat (= 13), dh-python, python3-all, + python3-pytest, python3-setuptools, python3-wheel -Standards-Version: 4.5.0 +Standards-Version: 4.5.1 Rules-Requires-Root: no Testsuite: autopkgtest-pkg-python Homepage: https://github.com/trentm/python-markdown2 -Vcs-Browser: https://salsa.debian.org/python-team/modules/python-markdown2 -Vcs-Git: https://salsa.debian.org/python-team/modules/python-markdown2.git +Vcs-Browser: https://salsa.debian.org/python-team/packages/python-markdown2 +Vcs-Git: https://salsa.debian.org/python-team/packages/python-markdown2.git Package: python3-markdown2 Architecture: all diff -Nru python-markdown2-2.3.9/debian/tests/control python-markdown2-2.3.10/debian/tests/control --- python-markdown2-2.3.9/debian/tests/control 1970-01-01 00:00:00.000000000 +0000 +++ python-markdown2-2.3.10/debian/tests/control 2021-01-16 22:03:09.000000000 +0000 @@ -0,0 +1,5 @@ +Tests: python3-markdown2 +Depends: @, + python3-all, + python3-pytest, +Restrictions: allow-stderr diff -Nru python-markdown2-2.3.9/debian/tests/python3-markdown2 python-markdown2-2.3.10/debian/tests/python3-markdown2 --- python-markdown2-2.3.9/debian/tests/python3-markdown2 1970-01-01 00:00:00.000000000 +0000 +++ python-markdown2-2.3.10/debian/tests/python3-markdown2 2021-01-16 22:03:40.000000000 +0000 @@ -0,0 +1,10 @@ +#!/bin/bash + +python3_versions="$(py3versions -r 2> /dev/null)" + +cp -a "test" "${AUTOPKGTEST_TMP}" +cd "${AUTOPKGTEST_TMP}" + +for python3 in $python3_versions; do + $python3 -m pytest test || exit 1 +done diff -Nru python-markdown2-2.3.9/lib/markdown2.egg-info/PKG-INFO python-markdown2-2.3.10/lib/markdown2.egg-info/PKG-INFO --- python-markdown2-2.3.9/lib/markdown2.egg-info/PKG-INFO 2020-05-12 00:07:55.000000000 +0000 +++ python-markdown2-2.3.10/lib/markdown2.egg-info/PKG-INFO 2020-10-19 17:55:09.000000000 +0000 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: markdown2 -Version: 2.3.9 +Version: 2.3.10 Summary: A fast and complete Python implementation of Markdown Home-page: https://github.com/trentm/python-markdown2 Author: Trent Mick diff -Nru python-markdown2-2.3.9/lib/markdown2.egg-info/SOURCES.txt python-markdown2-2.3.10/lib/markdown2.egg-info/SOURCES.txt --- python-markdown2-2.3.9/lib/markdown2.egg-info/SOURCES.txt 2020-05-12 00:07:55.000000000 +0000 +++ python-markdown2-2.3.10/lib/markdown2.egg-info/SOURCES.txt 2020-10-19 17:55:09.000000000 +0000 @@ -42,6 +42,10 @@ test/tm-cases/basic_safe_mode_escape.text test/tm-cases/blockquote.html test/tm-cases/blockquote.text +test/tm-cases/blockquote_containing_empty_lines.html +test/tm-cases/blockquote_containing_empty_lines.text +test/tm-cases/blockquote_two_in_a_row.html +test/tm-cases/blockquote_two_in_a_row.text test/tm-cases/blockquote_with_pre.html test/tm-cases/blockquote_with_pre.text test/tm-cases/break_on_newline.html @@ -273,6 +277,10 @@ test/tm-cases/link_with_blank.opts test/tm-cases/link_with_blank.tags test/tm-cases/link_with_blank.text +test/tm-cases/link_with_blank_nofollow.html +test/tm-cases/link_with_blank_nofollow.opts +test/tm-cases/link_with_blank_nofollow.tags +test/tm-cases/link_with_blank_nofollow.text test/tm-cases/lists.html test/tm-cases/lists.text test/tm-cases/lists2.html @@ -388,6 +396,10 @@ test/tm-cases/tricky_anchors.text test/tm-cases/two_comments.html test/tm-cases/two_comments.text +test/tm-cases/underline.html +test/tm-cases/underline.opts +test/tm-cases/underline.tags +test/tm-cases/underline.text test/tm-cases/underline_in_autolink.html test/tm-cases/underline_in_autolink.text test/tm-cases/wiki_tables.html diff -Nru python-markdown2-2.3.9/lib/markdown2.py python-markdown2-2.3.10/lib/markdown2.py --- python-markdown2-2.3.9/lib/markdown2.py 2020-05-11 21:24:03.000000000 +0000 +++ python-markdown2-2.3.10/lib/markdown2.py 2020-10-03 00:37:38.000000000 +0000 @@ -40,6 +40,7 @@ Supported extra syntax options (see -x|--extras option below and see for details): +* break-on-newline: Replace single new line characters with
when True * code-friendly: Disable _ and __ for em and strong. * cuddled-lists: Allow lists to be cuddled to the preceding paragraph. * fenced-code-blocks: Allows a code block to not have to be indented @@ -96,7 +97,7 @@ # not yet sure if there implications with this. Compare 'pydoc sre' # and 'perldoc perlre'. -__version_info__ = (2, 3, 9) +__version_info__ = (2, 3, 10) __version__ = '.'.join(map(str, __version_info__)) __author__ = "Trent Mick" @@ -108,10 +109,6 @@ from random import random, randint import codecs from collections import defaultdict -try: - from urllib import quote_plus -except ImportError: - from urllib.parse import quote_plus # ---- Python version compat @@ -281,7 +278,11 @@ # Per "rel" # should only be used in tags with an "href" attribute. - _a_nofollow = re.compile(r""" + + # Opens the linked document in a new window or tab + # should only used in tags with an "href" attribute. + # same with _a_nofollow + _a_nofollow_or_blank_links = re.compile(r""" <(a) ( [^>]* @@ -293,11 +294,6 @@ re.IGNORECASE | re.VERBOSE ) - # Opens the linked document in a new window or tab - # should only used in tags with an "href" attribute. - # same with _a_nofollow - _a_blank = _a_nofollow - def convert(self, text): """Convert the given text.""" # Main function. The order in which other subs are called here is @@ -392,11 +388,15 @@ # return the removed text warning to its markdown.py compatible form text = text.replace(self.html_removed_text, self.html_removed_text_compat) - if "nofollow" in self.extras: - text = self._a_nofollow.sub(r'<\1 rel="nofollow"\2', text) + do_target_blank_links = "target-blank-links" in self.extras + do_nofollow_links = "nofollow" in self.extras - if "target-blank-links" in self.extras: - text = self._a_blank.sub(r'<\1 target="_blank"\2', text) + if do_target_blank_links and do_nofollow_links: + text = self._a_nofollow_or_blank_links.sub(r'<\1 rel="nofollow noopener" target="_blank"\2', text) + elif do_target_blank_links: + text = self._a_nofollow_or_blank_links.sub(r'<\1 rel="noopener" target="_blank"\2', text) + elif do_nofollow_links: + text = self._a_nofollow_or_blank_links.sub(r'<\1 rel="nofollow"\2', text) if "toc" in self.extras and self._toc: self._toc_html = calculate_toc_html(self._toc) @@ -443,13 +443,21 @@ # another-var: blah blah # # # header - _meta_data_pattern = re.compile(r'^(?:---[\ \t]*\n)?(.*:\s+>\n\s+[\S\s]+?)(?=\n\w+\s*:\s*\w+\n|\Z)|([\S\w]+\s*:(?! >)[ \t]*.*\n?)(?:---[\ \t]*\n)?', re.MULTILINE) + _meta_data_pattern = re.compile(r'^(?:---[\ \t]*\n)?((?:[\S\w]+\s*:(?:\n+[ \t]+.*)+)|(?:.*:\s+>\n\s+[\S\s]+?)(?=\n\w+\s*:\s*\w+\n|\Z)|(?:\s*[\S\w]+\s*:(?! >)[ \t]*.*\n?))(?:---[\ \t]*\n)?', re.MULTILINE) _key_val_pat = re.compile(r"[\S\w]+\s*:(?! >)[ \t]*.*\n?", re.MULTILINE) # this allows key: > # value # conutiues over multiple lines _key_val_block_pat = re.compile( - "(.*:\s+>\n\s+[\S\s]+?)(?=\n\w+\s*:\s*\w+\n|\Z)", re.MULTILINE) + r"(.*:\s+>\n\s+[\S\s]+?)(?=\n\w+\s*:\s*\w+\n|\Z)", re.MULTILINE + ) + _key_val_list_pat = re.compile( + r"^-(?:[ \t]*([^:\s]*)(?:[ \t]*[:-][ \t]*(\S+))?)(?:\n((?:[ \t]+[^\n]+\n?)+))?", + re.MULTILINE, + ) + _key_val_dict_pat = re.compile( + r"^([^:\n]+)[ \t]*:[ \t]*([^\n]*)(?:((?:\n[ \t]+[^\n]+)+))?", re.MULTILINE + ) # grp0: key, grp1: value, grp2: multiline value _meta_data_fence_pattern = re.compile(r'^---[\ \t]*\n', re.MULTILINE) _meta_data_newline = re.compile("^\n", re.MULTILINE) @@ -469,13 +477,58 @@ return text tail = metadata_split[1] - kv = re.findall(self._key_val_pat, metadata_content) - kvm = re.findall(self._key_val_block_pat, metadata_content) - kvm = [item.replace(": >\n", ":", 1) for item in kvm] + def parse_structured_value(value): + vs = value.lstrip() + vs = value.replace(v[: len(value) - len(vs)], "\n")[1:] + + # List + if vs.startswith("-"): + r = [] + for match in re.findall(self._key_val_list_pat, vs): + if match[0] and not match[1] and not match[2]: + r.append(match[0].strip()) + elif match[0] == ">" and not match[1] and match[2]: + r.append(match[2].strip()) + elif match[0] and match[1]: + r.append({match[0].strip(): match[1].strip()}) + elif not match[0] and not match[1] and match[2]: + r.append(parse_structured_value(match[2])) + else: + # Broken case + pass + + return r + + # Dict + else: + return { + match[0].strip(): ( + match[1].strip() + if match[1] + else parse_structured_value(match[2]) + ) + for match in re.findall(self._key_val_dict_pat, vs) + } + + for item in match: - for item in kv + kvm: k, v = item.split(":", 1) - self.metadata[k.strip()] = v.strip() + + # Multiline value + if v[:3] == " >\n": + self.metadata[k.strip()] = v[3:].strip() + + # Empty value + elif v == "\n": + self.metadata[k.strip()] = "" + + # Structured value + elif v[0] == "\n": + self.metadata[k.strip()] = parse_structured_value(v) + + # Simple value + else: + self.metadata[k.strip()] = v.strip() return tail @@ -1013,11 +1066,11 @@ align_from_col_idx = {} for col_idx, col in enumerate(cols): if col[0] == ':' and col[-1] == ':': - align_from_col_idx[col_idx] = ' align="center"' + align_from_col_idx[col_idx] = ' style="text-align:center;"' elif col[0] == ':': - align_from_col_idx[col_idx] = ' align="left"' + align_from_col_idx[col_idx] = ' style="text-align:left;"' elif col[-1] == ':': - align_from_col_idx[col_idx] = ' align="right"' + align_from_col_idx[col_idx] = ' style="text-align:right;"' # thead hlines = ['' % self._html_class_str_from_tag('table'), '', ''] @@ -1153,6 +1206,9 @@ if "strike" in self.extras: text = self._do_strike(text) + if "underline" in self.extras: + text = self._do_underline(text) + text = self._do_italics_and_bold(text) if "smarty-pants" in self.extras: @@ -1954,6 +2010,11 @@ text = self._strike_re.sub(r"\1", text) return text + _underline_re = re.compile(r"--(?=\S)(.+?)(?<=\S)--", re.S) + def _do_underline(self, text): + text = self._underline_re.sub(r"\1", text) + return text + _strong_re = re.compile(r"(\*\*|__)(?=\S)(.+?[*_]*)(?<=\S)\1", re.S) _em_re = re.compile(r"(\*|_)(?=\S)(.+?)(?<=\S)\1", re.S) _code_friendly_strong_re = re.compile(r"\*\*(?=\S)(.+?[*_]*)(?<=\S)\*\*", re.S) @@ -2027,7 +2088,6 @@ ^[ \t]*>%s[ \t]? # '>' at the start of a line .+\n # rest of the first line (.+\n)* # subsequent consecutive lines - \n* # blanks )+ ) ''' @@ -2177,7 +2237,7 @@ def _encode_incomplete_tags(self, text): if self.safe_mode not in ("replace", "escape"): return text - + if text.endswith(">"): return text # this is not an incomplete tag, this is a link in the form @@ -2377,7 +2437,7 @@ if s.startswith('/') and s.rfind('/') != 0: # Parse it: /PATTERN/FLAGS idx = s.rfind('/') - pattern, flags_str = s[1:idx], s[idx+1:] + _, flags_str = s[1:idx], s[idx+1:] flag_from_char = { "i": re.IGNORECASE, "l": re.LOCALE, diff -Nru python-markdown2-2.3.9/PKG-INFO python-markdown2-2.3.10/PKG-INFO --- python-markdown2-2.3.9/PKG-INFO 2020-05-12 00:07:55.000000000 +0000 +++ python-markdown2-2.3.10/PKG-INFO 2020-10-19 17:55:10.000000000 +0000 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: markdown2 -Version: 2.3.9 +Version: 2.3.10 Summary: A fast and complete Python implementation of Markdown Home-page: https://github.com/trentm/python-markdown2 Author: Trent Mick diff -Nru python-markdown2-2.3.9/test/test_markdown2.py python-markdown2-2.3.10/test/test_markdown2.py --- python-markdown2-2.3.9/test/test_markdown2.py 2019-11-25 18:09:50.000000000 +0000 +++ python-markdown2-2.3.10/test/test_markdown2.py 2020-06-16 02:55:44.000000000 +0000 @@ -230,7 +230,6 @@ syntax no implemented in markdown2.py. See for details. """ - __tags__ = ["knownfailure"] cases_dir = "php-markdown-extra-cases" diff -Nru python-markdown2-2.3.9/test/tm-cases/blockquote_containing_empty_lines.html python-markdown2-2.3.10/test/tm-cases/blockquote_containing_empty_lines.html --- python-markdown2-2.3.9/test/tm-cases/blockquote_containing_empty_lines.html 1970-01-01 00:00:00.000000000 +0000 +++ python-markdown2-2.3.10/test/tm-cases/blockquote_containing_empty_lines.html 2020-06-16 02:09:07.000000000 +0000 @@ -0,0 +1,5 @@ +
+

no way

+ +

way

+
diff -Nru python-markdown2-2.3.9/test/tm-cases/blockquote_containing_empty_lines.text python-markdown2-2.3.10/test/tm-cases/blockquote_containing_empty_lines.text --- python-markdown2-2.3.9/test/tm-cases/blockquote_containing_empty_lines.text 1970-01-01 00:00:00.000000000 +0000 +++ python-markdown2-2.3.10/test/tm-cases/blockquote_containing_empty_lines.text 2020-06-16 02:09:07.000000000 +0000 @@ -0,0 +1,4 @@ +> no way +> +> +> way diff -Nru python-markdown2-2.3.9/test/tm-cases/blockquote_two_in_a_row.html python-markdown2-2.3.10/test/tm-cases/blockquote_two_in_a_row.html --- python-markdown2-2.3.9/test/tm-cases/blockquote_two_in_a_row.html 1970-01-01 00:00:00.000000000 +0000 +++ python-markdown2-2.3.10/test/tm-cases/blockquote_two_in_a_row.html 2020-06-16 02:09:07.000000000 +0000 @@ -0,0 +1,7 @@ +
+

no way

+
+ +
+

way

+
diff -Nru python-markdown2-2.3.9/test/tm-cases/blockquote_two_in_a_row.text python-markdown2-2.3.10/test/tm-cases/blockquote_two_in_a_row.text --- python-markdown2-2.3.9/test/tm-cases/blockquote_two_in_a_row.text 1970-01-01 00:00:00.000000000 +0000 +++ python-markdown2-2.3.10/test/tm-cases/blockquote_two_in_a_row.text 2020-06-16 02:09:07.000000000 +0000 @@ -0,0 +1,3 @@ +> no way + +> way diff -Nru python-markdown2-2.3.9/test/tm-cases/link_with_blank.html python-markdown2-2.3.10/test/tm-cases/link_with_blank.html --- python-markdown2-2.3.9/test/tm-cases/link_with_blank.html 2017-02-22 17:08:04.000000000 +0000 +++ python-markdown2-2.3.10/test/tm-cases/link_with_blank.html 2020-10-03 00:37:38.000000000 +0000 @@ -1,5 +1,5 @@ -

Ref

+

Ref

Foo

-

One

+

One

diff -Nru python-markdown2-2.3.9/test/tm-cases/link_with_blank_nofollow.html python-markdown2-2.3.10/test/tm-cases/link_with_blank_nofollow.html --- python-markdown2-2.3.9/test/tm-cases/link_with_blank_nofollow.html 1970-01-01 00:00:00.000000000 +0000 +++ python-markdown2-2.3.10/test/tm-cases/link_with_blank_nofollow.html 2020-10-03 00:37:38.000000000 +0000 @@ -0,0 +1,5 @@ +

Ref

+ +

Foo

+ +

One

diff -Nru python-markdown2-2.3.9/test/tm-cases/link_with_blank_nofollow.opts python-markdown2-2.3.10/test/tm-cases/link_with_blank_nofollow.opts --- python-markdown2-2.3.9/test/tm-cases/link_with_blank_nofollow.opts 1970-01-01 00:00:00.000000000 +0000 +++ python-markdown2-2.3.10/test/tm-cases/link_with_blank_nofollow.opts 2020-10-03 00:37:38.000000000 +0000 @@ -0,0 +1 @@ +{"extras": ["target-blank-links", "nofollow"]} diff -Nru python-markdown2-2.3.9/test/tm-cases/link_with_blank_nofollow.tags python-markdown2-2.3.10/test/tm-cases/link_with_blank_nofollow.tags --- python-markdown2-2.3.9/test/tm-cases/link_with_blank_nofollow.tags 1970-01-01 00:00:00.000000000 +0000 +++ python-markdown2-2.3.10/test/tm-cases/link_with_blank_nofollow.tags 2020-10-03 00:37:38.000000000 +0000 @@ -0,0 +1 @@ +extras nofollow blank diff -Nru python-markdown2-2.3.9/test/tm-cases/link_with_blank_nofollow.text python-markdown2-2.3.10/test/tm-cases/link_with_blank_nofollow.text --- python-markdown2-2.3.9/test/tm-cases/link_with_blank_nofollow.text 1970-01-01 00:00:00.000000000 +0000 +++ python-markdown2-2.3.10/test/tm-cases/link_with_blank_nofollow.text 2020-10-03 00:37:38.000000000 +0000 @@ -0,0 +1,5 @@ +[Ref](http://www.example.com) + +[Foo](#bar) + +[One](http://www.example.com/two#three) diff -Nru python-markdown2-2.3.9/test/tm-cases/metadata.text python-markdown2-2.3.10/test/tm-cases/metadata.text --- python-markdown2-2.3.9/test/tm-cases/metadata.text 2017-06-19 17:22:01.000000000 +0000 +++ python-markdown2-2.3.10/test/tm-cases/metadata.text 2020-09-18 00:15:17.000000000 +0000 @@ -8,6 +8,21 @@ long value that goes multiline another: example +alist: + - a + - b + - c +adict: + key: foo + a nested list: + - one + - two + - > + Even multiline strings are allowed + in nested structured data + if linebreaks and indent are respected ! + - + subkey: and another dict in a list --- # The real text diff -Nru python-markdown2-2.3.9/test/tm-cases/syntax_color_opts.html python-markdown2-2.3.10/test/tm-cases/syntax_color_opts.html --- python-markdown2-2.3.9/test/tm-cases/syntax_color_opts.html 2018-09-30 21:04:36.000000000 +0000 +++ python-markdown2-2.3.10/test/tm-cases/syntax_color_opts.html 2020-09-18 00:07:21.000000000 +0000 @@ -1,6 +1,6 @@

Here is some sample code:

-
import sys
+
import sys
 def main(argv=sys.argv):
     logging.basicConfig()
     log.info('hi')
@@ -8,7 +8,7 @@
 
 

and:

-
use 'zlib'
+
use 'zlib'
 sub main(argv)
     puts 'hi'
 end
diff -Nru python-markdown2-2.3.9/test/tm-cases/underline.html python-markdown2-2.3.10/test/tm-cases/underline.html
--- python-markdown2-2.3.9/test/tm-cases/underline.html	1970-01-01 00:00:00.000000000 +0000
+++ python-markdown2-2.3.10/test/tm-cases/underline.html	2020-06-26 17:41:33.000000000 +0000
@@ -0,0 +1 @@
+

This is some underline text.

diff -Nru python-markdown2-2.3.9/test/tm-cases/underline.opts python-markdown2-2.3.10/test/tm-cases/underline.opts --- python-markdown2-2.3.9/test/tm-cases/underline.opts 1970-01-01 00:00:00.000000000 +0000 +++ python-markdown2-2.3.10/test/tm-cases/underline.opts 2020-06-26 17:41:33.000000000 +0000 @@ -0,0 +1 @@ +{"extras": ["underline"]} diff -Nru python-markdown2-2.3.9/test/tm-cases/underline.tags python-markdown2-2.3.10/test/tm-cases/underline.tags --- python-markdown2-2.3.9/test/tm-cases/underline.tags 1970-01-01 00:00:00.000000000 +0000 +++ python-markdown2-2.3.10/test/tm-cases/underline.tags 2020-06-26 17:41:33.000000000 +0000 @@ -0,0 +1 @@ +extras underline diff -Nru python-markdown2-2.3.9/test/tm-cases/underline.text python-markdown2-2.3.10/test/tm-cases/underline.text --- python-markdown2-2.3.9/test/tm-cases/underline.text 1970-01-01 00:00:00.000000000 +0000 +++ python-markdown2-2.3.10/test/tm-cases/underline.text 2020-06-26 17:41:33.000000000 +0000 @@ -0,0 +1 @@ +This is some --underline-- text.