diff --git a/Flow.Launcher/ReleaseNotesWindow.xaml.cs b/Flow.Launcher/ReleaseNotesWindow.xaml.cs index 59646f35ac5..ce7a3e0849a 100644 --- a/Flow.Launcher/ReleaseNotesWindow.xaml.cs +++ b/Flow.Launcher/ReleaseNotesWindow.xaml.cs @@ -189,31 +189,46 @@ private static async Task GetReleaseNotesMarkdownAsync() var releases = JsonSerializer.Deserialize>(releaseNotesJSON); // Get the latest releases - var latestReleases = releases.OrderByDescending(release => release.PublishedDate).Take(3); + var latestReleases = releases.OrderByDescending(release => release.PublishedDate).Take(3).ToList(); // Build the release notes in Markdown format var releaseNotesHtmlBuilder = new StringBuilder(string.Empty); - foreach (var release in latestReleases) + + for (int i = 0; i < latestReleases.Count; i++) { + var release = latestReleases[i]; releaseNotesHtmlBuilder.AppendLine("# " + release.Name); // Because MdXaml.Html package cannot correctly render images without units, // We need to manually add unit for images // E.g. Replace with var notes = ImageUnitRegex().Replace(release.ReleaseNotes, m => - { - var prefix = m.Groups[1].Value; - var widthValue = m.Groups[2].Value; - var quote = m.Groups[3].Value; - var suffix = m.Groups[4].Value; - // Only replace if width is number like 500 without units like 500px - if (IsNumber(widthValue)) - return $"{prefix}{widthValue}px{quote}{suffix}"; - return m.Value; - }); + { + var prefix = m.Groups[1].Value; + var widthValue = m.Groups[2].Value; + var quote = m.Groups[3].Value; + var suffix = m.Groups[4].Value; + // Only replace if width is number like 500 without units like 500px + if (IsNumber(widthValue)) + return $"{prefix}{widthValue}px{quote}{suffix}"; + return m.Value; + }); releaseNotesHtmlBuilder.AppendLine(notes); releaseNotesHtmlBuilder.AppendLine(); + + // Add separator if it is not last release note + if (i < latestReleases.Count - 1) + { + releaseNotesHtmlBuilder.Append("
"); + releaseNotesHtmlBuilder.Append("\n\n"); + + releaseNotesHtmlBuilder.AppendLine("---"); + + releaseNotesHtmlBuilder.Append("\n\n"); + releaseNotesHtmlBuilder.Append("
"); + releaseNotesHtmlBuilder.Append("\n\n"); + } } return releaseNotesHtmlBuilder.ToString();