From 7c34c3446f20ec3323f13614b1cb2b60cbc2285b Mon Sep 17 00:00:00 2001 From: Silberengel Date: Fri, 13 Feb 2026 20:15:28 +0100 Subject: [PATCH] implement piper --- package-lock.json | 3 +- package.json | 1 + public/changelog.yaml | 23 +++ .../components/content/FileExplorer.svelte | 7 +- src/lib/components/modals/UpdateModal.svelte | 73 +++++++++- src/lib/services/changelog.ts | 92 ++++++++++++ src/lib/services/content/git-repo-fetcher.ts | 14 +- src/lib/services/github-api.ts | 137 ++++++++++++++++++ src/routes/about/+page.svelte | 83 ++++++----- 9 files changed, 379 insertions(+), 54 deletions(-) create mode 100644 public/changelog.yaml create mode 100644 src/lib/services/changelog.ts create mode 100644 src/lib/services/github-api.ts diff --git a/package-lock.json b/package-lock.json index 79fef9b..10ace07 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,6 +30,7 @@ "emoji-picker-element": "^1.28.1", "highlight.js": "^11.11.1", "idb": "^8.0.0", + "js-yaml": "^4.1.1", "lucide-svelte": "^0.563.0", "marked": "^11.1.1", "nostr-tools": "^2.22.1", @@ -3943,7 +3944,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, "license": "Python-2.0" }, "node_modules/aria-query": { @@ -6635,7 +6635,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", - "dev": true, "license": "MIT", "dependencies": { "argparse": "^2.0.1" diff --git a/package.json b/package.json index dacef21..2f3519c 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ "emoji-picker-element": "^1.28.1", "highlight.js": "^11.11.1", "idb": "^8.0.0", + "js-yaml": "^4.1.1", "lucide-svelte": "^0.563.0", "marked": "^11.1.1", "nostr-tools": "^2.22.1", diff --git a/public/changelog.yaml b/public/changelog.yaml new file mode 100644 index 0000000..06501ed --- /dev/null +++ b/public/changelog.yaml @@ -0,0 +1,23 @@ +versions: + '0.3.1': + - 'Media attachments rendering in all feeds and views' + - 'NIP-92/NIP-94 image tags support' + - 'Blossom support for media attachments' + - 'OP-only view added to feed' + - 'Text to Speech (TTS) support added, for the languages: Czech, German, British English, American English, Spanish, French, Dutch, Polish, Russian, Turkish, and Chinese' + '0.3.0': + - 'Version history modal added to event menu' + - 'Event and npub deletion/reporting added' + - 'User and event reporting added' + - 'Profile settings added' + - 'Finished implementing themes' + - 'Add Edit/Clone of all events' + '0.2.1': + - 'Themes added: Fog, Forum, Socialmedia, and Terminal' + - 'Find page added: search for content by hashtags, users, and content, full-text search' + '0.2.0': + - 'Version management and update system' + - 'About page with product information' + - 'Improved user experience with automatic routing to About page on first visit and after updates' + - 'Enhanced settings page with About button' + - 'Better version tracking and display' diff --git a/src/lib/components/content/FileExplorer.svelte b/src/lib/components/content/FileExplorer.svelte index 3b20aa1..e220c2a 100644 --- a/src/lib/components/content/FileExplorer.svelte +++ b/src/lib/components/content/FileExplorer.svelte @@ -1,5 +1,6 @@
@@ -126,16 +105,27 @@
-

What's New in Version {appVersion}

+

Changelog

- {#if changelog[appVersion]} -
    - {#each changelog[appVersion] as change} -
  • {change}
  • - {/each} -
+ {#if loadingChangelog} +

Loading changelog...

+ {:else if allVersions.length > 0} + {#each allVersions as version} +
+

Version {version}

+ {#if changelog[version] && changelog[version].length > 0} +
    + {#each changelog[version] as change} +
  • {change}
  • + {/each} +
+ {:else} +

No changelog available for this version.

+ {/if} +
+ {/each} {:else} -

No changelog available for this version.

+

No changelog available.

{/if}
@@ -313,6 +303,25 @@ background: var(--fog-dark-accent, #94a3b8); } + .changelog-version { + margin-bottom: 2rem; + } + + .changelog-version:last-child { + margin-bottom: 0; + } + + .changelog-version-title { + font-size: 1.125rem; + font-weight: 600; + margin: 0 0 0.75rem 0; + color: var(--fog-text, #1f2937); + } + + :global(.dark) .changelog-version-title { + color: var(--fog-dark-text, #f9fafb); + } + .changelog-list { list-style: disc; padding-left: 1.5rem;