What exactly is Frontmatter?

I'm a full-stack developer from South Africa 🇿🇦. I love writing about JavaScript, HTML and CSS.
Search for a command to run...

I'm a full-stack developer from South Africa 🇿🇦. I love writing about JavaScript, HTML and CSS.
No comments yet. Be the first to comment.
Most of you know me for my consistency, a golden arrow in my blog series. I've written 1000 articles in 1008 days! Almost an article a day, and my honeymoon was the only holiday I ever took. I'm super proud of this achievement; it has been a fantasti...

It's not the first time I'll be talking about community. I think it's an essential aspect of any successful tool. This shows in my previous explorations of Astro, Medusa, and now Vendure as well. All these products thrive in a super open, welcoming, ...

The cool part about Vendure is how easy it is to set up and how abstract each layer is. Basically, we get the following elements: External database Server Worker Admin UI Frontend While this is amazing, it also brings a bit of complexity when it co...

The previous article looked at customizing Vendure on a data and process level. In this article, we'll look at customizing emails, as they are often a big part of a webshop system. We'll be looking at two different layers of customization for customi...

Even though Vendure is a pretty significant project out of the box, in some cases, we might want to go in and modify some elements to work to our specific use case. In this article, I'll take a high-level look at some elements we can customize within...

When I'm writing my articles that include Markdown files or data, I often refer to Frontmatter.
But what is this Frontmatter exactly?
Frontmatter is a way to identify metadata in Markdown files. Metadata can literally be anything you want it to be, but often it's used for data elements your page needs and you don't want to show directly.
Some examples of common metadata are:
These are only some examples, and you can make it as crazy as you want with Frontmatter.
To add Frontmatter to a Markdown document, you have to start by writing a three-dotted block at the top of your file.
---
title: Frontmatter section
---
# Markdown section
You can see the three dots as an example in the above example. Everything in there will be seen as metadata.
Below the second three dots is where our default Markdown file will begin.
It's important to note that Frontmatter is parsed as YAML blocks, so the indentation is important.
For instance, we can set regular variables with a colon setup:
---
title: 'The document title'
---
Or we can convert them into an array of objects:
---
tags:
- JavaScript
- Markdown
---
Alternatively, you can even use the bracket way of defining arrays.
---
tags: ["JavaScript", "Markdown"]
---
In extreme cases, you might even want to have multidimensional object arrays.
---
tech:
- frontend
stack: Remix
- backend
stack: Go
---
Besides arrays, you might want to use multi-line text blocks.
The first way to add this is only visually in your code editor. This will not add newlines in the outputted code.
---
description: >
this is a
multiline
string
---
Which will output: this is a multi-line string
However, if you want to add new lines, use the pipe method.
---
description: |
this is a
multiline
string
---
Which will output:
this is a
multi-line
string
Frontmatter is a super intuitive way of making your Markdown files contain some metadata.
It can enhance your SEO, Website data and even render proper MDX properties.
Thank you for reading my blog. Feel free to subscribe to my email newsletter and connect on Facebook or Twitter