diff --git a/src/Spectre.Console.Tests/Unit/MarkupTests.cs b/src/Spectre.Console.Tests/Unit/MarkupTests.cs index a1355e4..51ff09b 100644 --- a/src/Spectre.Console.Tests/Unit/MarkupTests.cs +++ b/src/Spectre.Console.Tests/Unit/MarkupTests.cs @@ -36,5 +36,21 @@ namespace Spectre.Console.Tests.Unit // Then console.Output.ShouldBe("Hello [ World ] !"); } + + [Theory] + [InlineData("Hello [link=http://example.com]example.com[/]", "Hello example.com")] + [InlineData("Hello [link=http://example.com]http://example.com[/]", "Hello http://example.com")] + public void Should_Render_Links_As_Expected(string input, string output) + { + // Given + var console = new PlainConsole(); + var markup = new Markup(input); + + // When + console.Render(markup); + + // Then + console.Output.ShouldBe(output); + } } } diff --git a/src/Spectre.Console/Internal/Text/Markup/MarkupParser.cs b/src/Spectre.Console/Internal/Text/Markup/MarkupParser.cs index 3118773..114c675 100644 --- a/src/Spectre.Console/Internal/Text/Markup/MarkupParser.cs +++ b/src/Spectre.Console/Internal/Text/Markup/MarkupParser.cs @@ -13,7 +13,6 @@ namespace Spectre.Console.Internal throw new ArgumentNullException(nameof(text)); } - text = Emoji.Replace(text); style ??= Style.Plain; var result = new Paragraph(); @@ -47,7 +46,7 @@ namespace Spectre.Console.Internal { // Get the effecive style. var effectiveStyle = style.Combine(stack.Reverse()); - result.Append(token.Value, effectiveStyle); + result.Append(Emoji.Replace(token.Value), effectiveStyle); } else {