{"componentChunkName":"component---src-templates-post-jsx","path":"/hello-gatsby-part-4-configuring-netlify-cms","result":{"data":{"markdownRemark":{"html":"<p>After <a href=\"https://dmcqueen.co.uk/hello-gatsby-part-2-setting-up-a-gatsby-blog\">setting up a gatsby blog</a>, to display our post content, we can take it a step further to configure Netlify CMS so that we can write and publish our blogs via an admin portal, as opposed to having to write the markdown in code, and then pushing it into the branch manually.</p>\n<p>Gatsby, as always, have some great tutorials on <a href=\"https://www.gatsbyjs.org/docs/sourcing-from-netlify-cms/\">Sourcing from Netlify CMS</a>. I would recommend you take a look at that before returning back here. This post is going to look at configuring the admin panel to a) show the UI components we want, and b) put the markdown files and their assets in the correct place.</p>\n<h2 id=\"configuration\" style=\"position:relative;\"><a href=\"#configuration\" aria-label=\"configuration permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Configuration</h2>\n<p>All of the Netlify configuration is stored within a <code class=\"language-text\">config.yml</code> file, which is stored in a folder with the repo path <code class=\"language-text\">static/admin</code>. Be sure that any configuration you make is within that folder/file path and you'll be dandy.</p>\n<h3 id=\"configuration-structure\" style=\"position:relative;\"><a href=\"#configuration-structure\" aria-label=\"configuration structure permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Configuration Structure</h3>\n<p>The configuration file contains multiple <a href=\"https://www.netlifycms.org/docs/configuration-options/\">configuration options</a>. My file uses 5;</p>\n<div class=\"gatsby-highlight\" data-language=\"yaml\"><pre class=\"language-yaml\"><code class=\"language-yaml\"><span class=\"token comment\"># 1.</span>\n<span class=\"token key atrule\">backend</span><span class=\"token punctuation\">:</span>\n  <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> \n  <span class=\"token key atrule\">repo</span><span class=\"token punctuation\">:</span> \n\n<span class=\"token comment\"># 2.</span>\n<span class=\"token key atrule\">media_folder</span><span class=\"token punctuation\">:</span> \n\n<span class=\"token comment\"># 3.</span>\n<span class=\"token key atrule\">public_folder</span><span class=\"token punctuation\">:</span> \n\n<span class=\"token comment\"># 4.</span>\n<span class=\"token key atrule\">publish_mode</span><span class=\"token punctuation\">:</span> \n\n<span class=\"token comment\"># 5.</span>\n<span class=\"token key atrule\">collections</span><span class=\"token punctuation\">:</span>\n  <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> \n    <span class=\"token key atrule\">label</span><span class=\"token punctuation\">:</span> \n    <span class=\"token key atrule\">folder</span><span class=\"token punctuation\">:</span> \n    <span class=\"token key atrule\">create</span><span class=\"token punctuation\">:</span> \n    <span class=\"token key atrule\">fields</span><span class=\"token punctuation\">:</span>\n      <span class=\"token punctuation\">-</span> <span class=\"token punctuation\">{</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> title<span class=\"token punctuation\">,</span> <span class=\"token key atrule\">label</span><span class=\"token punctuation\">:</span> Title <span class=\"token punctuation\">}</span></code></pre></div>\n<p>The <a href=\"https://www.netlifycms.org/docs/configuration-options/\">Netlify documentation</a> goes into detail, but lets just quickly take a small look into each;</p>\n<ol>\n<li>\n<p>backend</p>\n<p>Specifies the repository to store the content</p>\n</li>\n<li>\n<p>media_folder</p>\n<p>The relative path in the repo for where the assets will be stored</p>\n</li>\n<li>\n<p>public_folder</p>\n<p>The relative path in the URL from which the assets will be loaded</p>\n</li>\n<li>\n<p>publish_mode</p>\n<p>The option to save posts in a 'draft' state</p>\n</li>\n<li>\n<p>collections</p>\n<p>The group of content to create, in our case <em>Blog</em> posts</p>\n</li>\n</ol>\n<p>The main one we will be looking at is 5. <em>collections</em>.</p>\n<h3 id=\"collections\" style=\"position:relative;\"><a href=\"#collections\" aria-label=\"collections permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Collections</h3>\n<p>This is the configuration which tells Netlify where to store the post entries, and also importantly configures the UI which is displayed when creating blog post. It is possible to have multiple <em>collections</em>, each relative to a specific area or type and could each handle putting the markdown files in a different folder for your Gatsby website to do something differently with. I am only using the one, which will be for my <em>blog</em> posts.</p>\n<div class=\"gatsby-highlight\" data-language=\"yaml\"><pre class=\"language-yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">collections</span><span class=\"token punctuation\">:</span>\n  <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> \n    <span class=\"token key atrule\">label</span><span class=\"token punctuation\">:</span> \n    <span class=\"token key atrule\">folder</span><span class=\"token punctuation\">:</span> \n    <span class=\"token key atrule\">create</span><span class=\"token punctuation\">:</span> \n    <span class=\"token key atrule\">fields</span><span class=\"token punctuation\">:</span>\n      <span class=\"token punctuation\">-</span> <span class=\"token punctuation\">{</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> title<span class=\"token punctuation\">,</span> <span class=\"token key atrule\">label</span><span class=\"token punctuation\">:</span> Title <span class=\"token punctuation\">}</span></code></pre></div>\n<p>In the example above we can see multiple properties within the config file;</p>\n<ul>\n<li>\n<p>name</p>\n<p>The name of the collection</p>\n</li>\n<li>\n<p>label</p>\n<p>The label which is shown for the collection</p>\n</li>\n<li>\n<p>folder</p>\n<p>The location in the repository where Netlify will store the new markdown files</p>\n</li>\n<li>\n<p>create</p>\n<p>Allows for new items in the collection to be created</p>\n</li>\n<li>\n<p>fields</p>\n<p>The fields which are present within the CMS UI when writing a blog post</p>\n</li>\n</ul>\n<p>The first 4 properties are trivial with the third one being the most important one out of the 4.</p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">collections:\n  - name: blog\n    label: Blog\n    folder: content/blog-posts\n    create: true</code></pre></div>\n<p>The property <em>folder</em> tells Netlify where it should store the new markdown files. This needs to match up with where Gatsby is looking for the markdown files so that it knows to get the new posts and create the content for them. When these match up, any content written in Netlify will be automatically build out and publish. In my instance, Gatsby looks for new blog posts in <code class=\"language-text\">content/blog-posts</code> so this is where I want Netlify to put all new posts.</p>\n<h5 id=\"asset-configuration\" style=\"position:relative;\"><a href=\"#asset-configuration\" aria-label=\"asset configuration permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Asset Configuration</h5>\n<p>In collaboration with the <em>folder</em> property, we need to store any new images (assets) that are a part of the blog post. This is section 2. and section 3. of the above overall configuration file.</p>\n<p><code class=\"language-text\">media_folder</code> is where Netlify will store the images in the repository, whereas <code class=\"language-text\">public_folder</code> is where the images will be loacated via URL once they are published to our site. The images need to be publically accessible so that our guests can view the images, and Netlify needs to know where they will be in order for it to create a relative path from the blog post;</p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">![](assets/2020.05.22-12.21.png)</code></pre></div>\n<p>The last property, <em>fields</em>, is where the fun happens.</p>\n<h4 id=\"fields-configration\" style=\"position:relative;\"><a href=\"#fields-configration\" aria-label=\"fields configration permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Fields Configration</h4>\n<p>Moving onto the 5th property of the 5, we have the <em>fields</em> property. This is arguably the most fun* to configure</p>\n<p>* Fun being subjective, and dependent upon your Covid-19, 2020 lockdown situation.</p>\n<p>Fields are what make up the UI used when writing your content. The template I am using requires several fields to be configured, as such I can specify a field for each of these, and a corresponding widget, and then when it comes time to write the post I have all of the content that I require in order for the markdown to be parsed.</p>\n<p>To achieve a UI like this;</p>\n<p><img src=\"assets/part-4_input-fields.png\" title=\"Netlify CMS UI\"></p>\n<p>I have a configuration which looks like this;</p>\n<div class=\"gatsby-highlight\" data-language=\"yaml\"><pre class=\"language-yaml\"><code class=\"language-yaml\"><span class=\"token punctuation\">-</span> <span class=\"token punctuation\">{</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> title<span class=\"token punctuation\">,</span> <span class=\"token key atrule\">label</span><span class=\"token punctuation\">:</span> Title <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">-</span> <span class=\"token punctuation\">{</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> category<span class=\"token punctuation\">,</span> <span class=\"token key atrule\">label</span><span class=\"token punctuation\">:</span> Category<span class=\"token punctuation\">,</span> <span class=\"token key atrule\">default</span><span class=\"token punctuation\">:</span> Tech <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">-</span> <span class=\"token punctuation\">{</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> date<span class=\"token punctuation\">,</span> <span class=\"token key atrule\">label</span><span class=\"token punctuation\">:</span> Date<span class=\"token punctuation\">,</span> <span class=\"token key atrule\">widget</span><span class=\"token punctuation\">:</span> date <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">-</span> <span class=\"token punctuation\">{</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> cover<span class=\"token punctuation\">,</span> <span class=\"token key atrule\">label</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"Cover Image\"</span><span class=\"token punctuation\">,</span> <span class=\"token key atrule\">default</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"https://picsum.photos/seed/{REPLACE_ME}/1152/300\"</span><span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">-</span> <span class=\"token punctuation\">{</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> author<span class=\"token punctuation\">,</span> <span class=\"token key atrule\">label</span><span class=\"token punctuation\">:</span> Author<span class=\"token punctuation\">,</span> <span class=\"token key atrule\">default</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"dmcqueen\"</span><span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">-</span> <span class=\"token punctuation\">{</span> <span class=\"token key atrule\">label</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"Tags\"</span><span class=\"token punctuation\">,</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"tags\"</span><span class=\"token punctuation\">,</span> <span class=\"token key atrule\">widget</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"list\"</span><span class=\"token punctuation\">,</span> <span class=\"token key atrule\">default</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">[</span><span class=\"token string\">\"tech\"</span><span class=\"token punctuation\">]</span> <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">-</span> <span class=\"token punctuation\">{</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> body<span class=\"token punctuation\">,</span> <span class=\"token key atrule\">label</span><span class=\"token punctuation\">:</span> Body<span class=\"token punctuation\">,</span> <span class=\"token key atrule\">widget</span><span class=\"token punctuation\">:</span> markdown <span class=\"token punctuation\">}</span></code></pre></div>\n<p>Once I write a new post, Netlify takes the values from these input fields and put them at the top of the markdown file, like this. Which is everything Gatsby needs to generate the post on the website.</p>\n<div class=\"gatsby-highlight\" data-language=\"markdown\"><pre class=\"language-markdown\"><code class=\"language-markdown\"><span class=\"token hr punctuation\">---</span>\ndate: 2020-06-02T19:32:59.805Z\ntitle: \"Hello Gatsby - Part 3: Configuring a Custom Domain\"\ncategory: Tech\ncover: https://picsum.photos/seed/part3/1152/300\nauthor: dmcqueen\ntags:\n  <span class=\"token title important\">- tech\n<span class=\"token punctuation\">---</span></span></code></pre></div>\n<p>It's easy to see the correlation between what is generated, and what is defined within <code class=\"language-text\">config.yml</code>. All you need to do is check which fields you want to create, and then create a new <code class=\"language-text\">field</code> using one of the <a href=\"https://www.netlifycms.org/docs/widgets\">widgets </a>which can be configured, ranging from <em>Boolean</em> to <em>DateTime</em>, and <em>Image</em> to <em>Number</em> depending on the datatype you want to set.</p>\n<p>It really is quite powerful, and yet so simple to use. Hopefully you'll be able to configure the Netlify CMS admin panel to fit your needs, and have a nice clean blogging experience.</p>\n<h3 id=\"overall-configuration\" style=\"position:relative;\"><a href=\"#overall-configuration\" aria-label=\"overall configuration permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Overall Configuration</h3>\n<p>Below is the overall configuration I use for my netlify configuration <code class=\"language-text\">yml</code> file.</p>\n<div class=\"gatsby-highlight\" data-language=\"yaml\"><pre class=\"language-yaml\"><code class=\"language-yaml\"><span class=\"token comment\"># 1.</span>\n<span class=\"token key atrule\">backend</span><span class=\"token punctuation\">:</span>\n  <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> github\n  <span class=\"token key atrule\">repo</span><span class=\"token punctuation\">:</span> david<span class=\"token punctuation\">-</span>mcqueen/gatsby<span class=\"token punctuation\">-</span>casper<span class=\"token punctuation\">-</span>blog\n\n<span class=\"token comment\"># 2.</span>\n<span class=\"token key atrule\">media_folder</span><span class=\"token punctuation\">:</span> static/assets\n\n<span class=\"token comment\"># 3.</span>\n<span class=\"token key atrule\">public_folder</span><span class=\"token punctuation\">:</span> assets\n\n<span class=\"token comment\"># 4.</span>\n<span class=\"token key atrule\">publish_mode</span><span class=\"token punctuation\">:</span> editorial_workflow\n\n<span class=\"token comment\"># 5.</span>\n<span class=\"token key atrule\">collections</span><span class=\"token punctuation\">:</span>\n  <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> blog\n    <span class=\"token key atrule\">label</span><span class=\"token punctuation\">:</span> Blog\n    <span class=\"token key atrule\">folder</span><span class=\"token punctuation\">:</span> content/blog<span class=\"token punctuation\">-</span>posts\n    <span class=\"token key atrule\">create</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n    <span class=\"token key atrule\">fields</span><span class=\"token punctuation\">:</span>\n      <span class=\"token punctuation\">-</span> <span class=\"token punctuation\">{</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> title<span class=\"token punctuation\">,</span> <span class=\"token key atrule\">label</span><span class=\"token punctuation\">:</span> Title <span class=\"token punctuation\">}</span>\n      <span class=\"token punctuation\">-</span> <span class=\"token punctuation\">{</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> category<span class=\"token punctuation\">,</span> <span class=\"token key atrule\">label</span><span class=\"token punctuation\">:</span> Category<span class=\"token punctuation\">,</span> <span class=\"token key atrule\">default</span><span class=\"token punctuation\">:</span> Tech <span class=\"token punctuation\">}</span>\n      <span class=\"token punctuation\">-</span> <span class=\"token punctuation\">{</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> date<span class=\"token punctuation\">,</span> <span class=\"token key atrule\">label</span><span class=\"token punctuation\">:</span> Date<span class=\"token punctuation\">,</span> <span class=\"token key atrule\">widget</span><span class=\"token punctuation\">:</span> date <span class=\"token punctuation\">}</span>\n      <span class=\"token punctuation\">-</span> <span class=\"token punctuation\">{</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> cover<span class=\"token punctuation\">,</span> <span class=\"token key atrule\">label</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"Cover Image\"</span><span class=\"token punctuation\">,</span> <span class=\"token key atrule\">default</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"https://picsum.photos/seed/{REPLACE_ME}/1152/300\"</span><span class=\"token punctuation\">}</span>\n      <span class=\"token punctuation\">-</span> <span class=\"token punctuation\">{</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> author<span class=\"token punctuation\">,</span> <span class=\"token key atrule\">label</span><span class=\"token punctuation\">:</span> Author<span class=\"token punctuation\">,</span> <span class=\"token key atrule\">default</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"dmcqueen\"</span><span class=\"token punctuation\">}</span>\n      <span class=\"token punctuation\">-</span> <span class=\"token punctuation\">{</span> <span class=\"token key atrule\">label</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"Tags\"</span><span class=\"token punctuation\">,</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"tags\"</span><span class=\"token punctuation\">,</span> <span class=\"token key atrule\">widget</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"list\"</span><span class=\"token punctuation\">,</span> <span class=\"token key atrule\">default</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">[</span><span class=\"token string\">\"tech\"</span><span class=\"token punctuation\">]</span> <span class=\"token punctuation\">}</span>\n      <span class=\"token punctuation\">-</span> <span class=\"token punctuation\">{</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> body<span class=\"token punctuation\">,</span> <span class=\"token key atrule\">label</span><span class=\"token punctuation\">:</span> Body<span class=\"token punctuation\">,</span> <span class=\"token key atrule\">widget</span><span class=\"token punctuation\">:</span> markdown <span class=\"token punctuation\">}</span></code></pre></div>","timeToRead":5,"excerpt":"After setting up a gatsby blog, to display our post content, we can take it a step further to configure Netlify CMS so that we can write and…","frontmatter":{"title":"Hello Gatsby - Part 4: Configuring Netlify CMS","cover":"https://picsum.photos/seed/part-4/1152/300","date":"2020-06-07T10:03:42.802Z","category":"Tech","tags":["blog","musings","setup"],"author":"dmcqueen"},"fields":{"slug":"/hello-gatsby-part-4-configuring-netlify-cms"}},"prev":{"excerpt":"When connecting to your remote devices via SSH, it is important to make sure that you are authenticated…","frontmatter":{"title":"Adding SSH Key to Terminal for Easy Authentication","cover":"https://picsum.photos/seed/ssh-key-setup/1152/300","date":"2020-06-15T17:26:51.607Z"},"fields":{"slug":"/adding-ssh-key-to-terminal-for-easy-authentication"}},"next":{"excerpt":"Substantially easier than I expected it to be.  Selecting the second option on the Overview page gives the…","frontmatter":{"title":"Hello Gatsby - Part 3: Configuring a Custom Domain","cover":"https://picsum.photos/seed/part3/1152/300","date":"2020-06-02T19:32:59.805Z"},"fields":{"slug":"/hello-gatsby-part-3-configuring-a-custom-domain"}},"authors":{"edges":[{"node":{"uid":"dmcqueen","name":"Dave McQueen","image":"/images/profile-pic.jpg","url":"https://dmcqueen.co.uk/","bio":"Tinkering | Experimenting | Learning"}}]}},"pageContext":{"slug":"/hello-gatsby-part-4-configuring-netlify-cms","total":20,"prev":"/adding-ssh-key-to-terminal-for-easy-authentication","next":"/hello-gatsby-part-3-configuring-a-custom-domain"}}}