import { NotionRenderer } from 'react-notion-x' import dynamic from 'next/dynamic' // import mediumZoom from 'medium-zoom' import mediumZoom from '@fisch0920/medium-zoom' import React from 'react' import { isBrowser } from '@/lib/utils' import Image from 'next/image' import Link from 'next/link' import { Code } from 'react-notion-x/build/third-party/code' import { Pdf } from 'react-notion-x/build/third-party/pdf' import { Equation } from 'react-notion-x/build/third-party/equation' import 'prismjs/components/prism-bash.js' import 'prismjs/components/prism-markup-templating.js' import 'prismjs/components/prism-markup.js' import 'prismjs/components/prism-c.js' import 'prismjs/components/prism-cpp.js' import 'prismjs/components/prism-csharp.js' import 'prismjs/components/prism-docker.js' import 'prismjs/components/prism-java.js' import 'prismjs/components/prism-js-templates.js' import 'prismjs/components/prism-coffeescript.js' import 'prismjs/components/prism-diff.js' import 'prismjs/components/prism-git.js' import 'prismjs/components/prism-go.js' import 'prismjs/components/prism-graphql.js' import 'prismjs/components/prism-handlebars.js' import 'prismjs/components/prism-less.js' import 'prismjs/components/prism-makefile.js' import 'prismjs/components/prism-markdown.js' import 'prismjs/components/prism-objectivec.js' import 'prismjs/components/prism-ocaml.js' import 'prismjs/components/prism-python.js' import 'prismjs/components/prism-reason.js' import 'prismjs/components/prism-rust.js' import 'prismjs/components/prism-sass.js' import 'prismjs/components/prism-scss.js' import 'prismjs/components/prism-solidity.js' import 'prismjs/components/prism-sql.js' import 'prismjs/components/prism-stylus.js' import 'prismjs/components/prism-swift.js' import 'prismjs/components/prism-wasm.js' import 'prismjs/components/prism-yaml.js' import 'prismjs/components/prism-r.js' // mermaid图 import mermaid from 'mermaid' // 化学方程式 import '@/lib/mhchem' const Collection = dynamic(() => import('react-notion-x/build/third-party/collection').then((m) => m.Collection), { ssr: true } ) const Modal = dynamic( () => import('react-notion-x/build/third-party/modal').then((m) => m.Modal), { ssr: false } ) const NotionPage = ({ post }) => { if (!post || !post.blockMap) { return <>{post?.summary || ''}> } const zoom = isBrowser() && mediumZoom({ container: '.notion-viewport', background: 'rgba(0, 0, 0, 0.2)', scrollOffset: 200, margin: getMediumZoomMargin() }) const zoomRef = React.useRef(zoom ? zoom.clone() : null) React.useEffect(() => { // 准备接入化学方程式 // console.log('kk', katex) // const html = katex.renderToString('\\ce{CO2 + C -> 2 C0}') // console.log(html) // katex.__parse('\\ce{CO2 + C -> 2 CO}') // katex.render('\ce{2H2O->2H2 + O2}', document.getElementById('test1')) // katex.render('(\ce{2H + O -> H2O}\)', document.getElementById('test2')) // katex.render('\\ce{2H2O->2H2 + O2}', document.getElementById('test3')) // document.getElementById('test').innerHTML = katex.renderToString('\ce{2H2O->2H2 + O2}') // document.getElementById('test').innerHTML = katex.renderToString('\(\ce{2H + O -> H2O}\)') // 支持 Mermaid const mermaids = document.querySelectorAll('.notion-code .language-mermaid') for (const e of mermaids) { const chart = e.innerText e.parentElement.parentElement.innerHTML = `