From 6daa1a6d03c81971359dab2e77cd37169e1e3a5d Mon Sep 17 00:00:00 2001 From: Vojtech Mares Date: Wed, 11 Jan 2023 15:45:51 +0100 Subject: [PATCH] refactor: use mdx for content - less dependencies - no need for gray-matter - no need for extra utils and interactions with filesystem --- components/trainingpage/Training.tsx | 117 ----- components/trainingpage/TrainingLayout.tsx | 135 +++++ components/trainingpage/TrainingListGrid.tsx | 135 ----- .../logos => images/logos/tools}/argo.png | Bin .../logos => images/logos/tools}/git.png | Bin .../logos/tools}/kubernetes.png | Bin .../logos/tools}/terraform.png | Bin lib/cms/training.ts | 51 -- lib/markdownToHTML.ts | 9 - next.config.js | 20 +- package.json | 8 +- pages/skoleni/[slug].tsx | 95 ---- .../argocd.md => pages/skoleni/argocd.mdx | 30 +- .../training/git.md => pages/skoleni/git.mdx | 28 +- pages/skoleni/index.tsx | 56 -- .../skoleni/kubernetes.mdx | 30 +- .../skoleni/terraform.mdx | 32 +- pnpm-lock.yaml | 483 +++++++++++++----- types/training.ts | 18 - 19 files changed, 603 insertions(+), 644 deletions(-) delete mode 100644 components/trainingpage/Training.tsx create mode 100644 components/trainingpage/TrainingLayout.tsx delete mode 100644 components/trainingpage/TrainingListGrid.tsx rename {public/images/logos => images/logos/tools}/argo.png (100%) rename {public/images/logos => images/logos/tools}/git.png (100%) rename {public/images/logos => images/logos/tools}/kubernetes.png (100%) rename {public/images/logos => images/logos/tools}/terraform.png (100%) delete mode 100644 lib/cms/training.ts delete mode 100644 lib/markdownToHTML.ts delete mode 100644 pages/skoleni/[slug].tsx rename content/training/argocd.md => pages/skoleni/argocd.mdx (53%) rename content/training/git.md => pages/skoleni/git.mdx (70%) delete mode 100644 pages/skoleni/index.tsx rename content/training/kubernetes.md => pages/skoleni/kubernetes.mdx (68%) rename content/training/terraform.md => pages/skoleni/terraform.mdx (63%) delete mode 100644 types/training.ts diff --git a/components/trainingpage/Training.tsx b/components/trainingpage/Training.tsx deleted file mode 100644 index 219aa23..0000000 --- a/components/trainingpage/Training.tsx +++ /dev/null @@ -1,117 +0,0 @@ -import Image from "next/image"; - -import TrainingType from "@/types/training"; -import { Container } from "@/components/Container"; -import { Button } from "@/components/Button"; - -type Props = { - training: TrainingType; -}; - -export const Training = ({ training }: Props) => { - const formatter = new Intl.NumberFormat("cs", { - style: "currency", - currency: "CZK", - maximumFractionDigits: 0, - }); - return ( - <> -
-
- - -

- Školení {training.name} -

-
-
- -
-
-
-
-
- {training.days === 2 ? ( -
-
-
- {/*
-
-

- Toto školení je{" "} - - dvoudenní. - -

-
-
-
- ) : ( - <> - )} -
-
-

- Cena za školení -

-
-
-
-
-
- Veřejný termín -
-
- {formatter.format(training.priceOpen)} bez DPH -
-
-
-
- Firemní školení -
-
- {formatter.format(training.priceCompany)} bez DPH -
-
-
-
-
-
- -
-
-
- -
- - ); -}; diff --git a/components/trainingpage/TrainingLayout.tsx b/components/trainingpage/TrainingLayout.tsx new file mode 100644 index 0000000..c088e4b --- /dev/null +++ b/components/trainingpage/TrainingLayout.tsx @@ -0,0 +1,135 @@ +import Head from "next/head"; +import Image from "next/image"; + +import { Header } from "@/components/layout/Header"; +import { Footer } from "@/components/layout/Footer"; +import { Container } from "@/components/Container"; +import { Button } from "@/components/Button"; + +type Props = { + content: any; + meta: any; +} + +export default function TrainingLayout({ content, meta }: Props) { + const formatter = new Intl.NumberFormat("cs", { + style: "currency", + currency: "CZK", + maximumFractionDigits: 0, + }); + + return ( + <> + + + Školení {meta.name} | Vojtěch Mareš - DevOps konzultant, lektor, + engineer + + + + +
+
+
+
+ + +

+ Školení {meta.name} +

+
+
+ +
+
+
+ {content} +
+
+
+ {meta.days === 2 ? ( +
+
+
+ {/*
+
+

+ Toto školení je{" "} + + dvoudenní. + +

+
+
+
+ ) : ( + <> + )} +
+
+

+ Cena za školení +

+
+
+
+
+
+ Veřejný termín +
+
+ {formatter.format(meta.price.open)} bez DPH +
+
+
+
+ Firemní školení +
+
+ {formatter.format(meta.price.company)} bez DPH +
+
+
+
+
+
+ +
+
+
+
+
+
+