diff --git a/src/MfGames.Nitride.Handlebars/IdentifyHandlebarsFromContent.cs b/src/MfGames.Nitride.Handlebars/IdentifyHandlebarsFromContent.cs index 5b763b9..b2f73b6 100644 --- a/src/MfGames.Nitride.Handlebars/IdentifyHandlebarsFromContent.cs +++ b/src/MfGames.Nitride.Handlebars/IdentifyHandlebarsFromContent.cs @@ -21,7 +21,7 @@ public class IdentifyHandlebarsFromContent : IOperation Entity entity, ITextContent content) { - string text = content.GetText(); + string text = content.GetTextContentString(); if (text.Contains("{{") && text.Contains("}}")) { diff --git a/src/MfGames.Nitride.Handlebars/RenderContentTemplate.cs b/src/MfGames.Nitride.Handlebars/RenderContentTemplate.cs index 4617a32..28cb22f 100644 --- a/src/MfGames.Nitride.Handlebars/RenderContentTemplate.cs +++ b/src/MfGames.Nitride.Handlebars/RenderContentTemplate.cs @@ -51,7 +51,7 @@ public partial class RenderContentTemplate : OperationBase HasHandlebarsTemplate _, ITextContent content) { - string text = content.GetText(); + string text = content.GetTextContentString(); HandlebarsTemplate template = this.cache.GetLiteralTemplate(text); object model = this.CreateModelCallback!(entity); diff --git a/src/MfGames.Nitride.Html/ConvertHtmlEntitiesToUnicode.cs b/src/MfGames.Nitride.Html/ConvertHtmlEntitiesToUnicode.cs index d749e62..f7cf0d9 100644 --- a/src/MfGames.Nitride.Html/ConvertHtmlEntitiesToUnicode.cs +++ b/src/MfGames.Nitride.Html/ConvertHtmlEntitiesToUnicode.cs @@ -22,7 +22,7 @@ public class ConvertHtmlEntitiesToUnicode : OperationBase Entity entity, ITextContent content) { - string text = content.GetText(); + string text = content.GetTextContentString(); string resolved = WebUtility.HtmlDecode(text); return entity.SetTextContent(resolved); diff --git a/src/MfGames.Nitride.Markdown/ConvertMarkdownToGemtext.cs b/src/MfGames.Nitride.Markdown/ConvertMarkdownToGemtext.cs index fddf29d..d504fdd 100644 --- a/src/MfGames.Nitride.Markdown/ConvertMarkdownToGemtext.cs +++ b/src/MfGames.Nitride.Markdown/ConvertMarkdownToGemtext.cs @@ -44,7 +44,7 @@ public class ConvertMarkdownToGemtext : ConvertMarkdownToBase ITextContent markdownContent, MarkdownPipeline options) { - string markdown = markdownContent.GetText(); + string markdown = markdownContent.GetTextContentString(); string gemtext = MarkdownGemtext.ToGemtext(markdown, options); var content = new StringTextContent(gemtext); diff --git a/src/MfGames.Nitride.Markdown/ConvertMarkdownToHtml.cs b/src/MfGames.Nitride.Markdown/ConvertMarkdownToHtml.cs index 607f443..aa1c1d5 100644 --- a/src/MfGames.Nitride.Markdown/ConvertMarkdownToHtml.cs +++ b/src/MfGames.Nitride.Markdown/ConvertMarkdownToHtml.cs @@ -43,7 +43,7 @@ public class ConvertMarkdownToHtml : ConvertMarkdownToBase MarkdownPipeline options) { // Convert the entity to Html. - string markdown = markdownContent.GetText(); + string markdown = markdownContent.GetTextContentString(); string html = Markdig.Markdown.ToHtml(markdown, options); var htmlContent = new StringTextContent(html); diff --git a/src/MfGames.Nitride.Markdown/MakeSingleLinkListItems.cs b/src/MfGames.Nitride.Markdown/MakeSingleLinkListItems.cs index 687180f..323f818 100644 --- a/src/MfGames.Nitride.Markdown/MakeSingleLinkListItems.cs +++ b/src/MfGames.Nitride.Markdown/MakeSingleLinkListItems.cs @@ -38,7 +38,7 @@ public class MakeSingleLinkListItems : IOperation /// private Entity MakeSingleLinkLists(Entity entity) { - string content = entity.GetText()!; + string content = entity.GetTextContentString()!; string output = Regex.Replace( content, diff --git a/src/MfGames.Nitride.Yaml/NitrideYamlEntityExtensions.cs b/src/MfGames.Nitride.Yaml/NitrideYamlEntityExtensions.cs index 36fba44..cf8a6f1 100644 --- a/src/MfGames.Nitride.Yaml/NitrideYamlEntityExtensions.cs +++ b/src/MfGames.Nitride.Yaml/NitrideYamlEntityExtensions.cs @@ -32,7 +32,7 @@ public static class NitrideYamlEntityExtensions this Entity entity, IDeserializer deserializer) { - string? text = entity.GetText(); + string? text = entity.GetTextContentString(); return text != null ? deserializer.Deserialize(text) diff --git a/src/MfGames.Nitride/Contents/EntityTextContentExtensions.cs b/src/MfGames.Nitride/Contents/EntityTextContentExtensions.cs index 0cae490..5dd6de2 100644 --- a/src/MfGames.Nitride/Contents/EntityTextContentExtensions.cs +++ b/src/MfGames.Nitride/Contents/EntityTextContentExtensions.cs @@ -1,3 +1,5 @@ +using System.Text; + using MfGames.Gallium; namespace MfGames.Nitride.Contents; @@ -41,7 +43,6 @@ public static class EntityTextContentExtensions /// /// The entity to query and modify. /// The content to add to the entity. - /// The base type of the content. /// The entity or a copy with the new component. public static Entity SetTextContent( this Entity entity, @@ -49,4 +50,19 @@ public static class EntityTextContentExtensions { return entity.SetTextContent(new StringTextContent(content)); } + + /// + /// Remove all existing content components from the entity and then adds + /// the new text content as a component into the entity before + /// returning it. + /// + /// The entity to query and modify. + /// The content to add to the entity. + /// The entity or a copy with the new component. + public static Entity SetTextContent( + this Entity entity, + StringBuilder content) + { + return entity.SetTextContent(content.ToString()); + } } diff --git a/src/MfGames.Nitride/Contents/TextContentExtensions.cs b/src/MfGames.Nitride/Contents/TextContentExtensions.cs index 4208250..1ad0921 100644 --- a/src/MfGames.Nitride/Contents/TextContentExtensions.cs +++ b/src/MfGames.Nitride/Contents/TextContentExtensions.cs @@ -6,7 +6,7 @@ namespace MfGames.Nitride.Contents; public static class TextContentExtensions { - public static string GetText(this ITextContent content) + public static string GetTextContentString(this ITextContent content) { var writer = new StringWriter(); using TextReader reader = content.GetReader(); @@ -21,28 +21,28 @@ public static class TextContentExtensions return writer.ToString(); } - public static string? GetText(this IBinaryContent content) + public static string? GetTextContentString(this IBinaryContent content) { if (content is ITextContentConvertable convertableContent) { return convertableContent .ToTextContent() - .GetText(); + .GetTextContentString(); } return null; } - public static string? GetText(this Entity entity) + public static string? GetTextContentString(this Entity entity) { if (entity.TryGet(out ITextContent textContent)) { - return textContent.GetText(); + return textContent.GetTextContentString(); } if (entity.TryGet(out IBinaryContent binaryContent)) { - return binaryContent.GetText(); + return binaryContent.GetTextContentString(); } return null; diff --git a/tests/MfGames.Nitride.Markdown.Tests/MakeSingleLinkListItemsTests.cs b/tests/MfGames.Nitride.Markdown.Tests/MakeSingleLinkListItemsTests.cs index b2b0a4d..de0d134 100644 --- a/tests/MfGames.Nitride.Markdown.Tests/MakeSingleLinkListItemsTests.cs +++ b/tests/MfGames.Nitride.Markdown.Tests/MakeSingleLinkListItemsTests.cs @@ -34,7 +34,7 @@ public class MakeSingleLinkListItemsTests : TestBase MakeSingleLinkListItems? op = context.Resolve(); IEnumerable output = op.Run(input); - string content = output.First().GetText()!.Trim(); + string content = output.First().GetTextContentString()!.Trim(); Assert.Equal("- [Empty](link)", content); } @@ -53,7 +53,7 @@ public class MakeSingleLinkListItemsTests : TestBase MakeSingleLinkListItems? op = context.Resolve(); IEnumerable output = op.Run(input); - string content = output.First().GetText()!.Trim(); + string content = output.First().GetTextContentString()!.Trim(); Assert.Equal("- [Empty space](link)", content); } @@ -72,7 +72,7 @@ public class MakeSingleLinkListItemsTests : TestBase MakeSingleLinkListItems? op = context.Resolve(); IEnumerable output = op.Run(input); - string content = output.First().GetText()!.Trim(); + string content = output.First().GetTextContentString()!.Trim(); Assert.Equal("- Empty", content); } @@ -91,7 +91,7 @@ public class MakeSingleLinkListItemsTests : TestBase MakeSingleLinkListItems? op = context.Resolve(); IEnumerable output = op.Run(input); - string content = output.First().GetText()!.Trim(); + string content = output.First().GetTextContentString()!.Trim(); Assert.Equal("- [Empty space](link)", content); } diff --git a/tests/MfGames.Nitride.Yaml.Tests/ParseYamlHeaderTest.cs b/tests/MfGames.Nitride.Yaml.Tests/ParseYamlHeaderTest.cs index 63af76e..ce304bf 100644 --- a/tests/MfGames.Nitride.Yaml.Tests/ParseYamlHeaderTest.cs +++ b/tests/MfGames.Nitride.Yaml.Tests/ParseYamlHeaderTest.cs @@ -39,7 +39,7 @@ public class ParseYamlHeaderTest : NitrideTestBase string.Empty, }, output.Get() - .GetText() + .GetTextContentString() .Split("\n")); Assert.True(output.Has()); @@ -72,7 +72,7 @@ public class ParseYamlHeaderTest : NitrideTestBase string.Empty, }, output.Get() - .GetText() + .GetTextContentString() .Split("\n")); Assert.True(output.Has()); @@ -109,7 +109,7 @@ public class ParseYamlHeaderTest : NitrideTestBase string.Empty, }, output.Get() - .GetText() + .GetTextContentString() .Split("\n")); Assert.True(output.Has());