NEWS RELAUNCH CUTOVER: promote the hub to /, feed to /news, go public
The big flip. /home3 (hub) becomes /; the feed lives at /news; both indexable. - PROMOTE: routes/+page.svelte is now the hub (was the interim NewsFeed wrapper); noindex removed; "Read more good news" → /news. routes/home3 + home2 deleted. - routes/+page.js: redirects legacy root-query links (/?view=latest, /?tag, /?source, /?q, /?view=today→highlights) to /news before the hub renders (no flash). - /news: noindex dropped (route meta + Caddy @newsHidden removed); now public. - LINKS: HubBar brand/Home → /, News default → /news; HubShell/art/play back → /; account Following + share.py Explore/Browse/source → /news. - FOOTER: one shared Footer.svelte (motto + Send feedback + slot) across Hub/News/ Play/Art/HubShell/Account/Zen; global layout footer removed (FeedbackModal stays). - SITEMAP: + /news /art /play /word /quote /onthisday; cap 5k→50k; gated on has-summary; paywalled excluded; HEAD now 200 (api_route GET+HEAD). - Head-patcher: /news entry. PWA + shell description broadened to the hub. - Caddy: @newsHidden dropped; @hidden now admin-only (word/quote/onthisday public); /home2,/home3 → / 301. Mirrored to deploy/caddy snapshot. 425 backend + 36 frontend tests green; build clean; Caddy valid. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
import { getJSON } from '$lib/api.js';
|
||||
import { afterNavigate, goto } from '$app/navigation';
|
||||
import HubBar from '$lib/components/HubBar.svelte';
|
||||
import Footer from '$lib/components/Footer.svelte';
|
||||
|
||||
// Virtual frames the viewer can switch between — remembered locally, no account needed.
|
||||
const FRAMES = [
|
||||
@@ -38,7 +39,7 @@
|
||||
afterNavigate(({ from }) => { if (from) cameFromApp = true; });
|
||||
function goBack() {
|
||||
if (cameFromApp && typeof history !== 'undefined') history.back();
|
||||
else goto('/home3', { replaceState: true });
|
||||
else goto('/', { replaceState: true });
|
||||
}
|
||||
|
||||
// Woods are built from four real mitered rails (grain turns at the corners); metals/none aren't.
|
||||
@@ -213,7 +214,7 @@
|
||||
{/if}
|
||||
</main>
|
||||
|
||||
<footer class="foot">upbeatBytes — no ads, no paywalls, no doomscrolling.</footer>
|
||||
<Footer />
|
||||
</div>
|
||||
|
||||
{#if zoom && art}
|
||||
@@ -489,11 +490,6 @@
|
||||
|
||||
.note { color: var(--muted); font-size: 1.05rem; margin-top: 40px; }
|
||||
|
||||
.foot {
|
||||
text-align: center; color: var(--muted); font-size: 0.84rem;
|
||||
padding: 28px 16px 36px; border-top: 1px solid var(--line); margin-top: 24px;
|
||||
}
|
||||
|
||||
.lightbox {
|
||||
position: fixed; inset: 0; z-index: 50; border: none; cursor: zoom-out;
|
||||
/* A soft, top-lit gallery wall — lighter than the page so every frame (Black
|
||||
|
||||
Reference in New Issue
Block a user