diff --git a/src/Libraries/Microsoft.Extensions.DataIngestion.Markdig/MarkdownParser.cs b/src/Libraries/Microsoft.Extensions.DataIngestion.Markdig/MarkdownParser.cs index 8ef2b27d152..5cb1b810e71 100644 --- a/src/Libraries/Microsoft.Extensions.DataIngestion.Markdig/MarkdownParser.cs +++ b/src/Libraries/Microsoft.Extensions.DataIngestion.Markdig/MarkdownParser.cs @@ -228,6 +228,10 @@ private static IngestionDocumentSection MapQuoteBlock(QuoteBlock quoteBlock, boo { content.Append(codeInline.Content); } + else if (inline is HtmlInline htmlInline) + { + content.Append(htmlInline.Tag); + } else { throw new NotSupportedException($"Inline type '{inline.GetType().Name}' is not supported."); diff --git a/test/Libraries/Microsoft.Extensions.DataIngestion.Tests/Readers/MarkdownReaderTests.cs b/test/Libraries/Microsoft.Extensions.DataIngestion.Tests/Readers/MarkdownReaderTests.cs index dce6d996821..583bad91d83 100644 --- a/test/Libraries/Microsoft.Extensions.DataIngestion.Tests/Readers/MarkdownReaderTests.cs +++ b/test/Libraries/Microsoft.Extensions.DataIngestion.Tests/Readers/MarkdownReaderTests.cs @@ -133,6 +133,32 @@ public async Task SupportsTablesWithImages() Assert.Equal("Latest logo", img.AlternativeText); } + [ConditionalFact] + public async Task SupportsInlineHtml() + { + string markdownContent = "This has [1] inline HTML."; + + IngestionDocument document = await ReadAsync(markdownContent); + + var paragraph = Assert.Single(document.EnumerateContent().OfType()); + Assert.Equal("This has [1] inline HTML.", paragraph.Text); + Assert.Equal(markdownContent, paragraph.GetMarkdown()); + } + + [ConditionalFact] + public async Task SupportsMultipleInlineHtmlElements() + { + string markdownContent = """ + Text with bold, italic, subscript, and superscript tags. + """; + + IngestionDocument document = await ReadAsync(markdownContent); + + var paragraph = Assert.Single(document.EnumerateContent().OfType()); + Assert.Equal("Text with bold, italic, subscript, and superscript tags.", paragraph.Text); + Assert.Equal(markdownContent, paragraph.GetMarkdown()); + } + private async Task ReadAsync(string content) { using MemoryStream stream = new(System.Text.Encoding.UTF8.GetBytes(content));