Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

index.tsx 928B

123456789101112131415161718192021222324252627282930313233343536
  1. import Markdown from 'react-markdown';
  2. import SyntaxHighlighter from 'react-syntax-highlighter';
  3. import remarkGfm from 'remark-gfm';
  4. const HightLightMarkdown = ({
  5. children,
  6. }: {
  7. children: string | null | undefined;
  8. }) => {
  9. return (
  10. <Markdown
  11. remarkPlugins={[remarkGfm]}
  12. components={
  13. {
  14. code(props: any) {
  15. const { children, className, node, ...rest } = props;
  16. const match = /language-(\w+)/.exec(className || '');
  17. return match ? (
  18. <SyntaxHighlighter {...rest} PreTag="div" language={match[1]}>
  19. {String(children).replace(/\n$/, '')}
  20. </SyntaxHighlighter>
  21. ) : (
  22. <code {...rest} className={className}>
  23. {children}
  24. </code>
  25. );
  26. },
  27. } as any
  28. }
  29. >
  30. {children}
  31. </Markdown>
  32. );
  33. };
  34. export default HightLightMarkdown;