summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2022-01-29 23:38:13 +0100
committerArmand Philippot <git@armandphilippot.com>2022-01-29 23:38:13 +0100
commit82d310403c4bb09bc2f0a204b6374934a10cf348 (patch)
tree488e93e373a7d9215531bb8fcfc37bcbb290d0fa /src
parentf49dfba86b9ac745ddc374ee0f02f03d7e81d872 (diff)
refactor(config): move config from config dir to utils
Diffstat (limited to 'src')
-rw-r--r--src/components/Branding/Branding.tsx18
-rw-r--r--src/components/Breadcrumb/Breadcrumb.tsx12
-rw-r--r--src/components/Comment/Comment.tsx10
-rw-r--r--src/components/Copyright/Copyright.tsx6
-rw-r--r--src/components/Layouts/Layout.tsx36
-rw-r--r--src/components/MDX/CodeBlock/CodeBlock.tsx4
-rw-r--r--src/components/PostMeta/PostMeta.tsx4
-rw-r--r--src/components/PostPreview/PostPreview.tsx14
-rw-r--r--src/components/ProjectSummary/ProjectSummary.tsx6
-rw-r--r--src/components/Widgets/RecentPosts/RecentPosts.tsx4
-rw-r--r--src/pages/404.tsx4
-rw-r--r--src/pages/_app.tsx4
-rw-r--r--src/pages/article/[slug].tsx28
-rw-r--r--src/pages/blog/index.tsx38
-rw-r--r--src/pages/contact.tsx24
-rw-r--r--src/pages/cv.tsx26
-rw-r--r--src/pages/index.tsx24
-rw-r--r--src/pages/mentions-legales.tsx26
-rw-r--r--src/pages/projet/[slug].tsx24
-rw-r--r--src/pages/projets.tsx26
-rw-r--r--src/pages/recherche/index.tsx14
-rw-r--r--src/pages/sujet/[slug].tsx28
-rw-r--r--src/pages/thematique/[slug].tsx26
-rw-r--r--src/utils/config.ts (renamed from src/config/website.ts)2
-rw-r--r--src/utils/helpers/i18n.ts4
-rw-r--r--src/utils/helpers/rss.ts10
26 files changed, 210 insertions, 212 deletions
diff --git a/src/components/Branding/Branding.tsx b/src/components/Branding/Branding.tsx
index efb3a49..adefbca 100644
--- a/src/components/Branding/Branding.tsx
+++ b/src/components/Branding/Branding.tsx
@@ -1,5 +1,5 @@
import photo from '@assets/images/armand-philippot.jpg';
-import { config } from '@config/website';
+import { settings } from '@utils/config';
import Head from 'next/head';
import Image from 'next/image';
import Link from 'next/link';
@@ -18,12 +18,12 @@ const Branding: BrandingReturn = ({ isHome = false }) => {
const schemaJsonLd: WithContext<Person> = {
'@context': 'https://schema.org',
'@type': 'Person',
- '@id': `${config.url}/#branding`,
- name: config.name,
- url: config.url,
- jobTitle: config.baseline,
+ '@id': `${settings.url}/#branding`,
+ name: settings.name,
+ url: settings.url,
+ jobTitle: settings.baseline,
image: photo.src,
- subjectOf: { '@id': `${config.url}` },
+ subjectOf: { '@id': `${settings.url}` },
};
return (
@@ -45,7 +45,7 @@ const Branding: BrandingReturn = ({ isHome = false }) => {
description: 'Branding: branding name picture.',
},
{
- brandingName: config.name,
+ brandingName: settings.name,
}
)}
layout="responsive"
@@ -57,10 +57,10 @@ const Branding: BrandingReturn = ({ isHome = false }) => {
</div>
<TitleTag className={styles.name}>
<Link href="/">
- <a className={styles.link}>{config.name}</a>
+ <a className={styles.link}>{settings.name}</a>
</Link>
</TitleTag>
- <p className={styles.job}>{config.baseline}</p>
+ <p className={styles.job}>{settings.baseline}</p>
</div>
</>
);
diff --git a/src/components/Breadcrumb/Breadcrumb.tsx b/src/components/Breadcrumb/Breadcrumb.tsx
index 30179be..914a175 100644
--- a/src/components/Breadcrumb/Breadcrumb.tsx
+++ b/src/components/Breadcrumb/Breadcrumb.tsx
@@ -1,4 +1,4 @@
-import { config } from '@config/website';
+import { settings } from '@utils/config';
import Head from 'next/head';
import Link from 'next/link';
import { useRouter } from 'next/router';
@@ -71,7 +71,7 @@ const Breadcrumb = ({ pageTitle }: { pageTitle: string }) => {
defaultMessage: 'Home',
description: 'Breadcrumb: Home item',
}),
- item: config.url,
+ item: settings.url,
};
items.push(homepage);
@@ -84,7 +84,7 @@ const Breadcrumb = ({ pageTitle }: { pageTitle: string }) => {
defaultMessage: 'Blog',
description: 'Breadcrumb: Blog item',
}),
- item: `${config.url}/blog`,
+ item: `${settings.url}/blog`,
};
items.push(blog);
@@ -98,7 +98,7 @@ const Breadcrumb = ({ pageTitle }: { pageTitle: string }) => {
defaultMessage: 'Projects',
description: 'Breadcrumb: Projects item',
}),
- item: `${config.url}/projets`,
+ item: `${settings.url}/projets`,
};
items.push(blog);
@@ -108,7 +108,7 @@ const Breadcrumb = ({ pageTitle }: { pageTitle: string }) => {
'@type': 'ListItem',
position: items.length + 1,
name: pageTitle,
- item: `${config.url}${router.asPath}`,
+ item: `${settings.url}${router.asPath}`,
};
items.push(currentPage);
@@ -119,7 +119,7 @@ const Breadcrumb = ({ pageTitle }: { pageTitle: string }) => {
const schemaJsonLd: WithContext<BreadcrumbList> = {
'@context': 'https://schema.org',
'@type': 'BreadcrumbList',
- '@id': `${config.url}/#breadcrumb`,
+ '@id': `${settings.url}/#breadcrumb`,
itemListElement: getElementsSchema(),
};
diff --git a/src/components/Comment/Comment.tsx b/src/components/Comment/Comment.tsx
index e95a378..4835f8c 100644
--- a/src/components/Comment/Comment.tsx
+++ b/src/components/Comment/Comment.tsx
@@ -1,7 +1,7 @@
import { Button } from '@components/Buttons';
import CommentForm from '@components/CommentForm/CommentForm';
-import { config } from '@config/website';
import { Comment as CommentData } from '@ts/types/comments';
+import { settings } from '@utils/config';
import { getFormattedDate } from '@utils/helpers/format';
import Head from 'next/head';
import Image from 'next/image';
@@ -23,7 +23,7 @@ const Comment = ({
}) => {
const intl = useIntl();
const router = useRouter();
- const locale = router.locale ? router.locale : config.locales.defaultLocale;
+ const locale = router.locale ? router.locale : settings.locales.defaultLocale;
const [isReply, setIsReply] = useState<boolean>(false);
const firstFieldRef = useRef<HTMLInputElement>(null);
@@ -146,12 +146,12 @@ const Comment = ({
const schemaJsonLd: WithContext<CommentSchema> = {
'@context': 'https://schema.org',
- '@id': `${config.url}/#comment-${comment.commentId}`,
+ '@id': `${settings.url}/#comment-${comment.commentId}`,
'@type': 'Comment',
parentItem: isNested
- ? { '@id': `${config.url}/#comment-${comment.parentDatabaseId}` }
+ ? { '@id': `${settings.url}/#comment-${comment.parentDatabaseId}` }
: undefined,
- about: { '@type': 'Article', '@id': `${config.url}/#article` },
+ about: { '@type': 'Article', '@id': `${settings.url}/#article` },
author: {
'@type': 'Person',
name: comment.author.name,
diff --git a/src/components/Copyright/Copyright.tsx b/src/components/Copyright/Copyright.tsx
index 9a57f9c..7ea3829 100644
--- a/src/components/Copyright/Copyright.tsx
+++ b/src/components/Copyright/Copyright.tsx
@@ -1,14 +1,14 @@
import { CopyrightIcon } from '@components/Icons';
-import { config } from '@config/website';
+import { settings } from '@utils/config';
import styles from './Copyright.module.scss';
const Copyright = () => {
return (
<p className={styles.wrapper}>
- <span>{config.name}</span>
+ <span>{settings.name}</span>
<CopyrightIcon />
<span>
- {config.copyright.startYear} - {config.copyright.endYear}
+ {settings.copyright.startYear} - {settings.copyright.endYear}
</span>
</p>
);
diff --git a/src/components/Layouts/Layout.tsx b/src/components/Layouts/Layout.tsx
index b479ef3..d074b68 100644
--- a/src/components/Layouts/Layout.tsx
+++ b/src/components/Layouts/Layout.tsx
@@ -2,7 +2,7 @@ import Footer from '@components/Footer/Footer';
import Header from '@components/Header/Header';
import Main from '@components/Main/Main';
import Breadcrumb from '@components/Breadcrumb/Breadcrumb';
-import { config } from '@config/website';
+import { settings } from '@utils/config';
import Head from 'next/head';
import { useRouter } from 'next/router';
import { ReactElement, ReactNode, useEffect, useRef } from 'react';
@@ -26,19 +26,19 @@ const Layout = ({
const schemaJsonLd: WithContext<WebSite> = {
'@context': 'https://schema.org',
- '@id': `${config.url}`,
+ '@id': `${settings.url}`,
'@type': 'WebSite',
- name: config.name,
- description: config.baseline,
- url: config.url,
- author: { '@id': `${config.url}/#branding` },
- copyrightYear: Number(config.copyright.startYear),
- creator: { '@id': `${config.url}/#branding` },
- editor: { '@id': `${config.url}/#branding` },
- inLanguage: config.locales.defaultLocale,
+ name: settings.name,
+ description: settings.baseline,
+ url: settings.url,
+ author: { '@id': `${settings.url}/#branding` },
+ copyrightYear: Number(settings.copyright.startYear),
+ creator: { '@id': `${settings.url}/#branding` },
+ editor: { '@id': `${settings.url}/#branding` },
+ inLanguage: settings.locales.defaultLocale,
potentialAction: {
'@type': 'SearchAction',
- target: `${config.url}/recherche?s={query}`,
+ target: `${settings.url}/recherche?s={query}`,
query: 'required',
},
};
@@ -46,14 +46,14 @@ const Layout = ({
return (
<>
<Head>
- <meta property="og:site_name" content={config.name} />
+ <meta property="og:site_name" content={settings.name} />
<meta
property="og:locale"
- content={`${config.locales.defaultLocale}_${config.locales.defaultCountry}`}
+ content={`${settings.locales.defaultLocale}_${settings.locales.defaultCountry}`}
/>
<meta property="twitter:card" content="summary" />
- <meta property="twitter:site" content={config.twitterId} />
- <meta property="twitter:creator" content={config.twitterId} />
+ <meta property="twitter:site" content={settings.twitterId} />
+ <meta property="twitter:creator" content={settings.twitterId} />
<meta
name="theme-color"
content="#14578a"
@@ -68,19 +68,19 @@ const Layout = ({
rel="alternate"
href="/feed.xml"
type="application/rss+xml"
- title={`${config.name}'s RSS feed`}
+ title={`${settings.name}'s RSS feed`}
/>
<link
rel="alternate"
href="/atom.xml"
type="application/atom+xml"
- title={`${config.name}'s Atom feed`}
+ title={`${settings.name}'s Atom feed`}
/>
<link
rel="alternate"
href="/feed.json"
type="application/feed+json"
- title={`${config.name}'s Json feed`}
+ title={`${settings.name}'s Json feed`}
/>
<link rel="icon" href="/favicon.ico" sizes="any" />
<link rel="icon" href="/icon.svg" type="image/svg+xml" />
diff --git a/src/components/MDX/CodeBlock/CodeBlock.tsx b/src/components/MDX/CodeBlock/CodeBlock.tsx
index 59386af..8311999 100644
--- a/src/components/MDX/CodeBlock/CodeBlock.tsx
+++ b/src/components/MDX/CodeBlock/CodeBlock.tsx
@@ -1,4 +1,4 @@
-import { config } from '@config/website';
+import { settings } from '@utils/config';
import { translateCopyButton } from '@utils/helpers/prism';
import { useRouter } from 'next/router';
import Prism from 'prismjs';
@@ -18,7 +18,7 @@ const CodeBlock = ({
);
const intl = useIntl();
const router = useRouter();
- const locale = router.locale ? router.locale : config.locales.defaultLocale;
+ const locale = router.locale ? router.locale : settings.locales.defaultLocale;
useEffect(() => {
Prism.highlightAll();
diff --git a/src/components/PostMeta/PostMeta.tsx b/src/components/PostMeta/PostMeta.tsx
index 86e4e71..b951c44 100644
--- a/src/components/PostMeta/PostMeta.tsx
+++ b/src/components/PostMeta/PostMeta.tsx
@@ -1,5 +1,5 @@
-import { config } from '@config/website';
import { ArticleMeta } from '@ts/types/articles';
+import { settings } from '@utils/config';
import { getFormattedDate } from '@utils/helpers/format';
import Link from 'next/link';
import { useRouter } from 'next/router';
@@ -28,7 +28,7 @@ const PostMeta = ({
} = meta;
const intl = useIntl();
const router = useRouter();
- const locale = router.locale ? router.locale : config.locales.defaultLocale;
+ const locale = router.locale ? router.locale : settings.locales.defaultLocale;
const isThematic = () => router.asPath.includes('/thematique/');
const isArticle = () => router.asPath.includes('/article/');
diff --git a/src/components/PostPreview/PostPreview.tsx b/src/components/PostPreview/PostPreview.tsx
index 72ba638..0be9709 100644
--- a/src/components/PostPreview/PostPreview.tsx
+++ b/src/components/PostPreview/PostPreview.tsx
@@ -1,9 +1,9 @@
import { ButtonLink } from '@components/Buttons';
import { ArrowIcon } from '@components/Icons';
import PostMeta from '@components/PostMeta/PostMeta';
-import { config } from '@config/website';
import { TitleLevel } from '@ts/types/app';
import { ArticleMeta, ArticlePreview } from '@ts/types/articles';
+import { settings } from '@utils/config';
import Image from 'next/image';
import Head from 'next/head';
import Link from 'next/link';
@@ -49,18 +49,18 @@ const PostPreview = ({
name: title,
description: intro,
articleBody: intro,
- author: { '@id': `${config.url}/#branding` },
+ author: { '@id': `${settings.url}/#branding` },
commentCount: commentCount ? commentCount : 0,
copyrightYear: publicationDate.getFullYear(),
- creator: { '@id': `${config.url}/#branding` },
+ creator: { '@id': `${settings.url}/#branding` },
dateCreated: publicationDate.toISOString(),
dateModified: updateDate.toISOString(),
datePublished: publicationDate.toISOString(),
- editor: { '@id': `${config.url}/#branding` },
+ editor: { '@id': `${settings.url}/#branding` },
image: featuredImage?.sourceUrl,
- inLanguage: config.locales.defaultLocale,
- isBasedOn: `${config.url}/article/${slug}`,
- isPartOf: { '@id': `${config.url}/blog` },
+ inLanguage: settings.locales.defaultLocale,
+ isBasedOn: `${settings.url}/article/${slug}`,
+ isPartOf: { '@id': `${settings.url}/blog` },
license: 'https://creativecommons.org/licenses/by-sa/4.0/deed.fr',
thumbnailUrl: featuredImage?.sourceUrl,
};
diff --git a/src/components/ProjectSummary/ProjectSummary.tsx b/src/components/ProjectSummary/ProjectSummary.tsx
index f2d73b6..03c9b87 100644
--- a/src/components/ProjectSummary/ProjectSummary.tsx
+++ b/src/components/ProjectSummary/ProjectSummary.tsx
@@ -1,11 +1,10 @@
import GithubIcon from '@assets/images/social-media/github.svg';
import GitlabIcon from '@assets/images/social-media/gitlab.svg';
-import { config } from '@config/website';
import { ProjectMeta } from '@ts/types/app';
+import { settings } from '@utils/config';
import { getFormattedDate } from '@utils/helpers/format';
import { slugify } from '@utils/helpers/slugify';
import useGithubApi from '@utils/hooks/useGithubApi';
-import IntlMessageFormat from 'intl-messageformat';
import Image from 'next/image';
import { useRouter } from 'next/router';
import { useIntl } from 'react-intl';
@@ -13,7 +12,6 @@ import styles from './ProjectSummary.module.scss';
const ProjectSummary = ({
id,
- title,
meta,
}: {
id: string;
@@ -23,7 +21,7 @@ const ProjectSummary = ({
const { hasCover, license, repos, technologies } = meta;
const intl = useIntl();
const router = useRouter();
- const locale = router.locale ? router.locale : config.locales.defaultLocale;
+ const locale = router.locale ? router.locale : settings.locales.defaultLocale;
const { data } = useGithubApi(repos?.github ? repos.github : '');
return (
diff --git a/src/components/Widgets/RecentPosts/RecentPosts.tsx b/src/components/Widgets/RecentPosts/RecentPosts.tsx
index 08ce7e4..1507edf 100644
--- a/src/components/Widgets/RecentPosts/RecentPosts.tsx
+++ b/src/components/Widgets/RecentPosts/RecentPosts.tsx
@@ -1,7 +1,7 @@
import Spinner from '@components/Spinner/Spinner';
-import { config } from '@config/website';
import { getPublishedPosts } from '@services/graphql/queries';
import { ArticlePreview } from '@ts/types/articles';
+import { settings } from '@utils/config';
import { getFormattedDate } from '@utils/helpers/format';
import Image from 'next/image';
import Link from 'next/link';
@@ -16,7 +16,7 @@ const RecentPosts = () => {
getPublishedPosts({ first: 3 })
);
const router = useRouter();
- const locale = router.locale ? router.locale : config.locales.defaultLocale;
+ const locale = router.locale ? router.locale : settings.locales.defaultLocale;
const getPost = (post: ArticlePreview) => {
return (
diff --git a/src/pages/404.tsx b/src/pages/404.tsx
index 079dead..d5b2e86 100644
--- a/src/pages/404.tsx
+++ b/src/pages/404.tsx
@@ -1,8 +1,8 @@
import { getLayout } from '@components/Layouts/Layout';
import PostHeader from '@components/PostHeader/PostHeader';
-import { config } from '@config/website';
import styles from '@styles/pages/Page.module.scss';
import { NextPageWithLayout } from '@ts/types/app';
+import { settings } from '@utils/config';
import { getIntlInstance, loadTranslation } from '@utils/helpers/i18n';
import { GetStaticProps, GetStaticPropsContext } from 'next';
import Head from 'next/head';
@@ -17,7 +17,7 @@ const Error404: NextPageWithLayout = () => {
defaultMessage: 'Error 404: Page not found - {websiteName}',
description: '404Page: SEO - Page title',
},
- { websiteName: config.name }
+ { websiteName: settings.name }
);
const pageDescription = intl.formatMessage({
defaultMessage: 'Page not found.',
diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx
index ec97ff7..7c6142c 100644
--- a/src/pages/_app.tsx
+++ b/src/pages/_app.tsx
@@ -1,5 +1,5 @@
-import { config } from '@config/website';
import { AppPropsWithLayout } from '@ts/types/app';
+import { settings } from '@utils/config';
import { ThemeProvider } from 'next-themes';
import { useRouter } from 'next/router';
import { IntlProvider } from 'react-intl';
@@ -7,7 +7,7 @@ import '../styles/globals.scss';
const MyApp = ({ Component, pageProps }: AppPropsWithLayout) => {
const { locale, defaultLocale } = useRouter();
- const appLocale: string = locale || config.locales.defaultLocale;
+ const appLocale: string = locale || settings.locales.defaultLocale;
const getLayout = Component.getLayout ?? ((page) => page);
return (
diff --git a/src/pages/article/[slug].tsx b/src/pages/article/[slug].tsx
index 8668a66..dc2c76a 100644
--- a/src/pages/article/[slug].tsx
+++ b/src/pages/article/[slug].tsx
@@ -5,11 +5,11 @@ import PostFooter from '@components/PostFooter/PostFooter';
import PostHeader from '@components/PostHeader/PostHeader';
import Sidebar from '@components/Sidebar/Sidebar';
import { Sharing, ToC } from '@components/Widgets';
-import { config } from '@config/website';
import { getAllPostsSlug, getPostBySlug } from '@services/graphql/queries';
import styles from '@styles/pages/Page.module.scss';
import { NextPageWithLayout } from '@ts/types/app';
import { ArticleMeta, ArticleProps } from '@ts/types/articles';
+import { settings } from '@utils/config';
import { loadTranslation } from '@utils/helpers/i18n';
import { addPrismClasses, translateCopyButton } from '@utils/helpers/prism';
import { GetStaticPaths, GetStaticProps, GetStaticPropsContext } from 'next';
@@ -48,8 +48,8 @@ const SingleArticle: NextPageWithLayout<ArticleProps> = ({ post }) => {
const intl = useIntl();
const router = useRouter();
- const locale = router.locale ? router.locale : config.locales.defaultLocale;
- const articleUrl = `${config.url}${router.asPath}`;
+ const locale = router.locale ? router.locale : settings.locales.defaultLocale;
+ const articleUrl = `${settings.url}${router.asPath}`;
useEffect(() => {
addPrismClasses();
@@ -63,21 +63,21 @@ const SingleArticle: NextPageWithLayout<ArticleProps> = ({ post }) => {
const webpageSchema: WebPage = {
'@id': `${articleUrl}`,
'@type': 'WebPage',
- breadcrumb: { '@id': `${config.url}/#breadcrumb` },
+ breadcrumb: { '@id': `${settings.url}/#breadcrumb` },
lastReviewed: dates.update,
name: seo.title,
description: seo.metaDesc,
- reviewedBy: { '@id': `${config.url}/#branding` },
+ reviewedBy: { '@id': `${settings.url}/#branding` },
url: `${articleUrl}`,
isPartOf: {
- '@id': `${config.url}`,
+ '@id': `${settings.url}`,
},
};
const blogSchema: Blog = {
- '@id': `${config.url}/#blog`,
+ '@id': `${settings.url}/#blog`,
'@type': 'Blog',
- blogPost: { '@id': `${config.url}/#article` },
+ blogPost: { '@id': `${settings.url}/#article` },
isPartOf: {
'@id': `${articleUrl}`,
},
@@ -88,24 +88,24 @@ const SingleArticle: NextPageWithLayout<ArticleProps> = ({ post }) => {
const updateDate = new Date(dates.update);
const blogPostSchema: BlogPosting = {
- '@id': `${config.url}/#article`,
+ '@id': `${settings.url}/#article`,
'@type': 'BlogPosting',
name: title,
description: intro,
articleBody: content,
- author: { '@id': `${config.url}/#branding` },
+ author: { '@id': `${settings.url}/#branding` },
commentCount: comments.length,
copyrightYear: publicationDate.getFullYear(),
- creator: { '@id': `${config.url}/#branding` },
+ creator: { '@id': `${settings.url}/#branding` },
dateCreated: publicationDate.toISOString(),
dateModified: updateDate.toISOString(),
datePublished: publicationDate.toISOString(),
discussionUrl: `${articleUrl}/#comments`,
- editor: { '@id': `${config.url}/#branding` },
+ editor: { '@id': `${settings.url}/#branding` },
image: featuredImage?.sourceUrl,
- inLanguage: config.locales.defaultLocale,
+ inLanguage: settings.locales.defaultLocale,
isPartOf: {
- '@id': `${config.url}/blog`,
+ '@id': `${settings.url}/blog`,
},
license: 'https://creativecommons.org/licenses/by-sa/4.0/deed.fr',
mainEntityOfPage: { '@id': `${articleUrl}` },
diff --git a/src/pages/blog/index.tsx b/src/pages/blog/index.tsx
index 9a86d9f..c0d99e9 100644
--- a/src/pages/blog/index.tsx
+++ b/src/pages/blog/index.tsx
@@ -6,11 +6,11 @@ import PostsList from '@components/PostsList/PostsList';
import Sidebar from '@components/Sidebar/Sidebar';
import Spinner from '@components/Spinner/Spinner';
import { ThematicsList, TopicsList } from '@components/Widgets';
-import { config } from '@config/website';
import { getPublishedPosts } from '@services/graphql/queries';
import styles from '@styles/pages/Page.module.scss';
import { NextPageWithLayout } from '@ts/types/app';
import { BlogPageProps, PostsList as PostsListData } from '@ts/types/blog';
+import { settings } from '@utils/config';
import { getIntlInstance, loadTranslation } from '@utils/helpers/i18n';
import { GetStaticProps, GetStaticPropsContext } from 'next';
import Head from 'next/head';
@@ -29,9 +29,9 @@ const Blog: NextPageWithLayout<BlogPageProps> = ({ fallback }) => {
if (previousData && !previousData.posts) return null;
return pageIndex === 0
- ? { first: config.postsPerPage }
+ ? { first: settings.postsPerPage }
: {
- first: config.postsPerPage,
+ first: settings.postsPerPage,
after: previousData.pageInfo.endCursor,
};
};
@@ -48,13 +48,13 @@ const Blog: NextPageWithLayout<BlogPageProps> = ({ fallback }) => {
}, [data]);
const [loadedPostsCount, setLoadedPostsCount] = useState<number>(
- config.postsPerPage
+ settings.postsPerPage
);
useEffect(() => {
if (data && data.length > 0) {
const newCount =
- config.postsPerPage +
+ settings.postsPerPage +
data[0].pageInfo.total -
data[data.length - 1].pageInfo.total;
setLoadedPostsCount(newCount);
@@ -91,7 +91,7 @@ const Blog: NextPageWithLayout<BlogPageProps> = ({ fallback }) => {
defaultMessage: 'Blog: development, open source - {websiteName}',
description: 'BlogPage: SEO - Page title',
},
- { websiteName: config.name }
+ { websiteName: settings.name }
);
const pageDescription = intl.formatMessage(
{
@@ -99,31 +99,31 @@ const Blog: NextPageWithLayout<BlogPageProps> = ({ fallback }) => {
"Discover {websiteName}'s writings. He talks about web development, Linux and open source mostly.",
description: 'BlogPage: SEO - Meta description',
},
- { websiteName: config.name }
+ { websiteName: settings.name }
);
- const pageUrl = `${config.url}${router.asPath}`;
+ const pageUrl = `${settings.url}${router.asPath}`;
const webpageSchema: WebPage = {
'@id': `${pageUrl}`,
'@type': 'WebPage',
- breadcrumb: { '@id': `${config.url}/#breadcrumb` },
+ breadcrumb: { '@id': `${settings.url}/#breadcrumb` },
name: pageTitle,
description: pageDescription,
- inLanguage: config.locales.defaultLocale,
- reviewedBy: { '@id': `${config.url}/#branding` },
- url: `${config.url}`,
+ inLanguage: settings.locales.defaultLocale,
+ reviewedBy: { '@id': `${settings.url}/#branding` },
+ url: `${settings.url}`,
isPartOf: {
- '@id': `${config.url}`,
+ '@id': `${settings.url}`,
},
};
const blogSchema: BlogSchema = {
- '@id': `${config.url}/#blog`,
+ '@id': `${settings.url}/#blog`,
'@type': 'Blog',
- author: { '@id': `${config.url}/#branding` },
- creator: { '@id': `${config.url}/#branding` },
- editor: { '@id': `${config.url}/#branding` },
- inLanguage: config.locales.defaultLocale,
+ author: { '@id': `${settings.url}/#branding` },
+ creator: { '@id': `${settings.url}/#branding` },
+ editor: { '@id': `${settings.url}/#branding` },
+ inLanguage: settings.locales.defaultLocale,
license: 'https://creativecommons.org/licenses/by-sa/4.0/deed.fr',
mainEntityOfPage: { '@id': `${pageUrl}` },
};
@@ -213,7 +213,7 @@ export const getStaticProps: GetStaticProps = async (
defaultMessage: 'Blog',
description: 'BlogPage: breadcrumb item',
});
- const data = await getPublishedPosts({ first: config.postsPerPage });
+ const data = await getPublishedPosts({ first: settings.postsPerPage });
const { locale } = context;
const translation = await loadTranslation(locale);
diff --git a/src/pages/contact.tsx b/src/pages/contact.tsx
index 489135d..e410afa 100644
--- a/src/pages/contact.tsx
+++ b/src/pages/contact.tsx
@@ -4,10 +4,10 @@ import { getLayout } from '@components/Layouts/Layout';
import PostHeader from '@components/PostHeader/PostHeader';
import Sidebar from '@components/Sidebar/Sidebar';
import { SocialMedia } from '@components/Widgets';
-import { config } from '@config/website';
import { sendMail } from '@services/graphql/mutations';
import styles from '@styles/pages/Page.module.scss';
import { NextPageWithLayout } from '@ts/types/app';
+import { settings } from '@utils/config';
import { getIntlInstance, loadTranslation } from '@utils/helpers/i18n';
import { GetStaticProps, GetStaticPropsContext } from 'next';
import Head from 'next/head';
@@ -68,7 +68,7 @@ const ContactPage: NextPageWithLayout = () => {
defaultMessage: 'Contact form - {websiteName}',
description: 'ContactPage: SEO - Page title',
},
- { websiteName: config.name }
+ { websiteName: settings.name }
);
const pageDescription = intl.formatMessage(
{
@@ -76,9 +76,9 @@ const ContactPage: NextPageWithLayout = () => {
"Contact {websiteName} through its website. All you need to do it's to fill the contact form.",
description: 'ContactPage: SEO - Meta description',
},
- { websiteName: config.name }
+ { websiteName: settings.name }
);
- const pageUrl = `${config.url}${router.asPath}`;
+ const pageUrl = `${settings.url}${router.asPath}`;
const title = intl.formatMessage({
defaultMessage: 'Contact',
description: 'ContactPage: page title',
@@ -91,25 +91,25 @@ const ContactPage: NextPageWithLayout = () => {
const webpageSchema: WebPage = {
'@id': `${pageUrl}`,
'@type': 'WebPage',
- breadcrumb: { '@id': `${config.url}/#breadcrumb` },
+ breadcrumb: { '@id': `${settings.url}/#breadcrumb` },
name: pageTitle,
description: pageDescription,
- reviewedBy: { '@id': `${config.url}/#branding` },
+ reviewedBy: { '@id': `${settings.url}/#branding` },
url: `${pageUrl}`,
isPartOf: {
- '@id': `${config.url}`,
+ '@id': `${settings.url}`,
},
};
const contactSchema: ContactPageSchema = {
- '@id': `${config.url}/#contact`,
+ '@id': `${settings.url}/#contact`,
'@type': 'ContactPage',
name: title,
description: intro,
- author: { '@id': `${config.url}/#branding` },
- creator: { '@id': `${config.url}/#branding` },
- editor: { '@id': `${config.url}/#branding` },
- inLanguage: config.locales.defaultLocale,
+ author: { '@id': `${settings.url}/#branding` },
+ creator: { '@id': `${settings.url}/#branding` },
+ editor: { '@id': `${settings.url}/#branding` },
+ inLanguage: settings.locales.defaultLocale,
license: 'https://creativecommons.org/licenses/by-sa/4.0/deed.fr',
mainEntityOfPage: { '@id': `${pageUrl}` },
};
diff --git a/src/pages/cv.tsx b/src/pages/cv.tsx
index c3686de..311d0ce 100644
--- a/src/pages/cv.tsx
+++ b/src/pages/cv.tsx
@@ -2,11 +2,11 @@ import { getLayout } from '@components/Layouts/Layout';
import PostHeader from '@components/PostHeader/PostHeader';
import Sidebar from '@components/Sidebar/Sidebar';
import { CVPreview, SocialMedia, ToC } from '@components/Widgets';
-import { config } from '@config/website';
import CVContent, { intro, meta, pdf, image } from '@content/pages/cv.mdx';
import styles from '@styles/pages/Page.module.scss';
import { NextPageWithLayout } from '@ts/types/app';
import { ArticleMeta } from '@ts/types/articles';
+import { settings } from '@utils/config';
import { loadTranslation } from '@utils/helpers/i18n';
import { GetStaticProps, GetStaticPropsContext } from 'next';
import Head from 'next/head';
@@ -25,13 +25,13 @@ const CV: NextPageWithLayout = () => {
const pageMeta: ArticleMeta = {
dates,
};
- const pageUrl = `${config.url}${router.asPath}`;
+ const pageUrl = `${settings.url}${router.asPath}`;
const pageTitle = intl.formatMessage(
{
defaultMessage: 'CV Front-end developer - {websiteName}',
description: 'CVPage: SEO - Page title',
},
- { websiteName: config.name }
+ { websiteName: settings.name }
);
const pageDescription = intl.formatMessage(
{
@@ -39,19 +39,19 @@ const CV: NextPageWithLayout = () => {
'Discover the curriculum of {websiteName}, front-end developer located in France: skills, experiences and training.',
description: 'CVPage: SEO - Meta description',
},
- { websiteName: config.name }
+ { websiteName: settings.name }
);
const webpageSchema: WebPage = {
'@id': `${pageUrl}`,
'@type': 'WebPage',
- breadcrumb: { '@id': `${config.url}/#breadcrumb` },
+ breadcrumb: { '@id': `${settings.url}/#breadcrumb` },
name: pageTitle,
description: pageDescription,
- reviewedBy: { '@id': `${config.url}/#branding` },
+ reviewedBy: { '@id': `${settings.url}/#branding` },
url: `${pageUrl}`,
isPartOf: {
- '@id': `${config.url}`,
+ '@id': `${settings.url}`,
},
};
@@ -59,18 +59,18 @@ const CV: NextPageWithLayout = () => {
const updateDate = new Date(dates.update);
const cvSchema: AboutPage = {
- '@id': `${config.url}/#cv`,
+ '@id': `${settings.url}/#cv`,
'@type': 'AboutPage',
name: pageTitle,
description: intro,
- author: { '@id': `${config.url}/#branding` },
- creator: { '@id': `${config.url}/#branding` },
+ author: { '@id': `${settings.url}/#branding` },
+ creator: { '@id': `${settings.url}/#branding` },
dateCreated: publicationDate.toISOString(),
dateModified: updateDate.toISOString(),
datePublished: publicationDate.toISOString(),
- editor: { '@id': `${config.url}/#branding` },
+ editor: { '@id': `${settings.url}/#branding` },
image,
- inLanguage: config.locales.defaultLocale,
+ inLanguage: settings.locales.defaultLocale,
license: 'https://creativecommons.org/licenses/by-sa/4.0/deed.fr',
thumbnailUrl: image,
mainEntityOfPage: { '@id': `${pageUrl}` },
@@ -86,7 +86,7 @@ const CV: NextPageWithLayout = () => {
defaultMessage: "{name}'s CV",
description: 'CVPage: page title',
},
- { name: config.name }
+ { name: settings.name }
);
return (
diff --git a/src/pages/index.tsx b/src/pages/index.tsx
index 41a4603..0fe1a4f 100644
--- a/src/pages/index.tsx
+++ b/src/pages/index.tsx
@@ -2,10 +2,10 @@ import FeedIcon from '@assets/images/icon-feed.svg';
import { ButtonLink } from '@components/Buttons';
import { ContactIcon } from '@components/Icons';
import Layout from '@components/Layouts/Layout';
-import { config } from '@config/website';
import HomePageContent from '@content/pages/homepage.mdx';
import styles from '@styles/pages/Home.module.scss';
import { NextPageWithLayout } from '@ts/types/app';
+import { settings } from '@utils/config';
import { loadTranslation } from '@utils/helpers/i18n';
import { GetStaticProps, GetStaticPropsContext } from 'next';
import Head from 'next/head';
@@ -122,7 +122,7 @@ const Home: NextPageWithLayout = () => {
defaultMessage: '{websiteName} | Front-end developer: WordPress/React',
description: 'HomePage: SEO - Page title',
},
- { websiteName: config.name }
+ { websiteName: settings.name }
);
const pageDescription = intl.formatMessage(
{
@@ -130,22 +130,22 @@ const Home: NextPageWithLayout = () => {
'{websiteName} is a front-end developer located in France. He codes and he writes mostly about web development and open-source.',
description: 'HomePage: SEO - Meta description',
},
- { websiteName: config.name }
+ { websiteName: settings.name }
);
const webpageSchema: WebPage = {
- '@id': `${config.url}/#home`,
+ '@id': `${settings.url}/#home`,
'@type': 'WebPage',
- breadcrumb: { '@id': `${config.url}/#breadcrumb` },
+ breadcrumb: { '@id': `${settings.url}/#breadcrumb` },
name: pageTitle,
description: pageDescription,
- author: { '@id': `${config.url}/#branding` },
- creator: { '@id': `${config.url}/#branding` },
- editor: { '@id': `${config.url}/#branding` },
- inLanguage: config.locales.defaultLocale,
+ author: { '@id': `${settings.url}/#branding` },
+ creator: { '@id': `${settings.url}/#branding` },
+ editor: { '@id': `${settings.url}/#branding` },
+ inLanguage: settings.locales.defaultLocale,
license: 'https://creativecommons.org/licenses/by-sa/4.0/deed.fr',
- reviewedBy: { '@id': `${config.url}/#branding` },
- url: `${config.url}`,
+ reviewedBy: { '@id': `${settings.url}/#branding` },
+ url: `${settings.url}`,
};
const schemaJsonLd: Graph = {
@@ -159,7 +159,7 @@ const Home: NextPageWithLayout = () => {
<title>{pageTitle}</title>
<meta name="description" content={pageDescription} />
<meta property="og:type" content="website" />
- <meta property="og:url" content={`${config.url}`} />
+ <meta property="og:url" content={`${settings.url}`} />
<meta property="og:title" content={pageTitle} />
<meta property="og:description" content={pageDescription} />
<script
diff --git a/src/pages/mentions-legales.tsx b/src/pages/mentions-legales.tsx
index 0ec92a2..b1dca02 100644
--- a/src/pages/mentions-legales.tsx
+++ b/src/pages/mentions-legales.tsx
@@ -2,7 +2,6 @@ import { getLayout } from '@components/Layouts/Layout';
import PostHeader from '@components/PostHeader/PostHeader';
import Sidebar from '@components/Sidebar/Sidebar';
import { ToC } from '@components/Widgets';
-import { config } from '@config/website';
import LegalNoticeContent, {
intro,
meta,
@@ -10,6 +9,7 @@ import LegalNoticeContent, {
import styles from '@styles/pages/Page.module.scss';
import { NextPageWithLayout } from '@ts/types/app';
import { ArticleMeta } from '@ts/types/articles';
+import { settings } from '@utils/config';
import { loadTranslation } from '@utils/helpers/i18n';
import { GetStaticProps, GetStaticPropsContext } from 'next';
import Head from 'next/head';
@@ -33,16 +33,16 @@ const LegalNotice: NextPageWithLayout = () => {
defaultMessage: 'Legal notice - {websiteName}',
description: 'LegalNoticePage: SEO - Page title',
},
- { websiteName: config.name }
+ { websiteName: settings.name }
);
const pageDescription = intl.formatMessage(
{
defaultMessage: "Discover the legal notice of {websiteName}'s website.",
description: 'LegalNoticePage: SEO - Meta description',
},
- { websiteName: config.name }
+ { websiteName: settings.name }
);
- const pageUrl = `${config.url}${router.asPath}`;
+ const pageUrl = `${settings.url}${router.asPath}`;
const title = intl.formatMessage({
defaultMessage: 'Legal notice',
description: 'LegalNoticePage: page title',
@@ -53,31 +53,31 @@ const LegalNotice: NextPageWithLayout = () => {
const webpageSchema: WebPage = {
'@id': `${pageUrl}`,
'@type': 'WebPage',
- breadcrumb: { '@id': `${config.url}/#breadcrumb` },
+ breadcrumb: { '@id': `${settings.url}/#breadcrumb` },
name: pageTitle,
description: pageDescription,
- inLanguage: config.locales.defaultLocale,
+ inLanguage: settings.locales.defaultLocale,
license: 'https://creativecommons.org/licenses/by-sa/4.0/deed.fr',
- reviewedBy: { '@id': `${config.url}/#branding` },
+ reviewedBy: { '@id': `${settings.url}/#branding` },
url: `${pageUrl}`,
isPartOf: {
- '@id': `${config.url}`,
+ '@id': `${settings.url}`,
},
};
const articleSchema: Article = {
- '@id': `${config.url}/#legal-notice`,
+ '@id': `${settings.url}/#legal-notice`,
'@type': 'Article',
name: title,
description: intro,
- author: { '@id': `${config.url}/#branding` },
+ author: { '@id': `${settings.url}/#branding` },
copyrightYear: publicationDate.getFullYear(),
- creator: { '@id': `${config.url}/#branding` },
+ creator: { '@id': `${settings.url}/#branding` },
dateCreated: publicationDate.toISOString(),
dateModified: updateDate.toISOString(),
datePublished: publicationDate.toISOString(),
- editor: { '@id': `${config.url}/#branding` },
- inLanguage: config.locales.defaultLocale,
+ editor: { '@id': `${settings.url}/#branding` },
+ inLanguage: settings.locales.defaultLocale,
license: 'https://creativecommons.org/licenses/by-sa/4.0/deed.fr',
mainEntityOfPage: { '@id': `${pageUrl}` },
};
diff --git a/src/pages/projet/[slug].tsx b/src/pages/projet/[slug].tsx
index f44d810..f96da0e 100644
--- a/src/pages/projet/[slug].tsx
+++ b/src/pages/projet/[slug].tsx
@@ -4,13 +4,13 @@ import PostHeader from '@components/PostHeader/PostHeader';
import ProjectSummary from '@components/ProjectSummary/ProjectSummary';
import Sidebar from '@components/Sidebar/Sidebar';
import { Sharing, ToC } from '@components/Widgets';
-import { config } from '@config/website';
import styles from '@styles/pages/Page.module.scss';
import {
NextPageWithLayout,
Project as ProjectData,
ProjectProps,
} from '@ts/types/app';
+import { settings } from '@utils/config';
import { loadTranslation } from '@utils/helpers/i18n';
import {
getAllProjectsFilename,
@@ -30,7 +30,7 @@ const Project: NextPageWithLayout<ProjectProps> = ({
project: ProjectData;
}) => {
const router = useRouter();
- const projectUrl = `${config.url}${router.asPath}`;
+ const projectUrl = `${settings.url}${router.asPath}`;
const { id, intro, meta, title, seo } = project;
const dates = {
publication: meta.publishedOn,
@@ -50,14 +50,14 @@ const Project: NextPageWithLayout<ProjectProps> = ({
const webpageSchema: WebPage = {
'@id': `${projectUrl}`,
'@type': 'WebPage',
- breadcrumb: { '@id': `${config.url}/#breadcrumb` },
+ breadcrumb: { '@id': `${settings.url}/#breadcrumb` },
name: seo.title,
description: seo.description,
- inLanguage: config.locales.defaultLocale,
- reviewedBy: { '@id': `${config.url}/#branding` },
- url: `${config.url}`,
+ inLanguage: settings.locales.defaultLocale,
+ reviewedBy: { '@id': `${settings.url}/#branding` },
+ url: `${settings.url}`,
isPartOf: {
- '@id': `${config.url}`,
+ '@id': `${settings.url}`,
},
};
@@ -65,20 +65,20 @@ const Project: NextPageWithLayout<ProjectProps> = ({
const updateDate = new Date(dates.update);
const articleSchema: Article = {
- '@id': `${config.url}/project`,
+ '@id': `${settings.url}/project`,
'@type': 'Article',
name: title,
description: intro,
- author: { '@id': `${config.url}/#branding` },
+ author: { '@id': `${settings.url}/#branding` },
copyrightYear: publicationDate.getFullYear(),
- creator: { '@id': `${config.url}/#branding` },
+ creator: { '@id': `${settings.url}/#branding` },
dateCreated: publicationDate.toISOString(),
dateModified: updateDate.toISOString(),
datePublished: publicationDate.toISOString(),
- editor: { '@id': `${config.url}/#branding` },
+ editor: { '@id': `${settings.url}/#branding` },
thumbnailUrl: meta.hasCover ? `/projects/${id}.jpg` : '',
image: meta.hasCover ? `/projects/${id}.jpg` : '',
- inLanguage: config.locales.defaultLocale,
+ inLanguage: settings.locales.defaultLocale,
license: 'https://creativecommons.org/licenses/by-sa/4.0/deed.fr',
mainEntityOfPage: { '@id': `${projectUrl}` },
};
diff --git a/src/pages/projets.tsx b/src/pages/projets.tsx
index da4523c..48e55e5 100644
--- a/src/pages/projets.tsx
+++ b/src/pages/projets.tsx
@@ -1,10 +1,10 @@
import { getLayout } from '@components/Layouts/Layout';
import PostHeader from '@components/PostHeader/PostHeader';
import ProjectsList from '@components/ProjectsList/ProjectsList';
-import { config } from '@config/website';
import PageContent, { meta } from '@content/pages/projects.mdx';
import styles from '@styles/pages/Projects.module.scss';
import { Project } from '@ts/types/app';
+import { settings } from '@utils/config';
import { loadTranslation } from '@utils/helpers/i18n';
import { getSortedProjects } from '@utils/helpers/projects';
import { GetStaticProps, GetStaticPropsContext } from 'next';
@@ -22,13 +22,13 @@ const Projects = ({ projects }: { projects: Project[] }) => {
const publicationDate = new Date(dates.publication);
const updateDate = new Date(dates.update);
const router = useRouter();
- const pageUrl = `${config.url}${router.asPath}`;
+ const pageUrl = `${settings.url}${router.asPath}`;
const pageTitle = intl.formatMessage(
{
defaultMessage: 'Projects: open-source makings - {websiteName}',
description: 'ProjectsPage: SEO - Page title',
},
- { websiteName: config.name }
+ { websiteName: settings.name }
);
const pageDescription = intl.formatMessage(
{
@@ -36,37 +36,37 @@ const Projects = ({ projects }: { projects: Project[] }) => {
'Discover {websiteName} projects. Mostly related to web development and open source.',
description: 'ProjectsPage: SEO - Meta description',
},
- { websiteName: config.name }
+ { websiteName: settings.name }
);
const webpageSchema: WebPage = {
'@id': `${pageUrl}`,
'@type': 'WebPage',
- breadcrumb: { '@id': `${config.url}/#breadcrumb` },
+ breadcrumb: { '@id': `${settings.url}/#breadcrumb` },
name: pageTitle,
description: pageDescription,
- inLanguage: config.locales.defaultLocale,
+ inLanguage: settings.locales.defaultLocale,
license: 'https://creativecommons.org/licenses/by-sa/4.0/deed.fr',
- reviewedBy: { '@id': `${config.url}/#branding` },
+ reviewedBy: { '@id': `${settings.url}/#branding` },
url: `${pageUrl}`,
isPartOf: {
- '@id': `${config.url}`,
+ '@id': `${settings.url}`,
},
};
const articleSchema: Article = {
- '@id': `${config.url}/#projects`,
+ '@id': `${settings.url}/#projects`,
'@type': 'Article',
name: meta.title,
description: pageDescription,
- author: { '@id': `${config.url}/#branding` },
+ author: { '@id': `${settings.url}/#branding` },
copyrightYear: publicationDate.getFullYear(),
- creator: { '@id': `${config.url}/#branding` },
+ creator: { '@id': `${settings.url}/#branding` },
dateCreated: publicationDate.toISOString(),
dateModified: updateDate.toISOString(),
datePublished: publicationDate.toISOString(),
- editor: { '@id': `${config.url}/#branding` },
- inLanguage: config.locales.defaultLocale,
+ editor: { '@id': `${settings.url}/#branding` },
+ inLanguage: settings.locales.defaultLocale,
license: 'https://creativecommons.org/licenses/by-sa/4.0/deed.fr',
mainEntityOfPage: { '@id': `${pageUrl}` },
};
diff --git a/src/pages/recherche/index.tsx b/src/pages/recherche/index.tsx
index 857b114..8e4033b 100644
--- a/src/pages/recherche/index.tsx
+++ b/src/pages/recherche/index.tsx
@@ -6,11 +6,11 @@ import PostsList from '@components/PostsList/PostsList';
import Sidebar from '@components/Sidebar/Sidebar';
import Spinner from '@components/Spinner/Spinner';
import { ThematicsList, TopicsList } from '@components/Widgets';
-import { config } from '@config/website';
import { getPublishedPosts } from '@services/graphql/queries';
import styles from '@styles/pages/Page.module.scss';
import { NextPageWithLayout } from '@ts/types/app';
import { PostsList as PostsListData } from '@ts/types/blog';
+import { settings } from '@utils/config';
import { getIntlInstance, loadTranslation } from '@utils/helpers/i18n';
import { GetStaticProps, GetStaticPropsContext } from 'next';
import Head from 'next/head';
@@ -37,9 +37,9 @@ const Search: NextPageWithLayout = () => {
if (previousData && !previousData.posts) return null;
return pageIndex === 0
- ? { first: config.postsPerPage, searchQuery: query }
+ ? { first: settings.postsPerPage, searchQuery: query }
: {
- first: config.postsPerPage,
+ first: settings.postsPerPage,
after: previousData.pageInfo.endCursor,
searchQuery: query,
};
@@ -56,13 +56,13 @@ const Search: NextPageWithLayout = () => {
}, [data]);
const [loadedPostsCount, setLoadedPostsCount] = useState<number>(
- config.postsPerPage
+ settings.postsPerPage
);
useEffect(() => {
if (data && data.length > 0) {
const newCount =
- config.postsPerPage +
+ settings.postsPerPage +
data[0].pageInfo.total -
data[data.length - 1].pageInfo.total;
setLoadedPostsCount(newCount);
@@ -102,11 +102,11 @@ const Search: NextPageWithLayout = () => {
defaultMessage: 'Search for a post on {websiteName}',
description: 'SearchPage: meta description without query',
},
- { websiteName: config.name }
+ { websiteName: settings.name }
);
const head = {
- title: `${title} | ${config.name}`,
+ title: `${title} | ${settings.name}`,
description,
};
diff --git a/src/pages/sujet/[slug].tsx b/src/pages/sujet/[slug].tsx
index 87a86a2..3ccacbb 100644
--- a/src/pages/sujet/[slug].tsx
+++ b/src/pages/sujet/[slug].tsx
@@ -3,12 +3,12 @@ import PostHeader from '@components/PostHeader/PostHeader';
import PostPreview from '@components/PostPreview/PostPreview';
import Sidebar from '@components/Sidebar/Sidebar';
import { RelatedThematics, ToC, TopicsList } from '@components/Widgets';
-import { config } from '@config/website';
import { getAllTopicsSlug, getTopicBySlug } from '@services/graphql/queries';
import styles from '@styles/pages/Page.module.scss';
import { NextPageWithLayout } from '@ts/types/app';
import { ArticleMeta } from '@ts/types/articles';
import { TopicProps, ThematicPreview } from '@ts/types/taxonomies';
+import { settings } from '@utils/config';
import { loadTranslation } from '@utils/helpers/i18n';
import { GetStaticPaths, GetStaticProps, GetStaticPropsContext } from 'next';
import Head from 'next/head';
@@ -51,19 +51,19 @@ const Topic: NextPageWithLayout<TopicProps> = ({ topic }) => {
results: topic.posts.length,
website: topic.officialWebsite,
};
- const topicUrl = `${config.url}${router.asPath}`;
+ const topicUrl = `${settings.url}${router.asPath}`;
const webpageSchema: WebPage = {
'@id': `${topicUrl}`,
'@type': 'WebPage',
- breadcrumb: { '@id': `${config.url}/#breadcrumb` },
+ breadcrumb: { '@id': `${settings.url}/#breadcrumb` },
name: topic.seo.title,
description: topic.seo.metaDesc,
- inLanguage: config.locales.defaultLocale,
- reviewedBy: { '@id': `${config.url}/#branding` },
- url: `${config.url}`,
+ inLanguage: settings.locales.defaultLocale,
+ reviewedBy: { '@id': `${settings.url}/#branding` },
+ url: `${settings.url}`,
isPartOf: {
- '@id': `${config.url}`,
+ '@id': `${settings.url}`,
},
};
@@ -71,24 +71,24 @@ const Topic: NextPageWithLayout<TopicProps> = ({ topic }) => {
const updateDate = new Date(topic.dates.update);
const articleSchema: Article = {
- '@id': `${config.url}/topic`,
+ '@id': `${settings.url}/topic`,
'@type': 'Article',
name: topic.title,
description: topic.intro,
- author: { '@id': `${config.url}/#branding` },
+ author: { '@id': `${settings.url}/#branding` },
copyrightYear: publicationDate.getFullYear(),
- creator: { '@id': `${config.url}/#branding` },
+ creator: { '@id': `${settings.url}/#branding` },
dateCreated: publicationDate.toISOString(),
dateModified: updateDate.toISOString(),
datePublished: publicationDate.toISOString(),
- editor: { '@id': `${config.url}/#branding` },
+ editor: { '@id': `${settings.url}/#branding` },
thumbnailUrl: topic.featuredImage?.sourceUrl,
image: topic.featuredImage?.sourceUrl,
- inLanguage: config.locales.defaultLocale,
- isPartOf: { '@id': `${config.url}/blog` },
+ inLanguage: settings.locales.defaultLocale,
+ isPartOf: { '@id': `${settings.url}/blog` },
license: 'https://creativecommons.org/licenses/by-sa/4.0/deed.fr',
mainEntityOfPage: { '@id': `${topicUrl}` },
- subjectOf: { '@id': `${config.url}/blog` },
+ subjectOf: { '@id': `${settings.url}/blog` },
};
const schemaJsonLd: Graph = {
diff --git a/src/pages/thematique/[slug].tsx b/src/pages/thematique/[slug].tsx
index 61019fd..dbef25b 100644
--- a/src/pages/thematique/[slug].tsx
+++ b/src/pages/thematique/[slug].tsx
@@ -3,7 +3,6 @@ import PostHeader from '@components/PostHeader/PostHeader';
import PostPreview from '@components/PostPreview/PostPreview';
import Sidebar from '@components/Sidebar/Sidebar';
import { RelatedTopics, ThematicsList, ToC } from '@components/Widgets';
-import { config } from '@config/website';
import {
getAllThematicsSlug,
getThematicBySlug,
@@ -12,6 +11,7 @@ import styles from '@styles/pages/Page.module.scss';
import { NextPageWithLayout } from '@ts/types/app';
import { ArticleMeta } from '@ts/types/articles';
import { TopicPreview, ThematicProps } from '@ts/types/taxonomies';
+import { settings } from '@utils/config';
import { loadTranslation } from '@utils/helpers/i18n';
import { GetStaticPaths, GetStaticProps, GetStaticPropsContext } from 'next';
import Head from 'next/head';
@@ -53,39 +53,39 @@ const Thematic: NextPageWithLayout<ThematicProps> = ({ thematic }) => {
dates: thematic.dates,
results: thematic.posts.length,
};
- const thematicUrl = `${config.url}${router.asPath}`;
+ const thematicUrl = `${settings.url}${router.asPath}`;
const webpageSchema: WebPage = {
'@id': `${thematicUrl}`,
'@type': 'WebPage',
- breadcrumb: { '@id': `${config.url}/#breadcrumb` },
+ breadcrumb: { '@id': `${settings.url}/#breadcrumb` },
name: thematic.seo.title,
description: thematic.seo.metaDesc,
- inLanguage: config.locales.defaultLocale,
- reviewedBy: { '@id': `${config.url}/#branding` },
- url: `${config.url}`,
+ inLanguage: settings.locales.defaultLocale,
+ reviewedBy: { '@id': `${settings.url}/#branding` },
+ url: `${settings.url}`,
};
const publicationDate = new Date(thematic.dates.publication);
const updateDate = new Date(thematic.dates.update);
const articleSchema: Article = {
- '@id': `${config.url}/thematic`,
+ '@id': `${settings.url}/thematic`,
'@type': 'Article',
name: thematic.title,
description: thematic.intro,
- author: { '@id': `${config.url}/#branding` },
+ author: { '@id': `${settings.url}/#branding` },
copyrightYear: publicationDate.getFullYear(),
- creator: { '@id': `${config.url}/#branding` },
+ creator: { '@id': `${settings.url}/#branding` },
dateCreated: publicationDate.toISOString(),
dateModified: updateDate.toISOString(),
datePublished: publicationDate.toISOString(),
- editor: { '@id': `${config.url}/#branding` },
- inLanguage: config.locales.defaultLocale,
- isPartOf: { '@id': `${config.url}/blog` },
+ editor: { '@id': `${settings.url}/#branding` },
+ inLanguage: settings.locales.defaultLocale,
+ isPartOf: { '@id': `${settings.url}/blog` },
license: 'https://creativecommons.org/licenses/by-sa/4.0/deed.fr',
mainEntityOfPage: { '@id': `${thematicUrl}` },
- subjectOf: { '@id': `${config.url}/blog` },
+ subjectOf: { '@id': `${settings.url}/blog` },
};
const schemaJsonLd: Graph = {
diff --git a/src/config/website.ts b/src/utils/config.ts
index 81c493f..1c227cc 100644
--- a/src/config/website.ts
+++ b/src/utils/config.ts
@@ -1,4 +1,4 @@
-export const config = {
+export const settings = {
name: 'Armand Philippot',
baseline: 'Front-end developer',
copyright: {
diff --git a/src/utils/helpers/i18n.ts b/src/utils/helpers/i18n.ts
index 16c83f4..c4734ad 100644
--- a/src/utils/helpers/i18n.ts
+++ b/src/utils/helpers/i18n.ts
@@ -1,11 +1,11 @@
-import { config } from '@config/website';
import { createIntl, createIntlCache, IntlShape } from '@formatjs/intl';
+import { settings } from '@utils/config';
import { readFile } from 'fs/promises';
import path from 'path';
type Messages = { [key: string]: string };
-export const defaultLocale = config.locales.defaultLocale;
+export const defaultLocale = settings.locales.defaultLocale;
/**
* Load the translation for the provided locale.
diff --git a/src/utils/helpers/rss.ts b/src/utils/helpers/rss.ts
index 7806f7c..55b009a 100644
--- a/src/utils/helpers/rss.ts
+++ b/src/utils/helpers/rss.ts
@@ -1,7 +1,7 @@
-import { config } from '@config/website';
import { getPublishedPosts } from '@services/graphql/queries';
import { ArticlePreview } from '@ts/types/articles';
import { PostsList } from '@ts/types/blog';
+import { settings } from '@utils/config';
import { Feed } from 'feed';
const getAllPosts = async (): Promise<ArticlePreview[]> => {
@@ -22,12 +22,12 @@ const getAllPosts = async (): Promise<ArticlePreview[]> => {
export const generateFeed = async () => {
const websiteUrl = process.env.FRONTEND_URL ? process.env.FRONTEND_URL : '';
const author = {
- name: config.name,
+ name: settings.name,
email: process.env.AUTHOR_EMAIL,
link: websiteUrl,
};
- const copyright = `${config.name} CC BY SA ${config.copyright.startYear} - ${config.copyright.endYear}`;
- const title = `${config.name} | ${config.baseline}`;
+ const copyright = `${settings.name} CC BY SA ${settings.copyright.startYear} - ${settings.copyright.endYear}`;
+ const title = `${settings.name} | ${settings.baseline}`;
const feed = new Feed({
author,
@@ -39,7 +39,7 @@ export const generateFeed = async () => {
},
generator: 'Feed & NextJS',
id: websiteUrl,
- language: config.locales.defaultLocale,
+ language: settings.locales.defaultLocale,
link: websiteUrl,
title,
});