plugins icon indicating copy to clipboard operation
plugins copied to clipboard

Errors in frontmatter parsing lead to hard-to-diagnose bugs

Open markjaquith opened this issue 3 years ago • 1 comments

I had some tags in my frontmatter like this:

---
draft: true
title: My Title
excerpt: My Excerpt
date: 2022-06-22
tags:
  - One
	- Two
---

Since my editor shows tabs as two spaces, I didn't notice that Two was tab-indented.

The way this presents when building will depend on your setup, but for me it was:

UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'draft' of undefined at /Users/mark/Sites/example/node_modules/@elderjs/plugin-markdown/index.js:131:32

But my custom slug formatter also uses frontmatter, so before I made the accessing of frontmatter there safe, it was erroring in there.

I think the markdown plugin should detect when frontmatter parsing has resulted in undefined, as otherwise spooky things are gonna happen downstream.

markjaquith avatar Jun 30 '22 21:06 markjaquith

Let's revisit this once the typescript branch is shipped. There was a ton of issues with the unified ecosystem I had to slog through. Hopefully we can add something to make these errors better now that their chaos is behind us.

nickreese avatar Jul 14 '22 20:07 nickreese