Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-Markdown for openSUSE:Factory
checked in at 2021-11-23 22:10:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-Markdown (Old)
and /work/SRC/openSUSE:Factory/.python-Markdown.new.1895 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-Markdown"
Tue Nov 23 22:10:14 2021 rev:36 rq:932786 version:3.3.5
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-Markdown/python-Markdown.changes
2021-03-05 13:44:25.007575315 +0100
+++
/work/SRC/openSUSE:Factory/.python-Markdown.new.1895/python-Markdown.changes
2021-11-23 22:12:25.186510945 +0100
@@ -1,0 +2,14 @@
+Tue Nov 16 19:19:38 UTC 2021 - Beno??t Monin <[email protected]>
+
+- update to version 3.3.5: bug-fix release
+ * Make the slugify_unicode function not remove diacritical marks
+ (#1118).
+ * Fix [toc] detection when used with nl2br extension (#1160).
+ * Re-use compiled regex for block level checks (#1169).
+ * Don't process shebangs in fenced code blocks when using
+ CodeHilite (#1156).
+ * Improve email address validation for Automatic Links (#1165).
+ * Ensure <summary> tags are parsed correctly (#1079).
+ * Support Python 3.10 (#1124).
+
+-------------------------------------------------------------------
Old:
----
Markdown-3.3.4.tar.gz
New:
----
Markdown-3.3.5.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-Markdown.spec ++++++
--- /var/tmp/diff_new_pack.VlclQV/_old 2021-11-23 22:12:25.654509397 +0100
+++ /var/tmp/diff_new_pack.VlclQV/_new 2021-11-23 22:12:25.658509384 +0100
@@ -20,7 +20,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define oldpython python
Name: python-Markdown
-Version: 3.3.4
+Version: 3.3.5
Release: 0
Summary: Python implementation of Markdown
License: BSD-3-Clause
@@ -37,7 +37,7 @@
Requires: python-importlib-metadata
Requires: python-xml
Requires(post): update-alternatives
-Requires(postun): update-alternatives
+Requires(postun):update-alternatives
BuildArch: noarch
%python_subpackages
++++++ Markdown-3.3.4.tar.gz -> Markdown-3.3.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Markdown-3.3.4/Markdown.egg-info/PKG-INFO
new/Markdown-3.3.5/Markdown.egg-info/PKG-INFO
--- old/Markdown-3.3.4/Markdown.egg-info/PKG-INFO 2021-02-24
20:57:45.000000000 +0100
+++ new/Markdown-3.3.5/Markdown.egg-info/PKG-INFO 2021-11-16
16:32:34.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: Markdown
-Version: 3.3.4
+Version: 3.3.5
Summary: Python implementation of Markdown.
Home-page: https://Python-Markdown.github.io/
Author: Manfred Stienstra, Yuri takhteyev and Waylan limberg
@@ -8,75 +8,9 @@
Maintainer: Waylan Limberg
Maintainer-email: [email protected]
License: BSD License
-Download-URL:
http://pypi.python.org/packages/source/M/Markdown/Markdown-3.3.4-py2.py3-none-any.whl
Project-URL: Documentation, https://Python-Markdown.github.io/
Project-URL: GitHub Project, https://github.com/Python-Markdown/markdown
Project-URL: Issue Tracker, https://github.com/Python-Markdown/markdown/issues
-Description: [Python-Markdown][]
- ===================
-
- [![Build Status][build-button]][build]
- [![Coverage Status][codecov-button]][codecov]
- [![Latest Version][mdversion-button]][md-pypi]
- [![Python Versions][pyversion-button]][md-pypi]
- [![BSD License][bsdlicense-button]][bsdlicense]
- [![Code of Conduct][codeofconduct-button]][Code of Conduct]
-
- [build-button]:
https://github.com/Python-Markdown/markdown/workflows/CI/badge.svg?event=push
- [build]:
https://github.com/Python-Markdown/markdown/actions?query=workflow%3ACI+event%3Apush
- [codecov-button]:
https://codecov.io/gh/Python-Markdown/markdown/branch/master/graph/badge.svg
- [codecov]: https://codecov.io/gh/Python-Markdown/markdown
- [mdversion-button]: https://img.shields.io/pypi/v/Markdown.svg
- [md-pypi]: https://pypi.org/project/Markdown/
- [pyversion-button]: https://img.shields.io/pypi/pyversions/Markdown.svg
- [bsdlicense-button]:
https://img.shields.io/badge/license-BSD-yellow.svg
- [bsdlicense]: https://opensource.org/licenses/BSD-3-Clause
- [codeofconduct-button]:
https://img.shields.io/badge/code%20of%20conduct-contributor%20covenant-green.svg?style=flat-square
- [Code of Conduct]:
https://github.com/Python-Markdown/markdown/blob/master/CODE_OF_CONDUCT.md
-
- This is a Python implementation of John Gruber's [Markdown][].
- It is almost completely compliant with the reference implementation,
- though there are a few known issues. See [Features][] for information
- on what exactly is supported and what is not. Additional features are
- supported by the [Available Extensions][].
-
- [Python-Markdown]: https://Python-Markdown.github.io/
- [Markdown]: https://daringfireball.net/projects/markdown/
- [Features]: https://Python-Markdown.github.io#Features
- [Available Extensions]: https://Python-Markdown.github.io/extensions
-
- Documentation
- -------------
-
- ```bash
- pip install markdown
- ```
- ```python
- import markdown
- html = markdown.markdown(your_text_string)
- ```
-
- For more advanced [installation] and [usage] documentation, see the
`docs/` directory
- of the distribution or the project website at
<https://Python-Markdown.github.io/>.
-
- [installation]: https://python-markdown.github.io/install/
- [usage]: https://python-markdown.github.io/reference/
-
- See the change log at <https://Python-Markdown.github.io/change_log>.
-
- Support
- -------
-
- You may report bugs, ask for help, and discuss various other issues on
the [bug tracker][].
-
- [bug tracker]: https://github.com/Python-Markdown/markdown/issues
-
- Code of Conduct
- ---------------
-
- Everyone interacting in the Python-Markdown project's codebases, issue
trackers,
- and mailing lists is expected to follow the [Code of Conduct].
-
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: BSD License
@@ -87,6 +21,7 @@
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
@@ -101,3 +36,72 @@
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Provides-Extra: testing
+License-File: LICENSE.md
+
+[Python-Markdown][]
+===================
+
+[![Build Status][build-button]][build]
+[![Coverage Status][codecov-button]][codecov]
+[![Latest Version][mdversion-button]][md-pypi]
+[![Python Versions][pyversion-button]][md-pypi]
+[![BSD License][bsdlicense-button]][bsdlicense]
+[![Code of Conduct][codeofconduct-button]][Code of Conduct]
+
+[build-button]:
https://github.com/Python-Markdown/markdown/workflows/CI/badge.svg?event=push
+[build]:
https://github.com/Python-Markdown/markdown/actions?query=workflow%3ACI+event%3Apush
+[codecov-button]:
https://codecov.io/gh/Python-Markdown/markdown/branch/master/graph/badge.svg
+[codecov]: https://codecov.io/gh/Python-Markdown/markdown
+[mdversion-button]: https://img.shields.io/pypi/v/Markdown.svg
+[md-pypi]: https://pypi.org/project/Markdown/
+[pyversion-button]: https://img.shields.io/pypi/pyversions/Markdown.svg
+[bsdlicense-button]: https://img.shields.io/badge/license-BSD-yellow.svg
+[bsdlicense]: https://opensource.org/licenses/BSD-3-Clause
+[codeofconduct-button]:
https://img.shields.io/badge/code%20of%20conduct-contributor%20covenant-green.svg?style=flat-square
+[Code of Conduct]:
https://github.com/Python-Markdown/markdown/blob/master/CODE_OF_CONDUCT.md
+
+This is a Python implementation of John Gruber's [Markdown][].
+It is almost completely compliant with the reference implementation,
+though there are a few known issues. See [Features][] for information
+on what exactly is supported and what is not. Additional features are
+supported by the [Available Extensions][].
+
+[Python-Markdown]: https://Python-Markdown.github.io/
+[Markdown]: https://daringfireball.net/projects/markdown/
+[Features]: https://Python-Markdown.github.io#Features
+[Available Extensions]: https://Python-Markdown.github.io/extensions
+
+Documentation
+-------------
+
+```bash
+pip install markdown
+```
+```python
+import markdown
+html = markdown.markdown(your_text_string)
+```
+
+For more advanced [installation] and [usage] documentation, see the `docs/`
directory
+of the distribution or the project website at
<https://Python-Markdown.github.io/>.
+
+[installation]: https://python-markdown.github.io/install/
+[usage]: https://python-markdown.github.io/reference/
+
+See the change log at <https://Python-Markdown.github.io/change_log>.
+
+Support
+-------
+
+You may report bugs, ask for help, and discuss various other issues on the
[bug tracker][].
+
+[bug tracker]: https://github.com/Python-Markdown/markdown/issues
+
+Code of Conduct
+---------------
+
+Everyone interacting in the Python-Markdown project's codebases, issue
trackers,
+and mailing lists is expected to follow the [Code of Conduct].
+
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Markdown-3.3.4/Markdown.egg-info/SOURCES.txt
new/Markdown-3.3.5/Markdown.egg-info/SOURCES.txt
--- old/Markdown-3.3.4/Markdown.egg-info/SOURCES.txt 2021-02-24
20:57:45.000000000 +0100
+++ new/Markdown-3.3.5/Markdown.egg-info/SOURCES.txt 2021-11-16
16:32:34.000000000 +0100
@@ -374,6 +374,7 @@
tests/test_syntax/extensions/test_tables.py
tests/test_syntax/extensions/test_toc.py
tests/test_syntax/inline/__init__.py
+tests/test_syntax/inline/test_autolinks.py
tests/test_syntax/inline/test_emphasis.py
tests/test_syntax/inline/test_entities.py
tests/test_syntax/inline/test_images.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Markdown-3.3.4/Markdown.egg-info/requires.txt
new/Markdown-3.3.5/Markdown.egg-info/requires.txt
--- old/Markdown-3.3.4/Markdown.egg-info/requires.txt 2021-02-24
20:57:45.000000000 +0100
+++ new/Markdown-3.3.5/Markdown.egg-info/requires.txt 2021-11-16
16:32:34.000000000 +0100
@@ -1,6 +1,6 @@
-[:python_version < "3.8"]
-importlib-metadata
+[:python_version < "3.10"]
+importlib-metadata>='4.4'
[testing]
coverage
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Markdown-3.3.4/PKG-INFO new/Markdown-3.3.5/PKG-INFO
--- old/Markdown-3.3.4/PKG-INFO 2021-02-24 20:57:45.000000000 +0100
+++ new/Markdown-3.3.5/PKG-INFO 2021-11-16 16:32:34.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: Markdown
-Version: 3.3.4
+Version: 3.3.5
Summary: Python implementation of Markdown.
Home-page: https://Python-Markdown.github.io/
Author: Manfred Stienstra, Yuri takhteyev and Waylan limberg
@@ -8,75 +8,9 @@
Maintainer: Waylan Limberg
Maintainer-email: [email protected]
License: BSD License
-Download-URL:
http://pypi.python.org/packages/source/M/Markdown/Markdown-3.3.4-py2.py3-none-any.whl
Project-URL: Documentation, https://Python-Markdown.github.io/
Project-URL: GitHub Project, https://github.com/Python-Markdown/markdown
Project-URL: Issue Tracker, https://github.com/Python-Markdown/markdown/issues
-Description: [Python-Markdown][]
- ===================
-
- [![Build Status][build-button]][build]
- [![Coverage Status][codecov-button]][codecov]
- [![Latest Version][mdversion-button]][md-pypi]
- [![Python Versions][pyversion-button]][md-pypi]
- [![BSD License][bsdlicense-button]][bsdlicense]
- [![Code of Conduct][codeofconduct-button]][Code of Conduct]
-
- [build-button]:
https://github.com/Python-Markdown/markdown/workflows/CI/badge.svg?event=push
- [build]:
https://github.com/Python-Markdown/markdown/actions?query=workflow%3ACI+event%3Apush
- [codecov-button]:
https://codecov.io/gh/Python-Markdown/markdown/branch/master/graph/badge.svg
- [codecov]: https://codecov.io/gh/Python-Markdown/markdown
- [mdversion-button]: https://img.shields.io/pypi/v/Markdown.svg
- [md-pypi]: https://pypi.org/project/Markdown/
- [pyversion-button]: https://img.shields.io/pypi/pyversions/Markdown.svg
- [bsdlicense-button]:
https://img.shields.io/badge/license-BSD-yellow.svg
- [bsdlicense]: https://opensource.org/licenses/BSD-3-Clause
- [codeofconduct-button]:
https://img.shields.io/badge/code%20of%20conduct-contributor%20covenant-green.svg?style=flat-square
- [Code of Conduct]:
https://github.com/Python-Markdown/markdown/blob/master/CODE_OF_CONDUCT.md
-
- This is a Python implementation of John Gruber's [Markdown][].
- It is almost completely compliant with the reference implementation,
- though there are a few known issues. See [Features][] for information
- on what exactly is supported and what is not. Additional features are
- supported by the [Available Extensions][].
-
- [Python-Markdown]: https://Python-Markdown.github.io/
- [Markdown]: https://daringfireball.net/projects/markdown/
- [Features]: https://Python-Markdown.github.io#Features
- [Available Extensions]: https://Python-Markdown.github.io/extensions
-
- Documentation
- -------------
-
- ```bash
- pip install markdown
- ```
- ```python
- import markdown
- html = markdown.markdown(your_text_string)
- ```
-
- For more advanced [installation] and [usage] documentation, see the
`docs/` directory
- of the distribution or the project website at
<https://Python-Markdown.github.io/>.
-
- [installation]: https://python-markdown.github.io/install/
- [usage]: https://python-markdown.github.io/reference/
-
- See the change log at <https://Python-Markdown.github.io/change_log>.
-
- Support
- -------
-
- You may report bugs, ask for help, and discuss various other issues on
the [bug tracker][].
-
- [bug tracker]: https://github.com/Python-Markdown/markdown/issues
-
- Code of Conduct
- ---------------
-
- Everyone interacting in the Python-Markdown project's codebases, issue
trackers,
- and mailing lists is expected to follow the [Code of Conduct].
-
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: BSD License
@@ -87,6 +21,7 @@
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
@@ -101,3 +36,72 @@
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Provides-Extra: testing
+License-File: LICENSE.md
+
+[Python-Markdown][]
+===================
+
+[![Build Status][build-button]][build]
+[![Coverage Status][codecov-button]][codecov]
+[![Latest Version][mdversion-button]][md-pypi]
+[![Python Versions][pyversion-button]][md-pypi]
+[![BSD License][bsdlicense-button]][bsdlicense]
+[![Code of Conduct][codeofconduct-button]][Code of Conduct]
+
+[build-button]:
https://github.com/Python-Markdown/markdown/workflows/CI/badge.svg?event=push
+[build]:
https://github.com/Python-Markdown/markdown/actions?query=workflow%3ACI+event%3Apush
+[codecov-button]:
https://codecov.io/gh/Python-Markdown/markdown/branch/master/graph/badge.svg
+[codecov]: https://codecov.io/gh/Python-Markdown/markdown
+[mdversion-button]: https://img.shields.io/pypi/v/Markdown.svg
+[md-pypi]: https://pypi.org/project/Markdown/
+[pyversion-button]: https://img.shields.io/pypi/pyversions/Markdown.svg
+[bsdlicense-button]: https://img.shields.io/badge/license-BSD-yellow.svg
+[bsdlicense]: https://opensource.org/licenses/BSD-3-Clause
+[codeofconduct-button]:
https://img.shields.io/badge/code%20of%20conduct-contributor%20covenant-green.svg?style=flat-square
+[Code of Conduct]:
https://github.com/Python-Markdown/markdown/blob/master/CODE_OF_CONDUCT.md
+
+This is a Python implementation of John Gruber's [Markdown][].
+It is almost completely compliant with the reference implementation,
+though there are a few known issues. See [Features][] for information
+on what exactly is supported and what is not. Additional features are
+supported by the [Available Extensions][].
+
+[Python-Markdown]: https://Python-Markdown.github.io/
+[Markdown]: https://daringfireball.net/projects/markdown/
+[Features]: https://Python-Markdown.github.io#Features
+[Available Extensions]: https://Python-Markdown.github.io/extensions
+
+Documentation
+-------------
+
+```bash
+pip install markdown
+```
+```python
+import markdown
+html = markdown.markdown(your_text_string)
+```
+
+For more advanced [installation] and [usage] documentation, see the `docs/`
directory
+of the distribution or the project website at
<https://Python-Markdown.github.io/>.
+
+[installation]: https://python-markdown.github.io/install/
+[usage]: https://python-markdown.github.io/reference/
+
+See the change log at <https://Python-Markdown.github.io/change_log>.
+
+Support
+-------
+
+You may report bugs, ask for help, and discuss various other issues on the
[bug tracker][].
+
+[bug tracker]: https://github.com/Python-Markdown/markdown/issues
+
+Code of Conduct
+---------------
+
+Everyone interacting in the Python-Markdown project's codebases, issue
trackers,
+and mailing lists is expected to follow the [Code of Conduct].
+
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Markdown-3.3.4/README.md new/Markdown-3.3.5/README.md
--- old/Markdown-3.3.4/README.md 2021-02-24 20:57:42.000000000 +0100
+++ new/Markdown-3.3.5/README.md 2021-11-16 16:32:27.000000000 +0100
@@ -62,3 +62,4 @@
Everyone interacting in the Python-Markdown project's codebases, issue
trackers,
and mailing lists is expected to follow the [Code of Conduct].
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Markdown-3.3.4/docs/change_log/index.md
new/Markdown-3.3.5/docs/change_log/index.md
--- old/Markdown-3.3.4/docs/change_log/index.md 2021-02-24 20:57:42.000000000
+0100
+++ new/Markdown-3.3.5/docs/change_log/index.md 2021-11-16 16:32:27.000000000
+0100
@@ -3,6 +3,16 @@
Python-Markdown Change Log
=========================
+Nov 16, 2021: version 3.3.5 (a bug-fix release).
+
+* Make the `slugify_unicode` function not remove diacritical marks (#1118).
+* Fix `[toc]` detection when used with `nl2br` extension (#1160).
+* Re-use compiled regex for block level checks (#1169).
+* Don't process shebangs in fenced code blocks when using CodeHilite (#1156).
+* Improve email address validation for Automatic Links (#1165).
+* Ensure `<summary>` tags are parsed correctly (#1079).
+* Support Python 3.10 (#1124).
+
Feb 24, 2021: version 3.3.4 (a bug-fix release).
* Properly parse unclosed tags in code spans (#1066).
@@ -10,7 +20,8 @@
* Properly parse code spans in md_in_html (#1069).
* Preserve text immediately before an admonition (#1092).
* Simplified regex for HTML placeholders (#928) addressing (#932).
-* Ensure `permalinks` and `ankorlinks` are not restricted by `toc_depth`
(#1107).
+* Ensure `permalinks` and `anchorlinks` are not restricted by `toc_depth`
(#1107).
+* Fix corner cases with lists under admonitions (#1102).
Oct 25, 2020: version 3.3.3 (a bug-fix release).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Markdown-3.3.4/docs/change_log/release-3.3.md
new/Markdown-3.3.5/docs/change_log/release-3.3.md
--- old/Markdown-3.3.4/docs/change_log/release-3.3.md 2021-02-24
20:57:42.000000000 +0100
+++ new/Markdown-3.3.5/docs/change_log/release-3.3.md 2021-11-16
16:32:27.000000000 +0100
@@ -101,7 +101,6 @@
* Fix unescaping of HTML characters `<>` in CodeHilite (#990).
* Fix complex scenarios involving lists and admonitions (#1004).
* Fix complex scenarios with nested ordered and unordered lists in a
definition list (#918).
-* Fix corner cases with lists under admonitions.
[spec]: https://www.w3.org/TR/html5/text-level-semantics.html#the-code-element
[fenced_code]: ../extensions/fenced_code_blocks.md
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Markdown-3.3.4/docs/extensions/api.md
new/Markdown-3.3.5/docs/extensions/api.md
--- old/Markdown-3.3.4/docs/extensions/api.md 2021-02-24 20:57:42.000000000
+0100
+++ new/Markdown-3.3.5/docs/extensions/api.md 2021-11-16 16:32:27.000000000
+0100
@@ -868,7 +868,7 @@
[match object]: https://docs.python.org/3/library/re.html#match-objects
[bug tracker]: https://github.com/Python-Markdown/markdown/issues
[extension source]:
https://github.com/Python-Markdown/markdown/tree/master/markdown/extensions
-[tutorial]:
https://github.com/Python-Markdown/markdown/wiki/Tutorial:-Writing-Extensions-for-Python-Markdown
+[tutorial]:
https://github.com/Python-Markdown/markdown/wiki/Tutorial-1---Writing-Extensions-for-Python-Markdown
[workingwithetree]: #working_with_et
[Integrating your code into Markdown]: #integrating_into_markdown
[extendMarkdown]: #extendmarkdown
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Markdown-3.3.4/docs/extensions/footnotes.md
new/Markdown-3.3.5/docs/extensions/footnotes.md
--- old/Markdown-3.3.4/docs/extensions/footnotes.md 2021-02-24
20:57:42.000000000 +0100
+++ new/Markdown-3.3.5/docs/extensions/footnotes.md 2021-11-16
16:32:27.000000000 +0100
@@ -99,3 +99,31 @@
```python
markdown.markdown(some_text, extensions=['footnotes'])
```
+
+Resetting Instance State
+-----
+
+Footnote definitions are stored within the `markdown.Markdown` class instance
between
+multiple runs of the class. This allows footnotes from all runs to be
included in
+output, with links and references that are unique, even though the class has
been
+called multiple times.
+
+However, if needed, the definitions can be cleared between runs by calling
`reset`.
+
+For instance, the home page of a blog might include the content from multiple
documents.
+By not calling `reset`, all of the footnotes will be rendered, and they will
all have
+unique links and references.
+
+On the other hand, individual blog post pages might need the content from only
one
+document, and should have footnotes pertaining only to that page. By calling
`reset`
+between runs, the footnote definitions from the first document will be cleared
before
+the second document is rendered.
+
+An example of calling `reset`:
+
+```python
+md = markdown.Markdown(extensions=['footnotes'])
+html1 = md.convert(text_with_footnote)
+md.reset()
+html2 = md.convert(text_without_footnote)
+```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Markdown-3.3.4/markdown/__main__.py
new/Markdown-3.3.5/markdown/__main__.py
--- old/Markdown-3.3.4/markdown/__main__.py 2021-02-24 20:57:42.000000000
+0100
+++ new/Markdown-3.3.5/markdown/__main__.py 2021-11-16 16:32:27.000000000
+0100
@@ -70,7 +70,7 @@
parser.add_option("-c", "--extension_configs",
dest="configfile", default=None,
help="Read extension configurations from CONFIG_FILE. "
- "CONFIG_FILE must be of JSON or YAML format. YAML"
+ "CONFIG_FILE must be of JSON or YAML format. YAML "
"format requires that a python YAML library be "
"installed. The parsed JSON or YAML must result in a "
"python dictionary which would be accepted by the "
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Markdown-3.3.4/markdown/__meta__.py
new/Markdown-3.3.5/markdown/__meta__.py
--- old/Markdown-3.3.4/markdown/__meta__.py 2021-02-24 20:57:42.000000000
+0100
+++ new/Markdown-3.3.5/markdown/__meta__.py 2021-11-16 16:32:27.000000000
+0100
@@ -26,7 +26,7 @@
# (1, 2, 0, 'beta', 2) => "1.2b2"
# (1, 2, 0, 'rc', 4) => "1.2rc4"
# (1, 2, 0, 'final', 0) => "1.2"
-__version_info__ = (3, 3, 4, 'final', 0)
+__version_info__ = (3, 3, 5, 'final', 0)
def _get_version(version_info):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Markdown-3.3.4/markdown/blockprocessors.py
new/Markdown-3.3.5/markdown/blockprocessors.py
--- old/Markdown-3.3.4/markdown/blockprocessors.py 2021-02-24
20:57:42.000000000 +0100
+++ new/Markdown-3.3.5/markdown/blockprocessors.py 2021-11-16
16:32:27.000000000 +0100
@@ -559,7 +559,7 @@
class ReferenceProcessor(BlockProcessor):
""" Process link references. """
RE = re.compile(
- r'^[ ]{0,3}\[([^\]]*)\]:[ ]*\n?[ ]*([^\s]+)[ ]*\n?[
]*((["\'])(.*)\4|\((.*)\))?[ ]*$', re.MULTILINE
+ r'^[ ]{0,3}\[([^\]]*)\]:[ ]*\n?[ ]*([^\s]+)[ ]*(?:\n[
]*)?((["\'])(.*)\4[ ]*|\((.*)\)[ ]*)?$', re.MULTILINE
)
def test(self, parent, block):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Markdown-3.3.4/markdown/core.py
new/Markdown-3.3.5/markdown/core.py
--- old/Markdown-3.3.4/markdown/core.py 2021-02-24 20:57:42.000000000 +0100
+++ new/Markdown-3.3.5/markdown/core.py 2021-11-16 16:32:27.000000000 +0100
@@ -82,7 +82,7 @@
# Other elements which Markdown should not be mucking up the
contents of.
'canvas', 'colgroup', 'dd', 'body', 'dt', 'group', 'iframe', 'li',
'legend',
'math', 'map', 'noscript', 'output', 'object', 'option',
'progress', 'script',
- 'style', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'tr',
'video'
+ 'style', 'summary', 'tbody', 'td', 'textarea', 'tfoot', 'th',
'thead', 'tr', 'video'
]
self.registeredExtensions = []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Markdown-3.3.4/markdown/extensions/admonition.py
new/Markdown-3.3.5/markdown/extensions/admonition.py
--- old/Markdown-3.3.4/markdown/extensions/admonition.py 2021-02-24
20:57:42.000000000 +0100
+++ new/Markdown-3.3.5/markdown/extensions/admonition.py 2021-11-16
16:32:27.000000000 +0100
@@ -49,9 +49,9 @@
self.content_indention = 0
def parse_content(self, parent, block):
- """Get sibling admontion.
+ """Get sibling admonition.
- Retrieve the appropriate siblimg element. This can get trickly when
+ Retrieve the appropriate sibling element. This can get tricky when
dealing with lists.
"""
@@ -72,8 +72,8 @@
if sibling is None or sibling.get('class', '').find(self.CLASSNAME) ==
-1:
sibling = None
else:
- # If the last child is a list and the content is idented sufficient
- # to be under it, then the content's is sibling is in the list.
+ # If the last child is a list and the content is sufficiently
indented
+ # to be under it, then the content's sibling is in the list.
last_child = self.lastChild(sibling)
indent = 0
while last_child:
@@ -83,12 +83,12 @@
):
# The expectation is that we'll find an <li> or <dt>.
- # We should get it's last child as well.
+ # We should get its last child as well.
sibling = self.lastChild(last_child)
last_child = self.lastChild(sibling) if sibling else None
# Context has been lost at this point, so we must adjust
the
- # text's identation level so it will be evaluated correctly
+ # text's indentation level so it will be evaluated
correctly
# under the list.
block = block[self.tab_length:]
indent += self.tab_length
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Markdown-3.3.4/markdown/extensions/codehilite.py
new/Markdown-3.3.5/markdown/extensions/codehilite.py
--- old/Markdown-3.3.4/markdown/extensions/codehilite.py 2021-02-24
20:57:42.000000000 +0100
+++ new/Markdown-3.3.5/markdown/extensions/codehilite.py 2021-11-16
16:32:27.000000000 +0100
@@ -112,7 +112,7 @@
self.options = options
- def hilite(self):
+ def hilite(self, shebang=True):
"""
Pass code to the [Pygments](http://pygments.pocoo.org/) highliter with
optional line numbers. The output should then be styled with css to
@@ -125,7 +125,7 @@
self.src = self.src.strip('\n')
- if self.lang is None:
+ if self.lang is None and shebang:
self._parseHeader()
if pygments and self.use_pygments:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Markdown-3.3.4/markdown/extensions/fenced_code.py
new/Markdown-3.3.5/markdown/extensions/fenced_code.py
--- old/Markdown-3.3.4/markdown/extensions/fenced_code.py 2021-02-24
20:57:42.000000000 +0100
+++ new/Markdown-3.3.5/markdown/extensions/fenced_code.py 2021-11-16
16:32:27.000000000 +0100
@@ -42,13 +42,13 @@
class FencedBlockPreprocessor(Preprocessor):
FENCED_BLOCK_RE = re.compile(
dedent(r'''
- (?P<fence>^(?:~{3,}|`{3,}))[ ]* # opening
fence
- ((\{(?P<attrs>[^\}\n]*)\})?| # (optional
{attrs} or
- (\.?(?P<lang>[\w#.+-]*))?[ ]* # optional
(.)lang
- (hl_lines=(?P<quot>"|')(?P<hl_lines>.*?)(?P=quot))?) # optional
hl_lines)
- [ ]*\n # newline
(end of opening fence)
- (?P<code>.*?)(?<=\n) # the code
block
- (?P=fence)[ ]*$ # closing
fence
+ (?P<fence>^(?:~{3,}|`{3,}))[ ]* # opening
fence
+ ((\{(?P<attrs>[^\}\n]*)\})| #
(optional {attrs} or
+ (\.?(?P<lang>[\w#.+-]*)[ ]*)? #
optional (.)lang
+ (hl_lines=(?P<quot>"|')(?P<hl_lines>.*?)(?P=quot)[ ]*)?) #
optional hl_lines)
+ \n # newline
(end of opening fence)
+ (?P<code>.*?)(?<=\n) # the
code block
+ (?P=fence)[ ]*$ # closing
fence
'''),
re.MULTILINE | re.DOTALL | re.VERBOSE
)
@@ -116,7 +116,7 @@
**local_config
)
- code = highliter.hilite()
+ code = highliter.hilite(shebang=False)
else:
id_attr = lang_attr = class_attr = kv_pairs = ''
if lang:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Markdown-3.3.4/markdown/extensions/md_in_html.py
new/Markdown-3.3.5/markdown/extensions/md_in_html.py
--- old/Markdown-3.3.4/markdown/extensions/md_in_html.py 2021-02-24
20:57:42.000000000 +0100
+++ new/Markdown-3.3.5/markdown/extensions/md_in_html.py 2021-11-16
16:32:27.000000000 +0100
@@ -33,13 +33,14 @@
self.block_level_tags = set(md.block_level_elements.copy())
# Block-level tags in which the content only gets span level parsing
self.span_tags = set(
- ['address', 'dd', 'dt', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6',
'legend', 'li', 'p', 'td', 'th']
+ ['address', 'dd', 'dt', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6',
'legend', 'li', 'p', 'summary', 'td', 'th']
)
# Block-level tags which never get their content parsed.
self.raw_tags = set(['canvas', 'math', 'option', 'pre', 'script',
'style', 'textarea'])
- # Block-level tags in which the content gets parsed as blocks
+
super().__init__(md, *args, **kwargs)
+ # Block-level tags in which the content gets parsed as blocks
self.block_tags = set(self.block_level_tags) - (self.span_tags |
self.raw_tags | self.empty_tags)
self.span_and_blocks_tags = self.block_tags | self.span_tags
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Markdown-3.3.4/markdown/extensions/toc.py
new/Markdown-3.3.5/markdown/extensions/toc.py
--- old/Markdown-3.3.4/markdown/extensions/toc.py 2021-02-24
20:57:42.000000000 +0100
+++ new/Markdown-3.3.5/markdown/extensions/toc.py 2021-11-16
16:32:27.000000000 +0100
@@ -23,16 +23,19 @@
import xml.etree.ElementTree as etree
-def slugify(value, separator, encoding='ascii'):
+def slugify(value, separator, unicode=False):
""" Slugify a string, to make it URL friendly. """
- value = unicodedata.normalize('NFKD', value).encode(encoding, 'ignore')
- value = re.sub(r'[^\w\s-]', '', value.decode(encoding)).strip().lower()
+ if not unicode:
+ # Replace Extended Latin characters with ASCII, i.e. ??lut?? ??? zluty
+ value = unicodedata.normalize('NFKD', value)
+ value = value.encode('ascii', 'ignore').decode('ascii')
+ value = re.sub(r'[^\w\s-]', '', value).strip().lower()
return re.sub(r'[{}\s]+'.format(separator), separator, value)
def slugify_unicode(value, separator):
""" Slugify a string, to make it URL friendly while preserving Unicode
characters. """
- return slugify(value, separator, 'utf-8')
+ return slugify(value, separator, unicode=True)
IDCOUNT_RE = re.compile(r'^(.*)_([0-9]+)$')
@@ -192,7 +195,12 @@
# To keep the output from screwing up the
# validation by putting a <div> inside of a <p>
# we actually replace the <p> in its entirety.
- if c.text and c.text.strip() == self.marker:
+
+ # The <p> element may contain more than a single text content
+ # (nl2br can introduce a <br>). In this situation, c.text returns
+ # the very first content, ignore children contents or tail content.
+ # len(c) == 0 is here to ensure there is only text in the <p>.
+ if c.text and c.text.strip() == self.marker and len(c) == 0:
for i in range(len(p)):
if p[i] == c:
p[i] = elem
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Markdown-3.3.4/markdown/inlinepatterns.py
new/Markdown-3.3.5/markdown/inlinepatterns.py
--- old/Markdown-3.3.4/markdown/inlinepatterns.py 2021-02-24
20:57:42.000000000 +0100
+++ new/Markdown-3.3.5/markdown/inlinepatterns.py 2021-11-16
16:32:27.000000000 +0100
@@ -160,10 +160,10 @@
AUTOLINK_RE = r'<((?:[Ff]|[Hh][Tt])[Tt][Pp][Ss]?://[^<>]*)>'
# <[email protected]>
-AUTOMAIL_RE = r'<([^<> !]*@[^@<> ]*)>'
+AUTOMAIL_RE = r'<([^<> !]+@[^@<> ]+)>'
# <...>
-HTML_RE = r'(<([a-zA-Z/][^<>]*|!--(?:(?!<!--|-->).)*--)>)'
+HTML_RE = r'(<(\/?[a-zA-Z][^<>@ ]*( [^<>]*)?|!--(?:(?!<!--|-->).)*--)>)'
# "&" (decimal) or "&" (hex) or "&" (named)
ENTITY_RE = r'(&(?:\#[0-9]+|\#x[0-9a-fA-F]+|[a-zA-Z0-9]+);)'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Markdown-3.3.4/markdown/postprocessors.py
new/Markdown-3.3.5/markdown/postprocessors.py
--- old/Markdown-3.3.4/markdown/postprocessors.py 2021-02-24
20:57:42.000000000 +0100
+++ new/Markdown-3.3.5/markdown/postprocessors.py 2021-11-16
16:32:27.000000000 +0100
@@ -65,6 +65,8 @@
class RawHtmlPostprocessor(Postprocessor):
""" Restore raw html to the document. """
+ BLOCK_LEVEL_REGEX = re.compile(r'^\<\/?([^ >]+)')
+
def run(self, text):
""" Iterate over html stash and restore html. """
replacements = OrderedDict()
@@ -99,7 +101,7 @@
return self.run(processed_text)
def isblocklevel(self, html):
- m = re.match(r'^\<\/?([^ >]+)', html)
+ m = self.BLOCK_LEVEL_REGEX.match(html)
if m:
if m.group(1)[0] in ('!', '?', '@', '%'):
# Comment, php etc...
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Markdown-3.3.4/markdown/util.py
new/Markdown-3.3.5/markdown/util.py
--- old/Markdown-3.3.4/markdown/util.py 2021-02-24 20:57:42.000000000 +0100
+++ new/Markdown-3.3.5/markdown/util.py 2021-11-16 16:32:27.000000000 +0100
@@ -21,17 +21,18 @@
import re
import sys
-from collections import namedtuple
-from functools import wraps
import warnings
import xml.etree.ElementTree
-from .pep562 import Pep562
+from collections import namedtuple
+from functools import wraps
from itertools import count
-try:
+from .pep562 import Pep562
+
+if sys.version_info >= (3, 10):
from importlib import metadata
-except ImportError:
- # <PY38 use backport
+else:
+ # <PY310 use backport
import importlib_metadata as metadata
PY37 = (3, 7) <= sys.version_info
@@ -84,7 +85,7 @@
"""
# Only load extension entry_points once.
-INSTALLED_EXTENSIONS = metadata.entry_points().get('markdown.extensions', ())
+INSTALLED_EXTENSIONS = metadata.entry_points(group='markdown.extensions')
RTL_BIDI_RANGES = (
('\u0590', '\u07FF'),
# Hebrew (0590-05FF), Arabic (0600-06FF),
@@ -104,19 +105,22 @@
"""
Raise a DeprecationWarning when wrapped function/method is called.
- Borrowed from https://stackoverflow.com/a/48632082/866026
+ Usage:
+ @deprecated("This method will be removed in version X; use Y instead.")
+ def some_method()"
+ pass
"""
- def deprecated_decorator(func):
+ def wrapper(func):
@wraps(func)
def deprecated_func(*args, **kwargs):
warnings.warn(
- "'{}' is deprecated. {}".format(func.__name__, message),
+ f"'{func.__name__}' is deprecated. {message}",
category=DeprecationWarning,
stacklevel=stacklevel
)
return func(*args, **kwargs)
return deprecated_func
- return deprecated_decorator
+ return wrapper
@deprecated("Use 'Markdown.is_block_level' instead.")
@@ -159,8 +163,7 @@
def _get_stack_depth(size=2):
- """Get stack size for caller's frame.
- See https://stackoverflow.com/a/47956089/866026
+ """Get current stack depth, performantly.
"""
frame = sys._getframe(size)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Markdown-3.3.4/setup.py new/Markdown-3.3.5/setup.py
--- old/Markdown-3.3.4/setup.py 2021-02-24 20:57:42.000000000 +0100
+++ new/Markdown-3.3.5/setup.py 2021-11-16 16:32:27.000000000 +0100
@@ -59,7 +59,6 @@
name='Markdown',
version=__version__,
url='https://Python-Markdown.github.io/',
-
download_url='http://pypi.python.org/packages/source/M/Markdown/Markdown-%s-py2.py3-none-any.whl'
% __version__,
project_urls={
'Documentation': 'https://Python-Markdown.github.io/',
'GitHub Project': 'https://github.com/Python-Markdown/markdown',
@@ -75,7 +74,7 @@
license='BSD License',
packages=['markdown', 'markdown.extensions'],
python_requires='>=3.6',
- install_requires=["importlib-metadata;python_version<'3.8'"],
+ install_requires=["importlib-metadata>='4.4';python_version<'3.10'"],
extras_require={
'testing': [
'coverage',
@@ -118,6 +117,7 @@
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
+ 'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3 :: Only',
'Programming Language :: Python :: Implementation :: CPython',
'Programming Language :: Python :: Implementation :: PyPy',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Markdown-3.3.4/tests/test_syntax/extensions/test_fenced_code.py
new/Markdown-3.3.5/tests/test_syntax/extensions/test_fenced_code.py
--- old/Markdown-3.3.4/tests/test_syntax/extensions/test_fenced_code.py
2021-02-24 20:57:42.000000000 +0100
+++ new/Markdown-3.3.5/tests/test_syntax/extensions/test_fenced_code.py
2021-11-16 16:32:27.000000000 +0100
@@ -381,6 +381,36 @@
if has_pygments and pygments.__version__ != required_pygments_version:
self.skipTest(f'Pygments=={required_pygments_version} is required')
+ def test_shebang(self):
+
+ if has_pygments:
+ expected = '''
+ <div class="codehilite"><pre><span></span><code>#!test
+ </code></pre></div>
+ '''
+ else:
+ expected = '''
+ <pre class="codehilite"><code>#!test
+ </code></pre>
+ '''
+
+ self.assertMarkdownRenders(
+ self.dedent(
+ '''
+ ```
+ #!test
+ ```
+ '''
+ ),
+ self.dedent(
+ expected
+ ),
+ extensions=[
+
markdown.extensions.codehilite.CodeHiliteExtension(linenums=None,
guess_lang=False),
+ 'fenced_code'
+ ]
+ )
+
def testFencedCodeWithHighlightLines(self):
if has_pygments:
expected = self.dedent(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Markdown-3.3.4/tests/test_syntax/extensions/test_md_in_html.py
new/Markdown-3.3.5/tests/test_syntax/extensions/test_md_in_html.py
--- old/Markdown-3.3.4/tests/test_syntax/extensions/test_md_in_html.py
2021-02-24 20:57:42.000000000 +0100
+++ new/Markdown-3.3.5/tests/test_syntax/extensions/test_md_in_html.py
2021-11-16 16:32:27.000000000 +0100
@@ -283,6 +283,26 @@
)
)
+ def text_md1_details(self):
+ self.assertMarkdownRenders(
+ self.dedent(
+ """
+ <details markdown="1">
+ <summary>Click to expand</summary>
+ *foo*
+ </details>
+ """
+ ),
+ self.dedent(
+ """
+ <details>
+ <summary>Click to expand</summary>
+ <p><em>foo</em></p>
+ </details>
+ """
+ )
+ )
+
def test_md1_mix(self):
self.assertMarkdownRenders(
self.dedent(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Markdown-3.3.4/tests/test_syntax/extensions/test_toc.py
new/Markdown-3.3.5/tests/test_syntax/extensions/test_toc.py
--- old/Markdown-3.3.4/tests/test_syntax/extensions/test_toc.py 2021-02-24
20:57:42.000000000 +0100
+++ new/Markdown-3.3.5/tests/test_syntax/extensions/test_toc.py 2021-11-16
16:32:27.000000000 +0100
@@ -21,6 +21,7 @@
from markdown.test_tools import TestCase
from markdown.extensions.toc import TocExtension
+from markdown.extensions.nl2br import Nl2BrExtension
class TestTOC(TestCase):
@@ -534,9 +535,9 @@
from markdown.extensions.toc import slugify_unicode
self.assertMarkdownRenders(
'# Unicode ????????????',
- '<h1 id="unicode-????????????">'
# noqa
+ '<h1 id="unicode-????????????">'
# noqa
'Unicode ????????????'
# noqa
- '<a class="headerlink" href="#unicode-????????????"
title="Permanent link">¶</a>' # noqa
+ '<a class="headerlink" href="#unicode-????????????"
title="Permanent link">¶</a>' # noqa
'</h1>',
# noqa
extensions=[TocExtension(permalink=True, slugify=slugify_unicode)]
)
@@ -545,9 +546,26 @@
from markdown.extensions.toc import slugify_unicode
self.assertMarkdownRenders(
'# Unicode ????????????',
- '<h1 id="unicode-????????????">'
# noqa
+ '<h1 id="unicode-????????????">'
# noqa
'Unicode ????????????'
# noqa
- '<a class="headerlink" href="#unicode-????????????"
title="??????????????????">¶</a>' # noqa
+ '<a class="headerlink" href="#unicode-????????????"
title="??????????????????">¶</a>' # noqa
'</h1>',
# noqa
extensions=[TocExtension(permalink=True,
permalink_title="??????????????????", slugify=slugify_unicode)]
)
+
+ def testPermalinkWithExtendedLatinInID(self):
+ self.assertMarkdownRenders(
+ '# Th????tre',
+ '<h1 id="theatre">'
# noqa
+ 'Th????tre'
# noqa
+ '<a class="headerlink" href="#theatre" title="Permanent
link">¶</a>' # noqa
+ '</h1>',
# noqa
+ extensions=[TocExtension(permalink=True)]
+ )
+
+ def testNl2brCompatibility(self):
+ self.assertMarkdownRenders(
+ '[TOC]\ntext',
+ '<p>[TOC]<br />\ntext</p>',
+ extensions=[TocExtension(), Nl2BrExtension()]
+ )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Markdown-3.3.4/tests/test_syntax/inline/test_autolinks.py
new/Markdown-3.3.5/tests/test_syntax/inline/test_autolinks.py
--- old/Markdown-3.3.4/tests/test_syntax/inline/test_autolinks.py
1970-01-01 01:00:00.000000000 +0100
+++ new/Markdown-3.3.5/tests/test_syntax/inline/test_autolinks.py
2021-11-16 16:32:27.000000000 +0100
@@ -0,0 +1,63 @@
+"""
+Python Markdown
+
+A Python implementation of John Gruber's Markdown.
+
+Documentation: https://python-markdown.github.io/
+GitHub: https://github.com/Python-Markdown/markdown/
+PyPI: https://pypi.org/project/Markdown/
+
+Started by Manfred Stienstra (http://www.dwerg.net/).
+Maintained for a few years by Yuri Takhteyev (http://www.freewisdom.org).
+Currently maintained by Waylan Limberg (https://github.com/waylan),
+Dmitry Shachnev (https://github.com/mitya57) and Isaac Muse
(https://github.com/facelessuser).
+
+Copyright 2007-2021 The Python Markdown Project (v. 1.7 and later)
+Copyright 2004, 2005, 2006 Yuri Takhteyev (v. 0.2-1.6b)
+Copyright 2004 Manfred Stienstra (the original version)
+
+License: BSD (see LICENSE.md for details).
+"""
+
+from markdown.test_tools import TestCase
+
+
+class TestAutomaticLinks(TestCase):
+
+ def test_email_address(self):
+ self.assertMarkdownRenders(
+ 'asdfasdfadsfasd <[email protected]> or you can say ',
+ '<p>asdfasdfadsfasd <a
href="mailto:yur'
+
'i@freewisdom.or'
+
'g">yuri@freewisd'
+ 'om.org</a> or you can say </p>'
+ )
+
+ def test_mailto_email_address(self):
+ self.assertMarkdownRenders(
+ 'instead <mailto:[email protected]>',
+ '<p>instead <a
href="mailto:yuri@'
+
'freewisdom.org">'
+
'yuri@freewisdom'
+ '.org</a></p>'
+ )
+
+ def test_email_address_with_ampersand(self):
+ self.assertMarkdownRenders(
+ '<bob&[email protected]>',
+ '<p><a
href="mailto:bob&sue'
+
'@example.com">bob&'
+
'sue@example.com</a></p>'
+ )
+
+ def test_invalid_email_address_local_part(self):
+ self.assertMarkdownRenders(
+ 'Missing local-part <@domain>',
+ '<p>Missing local-part <@domain></p>'
+ )
+
+ def test_invalid_email_address_domain(self):
+ self.assertMarkdownRenders(
+ 'Missing domain <local-part@>',
+ '<p>Missing domain <local-part@></p>'
+ )