@@ -810,13 +810,17 @@ impl<'a> MarkdownParser<'a> {
810810 self . consume_children ( source_range, node, elements) ;
811811 }
812812 markup5ever_rcdom:: NodeData :: Text { contents } => {
813+ let contents = contents. borrow ( ) . to_string ( ) ;
814+ if contents. trim ( ) . is_empty ( ) {
815+ return ;
816+ }
813817 elements. push ( ParsedMarkdownElement :: Paragraph ( vec ! [
814818 MarkdownParagraphChunk :: Text ( ParsedMarkdownText {
815819 source_range,
816820 regions: Vec :: default ( ) ,
817821 region_ranges: Vec :: default ( ) ,
818822 highlights: Vec :: default ( ) ,
819- contents: contents. borrow ( ) . to_string ( ) . into( ) ,
823+ contents: contents. into( ) ,
820824 } ) ,
821825 ] ) ) ;
822826 }
@@ -1389,6 +1393,41 @@ mod tests {
13891393 ) ;
13901394 }
13911395
1396+ #[ gpui:: test]
1397+ async fn test_html_multiple_upfollowing_paragraphs ( ) {
1398+ let parsed = parse (
1399+ "<p>1. Some text more text and many more</p>
1400+ <p>2. Some text more text and many more</p>" ,
1401+ )
1402+ . await ;
1403+
1404+ assert_eq ! (
1405+ ParsedMarkdown {
1406+ children: vec![
1407+ ParsedMarkdownElement :: Paragraph ( vec![ MarkdownParagraphChunk :: Text (
1408+ ParsedMarkdownText {
1409+ source_range: 0 ..44 ,
1410+ contents: "1. Some text more text and many more" . into( ) ,
1411+ highlights: Default :: default ( ) ,
1412+ region_ranges: Default :: default ( ) ,
1413+ regions: Default :: default ( )
1414+ }
1415+ ) ] ) ,
1416+ ParsedMarkdownElement :: Paragraph ( vec![ MarkdownParagraphChunk :: Text (
1417+ ParsedMarkdownText {
1418+ source_range: 44 ..99 ,
1419+ contents: "2. Some text more text and many more" . into( ) ,
1420+ highlights: Default :: default ( ) ,
1421+ region_ranges: Default :: default ( ) ,
1422+ regions: Default :: default ( )
1423+ }
1424+ ) ] )
1425+ ]
1426+ } ,
1427+ parsed
1428+ ) ;
1429+ }
1430+
13921431 #[ gpui:: test]
13931432 async fn test_html_inline_style_elements ( ) {
13941433 let parsed =
0 commit comments