@@ -2,7 +2,8 @@ import Link from "@docusaurus/Link";
22import useDocusaurusContext from "@docusaurus/useDocusaurusContext" ;
33import HomepageFeatures from "@site/src/components/HomepageFeatures" ;
44import HomepageSocials from "@site/src/components/HomepageSocials" ;
5- import HeroImage from "@site/static/img/hero-illustration.svg" ;
5+ import { useBaseUrlUtils } from "@docusaurus/useBaseUrl" ;
6+ import ThemedImage from "@theme/ThemedImage" ;
67import Heading from "@theme/Heading" ;
78import Layout from "@theme/Layout" ;
89import clsx from "clsx" ;
@@ -11,70 +12,84 @@ import type { ReactNode } from "react";
1112import styles from "./index.module.css" ;
1213
1314function HomepageHeader ( ) {
14- const { siteConfig } = useDocusaurusContext ( ) ;
15- const brand = ( siteConfig . customFields as any ) ?. brandTitleParts as
16- | {
17- lttle : string ;
18- dot : string ;
19- cloud : string ;
20- suffix : string ;
21- taglineHtml : string ;
22- }
23- | undefined ;
24- return (
25- < header className = { clsx ( "hero hero--primary" , styles . heroBanner ) } >
26- < div className = { clsx ( styles . heroBannerContent ) } >
27- < Heading as = "h1" >
28- { brand ? (
29- < >
30- < span className = { styles . brandTitle } >
31- < span className = { styles . brandTitleParts } >
32- < span className = { styles . brandLttle } > { brand . lttle } </ span >
33- < span className = { styles . brandDot } > { brand . dot } </ span >
34- < span className = { styles . brandCloud } > { brand . cloud } </ span >
35- </ span >
36- < span > { brand . suffix } </ span >
37- </ span >
38- </ >
39- ) : (
40- siteConfig . title
41- ) }
42- </ Heading >
43- < p
44- className = { styles . brandTagline }
45- dangerouslySetInnerHTML = { {
46- __html : brand ?. taglineHtml || siteConfig . tagline ,
47- } }
48- />
49- < code className = { styles . heroBannerCode } >
50- < span className = { styles . green } > curl</ span > { " " }
51- < span className = { styles . purpleItalic } > -fsSL</ span > { " " }
52- < span > https://install.lttle.sh</ span > < span > |</ span > { " " }
53- < span className = { styles . green } > bash</ span >
54- </ code >
55- < div className = { styles . buttons } >
56- < Link className = "button button--lg" to = "/docs" >
57- start now
58- </ Link >
59- </ div >
60- </ div >
15+ const { withBaseUrl } = useBaseUrlUtils ( ) ;
16+ const { siteConfig } = useDocusaurusContext ( ) ;
17+ const brand = ( siteConfig . customFields as any ) ?. brandTitleParts as
18+ | {
19+ lttle : string ;
20+ dot : string ;
21+ cloud : string ;
22+ suffix : string ;
23+ taglineHtml : string ;
24+ }
25+ | undefined ;
26+ return (
27+ < header className = { clsx ( "hero hero--primary" , styles . heroBanner ) } >
28+ < div className = { clsx ( styles . heroBannerContent ) } >
29+ < Heading as = "h1" >
30+ { brand ? (
31+ < >
32+ < span className = { styles . brandTitle } >
33+ < span className = { styles . brandTitleParts } >
34+ < span className = { styles . brandLttle } >
35+ { brand . lttle }
36+ </ span >
37+ < span className = { styles . brandDot } >
38+ { brand . dot }
39+ </ span >
40+ < span className = { styles . brandCloud } >
41+ { brand . cloud }
42+ </ span >
43+ </ span >
44+ < span > { brand . suffix } </ span >
45+ </ span >
46+ </ >
47+ ) : (
48+ siteConfig . title
49+ ) }
50+ </ Heading >
51+ < p
52+ className = { styles . brandTagline }
53+ dangerouslySetInnerHTML = { {
54+ __html : brand ?. taglineHtml || siteConfig . tagline ,
55+ } }
56+ />
57+ < code className = { styles . heroBannerCode } >
58+ < span className = { styles . green } > curl</ span > { " " }
59+ < span className = { styles . purpleItalic } > -fsSL</ span > { " " }
60+ < span > https://install.lttle.sh</ span > < span > |</ span > { " " }
61+ < span className = { styles . green } > bash</ span >
62+ </ code >
63+ < div className = { styles . buttons } >
64+ < Link className = "button button--lg" to = "/docs" >
65+ start now
66+ </ Link >
67+ </ div >
68+ </ div >
6169
62- < div className = { clsx ( styles . heroBannerImage ) } >
63- < HeroImage className = { styles . heroImage } />
64- </ div >
65- </ header >
66- ) ;
70+ < div className = { clsx ( styles . heroBannerImage ) } >
71+ < ThemedImage
72+ className = { styles . heroImage }
73+ alt = "Hero illustration"
74+ sources = { {
75+ light : withBaseUrl ( "/img/hero-illustration.svg" ) ,
76+ dark : withBaseUrl ( "/img/hero-illustration-dark.svg" ) ,
77+ } }
78+ />
79+ </ div >
80+ </ header >
81+ ) ;
6782}
6883
6984export default function Home ( ) : ReactNode {
70- const { siteConfig } = useDocusaurusContext ( ) ;
71- return (
72- < Layout title = { `${ siteConfig . title } ` } description = { siteConfig . tagline } >
73- < HomepageHeader />
74- < main >
75- < HomepageFeatures />
76- < HomepageSocials />
77- </ main >
78- </ Layout >
79- ) ;
85+ const { siteConfig } = useDocusaurusContext ( ) ;
86+ return (
87+ < Layout title = { `${ siteConfig . title } ` } description = { siteConfig . tagline } >
88+ < HomepageHeader />
89+ < main >
90+ < HomepageFeatures />
91+ < HomepageSocials />
92+ </ main >
93+ </ Layout >
94+ ) ;
8095}
0 commit comments