diff --git a/app/(presentation)/presentation/[...slug]/page.jsx b/app/(presentation)/presentation/[...slug]/page.jsx index bd0db00..ce5e88a 100644 --- a/app/(presentation)/presentation/[...slug]/page.jsx +++ b/app/(presentation)/presentation/[...slug]/page.jsx @@ -1,5 +1,6 @@ import { notFound } from 'next/navigation'; -import { getPageData, getAllSlugs } from "@/utils/data"; +import { getPageData } from "@/utils/data"; +import Presentation from "@/components/presentation/Presentation"; export default async function PresentationPage({ params }) { const resolvedParams = await params; @@ -14,21 +15,5 @@ export default async function PresentationPage({ params }) { notFound(); } - // PPT展示页面 - 全屏展示 - return ( -
-
-
-
-
- {data.content && ( -
- )} -
-
-
-
-
- ); + return ; } diff --git a/components/presentation/Reveal/UI.jsx b/components/presentation/Presentation.jsx similarity index 86% rename from components/presentation/Reveal/UI.jsx rename to components/presentation/Presentation.jsx index c355a51..e320fa2 100644 --- a/components/presentation/Reveal/UI.jsx +++ b/components/presentation/Presentation.jsx @@ -1,11 +1,12 @@ -"use client"; -import { useEffect, useRef } from "react"; +'use client'; + +import { useEffect, useRef } from 'react'; import Reveal from 'reveal.js'; import 'reveal.js/dist/reveal.css'; -import 'reveal.js/dist/theme/white.css'; +import 'reveal.js/dist/theme/black.css'; import { marked } from 'marked'; -export default function UI({ data, showNavButtons = false }) { +export default function Presentation({ data }) { const deckRef = useRef(null); const revealRef = useRef(null); @@ -20,14 +21,6 @@ export default function UI({ data, showNavButtons = false }) { mangle: false, }); - // 将 markdown 内容转换为幻灯片 - const slides = parseMarkdownToSlides(data); - - // 更新 deck 内容 - if (deckRef.current) { - deckRef.current.innerHTML = slides; - } - // 初始化 Reveal.js if (revealRef.current) { revealRef.current.destroy(); @@ -73,6 +66,17 @@ export default function UI({ data, showNavButtons = false }) { revealRef.current.initialize(); + // 在Reveal.js初始化后,更新slides内容 + setTimeout(() => { + if (deckRef.current) { + const slides = parseMarkdownToSlides(data); + const slidesContainer = deckRef.current.querySelector('.slides'); + if (slidesContainer) { + slidesContainer.innerHTML = slides; + } + } + }, 100); + // 清理函数 return () => { if (revealRef.current) { @@ -165,7 +169,7 @@ export default function UI({ data, showNavButtons = false }) { }; return ( -
+