a fork of iceshrimp.net but a tweaked frontend to my personal liking. waow
fediverse social-media social iceshrimp fedi
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

[backend/libmfm] Fix MfmSerializer dropping leading & trailing whitespace on recursive calls

+12 -10
+12 -10
Iceshrimp.Backend/Core/Helpers/LibMfm/Serialization/MfmSerializer.cs
··· 5 5 6 6 public static class MfmSerializer 7 7 { 8 - public static string Serialize(IEnumerable<MfmNode> nodes) 8 + public static string Serialize(IEnumerable<MfmNode> nodes) => SerializeInternal(nodes).Trim(); 9 + 10 + private static string SerializeInternal(IEnumerable<MfmNode> nodes) 9 11 { 10 12 var result = new StringBuilder(); 11 13 ··· 36 38 case MfmBoldNode: 37 39 { 38 40 result.Append("**"); 39 - result.Append(Serialize(node.Children)); 41 + result.Append(SerializeInternal(node.Children)); 40 42 result.Append("**"); 41 43 break; 42 44 } 43 45 case MfmCenterNode: 44 46 { 45 47 result.Append("<center>"); 46 - result.Append(Serialize(node.Children)); 48 + result.Append(SerializeInternal(node.Children)); 47 49 result.Append("</center>"); 48 50 break; 49 51 } ··· 64 66 } 65 67 66 68 result.Append(' '); 67 - result.Append(Serialize(node.Children)); 69 + result.Append(SerializeInternal(node.Children)); 68 70 result.Append(']'); 69 71 break; 70 72 } ··· 81 83 case MfmItalicNode: 82 84 { 83 85 result.Append('*'); 84 - result.Append(Serialize(node.Children)); 86 + result.Append(SerializeInternal(node.Children)); 85 87 result.Append('*'); 86 88 break; 87 89 } ··· 89 91 { 90 92 if (mfmLinkNode.Silent) result.Append('?'); 91 93 result.Append('['); 92 - result.Append(Serialize(node.Children)); 94 + result.Append(SerializeInternal(node.Children)); 93 95 result.Append(']'); 94 96 result.Append($"({mfmLinkNode.Url})"); 95 97 break; ··· 119 121 case MfmSmallNode: 120 122 { 121 123 result.Append("<small>"); 122 - result.Append(Serialize(node.Children)); 124 + result.Append(SerializeInternal(node.Children)); 123 125 result.Append("</small>"); 124 126 break; 125 127 } 126 128 case MfmStrikeNode: 127 129 { 128 130 result.Append("~~"); 129 - result.Append(Serialize(node.Children)); 131 + result.Append(SerializeInternal(node.Children)); 130 132 result.Append("~~"); 131 133 break; 132 134 } ··· 145 147 } 146 148 case MfmQuoteNode mfmQuoteNode: 147 149 { 148 - var serialized = Serialize(node.Children); 150 + var serialized = SerializeInternal(node.Children); 149 151 var split = serialized.Split('\n'); 150 152 151 153 for (var i = 0; i < split.Length; i++) ··· 167 169 } 168 170 } 169 171 170 - return result.ToString().Trim(); 172 + return result.ToString(); 171 173 } 172 174 }