summaryrefslogtreecommitdiffstats
path: root/src/components/Layouts
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2022-02-16 15:34:06 +0100
committerGitHub <noreply@github.com>2022-02-16 15:34:06 +0100
commita9dce097f6a076f243869a495d9ab6d9ddf6ecd2 (patch)
tree6794b49e86b00a00539e2326994ec73e8fd845e6 /src/components/Layouts
parent588f76ecaaaa80159dbbadce9603f2da32953b3a (diff)
fix: make schema.org markup valid (#4)
Squashed commit of the following: commit 49c1b3b1556a0eb91c429a961fedd2bded8ffd47 Author: Armand Philippot <git@armandphilippot.com> Date: Wed Feb 16 15:17:52 2022 +0100 chore: add headline field to blogPosting schema commit 42214c6f032cc899ec252a9387be35dcad738546 Author: Armand Philippot <git@armandphilippot.com> Date: Wed Feb 16 15:09:11 2022 +0100 chore: update the searchAction markup and add query-input Google was complaining about "query-input" which is not in Schema.org representation. So I added it. commit 5f29226d937cbdcd262df2793f1588435d850f02 Author: Armand Philippot <git@armandphilippot.com> Date: Wed Feb 16 14:32:14 2022 +0100 chore: remove breadcrumb from homepage The breadcrumb is not displayed on the homepage, so the breadcrumb field should not appear inside Schema markup.
Diffstat (limited to 'src/components/Layouts')
-rw-r--r--src/components/Layouts/Layout.tsx26
1 files changed, 20 insertions, 6 deletions
diff --git a/src/components/Layouts/Layout.tsx b/src/components/Layouts/Layout.tsx
index eb725d2..d529efe 100644
--- a/src/components/Layouts/Layout.tsx
+++ b/src/components/Layouts/Layout.tsx
@@ -7,7 +7,7 @@ import Head from 'next/head';
import { useRouter } from 'next/router';
import { ReactElement, ReactNode, useEffect, useRef } from 'react';
import { useIntl } from 'react-intl';
-import { WebSite, WithContext } from 'schema-dts';
+import { SearchAction, WebSite, WithContext } from 'schema-dts';
import styles from './Layout.module.scss';
const Layout = ({
@@ -40,11 +40,19 @@ const Layout = ({
creator: { '@id': `${settings.url}/#branding` },
editor: { '@id': `${settings.url}/#branding` },
inLanguage: settings.locales.defaultLocale,
- potentialAction: {
- '@type': 'SearchAction',
- target: `${settings.url}/recherche?s={query}`,
- query: 'required',
- },
+ potentialAction: { '@id': `${settings.url}/#search` },
+ };
+
+ type QueryAction = SearchAction & {
+ 'query-input': string;
+ };
+
+ const searchActionSchema: QueryAction = {
+ '@type': 'SearchAction',
+ '@id': `${settings.url}/#search`,
+ target: `${settings.url}/recherche?s={query}`,
+ query: 'required',
+ 'query-input': 'required name=query',
};
return (
@@ -94,6 +102,12 @@ const Layout = ({
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(schemaJsonLd) }}
></script>
+ <script
+ type="application/ld+json"
+ dangerouslySetInnerHTML={{
+ __html: JSON.stringify(searchActionSchema),
+ }}
+ ></script>
</Head>
<noscript>
<div className={styles['noscript-spacing']}></div>