import { inspect } from "util"; import React, { ReactElement } from "react"; import ReactMarkdown, { uriTransformer } from "react-markdown"; import { Components, ReactMarkdownProps } from "react-markdown/src/ast-to-react"; import remarkSlug from "remark-slug"; import remarkGfm from "remark-gfm"; import remarkAutolinkHeadings from "remark-autolink-headings" import { first, fromPairs } from "lodash"; import { Button } from "@mui/material"; function transformLinkUri(relativeBase: string = '/docs/') { return function(uri: string) { if (uri.startsWith('./')) { const relativePath = uri.substr(2); uri = relativeBase + relativePath; } return uriTransformer(uri); } } const components: Components = { a: ({ node, children, href, title, ...props }: ReactMarkdownProps & { href: string; title: string }) => { // if the first child of the button is a bold element, make this a CTA button if ((first(children) as ReactElement)?.type === "strong") { const splitTitle = (title ?? '').split(' '); const titleAttrEntries = splitTitle.filter(t => t.includes(':')); const remainingTitleEntries = splitTitle.filter(t => !t.includes(':')); const finalTitle = remainingTitleEntries.join(' '); const titleAttrPairs = titleAttrEntries.map(te => te.split(':')) const titleAttrs = fromPairs(titleAttrPairs); return ( ); } return ; }, }; export function renderMarkdown(markdown: string) { return ( ); }