From 73783fa0eee936b6cfbe22abbb5b605a7f3bfd20 Mon Sep 17 00:00:00 2001 From: Laura Hausmann Date: Sun, 10 Nov 2024 22:24:55 +0100 Subject: [PATCH] [backend/libmfm] Fix MfmSerializer dropping leading & trailing whitespace on recursive calls --- .../LibMfm/Serialization/MfmSerializer.cs | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/Iceshrimp.Backend/Core/Helpers/LibMfm/Serialization/MfmSerializer.cs b/Iceshrimp.Backend/Core/Helpers/LibMfm/Serialization/MfmSerializer.cs index 53900a72..22b37ad7 100644 --- a/Iceshrimp.Backend/Core/Helpers/LibMfm/Serialization/MfmSerializer.cs +++ b/Iceshrimp.Backend/Core/Helpers/LibMfm/Serialization/MfmSerializer.cs @@ -5,7 +5,9 @@ namespace Iceshrimp.Backend.Core.Helpers.LibMfm.Serialization; public static class MfmSerializer { - public static string Serialize(IEnumerable nodes) + public static string Serialize(IEnumerable nodes) => SerializeInternal(nodes).Trim(); + + private static string SerializeInternal(IEnumerable nodes) { var result = new StringBuilder(); @@ -36,14 +38,14 @@ public static class MfmSerializer case MfmBoldNode: { result.Append("**"); - result.Append(Serialize(node.Children)); + result.Append(SerializeInternal(node.Children)); result.Append("**"); break; } case MfmCenterNode: { result.Append("
"); - result.Append(Serialize(node.Children)); + result.Append(SerializeInternal(node.Children)); result.Append("
"); break; } @@ -64,7 +66,7 @@ public static class MfmSerializer } result.Append(' '); - result.Append(Serialize(node.Children)); + result.Append(SerializeInternal(node.Children)); result.Append(']'); break; } @@ -81,7 +83,7 @@ public static class MfmSerializer case MfmItalicNode: { result.Append('*'); - result.Append(Serialize(node.Children)); + result.Append(SerializeInternal(node.Children)); result.Append('*'); break; } @@ -89,7 +91,7 @@ public static class MfmSerializer { if (mfmLinkNode.Silent) result.Append('?'); result.Append('['); - result.Append(Serialize(node.Children)); + result.Append(SerializeInternal(node.Children)); result.Append(']'); result.Append($"({mfmLinkNode.Url})"); break; @@ -119,14 +121,14 @@ public static class MfmSerializer case MfmSmallNode: { result.Append(""); - result.Append(Serialize(node.Children)); + result.Append(SerializeInternal(node.Children)); result.Append(""); break; } case MfmStrikeNode: { result.Append("~~"); - result.Append(Serialize(node.Children)); + result.Append(SerializeInternal(node.Children)); result.Append("~~"); break; } @@ -145,7 +147,7 @@ public static class MfmSerializer } case MfmQuoteNode mfmQuoteNode: { - var serialized = Serialize(node.Children); + var serialized = SerializeInternal(node.Children); var split = serialized.Split('\n'); for (var i = 0; i < split.Length; i++) @@ -167,6 +169,6 @@ public static class MfmSerializer } } - return result.ToString().Trim(); + return result.ToString(); } } \ No newline at end of file