diff options
Diffstat (limited to 'src/theme')
-rw-r--r-- | src/theme/BlogPostItem/Header/Author.tsx | 10 | ||||
-rw-r--r-- | src/theme/BlogPostItem/Header/Title.tsx | 8 | ||||
-rw-r--r-- | src/theme/Root.tsx | 6 | ||||
-rw-r--r-- | src/theme/apple-touch-icon.png | bin | 0 -> 6389 bytes | |||
-rw-r--r-- | src/theme/favicon.svg | 1 | ||||
-rw-r--r-- | src/theme/favicon.ts | 7 | ||||
-rw-r--r-- | src/theme/favicon_source.svg | 73 |
7 files changed, 97 insertions, 8 deletions
diff --git a/src/theme/BlogPostItem/Header/Author.tsx b/src/theme/BlogPostItem/Header/Author.tsx index 226caee..7710a98 100644 --- a/src/theme/BlogPostItem/Header/Author.tsx +++ b/src/theme/BlogPostItem/Header/Author.tsx | |||
@@ -6,14 +6,16 @@ | |||
6 | 6 | ||
7 | import Author from '@theme-original/BlogPostItem/Header/Author'; | 7 | import Author from '@theme-original/BlogPostItem/Header/Author'; |
8 | import type AuthorType from '@theme/BlogPostItem/Header/Author'; | 8 | import type AuthorType from '@theme/BlogPostItem/Header/Author'; |
9 | import type {WrapperProps} from '@docusaurus/types'; | 9 | import type { WrapperProps } from '@docusaurus/types'; |
10 | import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; | 10 | import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; |
11 | 11 | ||
12 | type Props = WrapperProps<typeof AuthorType>; | 12 | type Props = WrapperProps<typeof AuthorType>; |
13 | 13 | ||
14 | export default function AuthorWrapper(props: Props): JSX.Element { | 14 | export default function AuthorWrapper(props: Props): JSX.Element { |
15 | const { siteConfig: { url } } = useDocusaurusContext(); | 15 | const { |
16 | const newProps = {...props}; | 16 | siteConfig: { url }, |
17 | } = useDocusaurusContext(); | ||
18 | const newProps = { ...props }; | ||
17 | const { author } = props; | 19 | const { author } = props; |
18 | if (author.url !== undefined && author.url.startsWith(url)) { | 20 | if (author.url !== undefined && author.url.startsWith(url)) { |
19 | const newURL = author.url.substring(url.length); | 21 | const newURL = author.url.substring(url.length); |
@@ -23,5 +25,5 @@ export default function AuthorWrapper(props: Props): JSX.Element { | |||
23 | const newImageURL = author.imageURL.substring(url.length); | 25 | const newImageURL = author.imageURL.substring(url.length); |
24 | newProps.author.imageURL = newImageURL.replace(/\.jpg$/, '.webp'); | 26 | newProps.author.imageURL = newImageURL.replace(/\.jpg$/, '.webp'); |
25 | } | 27 | } |
26 | return <Author {...newProps} /> | 28 | return <Author {...newProps} />; |
27 | } | 29 | } |
diff --git a/src/theme/BlogPostItem/Header/Title.tsx b/src/theme/BlogPostItem/Header/Title.tsx index ced0916..9e19ec9 100644 --- a/src/theme/BlogPostItem/Header/Title.tsx +++ b/src/theme/BlogPostItem/Header/Title.tsx | |||
@@ -13,16 +13,16 @@ | |||
13 | 13 | ||
14 | import clsx from 'clsx'; | 14 | import clsx from 'clsx'; |
15 | import Link from '@docusaurus/Link'; | 15 | import Link from '@docusaurus/Link'; |
16 | import {useBlogPost} from '@docusaurus/theme-common/internal'; | 16 | import { useBlogPost } from '@docusaurus/theme-common/internal'; |
17 | import type {Props} from '@theme/BlogPostItem/Header/Title'; | 17 | import type { Props } from '@theme/BlogPostItem/Header/Title'; |
18 | 18 | ||
19 | import styles from './Title.module.css'; | 19 | import styles from './Title.module.css'; |
20 | 20 | ||
21 | export default function BlogPostItemHeaderTitle({ | 21 | export default function BlogPostItemHeaderTitle({ |
22 | className, | 22 | className, |
23 | }: Props): JSX.Element { | 23 | }: Props): JSX.Element { |
24 | const {metadata, isBlogPostPage} = useBlogPost(); | 24 | const { metadata, isBlogPostPage } = useBlogPost(); |
25 | const {permalink, title} = metadata; | 25 | const { permalink, title } = metadata; |
26 | const TitleHeading = isBlogPostPage ? 'h1' : 'h2'; | 26 | const TitleHeading = isBlogPostPage ? 'h1' : 'h2'; |
27 | return ( | 27 | return ( |
28 | <TitleHeading className={clsx(styles.title, className)}> | 28 | <TitleHeading className={clsx(styles.title, className)}> |
diff --git a/src/theme/Root.tsx b/src/theme/Root.tsx index 32462bb..cb66420 100644 --- a/src/theme/Root.tsx +++ b/src/theme/Root.tsx | |||
@@ -11,6 +11,9 @@ import Root from '@theme-original/Root'; | |||
11 | import ActiveSectionProvider from '@site/src/components/ActiveSectionProvider'; | 11 | import ActiveSectionProvider from '@site/src/components/ActiveSectionProvider'; |
12 | import fontURL from '@site/src/fonts/recursive-latin.woff2?url'; | 12 | import fontURL from '@site/src/fonts/recursive-latin.woff2?url'; |
13 | 13 | ||
14 | import faviconSVG from './favicon.svg?url'; | ||
15 | import appleTouchIcon from './apple-touch-icon.png?url'; | ||
16 | |||
14 | export default function RootWrapper(props: Props) { | 17 | export default function RootWrapper(props: Props) { |
15 | return ( | 18 | return ( |
16 | <ActiveSectionProvider> | 19 | <ActiveSectionProvider> |
@@ -22,6 +25,9 @@ export default function RootWrapper(props: Props) { | |||
22 | type="font/woff2" | 25 | type="font/woff2" |
23 | crossOrigin="anonymous" | 26 | crossOrigin="anonymous" |
24 | /> | 27 | /> |
28 | <link rel="icon" href="/favicon.ico" sizes="32x32" /> | ||
29 | <link rel="icon" href={faviconSVG} type="image/svg+xml" /> | ||
30 | <link rel="apple-touch-icon" href={appleTouchIcon} /> | ||
25 | </Head> | 31 | </Head> |
26 | <Root {...props} /> | 32 | <Root {...props} /> |
27 | </ActiveSectionProvider> | 33 | </ActiveSectionProvider> |
diff --git a/src/theme/apple-touch-icon.png b/src/theme/apple-touch-icon.png new file mode 100644 index 0000000..c108543 --- /dev/null +++ b/src/theme/apple-touch-icon.png | |||
Binary files differ | |||
diff --git a/src/theme/favicon.svg b/src/theme/favicon.svg new file mode 100644 index 0000000..fe02946 --- /dev/null +++ b/src/theme/favicon.svg | |||
@@ -0,0 +1 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><style>@media(prefers-color-scheme:dark){rect{fill:#4285f4}path{fill:#1b1b1d}}</style><rect width="16" height="16" fill="#1e6be6" rx="3" ry="3"/><path fill="#fff" d="M4.915 12.916q-.084.042-.334.056Q4.33 13 4.177 13q-.279 0-.515-.098-.237-.083-.39-.278-.14-.21-.14-.572 0-1.323.07-2.507.083-1.183.181-2.186.111-1.017.195-1.81.097-.809.111-1.38.028-.376 0-.612-.014-.237-.07-.46.14-.042.28-.056.139-.014.32-.027Q4.414 3 4.679 3q.598 0 .96.097.376.098.557.293t.237.529q.084.543.209 1.142.125.585.279 1.198.167.599.348 1.183.18.572.376 1.115.209.543.418 1.016l-.516-.376h.836l-.571.362q.237-.5.46-1.086.222-.599.417-1.253.21-.669.376-1.365.181-.697.32-1.393t.251-1.365q.112-.042.223-.056.126-.014.279-.028.167-.014.404-.014.613 0 .933.112t.46.376.194.71q.084.627.14 1.212.055.571.097 1.114.056.53.098 1.059.042.515.07 1.016l.055.99q.028.487.042.988.028.64.056 1.086.041.432.083.725l.098.515q-.126.042-.349.07-.208.028-.46.028-.43 0-.682-.098t-.348-.306q-.097-.223-.097-.613v-.376q.014-.237.014-.502.014-.278.014-.529 0-.292-.014-.64t-.042-.739q-.028-.404-.056-.85t-.07-.919q-.041-.487-.097-1.002T10.57 5.38l.292.446h-.724l.487-.46q-.111.64-.306 1.337T9.9 8.083q-.209.682-.46 1.295-.236.6-.473 1.073-.223.473-.418.738-.111.042-.265.07t-.306.027q-.209 0-.348-.041-.14-.042-.265-.14-.195-.209-.418-.585-.222-.39-.473-.933Q6.238 9.044 6 8.39q-.222-.668-.431-1.42-.195-.752-.363-1.56l.488.376h-.738l.278-.404q-.055.585-.111 1.128-.056.53-.098 1.03-.041.488-.083.948l-.056.891q-.028.431-.042.836t-.014.808q0 .529.014.988.028.446.07.906z"/></svg> | |||
diff --git a/src/theme/favicon.ts b/src/theme/favicon.ts new file mode 100644 index 0000000..1846748 --- /dev/null +++ b/src/theme/favicon.ts | |||
@@ -0,0 +1,7 @@ | |||
1 | /* | ||
2 | * SPDX-FileCopyrightText: 2023 Kristóf Marussy | ||
3 | * | ||
4 | * SPDX-License-Identifier: MIT | ||
5 | */ | ||
6 | |||
7 | export { default as default } from './favicon.svg?url'; | ||
diff --git a/src/theme/favicon_source.svg b/src/theme/favicon_source.svg new file mode 100644 index 0000000..9a519b6 --- /dev/null +++ b/src/theme/favicon_source.svg | |||
@@ -0,0 +1,73 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
2 | <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||
3 | |||
4 | <svg | ||
5 | width="16" | ||
6 | height="16" | ||
7 | viewBox="0 0 16 16" | ||
8 | version="1.1" | ||
9 | id="svg1" | ||
10 | inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)" | ||
11 | sodipodi:docname="favicon_source.svg" | ||
12 | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||
13 | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||
14 | xmlns="http://www.w3.org/2000/svg" | ||
15 | xmlns:svg="http://www.w3.org/2000/svg"> | ||
16 | <sodipodi:namedview | ||
17 | id="namedview1" | ||
18 | pagecolor="#ffffff" | ||
19 | bordercolor="#666666" | ||
20 | borderopacity="1.0" | ||
21 | inkscape:showpageshadow="2" | ||
22 | inkscape:pageopacity="0.0" | ||
23 | inkscape:pagecheckerboard="0" | ||
24 | inkscape:deskcolor="#d1d1d1" | ||
25 | inkscape:document-units="mm" | ||
26 | showgrid="true" | ||
27 | inkscape:zoom="32" | ||
28 | inkscape:cx="9.671875" | ||
29 | inkscape:cy="2.546875" | ||
30 | inkscape:window-width="2560" | ||
31 | inkscape:window-height="1415" | ||
32 | inkscape:window-x="0" | ||
33 | inkscape:window-y="0" | ||
34 | inkscape:window-maximized="0" | ||
35 | inkscape:current-layer="layer1"> | ||
36 | <inkscape:grid | ||
37 | id="grid1" | ||
38 | units="px" | ||
39 | originx="0" | ||
40 | originy="0" | ||
41 | spacingx="1" | ||
42 | spacingy="1" | ||
43 | empcolor="#3f3fff" | ||
44 | empopacity="0.25098039" | ||
45 | color="#3f3fff" | ||
46 | opacity="0.1254902" | ||
47 | empspacing="4" | ||
48 | dotted="false" | ||
49 | gridanglex="30" | ||
50 | gridanglez="30" | ||
51 | visible="true" /> | ||
52 | </sodipodi:namedview> | ||
53 | <defs | ||
54 | id="defs1" /> | ||
55 | <g | ||
56 | inkscape:label="Layer 1" | ||
57 | inkscape:groupmode="layer" | ||
58 | id="layer1"> | ||
59 | <rect | ||
60 | style="fill:#1e6be6;fill-opacity:1;stroke:#1a1a1a;stroke-width:0;stroke-miterlimit:1.45;paint-order:stroke fill markers" | ||
61 | id="rect1" | ||
62 | width="16" | ||
63 | height="16" | ||
64 | x="0" | ||
65 | y="0" | ||
66 | rx="3" /> | ||
67 | <path | ||
68 | d="m 4.9150366,12.916442 q -0.083566,0.04178 -0.3342624,0.05571 -0.2506968,0.02785 -0.4039004,0.02785 -0.278552,0 -0.5153212,-0.09749 -0.2367692,-0.08357 -0.3899728,-0.278552 -0.139276,-0.208914 -0.139276,-0.571032 0,-1.323122 0.069638,-2.5069678 Q 3.2855074,8.3621172 3.3830006,7.35933 3.4944214,6.3426152 3.577987,5.548742 3.6754802,4.7409412 3.6894078,4.1699096 q 0.027855,-0.3760452 0,-0.6128144 -0.013928,-0.2367692 -0.069638,-0.4596108 0.139276,-0.041783 0.278552,-0.05571 0.139276,-0.013928 0.3203348,-0.027855 0.1949864,-0.013928 0.4596108,-0.013928 0.5988868,0 0.9610044,0.097493 0.3760452,0.097493 0.557104,0.2924796 0.1810588,0.1949864 0.2367692,0.5292488 0.083566,0.5431764 0.208914,1.1420632 0.1253484,0.5849592 0.278552,1.1977736 0.1671312,0.5988868 0.34819,1.183846 0.1810588,0.5710316 0.3760452,1.114208 0.208914,0.5431764 0.417828,1.0167148 L 7.547353,9.1977732 H 8.383009 L 7.8119774,9.5598908 Q 8.0487466,9.0584972 8.2715882,8.473538 8.4944298,7.8746512 8.6894162,7.220054 8.8983302,6.5515292 9.0654614,5.8551492 q 0.1810588,-0.69638 0.3203348,-1.39276 0.139276,-0.69638 0.2506968,-1.3649048 0.1114208,-0.041783 0.2228416,-0.05571 0.1253484,-0.013928 0.2785524,-0.027855 0.167131,-0.013928 0.4039,-0.013928 0.612814,0 0.933149,0.1114208 0.320335,0.1114208 0.459611,0.3760452 0.139276,0.2646244 0.194986,0.7103076 0.08357,0.626742 0.139276,1.2117012 0.05571,0.5710316 0.09749,1.114208 0.05571,0.5292488 0.09749,1.0584976 0.04178,0.5153212 0.06964,1.0167148 0.02786,0.487466 0.05571,0.9888596 0.02786,0.487466 0.04178,0.98886 0.02786,0.640669 0.05571,1.086352 0.04178,0.431756 0.08357,0.724236 0.05571,0.292479 0.09749,0.515321 -0.125348,0.04178 -0.34819,0.06964 -0.208914,0.02785 -0.459611,0.02785 -0.431755,0 -0.682452,-0.09749 -0.250697,-0.09749 -0.34819,-0.306407 -0.09749,-0.222842 -0.09749,-0.612815 0,-0.139276 0,-0.376045 0.01393,-0.236769 0.01393,-0.501394 0.01393,-0.278552 0.01393,-0.529248 0,-0.29248 -0.01393,-0.64067 -0.01393,-0.34819 -0.04178,-0.7381628 -0.02786,-0.4039004 -0.05571,-0.8495836 -0.02785,-0.4456832 -0.06964,-0.9192216 -0.04178,-0.487466 -0.09749,-1.0027872 -0.05571,-0.5153212 -0.111421,-1.04457 l 0.29248,0.4456832 h -0.724235 l 0.487466,-0.4596108 q -0.111421,0.6406696 -0.306408,1.3370496 -0.194986,0.69638 -0.4178276,1.3788324 -0.208914,0.6824524 -0.4596108,1.2952668 -0.2367692,0.5988868 -0.4735384,1.072425 -0.2228416,0.473539 -0.417828,0.738163 -0.1114208,0.04178 -0.2646244,0.06964 -0.1532036,0.02786 -0.3064072,0.02786 -0.208914,0 -0.34819,-0.04178 Q 7.4916426,11.203348 7.3662942,11.105854 7.1713078,10.89694 6.9484662,10.520895 6.7256246,10.130922 6.4749278,9.587746 6.2381586,9.0445696 6.0013894,8.3899724 5.7785478,7.7214476 5.5696338,6.9693572 5.3746474,6.2172668 5.2075162,5.409466 l 0.487466,0.3760452 H 4.9568194 L 5.2353714,5.3816108 Q 5.179661,5.96657 5.1239506,6.5097464 q -0.05571,0.5292488 -0.097493,1.0306424 -0.041783,0.487466 -0.083566,0.9470768 -0.027855,0.4596108 -0.05571,0.8913664 -0.027855,0.4317556 -0.041783,0.835656 -0.013928,0.4039 -0.013928,0.807801 0,0.529249 0.013928,0.988859 0.027855,0.445684 0.069638,0.905294 z" | ||
69 | id="text1" | ||
70 | style="-inkscape-font-specification:'Recursive, @CASL=1.00,wght=600';stroke-width:0.999993;fill:#ffffff" | ||
71 | aria-label="M" /> | ||
72 | </g> | ||
73 | </svg> | ||