fix html2markdown() and re-enable previously failing tests
This commit is contained in:
parent
2192ea6fdf
commit
0b371c8103
@ -248,20 +248,12 @@ function bb_to_markdown($Text, $options = []) {
|
|||||||
// Convert it to HTML - don't try oembed
|
// Convert it to HTML - don't try oembed
|
||||||
$Text = bbcode($Text, [ 'tryoembed' => false ]);
|
$Text = bbcode($Text, [ 'tryoembed' => false ]);
|
||||||
|
|
||||||
// Markdownify does not preserve previously escaped html entities such as <> and &.
|
|
||||||
//$Text = str_replace(array('<','>','&'),array('&_lt_;','&_gt_;','&_amp_;'),$Text);
|
|
||||||
|
|
||||||
// Now convert HTML to Markdown
|
// Now convert HTML to Markdown
|
||||||
|
|
||||||
$Text = html2markdown($Text);
|
$Text = html2markdown($Text);
|
||||||
|
|
||||||
//html2markdown adds backslashes infront of hashes after a new line. remove them
|
//html2markdown adds backslashes infront of hashes after a new line. remove them
|
||||||
$Text = str_replace("\n\#", "\n#", $Text);
|
$Text = str_replace("\n\#", "\n#", $Text);
|
||||||
|
|
||||||
// It also adds backslashes to our attempt at getting around the html entity preservation for some weird reason.
|
|
||||||
|
|
||||||
//$Text = str_replace(array('&\\_lt\\_;','&\\_gt\\_;','&\\_amp\\_;'),array('<','>','&'),$Text);
|
|
||||||
|
|
||||||
// If the text going into bbcode() has a plain URL in it, i.e.
|
// If the text going into bbcode() has a plain URL in it, i.e.
|
||||||
// with no [url] tags around it, it will come out of parseString()
|
// with no [url] tags around it, it will come out of parseString()
|
||||||
// looking like: <http://url.com>, which gets removed by strip_tags().
|
// looking like: <http://url.com>, which gets removed by strip_tags().
|
||||||
@ -298,7 +290,8 @@ function html2markdown($html,$options = []) {
|
|||||||
|
|
||||||
$internal_errors = libxml_use_internal_errors(true);
|
$internal_errors = libxml_use_internal_errors(true);
|
||||||
|
|
||||||
$environment = Environment::createDefaultEnvironment($options);
|
$environment = new Environment($options);
|
||||||
|
$environment->createDefaultEnvironment();
|
||||||
$environment->addConverter(new TableConverter());
|
$environment->addConverter(new TableConverter());
|
||||||
$converter = new HtmlConverter($environment);
|
$converter = new HtmlConverter($environment);
|
||||||
|
|
||||||
|
@ -52,12 +52,12 @@ class MarkdownTest extends UnitTestCase {
|
|||||||
' ',
|
' ',
|
||||||
''
|
''
|
||||||
],
|
],
|
||||||
/* it is not clear why this test fails
|
|
||||||
'strong, b, em, i, bib' => [
|
'strong, b, em, i, bib' => [
|
||||||
'<strong>strong</strong> <b>bold</b> <em>em</em> <i>italic</i> <b>bo<i>italic</i>ld</b>',
|
'<strong>strong</strong> <b>bold</b> <em>em</em> <i>italic</i> <b>bo<i>italic</i>ld</b>',
|
||||||
'**strong** **bold** _em_ _italic_ **bo_italic_ld**'
|
'**strong** **bold** _em_ _italic_ **bo_italic_ld**'
|
||||||
],
|
],
|
||||||
*/
|
|
||||||
'empty tags' => [
|
'empty tags' => [
|
||||||
'text1 <b></b> text2 <i></i>',
|
'text1 <b></b> text2 <i></i>',
|
||||||
'text1 text2'
|
'text1 text2'
|
||||||
@ -118,12 +118,12 @@ class MarkdownTest extends UnitTestCase {
|
|||||||
'<code><p>HTML text</p></code>',
|
'<code><p>HTML text</p></code>',
|
||||||
'`<p>HTML text</p>`'
|
'`<p>HTML text</p>`'
|
||||||
],
|
],
|
||||||
/* it is not clear why this test fails
|
|
||||||
'pre' => [
|
'pre' => [
|
||||||
'<pre> line with spaces </pre>',
|
'<pre> line with spaces </pre>',
|
||||||
'` line with spaces `'
|
'` line with spaces `'
|
||||||
],
|
],
|
||||||
*/
|
|
||||||
'div p' => [
|
'div p' => [
|
||||||
'<div>div</div><div><p>p</p></div>',
|
'<div>div</div><div><p>p</p></div>',
|
||||||
"<div>div</div><div>p\n\n</div>"
|
"<div>div</div><div>p\n\n</div>"
|
||||||
|
Reference in New Issue
Block a user