<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-markdown.git/markdown/preprocessors.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>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>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> 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>
<entry>
<title>Correct spelling mistakes.</title>
<updated>2018-01-13T16:42:50+00:00</updated>
<author>
<name>Edward Betts</name>
<email>edward@4angle.com</email>
</author>
<published>2018-01-13T09:25:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-markdown.git/commit/?id=3fad73031e544de6c9f74621de923da3806a6c21'/>
<id>3fad73031e544de6c9f74621de923da3806a6c21</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Removed deprecated safe_mode.</title>
<updated>2018-01-12T00:04:49+00:00</updated>
<author>
<name>Waylan Limberg</name>
<email>waylan.limberg@icloud.com</email>
</author>
<published>2015-03-15T00:39:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-markdown.git/commit/?id=7f63b20b819b83afef0ddadc2e210ddce32a2be3'/>
<id>7f63b20b819b83afef0ddadc2e210ddce32a2be3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix raw html reference issue (#585)</title>
<updated>2018-01-04T20:07:45+00:00</updated>
<author>
<name>Isaac Muse</name>
<email>faceless.shop@gmail.com</email>
</author>
<published>2018-01-04T20:07:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-markdown.git/commit/?id=1de595a4a9c5536d32d597dba799cd036582af0f'/>
<id>1de595a4a9c5536d32d597dba799cd036582af0f</id>
<content type='text'>
Preserve the line which a reference was on to prevent raw HTML indexing issue. Fixes #584.

Prevent raw HTML parsing issue in abbr and footnotes

Peserve abbreviation line when stripping and preserve a line for each footnote block.  Footnotes should also accumulate the extraneous padding.

Test extra lines at the end of references

Strip the gathered extraneous whitespace

When processing footnotes, we don't actually care to process the extra whitespace at the end of a footnote, but we want it to calculate lines to preserve.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Preserve the line which a reference was on to prevent raw HTML indexing issue. Fixes #584.

Prevent raw HTML parsing issue in abbr and footnotes

Peserve abbreviation line when stripping and preserve a line for each footnote block.  Footnotes should also accumulate the extraneous padding.

Test extra lines at the end of references

Strip the gathered extraneous whitespace

When processing footnotes, we don't actually care to process the extra whitespace at the end of a footnote, but we want it to calculate lines to preserve.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix HTML parse with empty lines (#537)</title>
<updated>2017-01-24T15:36:37+00:00</updated>
<author>
<name>Isaac Muse</name>
<email>faceless.shop@gmail.com</email>
</author>
<published>2017-01-24T15:36:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-markdown.git/commit/?id=94962cb644b3117e7dd46f16b1a4341609ad6bf2'/>
<id>94962cb644b3117e7dd46f16b1a4341609ad6bf2</id>
<content type='text'>
If both open and close was not found in first block, additional blocks
were evaluated without context of previous blocks.  The algorithm needs
to evaluate a buffer with the left bracket present.  So feed in all
items and get the right bracket, then adjust the data_index to be
relative to the last block. Fixes #452.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If both open and close was not found in first block, additional blocks
were evaluated without context of previous blocks.  The algorithm needs
to evaluate a buffer with the left bracket present.  So feed in all
items and get the right bracket, then adjust the data_index to be
relative to the last block. Fixes #452.</pre>
</div>
</content>
</entry>
</feed>
