import { NextSeo } from 'next-seo' import LiteYouTubeEmbed from "react-lite-youtube-embed"; import { YOUTUBE_REGEX } from "../lib/constants"; import siteConfig from "../config/siteConfig"; import MdxContent from './MdxContent' import useHeadingsObserver from '../hooks/useHeadingsObserver' // import { Paragraph } from "./Paragraph"; // import { Anchor } from "./Anchor"; // const Anchor = dynamic(() => import('./Anchor').then(module => module.Anchor), { // ssr: false // }) // const Paragraph = dynamic(() => import("./Paragraph").then(mod => mod.Paragraph)) export default function MdxPage({ body, frontMatter, editUrl }) { const observer = useHeadingsObserver(); const { title, description, date, authors, youtube, podcast, image, _raw } = frontMatter let youtubeThumnbnail; const youtubeId = youtube && YOUTUBE_REGEX.test(youtube) && youtube.split(/^|=|\//).pop(); if (youtubeId && !image) { // get the youtube thumbnail image from https://img.youtube.com/vi//maxresdefault.jpg youtubeThumnbnail = youtube.replace( YOUTUBE_REGEX, `https://img.youtube.com/vi/${youtubeId}/maxresdefault.jpg` ); } const PodcastIcon = siteConfig.social.find((s) => s.name === "Podcast").icon; const titleFromUrl = _raw.flattenedPath .split("/") .pop() .replace(/-/g, " ") // capitalize first char of each word .replace(/(^\w{1})|(\s{1}\w{1})/g, (str) => str.toUpperCase()); const SeoTitle = title ?? titleFromUrl; const imageUrl = image ? siteConfig.url + image : youtubeThumnbnail ? youtubeThumnbnail : null; // enable editing content only for claims, concepts, and guide for now const editUrl = ["claims", "concepts", "guide"].includes(_raw.sourceFileDir) ? siteConfig.repoRoot + siteConfig.repoEditPath + _raw.sourceFilePath : null; return ( <>
); }