diff --git a/src/app/feed.xml/route.ts b/src/app/feed.xml/route.ts
index 99d97d0..a0c9fc6 100644
--- a/src/app/feed.xml/route.ts
+++ b/src/app/feed.xml/route.ts
@@ -72,39 +72,54 @@ function formatRssDate(dateStr: string) {
* @returns The formatted release note as a HTML string.
*/
function formatReleaseNote(releaseNote: ReleaseNote) {
- let content =
- '
If you encounter any issues, please report them on the issues page. Thanks everyone for your feedback! ❤️
';
+ let content = `
+ If you encounter any issues, please report them on the issues page.
+ Thanks everyone for your feedback! ❤️
+
`;
+
+ if (releaseNote.image) {
+ content += `
`;
+ }
if (releaseNote.extra) {
content += `${releaseNote.extra.replace(/(\n)/g, "
")}
`;
}
- if (releaseNote.breakingChanges) {
- content += `⚠️ Breaking changes
`;
- content += ``;
- for (const breakingChange of releaseNote.breakingChanges) {
- content += `- ${breakingChange}
`;
- }
- content += `
`;
- }
-
- if (releaseNote.features) {
- content += `⭐ Features
`;
- content += ``;
- for (const feature of releaseNote.features) {
- content += `- ${feature}
`;
- }
- content += `
`;
- }
-
- if (releaseNote.fixes) {
- content += `✓ Fixes
`;
- content += ``;
- for (const fix of releaseNote.fixes) {
- content += `- ${fix.description}
`;
- }
- content += `
`;
- }
+ content += addReleaseNoteSection("⚠️ Breaking changes", releaseNote.breakingChanges);
+ content += addReleaseNoteSection("✓ Fixes", releaseNote.fixes?.map(fixToReleaseNote));
+ content += addReleaseNoteSection("🖌 Theme Changes", releaseNote.themeChanges)
+ content += addReleaseNoteSection("⭐ Features", releaseNote.features);
return content;
}
+
+function addReleaseNoteSection(title: string, items?: string[]): string {
+ if (!items) {
+ return "";
+ }
+
+ let content = `${title}
`;
+ content += ``;
+ for (const item of items) {
+ if (item && item.length > 0) {
+ content += `- ${item}
`;
+ }
+ }
+ content += `
`;
+ return content;
+}
+
+function fixToReleaseNote(fix?: Exclude[number]) {
+ if (!fix || !fix.description || fix.description.length === 0) {
+ return "";
+ }
+
+ let note = fix.description;
+ if (fix.issue) {
+ note += ` (#${fix.issue})`;
+ }
+ return note;
+}