import {
Flex,
Heading,
Link,
ListItem,
OrderedList,
Stack,
Table,
Text,
UnorderedList
} from '@chakra-ui/react';
import NextLink from 'next/link';
import { Code, Note } from '.';
import { textStyles } from '../../../theme/foundations';
import { parseHeadingId } from '../../../utils/parseHeadingId';
const { header1, header2, header3, header4 } = textStyles;
const MDComponents = {
// paragraphs
p: ({ children }: any) => {
return (
{children}
);
},
// links
a: ({ children, href }: any) => {
const isExternal = href.startsWith('http') && !href.includes('geth.ethereum.org');
return isExternal ? (
{children}
) : (
{children}
);
},
// headings
h1: ({ children }: any) => {
const { children: parsedChildren, headingId } = parseHeadingId(children);
return (
{parsedChildren}
);
},
h2: ({ children }: any) => {
const { children: parsedChildren, headingId } = parseHeadingId(children);
return (
{parsedChildren}
);
},
h3: ({ children }: any) => {
const { children: parsedChildren, headingId } = parseHeadingId(children);
return (
{parsedChildren}
);
},
h4: ({ children }: any) => {
const { children: parsedChildren, headingId } = parseHeadingId(children);
return (
{parsedChildren}
);
},
// tables
table: ({ children }: any) => (
),
// pre
pre: ({ children }: any) => (
{children}
),
// code
code: ({ children, ...props }: any) => {children},
// list
ul: ({ children }: any) => {
return (
{children}
);
},
ol: ({ children }: any) => {
return (
{children}
);
},
li: ({ children }: any) => {
return {children};
},
note: ({ children }: any) => {
return {children};
}
};
export default MDComponents;