# # ChangeLog for src/views/pages/post-edit.ejs in Klonkt # # Generated by Trac 1.6 # 09/09/2026 02:11:05 AM Sun, 09 Aug 2026 07:47:48 GMT Robin [d7e72b8] * package.json (modified) * scripts/backfill-post-types.mjs (added) * src/assets/js/mod/post-edit.js (modified) * src/config/post-types.js (added) * src/routes/posts.js (modified) * src/routes/types.js (modified) * src/services/i18n.js (modified) * src/views/pages/post-edit.ejs (modified) Audio is geen keuze meer: Album en Playlist staan in de balk (shaer- ... Fri, 07 Aug 2026 19:04:08 GMT Robin [3ca7bdf] * src/assets/js/mod/download.js (modified) * src/routes/download.js (modified) * src/routes/posts.js (modified) * src/views/pages/post-edit.ejs (modified) * test/page-modules.test.js (added) De editpagina laadt zijn editor weer, en opslaan zonder module wist ... Fri, 07 Aug 2026 13:38:51 GMT roboburr [fb9a8ad] * src/assets/js/mod/lib.js (modified) * src/assets/js/mod/post-edit.js (added) * src/routes/posts.js (modified) * src/views/pages/post-edit.ejs (modified) De posteditor, de laatste (shaer-bqr, stap 3g) Zeven blokken, ruim ... Tue, 21 Jul 2026 01:54:46 GMT Robin [e685f55] * src/views/pages/paid-gate.ejs (modified) * src/views/pages/paid-passkey.ejs (modified) * src/views/pages/post-edit.ejs (modified) Fix: paid client scripts were blocked by CSP (garbage nonce) The ... Tue, 21 Jul 2026 01:06:47 GMT Robin [928d1c7] * src/config/database.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/views/pages/paid-gate.ejs (added) * src/views/pages/post-edit.ejs (modified) * test/paid-federation.test.js (added) Feature: paid posts slice 2, post model + teaser gate A post can be ... Wed, 01 Jul 2026 21:49:52 GMT roboburr [c06816e] * CHANGELOG.de.md (modified) * CHANGELOG.md (modified) * CHANGELOG.nl.md (modified) * src/routes/posts.js (modified) * src/services/i18n.js (modified) * src/views/pages/post-edit.ejs (modified) feat(audio): sharing openly on the fediverse is one-way + lock the ... Wed, 01 Jul 2026 19:06:45 GMT roboburr [0688b5f] * CHANGELOG.de.md (modified) * CHANGELOG.md (modified) * CHANGELOG.nl.md (modified) * src/config/database.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/Scheduler.js (modified) * src/services/i18n.js (modified) * src/views/pages/post-edit.ejs (modified) * test/activitypub-as2.test.js (modified) * test/post-language.test.js (added) feat(fediverse): post language → AS2 contentMap A post can now ... Wed, 01 Jul 2026 18:55:46 GMT roboburr [d18c60e] * CHANGELOG.de.md (modified) * CHANGELOG.md (modified) * CHANGELOG.nl.md (modified) * src/config/database.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/Scheduler.js (modified) * src/services/i18n.js (modified) * src/views/pages/post-edit.ejs (modified) * src/views/pages/post.ejs (modified) * test/media-alt.test.js (added) feat(fediverse): alt text for images (accessibility → AS2 attachment ... Wed, 01 Jul 2026 13:18:04 GMT roboburr [bb3f67c] * src/services/i18n.js (modified) * src/views/pages/post-edit.ejs (modified) feat(polls): removable options + tidier editor layout Each poll ... Wed, 01 Jul 2026 12:53:32 GMT roboburr [0403187] * CHANGELOG.de.md (modified) * CHANGELOG.md (modified) * CHANGELOG.nl.md (modified) * src/config/database.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/Scheduler.js (modified) * src/services/i18n.js (modified) * src/views/pages/post-edit.ejs (modified) * src/views/pages/post.ejs (modified) * test/polls.test.js (added) feat(fediverse): host your own polls (federate as AS2 Question) A ... Tue, 30 Jun 2026 17:32:33 GMT roboburr [b5a09ce2] * src/views/pages/post-edit.ejs (modified) * src/views/pages/post.ejs (modified) * src/views/shell.ejs (modified) feat(video-cover): frontend — render animated covers as iOS video, ... Tue, 30 Jun 2026 15:26:08 GMT roboburr [28bf7f0] * src/views/pages/post-edit.ejs (modified) fix(editor): animated WebP covers skip the crop editor (were ... Tue, 30 Jun 2026 02:27:57 GMT roboburr [e0a1ec1] * src/routes/posts.js (modified) * src/services/i18n.js (modified) * src/views/pages/post-edit.ejs (modified) feat(editor): per-post "share audio on the fediverse" toggle Adds a ... Sat, 27 Jun 2026 10:06:58 GMT Robin Genis [f3551ec] * src/views/pages/post-edit.ejs (modified) fix(post-edit): typing a content-warning auto-ticks the NSFW checkbox ... Sat, 27 Jun 2026 08:10:43 GMT Robin Genis [b7d4458] * src/config/database.js (modified) * src/routes/activitypub.js (modified) * src/routes/circle.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/Scheduler.js (modified) * src/services/i18n.js (modified) * src/views/pages/post-edit.ejs (modified) * src/views/pages/post.ejs (modified) * src/views/partials/post-card.ejs (modified) * src/views/partials/post-tile.ejs (modified) feat(nsfw): custom content-warning text + blur in the Cirkel - ... Sat, 27 Jun 2026 07:51:44 GMT Robin Genis [837fc9c] * src/assets/css/style.css (modified) * src/config/database.js (modified) * src/routes/activitypub.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/Scheduler.js (modified) * src/services/i18n.js (modified) * src/views/pages/post-edit.ejs (modified) * src/views/pages/post.ejs (modified) * src/views/partials/post-card.ejs (modified) * src/views/partials/post-tile.ejs (modified) * src/views/shell.ejs (modified) feat(posts): NSFW / sensitive content Mark a post NSFW (checkbox in ... Fri, 26 Jun 2026 14:38:00 GMT Robin Genis [c0e00a2] * src/views/pages/post-edit.ejs (modified) * src/views/partials/fedi-tabs.ejs (modified) fix(ios): safe-area top for fullscreen editor toolbar + fedi tabs on ... Thu, 25 Jun 2026 19:55:32 GMT Robin Genis [bf4596d] * src/services/i18n.js (modified) * src/views/pages/post-edit.ejs (modified) feat(editor): post type on top (segmented) + type-aware inputs ... Wed, 24 Jun 2026 17:38:34 GMT Robin Genis [62dea30] * src/views/pages/post-edit.ejs (modified) editor: remove the 'Start writing…' placeholder (lingered behind ... Tue, 23 Jun 2026 18:14:27 GMT Robin Genis [834bcc3] * scripts/backfill-durations.mjs (modified) * scripts/reset-admin.mjs (modified) * src/assets/js/audio-player.js (modified) * src/assets/js/embed-player.js (modified) * src/assets/js/smooth-scroll.js (modified) * src/config/database.js (modified) * src/config/features.js (modified) * src/config/google.js (modified) * src/config/mailer.js (modified) * src/middleware/auth.js (modified) * src/middleware/rate-limit.js (modified) * src/middleware/render.js (modified) * src/middleware/site.js (modified) * src/routes/account.js (modified) * src/routes/admin-audio.js (modified) * src/routes/admin-circle.js (modified) * src/routes/admin-comments.js (modified) * src/routes/admin-epk.js (modified) * src/routes/admin-newsletter.js (modified) * src/routes/admin-patreon.js (modified) * src/routes/admin-seo.js (modified) * src/routes/admin-settings.js (modified) * src/routes/admin-shows.js (modified) * src/routes/admin-sites.js (modified) * src/routes/admin-stats.js (modified) * src/routes/admin-updates.js (modified) * src/routes/admin-users.js (modified) * src/routes/admin.js (modified) * src/routes/artists.js (modified) * src/routes/audio.js (modified) * src/routes/auth.js (modified) * src/routes/changelog.js (modified) * src/routes/circle.js (modified) * src/routes/comments.js (modified) * src/routes/download.js (modified) * src/routes/embed.js (modified) * src/routes/epk.js (modified) * src/routes/federation.js (modified) * src/routes/hub.js (modified) * src/routes/lang.js (modified) * src/routes/linkbio.js (modified) * src/routes/newsletter.js (modified) * src/routes/notifications.js (modified) * src/routes/posts.js (modified) * src/routes/search.js (modified) * src/routes/shows.js (modified) * src/server.js (modified) * src/services/AudioEmbedService.js (modified) * src/services/AudioTranscoder.js (modified) * src/services/CircleFederation.js (modified) * src/services/CircleService.js (modified) * src/services/ImageWebpService.js (modified) * src/services/NotificationService.js (modified) * src/services/PatreonService.js (modified) * src/services/PermissionsService.js (modified) * src/services/PlaylistService.js (modified) * src/services/Scheduler.js (modified) * src/services/SettingsService.js (modified) * src/services/StatsService.js (modified) * src/services/SubscriberService.js (modified) * src/services/ThemeService.js (modified) * src/services/ensurePrimarySite.js (modified) * src/views/pages/account.ejs (modified) * src/views/pages/admin-circle.ejs (modified) * src/views/pages/admin-google.ejs (modified) * src/views/pages/admin-seo.ejs (modified) * src/views/pages/admin-settings.ejs (modified) * src/views/pages/admin-shows.ejs (modified) * src/views/pages/admin-site-edit.ejs (modified) * src/views/pages/admin-users.ejs (modified) * src/views/pages/auth-login.ejs (modified) * src/views/pages/circle-feed.ejs (modified) * src/views/pages/fan-gate.ejs (modified) * src/views/pages/hub-home.ejs (modified) * src/views/pages/post-edit.ejs (modified) * src/views/pages/post.ejs (modified) * src/views/partials/bottom-tab.ejs (modified) * src/views/partials/footer.ejs (modified) * src/views/partials/like-button.ejs (modified) * src/views/partials/post-nav.ejs (modified) * src/views/partials/shared-styles.ejs (modified) * src/views/partials/topnav.ejs (modified) * src/views/partials/track-editor.ejs (modified) i18n: translate Dutch code comments to English across src/ Comments ... Sun, 21 Jun 2026 16:48:27 GMT roboburr [421c2d4] * src/middleware/render.js (modified) * src/routes/admin-settings.js (modified) * src/services/i18n.js (modified) * src/views/pages/admin-settings.ejs (modified) * src/views/pages/post-edit.ejs (modified) feat(instellingen): site timezone — all dates + scheduling in chosen ... Sun, 21 Jun 2026 16:37:18 GMT roboburr [9effb80] * src/server.js (modified) * src/views/pages/post-edit.ejs (modified) fix(editor): CSP blocked blob: image → empty edit dialog img-src ... Sun, 21 Jun 2026 16:32:54 GMT roboburr [015ce46] * src/services/Scheduler.js (modified) * src/services/i18n.js (modified) * src/views/pages/post-edit.ejs (modified) fix(inplannen): scheduled posts never went live + timezone bug (1) ... Sun, 21 Jun 2026 16:27:03 GMT roboburr [5a394e5] * src/views/pages/post-edit.ejs (modified) fix(editor): empty edit dialog on mobile — crop zone had no height ... Sun, 21 Jun 2026 16:19:21 GMT roboburr [48ebfa7] * src/assets/vendor/cropper.min.css (added) * src/assets/vendor/cropper.min.js (added) * src/services/i18n.js (modified) * src/views/pages/post-edit.ejs (modified) feat(editor): rotate/crop/mirror images before upload Cropper.js ... Sun, 21 Jun 2026 15:54:13 GMT roboburr [11b3ba5] * src/routes/posts.js (modified) * src/services/i18n.js (modified) * src/views/pages/post-edit.ejs (modified) fix(editor): schedule publication behind an on/off toggle (no ... Sun, 21 Jun 2026 15:05:14 GMT roboburr [4885eab] * src/services/i18n.js (modified) * src/views/pages/404.ejs (modified) * src/views/pages/account.ejs (modified) * src/views/pages/archive.ejs (modified) * src/views/pages/artists-directory.ejs (modified) * src/views/pages/auth-login.ejs (modified) * src/views/pages/auth-reset-request.ejs (modified) * src/views/pages/auth-reset.ejs (modified) * src/views/pages/changelog.ejs (modified) * src/views/pages/circle-feed.ejs (modified) * src/views/pages/circle-post.ejs (modified) * src/views/pages/download.ejs (modified) * src/views/pages/epk.ejs (modified) * src/views/pages/fan-gate.ejs (modified) * src/views/pages/favorites.ejs (modified) * src/views/pages/home.ejs (modified) * src/views/pages/hub-home.ejs (modified) * src/views/pages/linkbio.ejs (modified) * src/views/pages/my-site.ejs (modified) * src/views/pages/newsletter.ejs (modified) * src/views/pages/post-edit.ejs (modified) * src/views/pages/prutter-conversation.ejs (modified) * src/views/pages/prutter-inbox.ejs (modified) * src/views/pages/tag.ejs (modified) * src/views/pages/type.ejs (modified) * src/views/pages/user.ejs (modified) * src/views/pages/viewer-blocked.ejs (modified) feat(i18n phase 6): remaining public + other pages translated ... Sat, 20 Jun 2026 12:40:14 GMT roboburr [bc83cc8] * src/views/pages/post-edit.ejs (modified) chore(editor): label "Excerpt" → "Samenvatting & Cirkel Preview" ... Sat, 20 Jun 2026 04:46:35 GMT roboburr [fef781e] * src/assets/css/embed.css (modified) * src/assets/js/audio-player.js (modified) * src/assets/js/embed-player.js (modified) * src/routes/audio.js (modified) * src/services/AudioEmbedService.js (modified) * src/views/pages/post-edit.ejs (modified) * src/views/shell.ejs (modified) revert: remove YouTube audio functionality (doesn't work) YouTube ... Sat, 20 Jun 2026 03:42:00 GMT roboburr [73b41eb] * src/assets/css/embed.css (modified) * src/assets/js/embed-player.js (modified) * src/services/AudioEmbedService.js (modified) * src/views/pages/post-edit.ejs (modified) * src/views/shell.ejs (modified) feat(embed): YouTube audio-only option in posts Per embed you now ... Fri, 19 Jun 2026 22:57:07 GMT roboburr [254872f] * src/views/pages/post-edit.ejs (modified) ui(editor): hide "drag image / select text" hint on touch Not ... Fri, 19 Jun 2026 22:56:00 GMT roboburr [b988c96] * src/views/pages/post-edit.ejs (modified) fix(editor): Done button only in fullscreen (specificity) + larger ... Fri, 19 Jun 2026 22:52:51 GMT roboburr [43fea32] * src/views/pages/post-edit.ejs (modified) ui(editor): larger "Done" button in fullscreen Co-Authored-By: ... Fri, 19 Jun 2026 22:44:27 GMT roboburr [9163b15] * CHANGELOG.md (modified) * src/views/pages/post-edit.ejs (modified) ui(editor): simple inline content layout on touch (toolbar hidden) ... Fri, 19 Jun 2026 22:37:36 GMT roboburr [b12e20d] * CHANGELOG.md (modified) * src/views/pages/post-edit.ejs (modified) feat(editor): edit content as a fullscreen "page" with back button + ... Fri, 19 Jun 2026 13:13:05 GMT roboburr [c1a4147] * CHANGELOG.md (modified) * src/views/pages/post-edit.ejs (modified) fix(editor): scroll lock removed — edit page could no longer scroll ... Fri, 19 Jun 2026 13:09:31 GMT roboburr [a623e7e] * CHANGELOG.md (modified) * src/views/pages/post-edit.ejs (modified) ui(editor): tap-to-edit pill sticky at the bottom instead of centred ... Fri, 19 Jun 2026 12:55:44 GMT roboburr [a4f6827] * CHANGELOG.md (modified) * src/views/pages/post-edit.ejs (modified) fix(editor): exit fullscreen scrolls to content top + clearer tap ... Fri, 19 Jun 2026 12:50:52 GMT roboburr [61bb585] * CHANGELOG.md (modified) * src/views/pages/post-edit.ejs (modified) feat(editor): content not typeable inline on touch — editing = ... Fri, 19 Jun 2026 12:42:23 GMT roboburr [de21a3b] * CHANGELOG.md (modified) * src/views/pages/post-edit.ejs (modified) fix(editor): no double scrollbar in fullscreen In fullscreen only ... Fri, 19 Jun 2026 12:38:30 GMT roboburr [e22230e] * src/views/pages/post-edit.ejs (modified) fix(editor): remove 350ms scroll guard + always type fullscreen on ... Fri, 19 Jun 2026 12:35:04 GMT roboburr [f3f43df] * CHANGELOG.md (modified) * src/views/pages/post-edit.ejs (modified) * src/views/shell.ejs (modified) ui: text fields grow with content instead of scrolling internally (no ... Fri, 19 Jun 2026 12:32:57 GMT roboburr [c01f471] * CHANGELOG.md (modified) * src/views/pages/post-edit.ejs (modified) feat(editor): always type fullscreen on mobile/tablet (touch) On ... Fri, 19 Jun 2026 12:24:21 GMT roboburr [7d81265] * CHANGELOG.md (modified) * src/views/pages/post-edit.ejs (modified) fix(editor): toolbar sticky inside the scroll box on mobile The ... Fri, 19 Jun 2026 12:20:35 GMT roboburr [859bace0] * CHANGELOG.md (modified) * src/views/pages/post-edit.ejs (modified) fix(editor): mobile writing field as bounded box with internal scroll ... Fri, 19 Jun 2026 12:14:21 GMT roboburr [2d596cf] * src/views/pages/post-edit.ejs (modified) fix(editor): catch async caret scroll on mobile Chrome (empty caret + ... Fri, 19 Jun 2026 12:09:06 GMT roboburr [f8e8f9e] * src/views/pages/post-edit.ejs (modified) fix(editor): more robust anti-jump on formatting (Chrome) ... Fri, 19 Jun 2026 12:06:00 GMT roboburr [cbfbf88] * CHANGELOG.md (modified) * src/views/pages/post-edit.ejs (modified) fix(editor): no view jump on formatting button — hold scroll position ... Fri, 19 Jun 2026 12:02:20 GMT roboburr [5f7dba2] * CHANGELOG.md (modified) * src/views/pages/post-edit.ejs (modified) * src/views/shell.ejs (modified) fix(editor): action bar correctly above keyboard (no mid-screen bug) ... Fri, 19 Jun 2026 11:56:37 GMT roboburr [408afc1] * CHANGELOG.md (modified) * src/views/pages/post-edit.ejs (modified) fix(editor): Save/Cancel bar above the keyboard on mobile The ... Fri, 19 Jun 2026 11:45:23 GMT roboburr [a0bff44] * CHANGELOG.md (modified) * src/views/pages/post-edit.ejs (modified) fix(editor): no autofocus on title on mobile (no keyboard popup) ... Fri, 19 Jun 2026 11:42:39 GMT roboburr [06f3791] * CHANGELOG.md (modified) * src/views/pages/post-edit.ejs (modified) fix(editor): toolbar stays in view in fullscreen on mobile (visual ... Fri, 19 Jun 2026 11:38:22 GMT roboburr [d2078f4] * CHANGELOG.md (modified) * src/views/pages/post-edit.ejs (modified) feat(editor): full-screen writing mode Button in the editor toolbar ... Fri, 19 Jun 2026 11:35:34 GMT roboburr [16ce669] * CHANGELOG.md (modified) * src/views/pages/post-edit.ejs (modified) ui(editor): clear active/inactive state for formatting on mobile ... Fri, 19 Jun 2026 10:34:24 GMT roboburr [a7e8e19] * CHANGELOG.md (modified) * src/views/pages/post-edit.ejs (modified) fix(editor): mobile — formatting buttons no longer steal focus ... Fri, 19 Jun 2026 08:34:13 GMT roboburr [7eb35ae] * src/views/pages/post-edit.ejs (modified) editor: note that the excerpt is also the Circles summary ... Fri, 19 Jun 2026 04:28:02 GMT roboburr [b9dc94c] * src/config/database.js (modified) * src/routes/posts.js (modified) * src/server.js (modified) * src/services/Scheduler.js (added) * src/views/pages/fan-gate.ejs (added) * src/views/pages/post-edit.ejs (modified) Release scheduling + fan-only previews (premium feature #3) - DB: ... Thu, 18 Jun 2026 16:28:28 GMT roboburr [91d948c] * src/views/pages/post-edit.ejs (modified) Editor: blockquote button is now a real toggle (turning it off works) ... Wed, 17 Jun 2026 01:28:35 GMT roboburr [d3e2987] * src/views/pages/post-edit.ejs (modified) Post editor: Save bar above the audio player instead of below it ... Wed, 17 Jun 2026 01:24:14 GMT roboburr [2beef82] * src/views/pages/post-edit.ejs (modified) Post-editor: hide site tab bar in the editor (focus screen) On ... Wed, 17 Jun 2026 01:18:19 GMT roboburr [ca253750] * src/views/pages/post-edit.ejs (modified) Post-editor: action bar no longer floats on desktop ... Wed, 17 Jun 2026 01:14:00 GMT roboburr [edc462d] * src/views/pages/post-edit.ejs (modified) Post-editor: default status Published (new posts) + friendlier pin ... Mon, 15 Jun 2026 01:48:56 GMT roboburr [1907a18] * src/routes/posts.js (modified) * src/services/AudioEmbedService.js (modified) * src/views/pages/post-edit.ejs (modified) feat: embed media via editor button ([[embed:url]] shortcode) Embed ... Mon, 15 Jun 2026 01:37:31 GMT roboburr [851239c] * src/views/pages/post-edit.ejs (modified) * src/views/partials/topnav.ejs (modified) fix: topnav home button (home icon) + post-edit save/cancel with ... Mon, 15 Jun 2026 01:06:49 GMT roboburr [b50a885] * src/views/pages/post-edit.ejs (modified) * src/views/partials/track-editor.ejs (modified) fix: cover URL field accepts relative /media/ paths (type=url -> ... Wed, 06 May 2026 22:18:18 GMT Robin [7bc636b] * .env.example (added) * .gitignore (added) * README.md (added) * ecosystem.config.cjs (added) * package-lock.json (added) * package.json (added) * src/assets/.well-known/assetlinks.json (added) * src/assets/apk/soundfabrics.apk (added) * src/assets/css/audio.css (added) * src/assets/css/style.css (added) * src/assets/fonts/fraunces-latin-full-italic.woff2 (added) * src/assets/fonts/fraunces-latin-full-normal.woff2 (added) * src/assets/fonts/literata-latin-opsz-italic.woff2 (added) * src/assets/fonts/literata-latin-opsz-normal.woff2 (added) * src/assets/fonts/plus-jakarta-sans-latin-wght-italic.woff2 (added) * src/assets/fonts/plus-jakarta-sans-latin-wght-normal.woff2 (added) * src/assets/js/audio-player.js (added) * src/assets/js/htmx.min.js (added) * src/assets/js/install-app.js (added) * src/config/database.js (added) * src/db/migrate.js (added) * src/db/migrations/001-init.sql (added) * src/middleware/auth.js (added) * src/middleware/rate-limit.js (added) * src/middleware/render.js (added) * src/middleware/site.js (added) * src/routes/account.js (added) * src/routes/admin-audio.js (added) * src/routes/admin-comments.js (added) * src/routes/admin-playlists.js (added) * src/routes/admin-sites.js (added) * src/routes/admin-users.js (added) * src/routes/admin.js (added) * src/routes/audio.js (added) * src/routes/auth.js (added) * src/routes/comments.js (added) * src/routes/feed.js (added) * src/routes/posts.js (added) * src/routes/prutter.js (added) * src/routes/search.js (added) * src/routes/tags.js (added) * src/routes/types.js (added) * src/routes/users.js (added) * src/server.js (added) * src/services/AudioEmbedService.js (added) * src/services/AudioStreamService.js (added) * src/services/AudioTranscoder.js (added) * src/services/CRDTService.js (added) * src/services/HtmlSanitizerService.js (added) * src/services/MarkdownService.js (added) * src/services/PermissionsService.js (added) * src/services/PlatformIcons.js (added) * src/services/PlaylistService.js (added) * src/services/PrutterService.js (added) * src/services/SqliteSessionStore.js (added) * src/services/ThemeService.js (added) * src/views/pages/account.ejs (added) * src/views/pages/admin-audio.ejs (added) * src/views/pages/admin-comments.ejs (added) * src/views/pages/admin-playlists.ejs (added) * src/views/pages/admin-site-edit.ejs (added) * src/views/pages/admin-sites.ejs (added) * src/views/pages/admin-users.ejs (added) * src/views/pages/admin.ejs (added) * src/views/pages/archive.ejs (added) * src/views/pages/auth-login.ejs (added) * src/views/pages/auth-register.ejs (added) * src/views/pages/auth-reset-request.ejs (added) * src/views/pages/auth-reset.ejs (added) * src/views/pages/home.ejs (added) * src/views/pages/post-edit.ejs (added) * src/views/pages/post.ejs (added) * src/views/pages/prutter-conversation.ejs (added) * src/views/pages/prutter-inbox.ejs (added) * src/views/pages/search.ejs (added) * src/views/pages/tag.ejs (added) * src/views/pages/type.ejs (added) * src/views/pages/user.ejs (added) * src/views/pages/welcome.ejs (added) * src/views/partials/bottom-tab.ejs (added) * src/views/partials/footer.ejs (added) * src/views/partials/playlist-editor.ejs (added) * src/views/partials/post-card.ejs (added) * src/views/partials/post-tile.ejs (added) * src/views/partials/profile-header.ejs (added) * src/views/partials/profile-sheet.ejs (added) * src/views/partials/shared-styles.ejs (added) * src/views/partials/topnav.ejs (added) * src/views/partials/track-editor.ejs (added) * src/views/partials/view-switcher.ejs (added) * src/views/shell.ejs (added) Initial commit — PrutFolio v1 source (pulled from Hetzner /srv/prutfolio)