How do I load a markdown file into a react component?

markdown, reactjs

Solution

I use marked (GitHub).

I first import it like this:

import marked from "marked";

I then fetch my *.md file within React's `componentDidMount` event and store it in my component's state using `marked(text)` (where `text` is the response):

componentDidMount() {
  const readmePath = require("./Readme.md");

  fetch(readmePath)
    .then(response => {
      return response.text()
    })
    .then(text => {
      this.setState({
        markdown: marked(text)
      })
    })
}

...and finally I render it on the page using the `dangerouslySetInnerHTML` attribute:

render() {
  const { markdown } = this.state;

  return (
    <section>
      <article dangerouslySetInnerHTML={{__html: markdown}}></article>
    </section>
  )
}

Problem

How would I load a .md markdown file into a react component? I have tried so many npm libraries through google searches and I cant find a good solution. I want to load the .md file something like: ``` render() { <div> <MarkDown src="about.md" /> </div> } ```

Original source

Related problems