diff --git a/website/src/components/ui/ext-link.tsx b/website/src/components/ui/ext-link.tsx new file mode 100644 index 0000000..dcbd27a --- /dev/null +++ b/website/src/components/ui/ext-link.tsx @@ -0,0 +1,15 @@ +interface ExtLinkProps { + href: string + children: React.ReactNode +} + +export const ExtLink = ({ href, children }: ExtLinkProps) => ( + + {children} + +) diff --git a/website/src/pages/community.tsx b/website/src/pages/community.tsx index 9bc36ee..689b1a1 100644 --- a/website/src/pages/community.tsx +++ b/website/src/pages/community.tsx @@ -1,4 +1,5 @@ import { Button } from '@/components/ui/button' +import { ExtLink } from '@/components/ui/ext-link' import { FeatureCard } from '@/components/ui/feature-card' import { Code } from '@/components/ui/inline-code' import { Cols, Eyebrow, PageHead, Prose, Section, SectionHead } from '@/components/ui/layout' @@ -138,14 +139,7 @@ export const Community = () => {

Format and Clippy run clean on every push, and unit tests plus an end-to-end suite against{' '} - - soulfind - {' '} + soulfind{' '} run in CI, so a green checkmark means it built and talked to a server.

diff --git a/website/src/pages/install.tsx b/website/src/pages/install.tsx index 9e5b4dd..c01a5fa 100644 --- a/website/src/pages/install.tsx +++ b/website/src/pages/install.tsx @@ -1,5 +1,6 @@ import { Button } from '@/components/ui/button' import { FeatureCard } from '@/components/ui/feature-card' +import { ExtLink } from '@/components/ui/ext-link' import { Code } from '@/components/ui/inline-code' import { Cols, PageHead, Prose, Section, SectionHead } from '@/components/ui/layout' import { OsIcon, type OsName } from '@/components/ui/os-icon' @@ -28,17 +29,6 @@ const LIB_LINES: TermLine[] = LIB_SRC.split('\n').map((text) => ({ text, })) -const ReleasesLink = ({ children }: { children: React.ReactNode }) => ( - - {children} - -) - interface InstallRoute { id: string os: OsName @@ -75,7 +65,7 @@ const INSTALLS: readonly InstallRoute[] = [ alt: ( <> Homebrew on Linux works the same as on macOS. Without either, the{' '} - releases page has static musl archives for x86-64 and + releases page has static musl archives for x86-64 and arm64 that run on any distribution. ), @@ -92,7 +82,7 @@ const INSTALLS: readonly InstallRoute[] = [ <> Cargo needs the MSVC build tools. To skip both, take the{' '} pc-windows-msvc zip from the{' '} - releases page, unpack it, and put{' '} + releases page, unpack it, and put{' '} soulseek-rs.exe on your PATH. ), @@ -257,15 +247,7 @@ const Steps = () => (

One command per platform. Cargo needs a Rust toolchain from{' '} - - rustup.rs - - ; the other routes don’t. + rustup.rs; the other routes don’t.

{INSTALLS.map((route) => ( @@ -320,15 +302,7 @@ const Steps = () => (

You’ll find the binary at target/release/soulseek-rs. Prebuilt archives for tagged releases are on the{' '} - - releases page - - . + releases page.

@@ -347,25 +321,9 @@ const Steps = () => ( />

- Full API reference on{' '} - - docs.rs - - . The lib API changes between majors, so check the{' '} - - changelog - {' '} - when you upgrade. + Full API reference on docs.rs. The lib API + changes between majors, so check the{' '} + changelog when you upgrade.

@@ -534,6 +492,8 @@ const Uninstall = () => ( { t: 'cm', text: '# while the binary is still there' }, { t: 'cmd', text: 'soulseek-rs completions uninstall' }, { t: 'cmd', text: 'soulseek-rs skills uninstall' }, + { t: 'cm', text: '# whichever way you installed it' }, + { t: 'cmd', text: 'brew uninstall soulseek-rs' }, { t: 'cmd', text: 'cargo uninstall soulseek-rs' }, { t: 'cm', text: '# config and state: searches, downloads, rooms, messages' }, {