<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-markdown.git/markdown/postprocessors.py, branch 3.3.2</title>
<subtitle>github.com: waylan/Python-Markdown.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-markdown.git/'/>
<entry>
<title>Account for Etree Elements in HTML Stash</title>
<updated>2020-10-14T19:21:44+00:00</updated>
<author>
<name>Waylan Limberg</name>
<email>waylan.limberg@icloud.com</email>
</author>
<published>2020-10-14T17:48:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-markdown.git/commit/?id=607a091918004c4ca10fb621e53a09a00b8d299b'/>
<id>607a091918004c4ca10fb621e53a09a00b8d299b</id>
<content type='text'>
By calling str on all stash elements we ensure they don't raise an error.
Worse case, soemthing like `&lt;Element 'div' at 0x000001B2DAE94900&gt;` gets
inserted into the output. However, with the override in the md_in_html
extension, we actually serialize and reinsert the original HTML. Worse case,
an HTML block which should be parsed as Markdown gets skipped by the
extension (`&lt;div markdown="block"&gt;&lt;/div&gt;` gets inserting into the output).

The tricky part is testing as there should be no known cases where this
ever occurs. Therefore, we forefully pass an etree Element directly to
the method in the test. That said, as #1040 is unresolved at this point,
I have tested locally with a real existing case and it works well.

Related to #1040.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
By calling str on all stash elements we ensure they don't raise an error.
Worse case, soemthing like `&lt;Element 'div' at 0x000001B2DAE94900&gt;` gets
inserted into the output. However, with the override in the md_in_html
extension, we actually serialize and reinsert the original HTML. Worse case,
an HTML block which should be parsed as Markdown gets skipped by the
extension (`&lt;div markdown="block"&gt;&lt;/div&gt;` gets inserting into the output).

The tricky part is testing as there should be no known cases where this
ever occurs. Therefore, we forefully pass an etree Element directly to
the method in the test. That said, as #1040 is unresolved at this point,
I have tested locally with a real existing case and it works well.

Related to #1040.
</pre>
</div>
</content>
</entry>
<entry>
<title>Refactor HTML Parser (#803)</title>
<updated>2020-09-22T14:42:17+00:00</updated>
<author>
<name>Waylan Limberg</name>
<email>waylan.limberg@icloud.com</email>
</author>
<published>2020-09-22T14:42:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-markdown.git/commit/?id=b701c34ebd7b2d0eb319517b9a275ddf0c89608d'/>
<id>b701c34ebd7b2d0eb319517b9a275ddf0c89608d</id>
<content type='text'>
The HTML parser has been completely replaced. The new HTML parser is built on Python's html.parser.HTMLParser, which alleviates various bugs and simplifies maintenance of the code.

The md_in_html extension has been rebuilt on the new HTML Parser, which drastically simplifies it. Note that raw HTML elements with a markdown attribute defined are now converted to ElementTree Elements and are rendered by the serializer. Various bugs have been fixed.

Link reference parsing, abbreviation reference parsing and footnote reference parsing has all been moved from preprocessors to blockprocessors, which allows them to be nested within other block level elements. Specifically, this change was necessary to maintain the current behavior in the rebuilt md_in_html extension. A few random edge-case bugs (see the included tests) were resolved in the process.

Closes #595, closes #780, closes #830 and closes #1012.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The HTML parser has been completely replaced. The new HTML parser is built on Python's html.parser.HTMLParser, which alleviates various bugs and simplifies maintenance of the code.

The md_in_html extension has been rebuilt on the new HTML Parser, which drastically simplifies it. Note that raw HTML elements with a markdown attribute defined are now converted to ElementTree Elements and are rendered by the serializer. Various bugs have been fixed.

Link reference parsing, abbreviation reference parsing and footnote reference parsing has all been moved from preprocessors to blockprocessors, which allows them to be nested within other block level elements. Specifically, this change was necessary to maintain the current behavior in the rebuilt md_in_html extension. A few random edge-case bugs (see the included tests) were resolved in the process.

Closes #595, closes #780, closes #830 and closes #1012.
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert: Use simplified regex for html placeholders</title>
<updated>2020-04-06T00:57:30+00:00</updated>
<author>
<name>facelessuser</name>
<email>faceless.shop@gmail.com</email>
</author>
<published>2020-04-05T23:56:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-markdown.git/commit/?id=7c595e28491d3cca28bc9901bb099bca8bcf4626'/>
<id>7c595e28491d3cca28bc9901bb099bca8bcf4626</id>
<content type='text'>
Not sure how tests didn't get run on this, but it was completely
breaking all tests. This reverts the change.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Not sure how tests didn't get run on this, but it was completely
breaking all tests. This reverts the change.
</pre>
</div>
</content>
</entry>
<entry>
<title>Use simplified regex for html placeholders</title>
<updated>2020-03-30T17:15:32+00:00</updated>
<author>
<name>Reilly Raab</name>
<email>raabrp@users.noreply.github.com</email>
</author>
<published>2020-03-30T17:15:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-markdown.git/commit/?id=c5f1395a944e76e95250740452706f6b16830cae'/>
<id>c5f1395a944e76e95250740452706f6b16830cae</id>
<content type='text'>
`util` already provides the regex we need for all placeholders, and we're doing extra work parsing for the explicit union of all of them.
In documents with ~30000 placeholders, I get a ~5x speedup with this change.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`util` already provides the regex we need for all placeholders, and we're doing extra work parsing for the explicit union of all of them.
In documents with ~30000 placeholders, I get a ~5x speedup with this change.</pre>
</div>
</content>
</entry>
<entry>
<title>Drop support for Python 2.7 (#865)</title>
<updated>2019-10-24T13:36:04+00:00</updated>
<author>
<name>Hugo van Kemenade</name>
<email>hugovk@users.noreply.github.com</email>
</author>
<published>2019-10-24T13:36:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-markdown.git/commit/?id=dab931f597cdc5b57d4e2458840fb991606506bc'/>
<id>dab931f597cdc5b57d4e2458840fb991606506bc</id>
<content type='text'>
* Python syntax upgraded using `pyupgrade --py3-plus`
* Travis no longer uses `sudo`. See https://blog.travis-ci.com/2018-11-19-required-linux-infrastructure-migration

See #760 for Python Version Support Timeline and related dicussion.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Python syntax upgraded using `pyupgrade --py3-plus`
* Travis no longer uses `sudo`. See https://blog.travis-ci.com/2018-11-19-required-linux-infrastructure-migration

See #760 for Python Version Support Timeline and related dicussion.
</pre>
</div>
</content>
</entry>
<entry>
<title>Handle overlapping raw HTML matches (#770)</title>
<updated>2019-02-07T19:59:04+00:00</updated>
<author>
<name>Philip Trauner</name>
<email>philip.trauner@arztpraxis.io</email>
</author>
<published>2019-02-07T19:59:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-markdown.git/commit/?id=12864d276855231c1d72f0da8efd8dace20a9062'/>
<id>12864d276855231c1d72f0da8efd8dace20a9062</id>
<content type='text'>
Recursively run substitution to handle overlapping matches.
Fixes #458.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Recursively run substitution to handle overlapping matches.
Fixes #458.
</pre>
</div>
</content>
</entry>
<entry>
<title> Move isBlockLevel to class. (#693)</title>
<updated>2018-07-31T18:12:49+00:00</updated>
<author>
<name>Waylan Limberg</name>
<email>waylan.limberg@icloud.com</email>
</author>
<published>2018-07-31T18:12:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-markdown.git/commit/?id=1e7fd3f236f63f9ca9b85de9cd172b77e7f9be80'/>
<id>1e7fd3f236f63f9ca9b85de9cd172b77e7f9be80</id>
<content type='text'>
Allows users and/or extensions to alter the list of block level 
elements. The old implementation remains with a DeprecationWarning. 
Fixes #575.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Allows users and/or extensions to alter the list of block level 
elements. The old implementation remains with a DeprecationWarning. 
Fixes #575.</pre>
</div>
</content>
</entry>
<entry>
<title>Consistent copyright headers.</title>
<updated>2018-07-27T18:43:09+00:00</updated>
<author>
<name>Waylan Limberg</name>
<email>waylan.limberg@icloud.com</email>
</author>
<published>2018-07-27T18:34:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-markdown.git/commit/?id=0081cb8519ebda441b129462e8eb6c0f6c7d30a4'/>
<id>0081cb8519ebda441b129462e8eb6c0f6c7d30a4</id>
<content type='text'>
Fixes #435.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #435.
</pre>
</div>
</content>
</entry>
<entry>
<title>All Markdown instances are now 'md'. (#691)</title>
<updated>2018-07-27T14:55:41+00:00</updated>
<author>
<name>Waylan Limberg</name>
<email>waylan.limberg@icloud.com</email>
</author>
<published>2018-07-27T14:55:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-markdown.git/commit/?id=25482261a494ad12c108435580ed13927bdc417c'/>
<id>25482261a494ad12c108435580ed13927bdc417c</id>
<content type='text'>
Previously, instances of the Markdown class were represented as any one 
of 'md', 'md_instance', or 'markdown'. This inconsistency made it 
difficult when developing extensions, or just maintaining the existing 
code. Now, all instances are consistently represented as 'md'.

The old attributes on class instances still exist, but raise a 
DeprecationWarning when accessed. Also on classes where the instance was 
optional, the attribute always exists now and is simply None if no 
instance was provided (previously the attribute wouldn't exist).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, instances of the Markdown class were represented as any one 
of 'md', 'md_instance', or 'markdown'. This inconsistency made it 
difficult when developing extensions, or just maintaining the existing 
code. Now, all instances are consistently represented as 'md'.

The old attributes on class instances still exist, but raise a 
DeprecationWarning when accessed. Also on classes where the instance was 
optional, the attribute always exists now and is simply None if no 
instance was provided (previously the attribute wouldn't exist).
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace homegrown OrderedDict with purpose-built Registry. (#688)</title>
<updated>2018-07-27T14:23:55+00:00</updated>
<author>
<name>Waylan Limberg</name>
<email>waylan.limberg@icloud.com</email>
</author>
<published>2018-07-27T14:23:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-markdown.git/commit/?id=6ee07d2735d86d7a3d0b31c3409d42d31997a96c'/>
<id>6ee07d2735d86d7a3d0b31c3409d42d31997a96c</id>
<content type='text'>
All processors and patterns now get "registered" to a Registry.
Each item is given a name (string) and a priority. The name is for
later reference and the priority can be either an integer or float
and is used to sort. Priority is sorted from highest to lowest. A 
Registry instance is a list-like iterable with the items auto-sorted 
by priority. If two items have the same priority, then they are 
listed in the order there were "registered". Registering a new 
item with the same name as an already registered item replaces
the old item with the new item (however, the new item is sorted by
its newly assigned priority). To remove an item, "deregister" it by 
name or index.

A backwards compatible shim is included so that existing simple
extensions should continue to work. DeprecationWarnings will 
be raised for any code which calls the old API.

Fixes #418.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
All processors and patterns now get "registered" to a Registry.
Each item is given a name (string) and a priority. The name is for
later reference and the priority can be either an integer or float
and is used to sort. Priority is sorted from highest to lowest. A 
Registry instance is a list-like iterable with the items auto-sorted 
by priority. If two items have the same priority, then they are 
listed in the order there were "registered". Registering a new 
item with the same name as an already registered item replaces
the old item with the new item (however, the new item is sorted by
its newly assigned priority). To remove an item, "deregister" it by 
name or index.

A backwards compatible shim is included so that existing simple
extensions should continue to work. DeprecationWarnings will 
be raised for any code which calls the old API.

Fixes #418.</pre>
</div>
</content>
</entry>
</feed>
