From f1582aefc5412cf777fbf74c7687b3b834a85a06 Mon Sep 17 00:00:00 2001 From: MacRimi <123239993+MacRimi@users.noreply.github.com> Date: Sat, 15 Feb 2025 11:56:54 +0100 Subject: [PATCH] Update GuideContent.tsx --- web/app/guides/[slug]/GuideContent.tsx | 48 ++++++++++++-------------- 1 file changed, 23 insertions(+), 25 deletions(-) diff --git a/web/app/guides/[slug]/GuideContent.tsx b/web/app/guides/[slug]/GuideContent.tsx index d84a95d..037f82b 100644 --- a/web/app/guides/[slug]/GuideContent.tsx +++ b/web/app/guides/[slug]/GuideContent.tsx @@ -1,44 +1,42 @@ "use client" +import type React from "react" import { useState, useEffect } from "react" import CopyableCode from "@/components/CopyableCode" -function processContent(content: string) { - const codeBlockRegex = /
([\s\S]*?)<\/code><\/pre>/g
- return content.replace(codeBlockRegex, (match, code) => {
- return ` `
+function processContent(content: string): React.ReactNode[] {
+ const parts = content.split(/(```[\s\S]*?```)/g)
+ return parts.map((part, index) => {
+ if (part.startsWith("```") && part.endsWith("```")) {
+ const code = part.slice(3, -3).trim()
+ return
+ }
+ return
})
}
export default function GuideContent({ content }: { content: string }) {
- const [processedContent, setProcessedContent] = useState("")
+ const [processedContent, setProcessedContent] = useState([])
useEffect(() => {
setProcessedContent(processContent(content))
}, [content])
- useEffect(() => {
- const placeholders = document.querySelectorAll("CopyableCodePlaceholder")
- placeholders.forEach((placeholder, index) => {
- const code = decodeURIComponent(placeholder.getAttribute("code") || "")
- const codeElement =
- placeholder.replaceWith(codeElement)
- })
- }, []) // Removed unnecessary dependency: processedContent
-
return (
+ [&>h1]:text-3xl [&>h1]:sm:text-4xl [&>h1]:font-bold [&>h1]:mb-6
+ [&>h2]:text-2xl [&>h2]:font-semibold [&>h2]:mt-8 [&>h2]:mb-4
+ [&>h3]:text-xl [&>h3]:font-medium [&>h3]:mt-6 [&>h3]:mb-3
+ [&>p]:mb-4 [&>p]:text-gray-600
+ [&>ul]:list-disc [&>ul]:pl-5 [&>ul]:mb-4
+ [&>ul>li]:text-gray-600 [&>ul>li]:mb-2
+ [&>ol]:list-decimal [&>ol]:pl-5 [&>ol]:mb-4
+ [&>ol>li]:text-gray-600 [&>ol>li]:mb-2
+ [&>a]:text-blue-600 [&>a:hover]:underline"
+ >
+ {processedContent}
+
)
}
+