diff --git a/Flow.Launcher/ReleaseNotesWindow.xaml.cs b/Flow.Launcher/ReleaseNotesWindow.xaml.cs index 59646f35a..ce7a3e084 100644 --- a/Flow.Launcher/ReleaseNotesWindow.xaml.cs +++ b/Flow.Launcher/ReleaseNotesWindow.xaml.cs @@ -189,31 +189,46 @@ namespace Flow.Launcher 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(); diff --git a/Flow.Launcher/Resources/Controls/Card.xaml b/Flow.Launcher/Resources/Controls/Card.xaml index 33c1299a9..e3c5f8194 100644 --- a/Flow.Launcher/Resources/Controls/Card.xaml +++ b/Flow.Launcher/Resources/Controls/Card.xaml @@ -38,21 +38,21 @@ - + - + - + diff --git a/Flow.Launcher/Resources/Controls/Card.xaml.cs b/Flow.Launcher/Resources/Controls/Card.xaml.cs index c8f788aca..6a70dded2 100644 --- a/Flow.Launcher/Resources/Controls/Card.xaml.cs +++ b/Flow.Launcher/Resources/Controls/Card.xaml.cs @@ -9,7 +9,10 @@ namespace Flow.Launcher.Resources.Controls { Default, Inside, - InsideFit + InsideFit, + First, + Middle, + Last } public Card() diff --git a/Flow.Launcher/SettingPages/Views/SettingsPaneGeneral.xaml b/Flow.Launcher/SettingPages/Views/SettingsPaneGeneral.xaml index 7f8555d65..d114736d5 100644 --- a/Flow.Launcher/SettingPages/Views/SettingsPaneGeneral.xaml +++ b/Flow.Launcher/SettingPages/Views/SettingsPaneGeneral.xaml @@ -91,7 +91,10 @@ - + @@ -196,7 +200,10 @@ - + - + + Sub="{DynamicResource KoreanImeRegistryTooltip}" + Type="First"> + Sub="{DynamicResource KoreanImeOpenLinkToolTip}" + Type="Last">