Random UTF-8 characters

Home

05 Jan 2019 in reactgatsbyexpogistblog

Displaying Expo Snacks Gists in React and Gatsby

I'm still in the process of rebuilding my blog in GatsbyJS. The project so far is going really well. In last weeks post, I outlined how I was loading data into Gatsby and rendering the basic pages. This week I've been working on rendering the Gists and ExpoSnacks I have embedded in most of my posts.

The data export from my old blog uses a mix of Markdown and HTML. Post content looks like this:

## Creating a navigator

We will use a StackNavigator for this example. 

<script src="https://gist.github.com/brookslyrette/bf3df2ad046a3fa0f464203a6c0b7e2d.js"></script>

Above we create a StackNavigator with three screens. We provide it with...

After I finish getting my old posts on the Gatsby version of my blog, I'll want to create new posts. Now I don't want to again use a mix of Markdown and HTML. My hope is to mix Markdown and React. I'm hoping new posts will look something like:

## Creating a navigator

We will use a StackNavigator for this example. 

<Gist id="bf3df2ad046a3fa0f464203a6c0b7e2d" />

Above we create a StackNavigator with three screens. We provide it with...

I'm using markdown-to-jsx to render Markdown. This library will let me easily handle both cases. We will use overrides to look for script tags or div that should be replaced with a Gist or ExpoSnack to handle old posts. We'll also setup overrides to which will let us use React components in new posts.

First lets look at handling just the case of replacing script tags that represent a Gist.

To handle the case of new blog posts all we have to do is add one more line of configuration. Now, lets set up Gist as a component override.

If you load a post now you'll see Gists rendered within posts.

Here's the final version which also handles ExpoSnacks and converts img tags to gatsby images.