diff --git a/next-sitemap.config.js b/next-sitemap.config.js deleted file mode 100644 index 7a24011a..00000000 --- a/next-sitemap.config.js +++ /dev/null @@ -1,18 +0,0 @@ -/** @type {import('next-sitemap').IConfig} */ - -const config = { - siteUrl: process.env.SITE_URL || 'https://thedaviddias.dev', - generateRobotsTxt: true, // (optional) - alternateRefs: [ - { - href: 'https://thedaviddias.dev', - hreflang: 'en', - }, - { - href: 'https://thedaviddias.dev/fr', - hreflang: 'fr', - }, - ], -} - -module.exports = config diff --git a/package.json b/package.json index e911c8e1..8eede5c6 100644 --- a/package.json +++ b/package.json @@ -12,8 +12,7 @@ "check:types": "tsc -p tsconfig.json --noEmit --pretty", "format": "prettier --write .", "lint:write": "eslint . --ext js,ts,tsx --fix --max-warnings=0", - "prepare": "husky install", - "postbuild": "next-sitemap" + "prepare": "husky install" }, "dependencies": { "@tailwindcss/aspect-ratio": "^0.4.0", @@ -26,7 +25,6 @@ "next": "12.2.3", "next-mdx-remote": "^4.1.0", "next-seo": "^5.5.0", - "next-sitemap": "^3.1.15", "next-themes": "^0.2.0", "next-translate": "^1.5.0", "postcss": "^8.4.14", @@ -40,10 +38,8 @@ }, "devDependencies": { "@types/node": "18.6.1", - "@types/prettier": "^2.6.4", "@types/react": "18.0.15", "@types/react-dom": "18.0.6", - "@types/rss": "^0.0.29", "@typescript-eslint/eslint-plugin": "^5.31.0", "@typescript-eslint/parser": "^5.31.0", "camel-case": "^4.1.2", @@ -65,7 +61,6 @@ "rehype-prism-plus": "^1.4.2", "rehype-slug": "^5.0.1", "remark-gfm": "^3.0.1", - "rss": "^1.2.2", "typescript": "4.7.4", "unist-util-visit": "^4.1.0" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0efa9d28..ea1355d9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,10 +5,8 @@ specifiers: '@tailwindcss/forms': ^0.5.2 '@tailwindcss/typography': ^0.5.4 '@types/node': 18.6.1 - '@types/prettier': ^2.6.4 '@types/react': 18.0.15 '@types/react-dom': 18.0.6 - '@types/rss': ^0.0.29 '@typescript-eslint/eslint-plugin': ^5.31.0 '@typescript-eslint/parser': ^5.31.0 autoprefixer: ^10.4.7 @@ -31,7 +29,6 @@ specifiers: next: 12.2.3 next-mdx-remote: ^4.1.0 next-seo: ^5.5.0 - next-sitemap: ^3.1.15 next-themes: ^0.2.0 next-translate: ^1.5.0 postcss: ^8.4.14 @@ -46,7 +43,6 @@ specifiers: rehype-prism-plus: ^1.4.2 rehype-slug: ^5.0.1 remark-gfm: ^3.0.1 - rss: ^1.2.2 slugify: ^1.6.5 tailwindcss: ^3.1.6 typescript: 4.7.4 @@ -63,7 +59,6 @@ dependencies: next: 12.2.3_biqbaboplfbrettd7655fr4n2y next-mdx-remote: 4.1.0_biqbaboplfbrettd7655fr4n2y next-seo: 5.5.0_53oqlnqnxhbetdy4ljlkkvmoby - next-sitemap: 3.1.15_next@12.2.3 next-themes: 0.2.0_53oqlnqnxhbetdy4ljlkkvmoby next-translate: 1.5.0_next@12.2.3+react@18.2.0 postcss: 8.4.14 @@ -77,10 +72,8 @@ dependencies: devDependencies: '@types/node': 18.6.1 - '@types/prettier': 2.6.4 '@types/react': 18.0.15 '@types/react-dom': 18.0.6 - '@types/rss': 0.0.29 '@typescript-eslint/eslint-plugin': 5.31.0_d5zwcxr4bwkhmuo464cb3a2puu '@typescript-eslint/parser': 5.31.0_he2ccbldppg44uulnyq4rwocfa camel-case: 4.1.2 @@ -102,7 +95,6 @@ devDependencies: rehype-prism-plus: 1.4.2 rehype-slug: 5.0.1 remark-gfm: 3.0.1 - rss: 1.2.2 typescript: 4.7.4 unist-util-visit: 4.1.0 @@ -237,10 +229,6 @@ packages: to-fast-properties: 2.0.0 dev: false - /@corex/deepmerge/4.0.29: - resolution: {integrity: sha512-q/yVUnqckA8Do+EvAfpy7RLdumnBy9ZsducMUtZTvpdbJC7azEf1hGtnYYxm0QfphYxjwggv6XtH64prvS1W+A==} - dev: false - /@emotion/is-prop-valid/0.8.8: resolution: {integrity: sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==} dependencies: @@ -599,10 +587,6 @@ packages: resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} dev: true - /@types/prettier/2.6.4: - resolution: {integrity: sha512-fOwvpvQYStpb/zHMx0Cauwywu9yLDmzWiiQBC7gJyq5tYLUXFZvDG7VK1B7WBxxjBJNKFOZ0zLoOQn8vmATbhw==} - dev: true - /@types/prismjs/1.26.0: resolution: {integrity: sha512-ZTaqn/qSqUuAq1YwvOFQfVW1AR/oQJlLSZVustdjwI+GZ8kr0MSHBj0tsXPW1EqHubx50gtBEjbPGsdZwQwCjQ==} dev: true @@ -623,10 +607,6 @@ packages: '@types/scheduler': 0.16.2 csstype: 3.1.0 - /@types/rss/0.0.29: - resolution: {integrity: sha512-9hAYKyOcoxWqkJMue6bi0fcNXxjJiRutVvqyImy732LmTCxRz9BYPmSmujG7uddK0ZEP/35K3QVZ0sfAVyPnQw==} - dev: true - /@types/scheduler/0.16.2: resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} @@ -3109,18 +3089,6 @@ packages: braces: 3.0.2 picomatch: 2.3.1 - /mime-db/1.25.0: - resolution: {integrity: sha512-5k547tI4Cy+Lddr/hdjNbBEWBwSl8EBc5aSdKvedav8DReADgWJzcYiktaRIw3GtGC1jjwldXtTzvqJZmtvC7w==} - engines: {node: '>= 0.6'} - dev: true - - /mime-types/2.1.13: - resolution: {integrity: sha512-ryBDp1Z/6X90UvjUK3RksH0IBPM137T7cmg4OgD5wQBojlAiUwuok0QeELkim/72EtcYuNlmbkrcGuxj3Kl0YQ==} - engines: {node: '>= 0.6'} - dependencies: - mime-db: 1.25.0 - dev: true - /mimic-fn/2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -3210,19 +3178,6 @@ packages: react-dom: 18.2.0_react@18.2.0 dev: false - /next-sitemap/3.1.15_next@12.2.3: - resolution: {integrity: sha512-zLLbSRQjArBlwQp3SUG1nt9TDdJGvLzRj/sQaV4ZovIl4VlocKuFxlX5aWbVQ7iLhTxr8uGU7v8cFENiZCGRjA==} - engines: {node: '>=14.18'} - hasBin: true - peerDependencies: - '@next/env': '*' - next: '*' - dependencies: - '@corex/deepmerge': 4.0.29 - minimist: 1.2.6 - next: 12.2.3_biqbaboplfbrettd7655fr4n2y - dev: false - /next-themes/0.2.0_53oqlnqnxhbetdy4ljlkkvmoby: resolution: {integrity: sha512-myhpDL4vadBD9YDSHiewqvzorGzB03N84e+3LxCwHRlM/hiBOaW+UsKsQojQAzC7fdcJA0l2ppveXcYaVV+hxQ==} peerDependencies: @@ -3981,13 +3936,6 @@ packages: dependencies: glob: 7.2.3 - /rss/1.2.2: - resolution: {integrity: sha512-xUhRTgslHeCBeHAqaWSbOYTydN2f0tAzNXvzh3stjz7QDhQMzdgHf3pfgNIngeytQflrFPfy6axHilTETr6gDg==} - dependencies: - mime-types: 2.1.13 - xml: 1.0.1 - dev: true - /run-parallel/1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: @@ -4697,10 +4645,6 @@ packages: /wrappy/1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - /xml/1.0.1: - resolution: {integrity: sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==} - dev: true - /xtend/4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} diff --git a/public/images/about-david-dias.jpeg b/public/images/about-david-dias.jpeg deleted file mode 100644 index 6d364609..00000000 Binary files a/public/images/about-david-dias.jpeg and /dev/null differ diff --git a/src/config/seo.ts b/src/config/seo.ts index 01c184be..2ee7a948 100644 --- a/src/config/seo.ts +++ b/src/config/seo.ts @@ -2,7 +2,7 @@ export const baseUrl = process.env.NODE_ENV === 'production' ? 'https://thedavid export const baseEmail = 'hello@thedaviddias.com' const title = 'The David Dias | Developer and content creator' -const description = `Hey, I'm David Dias! Software Engineer based in Toronto / Canada. I love talking about code, technology, expatriation and life.` +const description = 'Discover' export const defaultSEO = { title, diff --git a/src/layouts/BaseLayout.tsx b/src/layouts/BaseLayout.tsx deleted file mode 100644 index 5abd8f19..00000000 --- a/src/layouts/BaseLayout.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { NextSeo } from 'next-seo' -import React, { FC } from 'react' - -import { Container } from '@/components/Container' - -import { SEOProps } from '@/config/seo' - -type BaseLayoutProps = { - children: React.ReactNode - title: string - description: string - openGraph?: SEOProps - className?: string -} - -export const BaseLayout: FC = ({ - children, - title, - description, - openGraph, - className, -}) => { - return ( - - -
{children}
-
- ) -} diff --git a/src/middlewares.ts b/src/middlewares.ts deleted file mode 100644 index cc469c49..00000000 --- a/src/middlewares.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { NextResponse } from 'next/server' - -export function middleware() { - const ContentSecurityPolicy = ` - default-src 'self'; - script-src 'self' 'unsafe-eval' 'unsafe-inline' *.youtube.com *.twitter.com *.plausible.com; - child-src *.youtube.com *.google.com *.twitter.com; - style-src 'self' 'unsafe-inline' *.googleapis.com; - img-src * blob: data:; - media-src 'none'; - connect-src *; - font-src 'self'; - ` - - const response = NextResponse.next() - - response.headers.set('Content-Security-Policy', ContentSecurityPolicy.replace(/\n/g, '')) - response.headers.set('Referrer-Policy', 'origin-when-cross-origin') - response.headers.set('Permissions-Policy', 'camera=(), microphone=(), geolocation=()') - response.headers.set('Strict-Transport-Security', 'max-age=31536000; includeSubDomains; preload') - response.headers.set('X-Frame-Options', 'DENY') - response.headers.set('X-Content-Type-Options', 'nosniff') - response.headers.set('X-DNS-Prefetch-Control', 'on') - - return response -} diff --git a/src/pages/404.tsx b/src/pages/404.tsx index edc16e88..7ba0db79 100755 --- a/src/pages/404.tsx +++ b/src/pages/404.tsx @@ -1,29 +1,34 @@ import { NextPage } from 'next' import { useRouter } from 'next/router' +import { NextSeo } from 'next-seo' import useTranslation from 'next-translate/useTranslation' -import { PageHeader } from '@/components/PageHeader' +import { Container } from '@/components/Container' +import { H1 } from '@/components/Headings' import { routes } from '@/config/routes' -import { BaseLayout } from '@/layouts/BaseLayout' const NotFoundPage: NextPage = () => { const { t } = useTranslation('common') const router = useRouter() return ( - - + +
+
+

{routes(t).error404.seo.title}

+

+ {routes(t).error404.seo.description} +

+
+
-
+ ) } diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index 6a3ed918..4c8ae421 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -1,6 +1,6 @@ import type { AppProps } from 'next/app' -import '@/styles/globals.css' +import '../styles/globals.css' import '@/styles/prism.css' function MyApp({ Component, pageProps }: AppProps) { diff --git a/src/pages/about.tsx b/src/pages/about.tsx index 62fdf156..24f68369 100644 --- a/src/pages/about.tsx +++ b/src/pages/about.tsx @@ -1,21 +1,27 @@ +import { NextSeo } from 'next-seo' import useTranslation from 'next-translate/useTranslation' +import { Container } from '@/components/Container' import { PageHeader } from '@/components/PageHeader' import { routes } from '@/config/routes' -import { BaseLayout } from '@/layouts/BaseLayout' export default function About() { const { t } = useTranslation('common') return ( - - - + + +
+ +
+
) } diff --git a/src/pages/tag/[tag].tsx b/src/pages/tag/[tag].tsx index 923dd100..a5fbce70 100644 --- a/src/pages/tag/[tag].tsx +++ b/src/pages/tag/[tag].tsx @@ -27,7 +27,7 @@ const TagPage: NextPage = ({ posts, tag }) => {
diff --git a/src/pages/uses.tsx b/src/pages/uses.tsx index ff01cf5d..4ecd6b53 100644 --- a/src/pages/uses.tsx +++ b/src/pages/uses.tsx @@ -1,27 +1,24 @@ +import { NextSeo } from 'next-seo' import useTranslation from 'next-translate/useTranslation' +import { Container } from '@/components/Container' import { PageHeader } from '@/components/PageHeader' import { routes } from '@/config/routes' -import { BaseLayout } from '@/layouts/BaseLayout' export default function About() { const { t } = useTranslation('common') return ( - - - + + +
+ +
+
) } - -// export async function getStaticProps() { -// const uses = allOtherPages.find((page) => page.slug === 'uses')!; - -// return { props: uses }; -// } diff --git a/vercel.json b/vercel.json deleted file mode 100644 index aee80945..00000000 --- a/vercel.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "cleanUrls": true, - "trailingSlash": true, - "headers": [ - { - "source": "/fonts/ibm-plex-sans-var.woff2", - "headers": [ - { - "key": "Cache-Control", - "value": "public, max-age=31536000, immutable" - } - ] - }, - { - "source": "/fonts/ibm-plex-sans-var-italic.woff2", - "headers": [ - { - "key": "Cache-Control", - "value": "public, max-age=31536000, immutable" - } - ] - } - ] -}