diff --git a/src/app/article/components/MD/index.scss b/src/app/article/components/MD/index.scss index e7b7c77..3cbda50 100755 --- a/src/app/article/components/MD/index.scss +++ b/src/app/article/components/MD/index.scss @@ -178,6 +178,10 @@ @apply my-2.5 ml-6; } + .tx-widget li { + margin: 0 !important; + } + ul:not(.contains-task-list) { @apply list-disc; } @@ -199,6 +203,11 @@ } } + .tx-widget ol > li::before { + content: none !important; + display: none !important; + } + blockquote { @apply my-5 pl-4 bg-[rgba(246,248,250)] border-l-4 border-[#11181C] dark:border-gray-500 dark:bg-[rgba(246,248,250,0.1)]; } diff --git a/src/app/article/components/MD/index.tsx b/src/app/article/components/MD/index.tsx index 05f45eb..3691c22 100755 --- a/src/app/article/components/MD/index.tsx +++ b/src/app/article/components/MD/index.tsx @@ -23,6 +23,9 @@ import './index.scss'; import hljs from 'highlight.js'; import 'highlight.js/styles/atom-one-dark.css'; +import WidgetRenderer from './widgets'; +import { isWidgetCodeLanguage, parseWidgetPayload, payloadFromLinkAlias } from './widgets/parse'; +import './widgets/index.scss'; interface Props { data: string; @@ -149,7 +152,7 @@ function MarkdownImage({ {alt} { if (node?.complete) markLoaded(); @@ -164,9 +167,15 @@ type MarkdownBodyProps = { data: string; headings: TocHeading[]; onOpenPreview: (src: string) => void; + onOpenGalleryPreview: (src: string, urls: string[]) => void; }; -const MarkdownBody = memo(function MarkdownBody({ data, headings, onOpenPreview }: MarkdownBodyProps) { +const MarkdownBody = memo(function MarkdownBody({ + data, + headings, + onOpenPreview, + onOpenGalleryPreview, +}: MarkdownBodyProps) { const headingIndexRef = useRef(0); const headingComponents = useMemo( @@ -178,18 +187,32 @@ const MarkdownBody = memo(function MarkdownBody({ data, headings, onOpenPreview () => ({ img: (props) => , a: ({ href, children }: { href?: string; children?: React.ReactNode }) => { - if (children === 'douyin-video' && href) { - const videoId = href.split('/').pop(); - return ( -
-