diff --git a/package-lock.json b/package-lock.json index 0b491f5..613b622 100644 --- a/package-lock.json +++ b/package-lock.json @@ -35,6 +35,7 @@ "rom-patcher-js": "github:Hackdex-App/RomPatcher.js", "schema-dts": "^1.1.5", "serialize-javascript": "^7.0.0", + "unist-util-visit": "^5.0.0", "uuid": "^13.0.0" }, "devDependencies": { diff --git a/package.json b/package.json index 4b116e0..094f569 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ "rom-patcher-js": "github:Hackdex-App/RomPatcher.js", "schema-dts": "^1.1.5", "serialize-javascript": "^7.0.0", + "unist-util-visit": "^5.0.0", "uuid": "^13.0.0" }, "devDependencies": { diff --git a/src/app/faq/page.tsx b/src/app/faq/page.tsx index d5d60f6..18e2f5f 100644 --- a/src/app/faq/page.tsx +++ b/src/app/faq/page.tsx @@ -1,8 +1,6 @@ import React from "react"; import type { Metadata } from "next"; -import ReactMarkdown from "react-markdown"; -import remarkGfm from "remark-gfm"; -import rehypeSlug from "rehype-slug"; +import Markdown from "@/components/Markdown/Markdown"; import entriesMd from "./entries.md"; export const metadata: Metadata = { @@ -18,7 +16,7 @@ export default function FAQPage() {

FAQ for Hackdex

- {entriesMd} + {entriesMd}
); diff --git a/src/app/hack/[slug]/changelog/page.tsx b/src/app/hack/[slug]/changelog/page.tsx index 96ccc63..3009394 100644 --- a/src/app/hack/[slug]/changelog/page.tsx +++ b/src/app/hack/[slug]/changelog/page.tsx @@ -1,8 +1,6 @@ import { notFound } from "next/navigation"; import { createClient } from "@/utils/supabase/server"; -import ReactMarkdown from "react-markdown"; -import remarkGfm from "remark-gfm"; -import rehypeSlug from "rehype-slug"; +import Markdown from "@/components/Markdown/Markdown"; import Link from "next/link"; import { FaChevronLeft } from "react-icons/fa6"; @@ -79,20 +77,7 @@ export default async function ChangelogPage({ params }: ChangelogPageProps) {
- - {patch.changelog || ""} - + {patch.changelog || ""}
))} diff --git a/src/app/hack/[slug]/page.tsx b/src/app/hack/[slug]/page.tsx index 2dfe750..ed20e7a 100644 --- a/src/app/hack/[slug]/page.tsx +++ b/src/app/hack/[slug]/page.tsx @@ -4,9 +4,7 @@ import Link from "next/link"; import { notFound } from "next/navigation"; import Gallery from "@/components/Hack/Gallery"; import HackActions from "@/components/Hack/HackActions"; -import ReactMarkdown from "react-markdown"; -import remarkGfm from "remark-gfm"; -import rehypeSlug from "rehype-slug"; +import Markdown from "@/components/Markdown/Markdown"; import Image from "next/image"; import { FaDiscord, FaTwitter, FaGithub, FaTriangleExclamation, FaArrowUpRightFromSquare } from "react-icons/fa6"; import PokeCommunityIcon from "@/components/Icons/PokeCommunityIcon"; @@ -376,20 +374,7 @@ export default async function HackDetail({ params }: HackDetailProps) { > {patchChangelog && patchChangelog.trim().length > 0 ? (
- - {patchChangelog} - + {patchChangelog}
) : (

No changelog provided

@@ -400,20 +385,7 @@ export default async function HackDetail({ params }: HackDetailProps) {

About this hack

- - {hack.description} - + {hack.description}
diff --git a/src/app/privacy/page.tsx b/src/app/privacy/page.tsx index 9254bbd..3cea576 100644 --- a/src/app/privacy/page.tsx +++ b/src/app/privacy/page.tsx @@ -1,8 +1,6 @@ import React from "react"; import type { Metadata } from "next"; -import ReactMarkdown from "react-markdown"; -import remarkGfm from "remark-gfm"; -import rehypeSlug from "rehype-slug"; +import Markdown from "@/components/Markdown/Markdown"; import privacyMd from "@/../docs/legal/PRIVACY.md"; export const metadata: Metadata = { @@ -16,7 +14,7 @@ export default function PrivacyPage() { return (
- {privacyMd} + {privacyMd}
); diff --git a/src/app/terms/page.tsx b/src/app/terms/page.tsx index b018829..b467a18 100644 --- a/src/app/terms/page.tsx +++ b/src/app/terms/page.tsx @@ -1,8 +1,6 @@ import React from "react"; import type { Metadata } from "next"; -import ReactMarkdown from "react-markdown"; -import remarkGfm from "remark-gfm"; -import rehypeSlug from "rehype-slug"; +import Markdown from "@/components/Markdown/Markdown"; import termsMd from "@/../docs/legal/TERMS.md"; export const metadata: Metadata = { @@ -16,7 +14,7 @@ export default function TermsPage() { return (
- {termsMd} + {termsMd}
); diff --git a/src/components/Hack/HackEditForm.tsx b/src/components/Hack/HackEditForm.tsx index f754b6e..66116a0 100644 --- a/src/components/Hack/HackEditForm.tsx +++ b/src/components/Hack/HackEditForm.tsx @@ -1,9 +1,7 @@ "use client"; import React from "react"; -import ReactMarkdown from "react-markdown"; -import remarkGfm from "remark-gfm"; -import rehypeSlug from "rehype-slug"; +import Markdown from "@/components/Markdown/Markdown"; import TagSelector from "@/components/Submit/TagSelector"; import { baseRoms } from "@/data/baseRoms"; import Image from "next/image"; @@ -346,7 +344,7 @@ export default function HackEditForm({ slug, initial }: HackEditFormProps) { /> ) : (
- {description || "Nothing to preview yet."} + {description || "Nothing to preview yet."}
)} diff --git a/src/components/Hack/HackSubmitForm.tsx b/src/components/Hack/HackSubmitForm.tsx index f20617a..7bc96be 100644 --- a/src/components/Hack/HackSubmitForm.tsx +++ b/src/components/Hack/HackSubmitForm.tsx @@ -10,9 +10,7 @@ import { presignCoverUpload } from "@/app/hack/actions"; import { DndContext, PointerSensor, closestCenter, useSensor, useSensors } from "@dnd-kit/core"; import { SortableContext, arrayMove, useSortable, verticalListSortingStrategy } from "@dnd-kit/sortable"; import { CSS } from "@dnd-kit/utilities"; -import ReactMarkdown from "react-markdown"; -import remarkGfm from "remark-gfm"; -import rehypeSlug from "rehype-slug"; +import Markdown from "@/components/Markdown/Markdown"; import { RxDragHandleDots2 } from "react-icons/rx"; import { FaDiscord, FaTwitter, FaGithub } from "react-icons/fa6"; import PokeCommunityIcon from "@/components/Icons/PokeCommunityIcon"; @@ -900,7 +898,7 @@ export default function HackSubmitForm({ {isDummy ? (
- {description || "Write a longer markdown description here."} + {description || "Write a longer markdown description here."}
) : !showMdPreview ? (