0

I am trying to render an ordered list using react-markdown:

import ReactMarkdown from 'react-markdown';
import remarkGfm from 'remark-gfm'

const MyComponent = () => {
    const markdown = `<ol><li>Item1</li><li>Item2</li></ol>`;
    return (
       <ReactMarkdown children={markdown} remarkPlugins={[remarkGfm]} />
    );
}

The output is the string <ol><li>Item1</li><li>Item2</li></ol>. What am I missing?

AlwaysLearning
  • 7,257
  • 4
  • 33
  • 68

1 Answers1

2

As stated in the react-markdown docs (Appendix A), in order to render raw HTML within a ReactMarkdown component you will need the rehypeRaw plugin.

import ReactMarkdown from "react-markdown";
import rehypeRaw from "rehype-raw";

const markdown = `<ol><li>Item 1</li><li>Item 2</li><li>Item 3</li></ol>`;

const RootElement = () => {
  return <ReactMarkdown rehypePlugins={[rehypeRaw]} children={markdown} />;
};

I've prepared a simple CodePen too

luco5826
  • 404
  • 3
  • 6