diff --git a/apps/site/app/[locale]/error.tsx b/apps/site/app/[locale]/error.tsx index a62a830d1f1ed..f7c05407a2508 100644 --- a/apps/site/app/[locale]/error.tsx +++ b/apps/site/app/[locale]/error.tsx @@ -6,31 +6,26 @@ import { useTranslations } from 'next-intl'; import type { FC } from 'react'; import Button from '@/components/Common/Button'; -import GlowingBackdrop from '@/components/Common/GlowingBackdrop'; -import CenteredLayout from '@/layouts/Centered'; +import GlowingBackdropLayout from '@/layouts/GlowingBackdrop'; const ErrorPage: FC<{ error: Error }> = ({ error }) => { captureException(error); const t = useTranslations(); return ( - - - -
- 500 -

- {t('layouts.error.internalServerError.title')} -

-

- {t('layouts.error.internalServerError.description')} -

- -
-
+ + 500 +

+ {t('layouts.error.internalServerError.title')} +

+

+ {t('layouts.error.internalServerError.description')} +

+ +
); }; diff --git a/apps/site/app/[locale]/not-found.tsx b/apps/site/app/[locale]/not-found.tsx index 44d8839a42d7d..ec3a343628e52 100644 --- a/apps/site/app/[locale]/not-found.tsx +++ b/apps/site/app/[locale]/not-found.tsx @@ -6,40 +6,35 @@ import { useTranslations } from 'next-intl'; import type { FC } from 'react'; import Button from '@/components/Common/Button'; -import GlowingBackdrop from '@/components/Common/GlowingBackdrop'; -import CenteredLayout from '@/layouts/Centered'; +import GlowingBackdropLayout from '@/layouts/GlowingBackdrop'; const NotFoundPage: FC = () => { const t = useTranslations(); return ( - - - -
- 404 -

- {t('layouts.error.notFound.title')} -

-
-
- The Node.js mascot -
+ + 404 +

+ {t('layouts.error.notFound.title')} +

+
+
+ The Node.js mascot
-

- {t('layouts.error.notFound.description')} -

- -
-
+ +

+ {t('layouts.error.notFound.description')} +

+ + ); }; diff --git a/apps/site/app/global-error.tsx b/apps/site/app/global-error.tsx index 6cab08ae716f9..cb99e04c2fb36 100644 --- a/apps/site/app/global-error.tsx +++ b/apps/site/app/global-error.tsx @@ -5,9 +5,8 @@ import { captureException } from '@sentry/nextjs'; import type { FC } from 'react'; import Button from '@/components/Common/Button'; -import GlowingBackdrop from '@/components/Common/GlowingBackdrop'; import BaseLayout from '@/layouts/Base'; -import CenteredLayout from '@/layouts/Centered'; +import GlowingBackdropLayout from '@/layouts/GlowingBackdrop'; const GlobalErrorPage: FC<{ error: Error }> = ({ error }) => { captureException(error); @@ -16,23 +15,17 @@ const GlobalErrorPage: FC<{ error: Error }> = ({ error }) => { - - - -
- 500 -

- Internal Server Error -

-

- This page has thrown a non-recoverable error. -

- -
-
+ + 500 +

Internal Server Error

+

+ This page has thrown a non-recoverable error. +

+ +
diff --git a/apps/site/components/withLayout.tsx b/apps/site/components/withLayout.tsx index 7e8d50b300354..8d5a7d4745e9a 100644 --- a/apps/site/components/withLayout.tsx +++ b/apps/site/components/withLayout.tsx @@ -1,10 +1,11 @@ import type { FC, PropsWithChildren } from 'react'; import AboutLayout from '@/layouts/About'; +import ArticlePageLayout from '@/layouts/ArticlePage'; import BlogLayout from '@/layouts/Blog'; import DefaultLayout from '@/layouts/Default'; import DownloadLayout from '@/layouts/Download'; -import HomeLayout from '@/layouts/Home'; +import GlowingBackdropLayout from '@/layouts/GlowingBackdrop'; import LearnLayout from '@/layouts/Learn'; import PostLayout from '@/layouts/Post'; import SearchLayout from '@/layouts/Search'; @@ -12,13 +13,14 @@ import type { Layouts } from '@/types'; const layouts = { about: AboutLayout, - home: HomeLayout, + home: props => , learn: LearnLayout, page: DefaultLayout, 'blog-post': PostLayout, 'blog-category': BlogLayout, search: SearchLayout, download: DownloadLayout, + article: ArticlePageLayout, } satisfies Record; type WithLayoutProps = PropsWithChildren<{ layout: L }>; diff --git a/apps/site/layouts/ArticlePage.tsx b/apps/site/layouts/ArticlePage.tsx new file mode 100644 index 0000000000000..a2cadddc0cfb2 --- /dev/null +++ b/apps/site/layouts/ArticlePage.tsx @@ -0,0 +1,24 @@ +import type { FC, PropsWithChildren } from 'react'; + +import WithMetaBar from '@/components/withMetaBar'; +import WithNavBar from '@/components/withNavBar'; +import WithSidebar from '@/components/withSidebar'; +import ArticleLayout from '@/layouts/Article'; + +const ArticlePageLayout: FC = ({ children }) => ( + <> + + + + + +
+
{children}
+ + +
+
+ +); + +export default ArticlePageLayout; diff --git a/apps/site/layouts/Centered.tsx b/apps/site/layouts/Centered.tsx index f63f312b451aa..e69de29bb2d1d 100644 --- a/apps/site/layouts/Centered.tsx +++ b/apps/site/layouts/Centered.tsx @@ -1,18 +0,0 @@ -import type { FC, PropsWithChildren } from 'react'; - -import WithFooter from '@/components/withFooter'; -import WithNavBar from '@/components/withNavBar'; - -import styles from './layouts.module.css'; - -const CenteredLayout: FC = ({ children }) => ( - <> - - -
{children}
- - - -); - -export default CenteredLayout; diff --git a/apps/site/layouts/Content.tsx b/apps/site/layouts/Content.tsx deleted file mode 100644 index 5e67339e0ad7c..0000000000000 --- a/apps/site/layouts/Content.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import type { FC, PropsWithChildren } from 'react'; - -import styles from './layouts.module.css'; - -const ContentLayout: FC = ({ children }) => ( -
{children}
-); - -export default ContentLayout; diff --git a/apps/site/layouts/GlowingBackdrop.tsx b/apps/site/layouts/GlowingBackdrop.tsx new file mode 100644 index 0000000000000..2457baf8e0877 --- /dev/null +++ b/apps/site/layouts/GlowingBackdrop.tsx @@ -0,0 +1,35 @@ +import classNames from 'classnames'; +import type { FC, PropsWithChildren } from 'react'; + +import GlowingBackdrop from '@/components/Common/GlowingBackdrop'; +import WithFooter from '@/components/withFooter'; +import WithNavBar from '@/components/withNavBar'; + +import styles from './layouts.module.css'; + +type GlowingBackdropLayoutProps = PropsWithChildren<{ + kind?: 'home'; +}>; + +const GlowingBackdropLayout: FC = ({ + kind, + children, +}) => ( + <> + +
+ + +
+ {children} +
+
+ + +); + +export default GlowingBackdropLayout; diff --git a/apps/site/layouts/Home.tsx b/apps/site/layouts/Home.tsx deleted file mode 100644 index 9a95e136b6c05..0000000000000 --- a/apps/site/layouts/Home.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import type { FC, PropsWithChildren } from 'react'; - -import GlowingBackdrop from '@/components/Common/GlowingBackdrop'; -import CenteredLayout from '@/layouts/Centered'; - -import styles from './layouts.module.css'; - -const HomeLayout: FC = ({ children }) => ( - - - -
{children}
-
-); - -export default HomeLayout; diff --git a/apps/site/layouts/Post.tsx b/apps/site/layouts/Post.tsx index 23a3d7d0c3b54..e6cd3fc715949 100644 --- a/apps/site/layouts/Post.tsx +++ b/apps/site/layouts/Post.tsx @@ -7,7 +7,6 @@ import WithFooter from '@/components/withFooter'; import WithMetaBar from '@/components/withMetaBar'; import WithNavBar from '@/components/withNavBar'; import { useClientContext } from '@/hooks/react-server'; -import ContentLayout from '@/layouts/Content'; import { mapAuthorToCardAuthors, mapBlogCategoryToPreviewType, @@ -26,7 +25,7 @@ const PostLayout: FC = ({ children }) => { <> - +

{frontmatter.title}

@@ -51,7 +50,7 @@ const PostLayout: FC = ({ children }) => {
- +
diff --git a/apps/site/pages/en/download/package-manager/all.md b/apps/site/pages/en/download/package-manager/all.md index 3feb29f9c26ad..cc58af56998eb 100644 --- a/apps/site/pages/en/download/package-manager/all.md +++ b/apps/site/pages/en/download/package-manager/all.md @@ -1,5 +1,5 @@ --- -layout: download +layout: article title: Installing Node.js via package manager --- @@ -7,36 +7,6 @@ title: Installing Node.js via package manager > The packages on this page are maintained and supported by their respective packagers, **not** the Node.js core team. Please report any issues you encounter to the package maintainer. If it turns out your issue is a bug in Node.js itself, the maintainer will report the issue upstream. ---- - -- [Alpine Linux](#alpine-linux) -- [Android](#android) -- [Arch Linux](#arch-linux) -- [CentOS, Fedora and Red Hat Enterprise Linux](#centos-fedora-and-red-hat-enterprise-linux) -- [Debian and Ubuntu based Linux distributions](#debian-and-ubuntu-based-linux-distributions) -- [Exherbo Linux](#exherbo-linux) -- [fnm](#fnm) -- [FreeBSD](#freebsd) -- [Gentoo](#gentoo) -- [IBM i](#ibm-i) -- [macOS](#macos) -- [n](#n) -- [NetBSD](#netbsd) -- [Nodenv](#nodenv) -- [nvm](#nvm) -- [nvs](#nvs) -- [OpenBSD](#openbsd) -- [openSUSE and SLE](#opensuse-and-sle) -- [SmartOS and illumos](#smartos-and-illumos) -- [Snap](#snap) -- [Solus](#solus) -- [vfox](#vfox) -- [Void Linux](#void-linux) -- [Windows](#windows-1) -- [z/OS](#zos) - ---- - ## Alpine Linux Node.js LTS and npm packages are available in the Main Repository. diff --git a/apps/site/types/layouts.ts b/apps/site/types/layouts.ts index 44bf83c8c5ef0..8e354bd51329e 100644 --- a/apps/site/types/layouts.ts +++ b/apps/site/types/layouts.ts @@ -6,4 +6,5 @@ export type Layouts = | 'blog-category' | 'blog-post' | 'search' - | 'download'; + | 'download' + | 'article';