Elderjs / plugins

Elder.js plugins and community plugins.
https://elderguide.com/tech/elderjs/
MIT License
80 stars 20 forks source link

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

Open markjaquith opened 2 years ago

markjaquith commented 2 years ago

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.

nickreese commented 2 years ago

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.