diff --git a/public/_redirects b/public/_redirects index 591356bbd..3fa144266 100644 --- a/public/_redirects +++ b/public/_redirects @@ -1 +1,9 @@ /faq https://radicle.dev/faq 301 +/guides/getting-started https://radicle.dev/guides/quick-start/ 301 +/guides/getting-started/ https://radicle.dev/guides/quick-start/ 301 +/guides/protocol https://radicle.dev/guides/protocol/ 301 +/guides/protocol/ https://radicle.dev/guides/protocol/ 301 +/guides/seeder https://radicle.dev/guides/seeder/ 301 +/guides/seeder/ https://radicle.dev/guides/seeder/ 301 +/guides/user https://radicle.dev/guides/user/ 301 +/guides/user/ https://radicle.dev/guides/user/ 301 diff --git a/public/marketing/marketing.css b/public/marketing/marketing.css index fb4f0da49..8ab72afaa 100644 --- a/public/marketing/marketing.css +++ b/public/marketing/marketing.css @@ -205,7 +205,7 @@ } /* On section-based pages, each top-level block rises and fades in, staggered, - when the page mounts. Markdown docs (glossary, guides) are a flat list + when the page mounts. Markdown docs (glossary, download) are a flat list of paragraphs, so they rise in as a single block instead. */ @keyframes section-rise { from { @@ -233,7 +233,7 @@ animation-delay: 350ms; } -/* Markdown docs (glossary, guides) are a flat element list. Animate the +/* Markdown docs (glossary, download) are a flat element list. Animate the elements with the same timing (no stagger) so the doc rises in as one block. This lives on the children, not the reused .markdown-content container, so it replays on client-side navigation and not only on hard reload. */ @@ -349,90 +349,6 @@ line-height: 1.6; } -.marketing .guide-hero { - height: 20rem; - object-fit: cover; - border-radius: var(--border-radius-small); - margin-bottom: 2rem; -} - -.marketing .guides-markdown .markdown-content { - max-width: min(66rem, 100%); -} - -.marketing .guides-markdown .markdown-content > :not(aside) { - max-width: none; - width: min(42rem, calc(100% - clamp(15rem, 26vw, 20rem) - 2rem)); -} - -.marketing .guides-markdown .markdown-content aside { - position: static; - float: right; - clear: right; - margin-left: 0; - margin-right: 0; - margin-bottom: 1rem; - margin-inline-start: 0; - width: clamp(15rem, 26vw, 20rem); - font: var(--txt-medium-14); - line-height: 1.6; - color: var(--color-text-tertiary); - background: none !important; - overflow-wrap: anywhere; - word-break: break-word; -} - -@media (max-width: 72rem) { - .marketing .guides-markdown .markdown-content { - max-width: min(62rem, 100%); - } - - .marketing .guides-markdown .markdown-content > :not(aside) { - width: min(38rem, calc(100% - clamp(13.5rem, 30vw, 17rem) - 1.25rem)); - } - - .marketing .guides-markdown .markdown-content aside { - width: clamp(13.5rem, 30vw, 17rem); - margin-inline-start: 1.25rem; - } -} - -@media (max-width: 56rem) { - .marketing .guides-markdown .markdown-content > :not(aside) { - width: min(36rem, calc(100% - clamp(12rem, 32vw, 15rem) - 1rem)); - } - - .marketing .guides-markdown .markdown-content aside { - width: clamp(12rem, 32vw, 15rem); - margin-inline-start: 1rem; - } -} - -@media (max-width: 44rem) { - .marketing .guides-markdown .markdown-content { - max-width: 48rem; - } - - .marketing .guides-markdown .markdown-content > :not(aside) { - max-width: 100%; - width: 100%; - } - - .marketing .guides-markdown .markdown-content aside { - float: none; - clear: none; - width: auto; - margin: 1rem 0; - padding: 0.75rem 1rem; - background: var(--color-surface-subtle) !important; - overflow-wrap: anywhere; - } - - .marketing .guides-markdown .markdown-content aside p { - margin: 0; - } -} - .marketing .markdown-content h1 { font: var(--txt-bold-48); letter-spacing: -0.02em; diff --git a/src/lib/router.ts b/src/lib/router.ts index f6aace796..a39c1beab 100644 --- a/src/lib/router.ts +++ b/src/lib/router.ts @@ -496,7 +496,7 @@ export function extractBaseUrl(hostAndPort: string): BaseUrl { // identifiers are decoded: revision and path segments are deliberately kept // encoded, because branch and tag lookups are keyed on the encoded name. function urlToRoute(url: URL): Route | null { - // Normalize a trailing slash (`/guides/protocol/` → `/guides/protocol`) so + // Normalize a trailing slash (`/glossary/` → `/glossary`) so // both the strict marketing resolver and the lenient repo resolver agree. // Without this the residual empty segment makes marketing routes 404 while // repo routes silently absorb it. `|| "/"` keeps the root path intact. diff --git a/src/marketing/Cli.svelte b/src/marketing/Cli.svelte index c241c8558..f48fe2c59 100644 --- a/src/marketing/Cli.svelte +++ b/src/marketing/Cli.svelte @@ -3,7 +3,6 @@ import CopyCommand from "@app/marketing/CopyCommand.svelte"; import Meta from "@app/marketing/Meta.svelte"; import PlatformBadges from "@app/marketing/PlatformBadges.svelte"; - import { link } from "@app/marketing/link"; const features = [ { @@ -125,8 +124,12 @@

Get started

- - Read the user guide → + + Read the user guide ↗ diff --git a/src/marketing/Docs.svelte b/src/marketing/Docs.svelte index e4fff8d73..9edfc2dcb 100644 --- a/src/marketing/Docs.svelte +++ b/src/marketing/Docs.svelte @@ -7,28 +7,6 @@ export let page: DocsPage; export let component: ComponentType; - const guideHeroes: Record = { - "guides/getting-started": { - src: "/marketing/images/learn/getting-started.jpg", - alt: "Getting Started", - }, - "guides/protocol": { - src: "/marketing/images/learn/protocol.jpg", - alt: "Protocol Guide", - }, - "guides/seeder": { - src: "/marketing/images/learn/seeder.jpg", - alt: "Seeder Guide", - }, - "guides/user": { - src: "/marketing/images/learn/user.jpg", - alt: "User Guide", - }, - }; - - $: isGuide = page.startsWith("guides/"); - $: hero = guideHeroes[page]; - $: isGlossary = page === "glossary"; // Copy a term's permalink to the clipboard instead of navigating to it, and @@ -195,16 +173,7 @@ } -{#if isGuide} -
- - {#if hero} - {hero.alt} - {/if} - - -
-{:else if isGlossary} +{#if isGlossary}
diff --git a/src/marketing/Footer.svelte b/src/marketing/Footer.svelte index c63186715..c85758e5b 100644 --- a/src/marketing/Footer.svelte +++ b/src/marketing/Footer.svelte @@ -73,7 +73,11 @@