All notable changes to this project will be documented in this file. Updates should follow the Keep a CHANGELOG principles.
5.1.1 - 2023-07-12
- Fixed
<pre>
tags with attributes not being parsed (#215, #238) - Fixed missing type checks and coercions
5.1.0 - 2022-03-02
- Changed horizontal rule style (#218, #219)
- Fixed
Element::getValue()
not handling possible nulls
5.0.2 - 2021-11-06
- Fixed missplaced comment nodes appearing at the start of the HTML input (#212)
5.0.1 - 2021-09-17
- Fixed lists not using the correct amount of indentation (#211)
5.0.0 - 2021-03-28
- Added support for tables (#203)
- This feature is disable by default - see README for how to enable it
- Added new
strip_placeholder_links
option to strip<a>
tags withouthref
attributes (#196) - Added new methods to
ElementInterface
:hasParent()
getNextSibling()
getPreviousSibling()
getListItemLevel()
- Added several parameter and return types across all classes
- Added new
PreConverterInterface
to allow converters to perform any necessary pre-parsing
- Supported PHP versions increased to PHP 7.2 - 8.0
HtmlConverter::convert()
may now throw a\RuntimeException
when unexpectedDOMDocument
-related errors occur
- Fixed complex nested lists containing heading and paragraphs (#198)
- Fixed consecutive emphasis producing incorrect markdown (#202)
4.10.0 - 2020-06-30
- Added the ability to disable autolinking with a configuration option (#187, #188)
4.9.1 - 2019-12-27
- Fixed issue with HTML entity escaping in text (#184)
4.9.0 - 2019-11-02
- Added new option to preserve comments (#177, #179)
4.8.3 - 2019-10-31
- Fixed whitespace preservation around
<code>
tags (#174, #178)
4.8.2 - 2019-08-02
- Fixed headers not being placed onto a new line in some cases (#172)
- Fixed handling of links containing spaces (#175)
- Removed support for HHVM
4.8.1 - 2018-12-24
- Added support for PHP 7.3
- Fixed paragraphs following tables (#165, #166)
- Fixed incorrect list item escaping (#168, #169)
4.8.0 - 2018-09-18
- Added support for email auto-linking
- Added a new interface (
HtmlConverterInterface
) for the mainHtmlConverter
class - Added additional test cases (#14)
- The
italic_style
option now defaults to'*'
so that in-word emphasis is handled properly (#75)
- Fixed several issues of
<code>
and<pre>
tags not converting to blocks or inlines properly (#26, #70, #102, #140, #161, #162) - Fixed in-word emphasis using underscores as delimiter (#75)
- Fixed character escaping inside of
<div>
elements - Fixed header edge cases
- The
bold_style
anditalic_style
options have been deprecated (#75)
4.7.0 - 2018-05-19
- Added
setOptions()
function for chainable calling (#149) - Added new
list_item_style_alternate
option for converting every-other list with a different character (#155)
- Fixed insufficient newlines after code blocks (#144, #148)
- Fixed trailing spaces not being preserved in link anchors (#157)
- Fixed list-like lines not being escaped inside of lists items (#159)
- Fixed issue with emphasized spaces (#146)
- Fixed conversion of
<pre>
tags (#145)
- Added support for ordered lists starting at numbers other than 1
- Fixed overly-eager escaping of list-like text (#141)
- Added configuration option for list item style (#135, #136)
- Fixed autolinking of invalid URLs (#129)
- Added
hard_break
configuration option (#112, #115) - The
HtmlConverter
can now be instantiated with anEnvironment
(#118)
- Fixed handling of paragraphs in list item elements (#47, #110)
- Fixed phantom spaces when newlines follow
br
elements (#116, #117) - Fixed link converter not sanitizing inner spaces properly (#119, #120)
- Revised the sanitization implementation (#109)
- Fixed tag-like content not being escaped (#67, #109)
- Fixed thematic break-like content not being escaped (#65, #109)
- Fixed codefence-like content not being escaped (#64, #109)
- Added full support for PHP 7.0 and 7.1
- Changed
<pre>
and<pre><code>
conversions to use backticks instead of indendation (#102)
- Fixed issue where specified code language was not preserved (#70, #102)
- Fixed issue where
<code>
tags nested in<pre>
was not converted properly (#70, #102) - Fixed header-like content not being escaped (#76, #105)
- Fixed blockquote-like content not being escaped (#77, #103)
- Fixed ordered list-like content not being escaped (#73, #106)
- Fixed unordered list-like content not being escaped (#71, #107)
- Fixed sanitization bug which sometimes removes desired content (#63, #101)
- Fixed path to autoload.php when used as a library (#98)
- Fixed edge case for tags containing only whitespace (#99)
- Removed double HTML entity decoding, as this is not desireable (#60)
- Added the ability to invoke HtmlConverter objects as functions (#85)
- Fixed improper handling of nested list items (#19 and #84)
- Fixed preceeding or trailing spaces within emphasis tags (#83)
- Fixed conversion of empty paragraphs (#78)
- Fixed
preg_replace
so it wouldn't break UTF-8 characters (#79)
- Added
bin/html-to-markdown
script
- Changed default italic character to
_
(#58)
- Added escaping to avoid * and _ in a text being rendered as emphasis (#48)
- Removed the demo (#51)
.styleci.yml
andCONTRIBUTING.md
are no longer included in distributions (#50)
This release changes the visibility of several methods/properties. #42 and #43 brought to light that some visiblities were not ideally set, so this releases fixes that. Moving forwards this should reduce the chance of introducing BC-breaking changes.
- Added new
HtmlConverter::getEnvironment()
method to expose theEnvironment
(#42, #43)
- Changed
Environment::addConverter()
fromprotected
topublic
, enabling custom converters to be added (#42, #43) - Changed
HtmlConverter::createDOMDocument()
fromprotected
toprivate
- Changed
Element::nextCached
fromprotected
toprivate
- Made the
Environment
classfinal
- Empty HTML strings now result in empty Markdown documents (#40, #41)
- Added new
equals
method toElement
to check for equality
- Use Linux line endings consistently instead of plaform-specific line endings (#36)
- Cleaned up code style
- Changed namespace to
League\HTMLToMarkdown
- Changed packagist name to
league/html-to-markdown
- Re-organized code into several separate classes
<a>
tags with identical href and inner text are now rendered using angular bracket syntax (#31)<div>
elements are now treated as block-level elements (#33)
- Added support for PHP 5.6 and HHVM
- Enabled testing against PHP 7 nightlies
- Added this CHANGELOG.md
- Fixed whitespace preservation between inline elements (#9 and #10)
- Preserve placeholder links (#22)
- Added CircleCI config
<pre>
blocks are now treated as code elements
- Dropped support for PHP 5.2
- Removed incorrect README comment regarding
#text
nodes (#17)
- Added the ability to blacklist/remove specific node types (#11)
- Line breaks are now placed after divs instead of before them
- Newlines inside of link texts are now removed
- Updated the minimum PHPUnit version to 4.*
- Added options to customize emphasis characters
- Added option to strip HTML tags without Markdown equivalents
- Added
convert()
method for converter reuse - Added ability to set options after instance construction
- Documented the required PHP extensions (#4)
- ATX style now used for h1 and h2 tags inside blockquotes
- Newlines inside blockquotes are now started with a bracket
- Fixed some incorrect docblocks
__toString()
now returns an empty string if input is empty- Convert head tag if body tag is empty (#7)
- Preserve special characters inside tags without md equivalents (#6)
- Fixed first line indentation for multi-line code blocks
- Fixed consecutive anchors get separating spaces stripped (#3)
- Initial release