Merge pull request #12914 from MrPetovan/bug/12842-bbcode-html-list
Rework new lines around list BBCode
This commit is contained in:
commit
5062e174b7
|
@ -1473,8 +1473,8 @@ class BBCode
|
||||||
$text = preg_replace("/\[list=((?-i)I)\](.*?)\[\/list\]/ism", '</p><ul class="listupperroman" style="list-style-type: upper-roman;">$2</ul><p>', $text);
|
$text = preg_replace("/\[list=((?-i)I)\](.*?)\[\/list\]/ism", '</p><ul class="listupperroman" style="list-style-type: upper-roman;">$2</ul><p>', $text);
|
||||||
$text = preg_replace("/\[list=((?-i)a)\](.*?)\[\/list\]/ism", '</p><ul class="listloweralpha" style="list-style-type: lower-alpha;">$2</ul><p>', $text);
|
$text = preg_replace("/\[list=((?-i)a)\](.*?)\[\/list\]/ism", '</p><ul class="listloweralpha" style="list-style-type: lower-alpha;">$2</ul><p>', $text);
|
||||||
$text = preg_replace("/\[list=((?-i)A)\](.*?)\[\/list\]/ism", '</p><ul class="listupperalpha" style="list-style-type: upper-alpha;">$2</ul><p>', $text);
|
$text = preg_replace("/\[list=((?-i)A)\](.*?)\[\/list\]/ism", '</p><ul class="listupperalpha" style="list-style-type: upper-alpha;">$2</ul><p>', $text);
|
||||||
$text = preg_replace("/\[ul\](.*?)\[\/ul\]/ism", '</p><ul class="listbullet" style="list-style-type: circle;">$1</ul><p>', $text);
|
$text = preg_replace("/\[ul\](.*?)\[\/ul\]/ism", '</p><ul>$1</ul><p>', $text);
|
||||||
$text = preg_replace("/\[ol\](.*?)\[\/ol\]/ism", '</p><ul class="listdecimal" style="list-style-type: decimal;">$1</ul><p>', $text);
|
$text = preg_replace("/\[ol\](.*?)\[\/ol\]/ism", '</p><ol>$1</ol><p>', $text);
|
||||||
$text = preg_replace("/\[li\](.*?)\[\/li\]/ism", '<li>$1</li>', $text);
|
$text = preg_replace("/\[li\](.*?)\[\/li\]/ism", '<li>$1</li>', $text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -281,9 +281,9 @@ class HTML
|
||||||
self::tagToBBCode($doc, 'div', [], "\r", "\r");
|
self::tagToBBCode($doc, 'div', [], "\r", "\r");
|
||||||
self::tagToBBCode($doc, 'p', [], "\n", "\n");
|
self::tagToBBCode($doc, 'p', [], "\n", "\n");
|
||||||
|
|
||||||
self::tagToBBCode($doc, 'ul', [], "[list]", "[/list]");
|
self::tagToBBCode($doc, 'ul', [], "[ul]", "\n[/ul]");
|
||||||
self::tagToBBCode($doc, 'ol', [], "[list=1]", "[/list]");
|
self::tagToBBCode($doc, 'ol', [], "[ol]", "\n[/ol]");
|
||||||
self::tagToBBCode($doc, 'li', [], "[*]", "");
|
self::tagToBBCode($doc, 'li', [], "\n[*]", "");
|
||||||
|
|
||||||
self::tagToBBCode($doc, 'hr', [], "[hr]", "");
|
self::tagToBBCode($doc, 'hr', [], "[hr]", "");
|
||||||
|
|
||||||
|
@ -349,33 +349,6 @@ class HTML
|
||||||
$message = str_replace("\n\n\n", "\n\n", $message);
|
$message = str_replace("\n\n\n", "\n\n", $message);
|
||||||
} while ($oldmessage != $message);
|
} while ($oldmessage != $message);
|
||||||
|
|
||||||
do {
|
|
||||||
$oldmessage = $message;
|
|
||||||
$message = str_replace(
|
|
||||||
[
|
|
||||||
"[/size]\n\n",
|
|
||||||
"\n[hr]",
|
|
||||||
"[hr]\n",
|
|
||||||
"\n[list",
|
|
||||||
"[/list]\n",
|
|
||||||
"\n[/",
|
|
||||||
"[list]\n",
|
|
||||||
"[list=1]\n",
|
|
||||||
"\n[*]"],
|
|
||||||
[
|
|
||||||
"[/size]\n",
|
|
||||||
"[hr]",
|
|
||||||
"[hr]",
|
|
||||||
"[list",
|
|
||||||
"[/list]",
|
|
||||||
"[/",
|
|
||||||
"[list]",
|
|
||||||
"[list=1]",
|
|
||||||
"[*]"],
|
|
||||||
$message
|
|
||||||
);
|
|
||||||
} while ($message != $oldmessage);
|
|
||||||
|
|
||||||
$message = str_replace(
|
$message = str_replace(
|
||||||
['[b][b]', '[/b][/b]', '[i][i]', '[/i][/i]'],
|
['[b][b]', '[/b][/b]', '[i][i]', '[/i][/i]'],
|
||||||
['[b]', '[/b]', '[i]', '[/i]'],
|
['[b]', '[/b]', '[i]', '[/i]'],
|
||||||
|
|
|
@ -158,21 +158,21 @@ class BBCodeTest extends FixtureTest
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'bug-7271-condensed-space' => [
|
'bug-7271-condensed-space' => [
|
||||||
'expectedHtml' => '<ul class="listdecimal" style="list-style-type:decimal;"><li> <a href="http://example.com/" target="_blank" rel="noopener noreferrer">http://example.com/</a></li></ul>',
|
'expectedHtml' => '<ol><li> <a href="http://example.com/" target="_blank" rel="noopener noreferrer">http://example.com/</a></li></ol>',
|
||||||
'text' => '[ol][*] http://example.com/[/ol]',
|
'text' => '[ol][*] http://example.com/[/ol]',
|
||||||
],
|
],
|
||||||
'bug-7271-condensed-nospace' => [
|
'bug-7271-condensed-nospace' => [
|
||||||
'expectedHtml' => '<ul class="listdecimal" style="list-style-type:decimal;"><li><a href="http://example.com/" target="_blank" rel="noopener noreferrer">http://example.com/</a></li></ul>',
|
'expectedHtml' => '<ol><li><a href="http://example.com/" target="_blank" rel="noopener noreferrer">http://example.com/</a></li></ol>',
|
||||||
'text' => '[ol][*]http://example.com/[/ol]',
|
'text' => '[ol][*]http://example.com/[/ol]',
|
||||||
],
|
],
|
||||||
'bug-7271-indented-space' => [
|
'bug-7271-indented-space' => [
|
||||||
'expectedHtml' => '<ul class="listbullet" style="list-style-type:circle;"><li> <a href="http://example.com/" target="_blank" rel="noopener noreferrer">http://example.com/</a></li></ul>',
|
'expectedHtml' => '<ul><li> <a href="http://example.com/" target="_blank" rel="noopener noreferrer">http://example.com/</a></li></ul>',
|
||||||
'text' => '[ul]
|
'text' => '[ul]
|
||||||
[*] http://example.com/
|
[*] http://example.com/
|
||||||
[/ul]',
|
[/ul]',
|
||||||
],
|
],
|
||||||
'bug-7271-indented-nospace' => [
|
'bug-7271-indented-nospace' => [
|
||||||
'expectedHtml' => '<ul class="listbullet" style="list-style-type:circle;"><li><a href="http://example.com/" target="_blank" rel="noopener noreferrer">http://example.com/</a></li></ul>',
|
'expectedHtml' => '<ul><li><a href="http://example.com/" target="_blank" rel="noopener noreferrer">http://example.com/</a></li></ul>',
|
||||||
'text' => '[ul]
|
'text' => '[ul]
|
||||||
[*]http://example.com/
|
[*]http://example.com/
|
||||||
[/ul]',
|
[/ul]',
|
||||||
|
@ -259,13 +259,21 @@ Karl Marx - Die ursprüngliche Akkumulation
|
||||||
'text' => '[emoji=https://fedi.underscore.world/emoji/custom/custom/heart_nb.png]:heart_nb:[/emoji]',
|
'text' => '[emoji=https://fedi.underscore.world/emoji/custom/custom/heart_nb.png]:heart_nb:[/emoji]',
|
||||||
],
|
],
|
||||||
'task-12900-multiple-paragraphs' => [
|
'task-12900-multiple-paragraphs' => [
|
||||||
'expectedHTML' => '<h1>Header</h1><ul class="listbullet" style="list-style-type:circle;"><li>One</li><li>Two</li></ul><p>This is a paragraph<br>with a line feed.</p><p>Second Chapter</p>',
|
'expectedHTML' => '<h1>Header</h1><ul><li>One</li><li>Two</li></ul><p>This is a paragraph<br>with a line feed.</p><p>Second Chapter</p>',
|
||||||
'text' => "[h1]Header[/h1][ul][*]One[*]Two[/ul]\n\nThis is a paragraph\nwith a line feed.\n\nSecond Chapter",
|
'text' => "[h1]Header[/h1][ul][*]One[*]Two[/ul]\n\nThis is a paragraph\nwith a line feed.\n\nSecond Chapter",
|
||||||
],
|
],
|
||||||
'task-12900-header-with-paragraphs' => [
|
'task-12900-header-with-paragraphs' => [
|
||||||
'expectedHTML' => '<h1>Header</h1><p>Some Chapter</p>',
|
'expectedHTML' => '<h1>Header</h1><p>Some Chapter</p>',
|
||||||
'text' => '[h1]Header[/h1]Some Chapter',
|
'text' => '[h1]Header[/h1]Some Chapter',
|
||||||
]
|
],
|
||||||
|
'bug-12842-ul-newlines' => [
|
||||||
|
'expectedHTML' => '<p>This is:</p><ul><li>some<br></li><li>amazing<br></li><li>list</li></ul>',
|
||||||
|
'text' => "This is:\r\n[ul]\r\n[*]some\r\n[*]amazing\r\n[*]list\r\n[/ul]",
|
||||||
|
],
|
||||||
|
'bug-12842-ol-newlines' => [
|
||||||
|
'expectedHTML' => '<p>This is:</p><ol><li>some<br></li><li>amazing<br></li><li>list</li></ol>',
|
||||||
|
'text' => "This is:\r\n[ol]\r\n[*]some\r\n[*]amazing\r\n[*]list\r\n[/ol]",
|
||||||
|
],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -282,8 +290,9 @@ Karl Marx - Die ursprüngliche Akkumulation
|
||||||
*
|
*
|
||||||
* @throws InternalServerErrorException
|
* @throws InternalServerErrorException
|
||||||
*/
|
*/
|
||||||
public function testConvert(string $expectedHtml, string $text, $try_oembed = false, int $simpleHtml = 0, bool $forPlaintext = false)
|
public function testConvert(string $expectedHtml, string $text, bool $try_oembed = true, int $simpleHtml = BBCode::INTERNAL, bool $forPlaintext = false)
|
||||||
{
|
{
|
||||||
|
// This assumes system.remove_multiplicated_lines = false
|
||||||
$actual = BBCode::convert($text, $try_oembed, $simpleHtml, $forPlaintext);
|
$actual = BBCode::convert($text, $try_oembed, $simpleHtml, $forPlaintext);
|
||||||
|
|
||||||
self::assertEquals($expectedHtml, $actual);
|
self::assertEquals($expectedHtml, $actual);
|
||||||
|
|
|
@ -88,6 +88,24 @@ its surprisingly good",
|
||||||
'expectedBBCode' => '[url=https://dev-friendica.mrpetovan.com/profile/hypolite]@hypolite[/url] 0',
|
'expectedBBCode' => '[url=https://dev-friendica.mrpetovan.com/profile/hypolite]@hypolite[/url] 0',
|
||||||
'html' => '<p><span class="h-card"><a href="https://dev-friendica.mrpetovan.com/profile/hypolite" class="u-url mention">@<span>hypolite</span></a></span> 0</p>',
|
'html' => '<p><span class="h-card"><a href="https://dev-friendica.mrpetovan.com/profile/hypolite" class="u-url mention">@<span>hypolite</span></a></span> 0</p>',
|
||||||
],
|
],
|
||||||
|
'bug-12842-ul-new-lines' => [
|
||||||
|
'expectedBBCode' => 'This is:
|
||||||
|
[ul]
|
||||||
|
[*]some
|
||||||
|
[*]amazing
|
||||||
|
[*]list
|
||||||
|
[/ul]',
|
||||||
|
'html'=> '<p>This is:</p><ul><li>some</li><li>amazing</li><li>list</li></ul>',
|
||||||
|
],
|
||||||
|
'bug-12842-ol-new-lines' => [
|
||||||
|
'expectedBBCode' => 'This is:
|
||||||
|
[ol]
|
||||||
|
[*]some
|
||||||
|
[*]amazing
|
||||||
|
[*]list
|
||||||
|
[/ol]',
|
||||||
|
'html'=> '<p>This is:</p><ol><li>some</li><li>amazing</li><li>list</li></ol>',
|
||||||
|
],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user