contentlayerdev / contentlayerdev/contentlayer

Fields of type `reference` should be able to embed their data

Aperta
#86 3 commenti 1 reazione 0 assegnatari Vedi su GitHub
feature
Lingua principale
TypeScript
Stelle
3.5k
Fork
192
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

Given the following config:

```js
const Category = defineDocumentType(() => ({
name: 'Category',
filePathPattern: 'categories/*.md',
bodyType: 'none',
fields: {
title: { type: 'string', required: true },
},
}))

const Doc = defineDocumentType(() => ({
name: 'Doc',
filePathPattern: '**/*.mdx',
bodyType: 'mdx',
fields: {
title: { type: 'string', required: true },
category: { type: 'reference', of: Category }
},
}))

export default makeSource({
contentDirPath: 'content',
documentTypes: [Doc, Category],
})
```

And the following content files:

`content/categories/a.md`

```yaml
---
title: My First Category
---
```

`content/docs/index.mdx`

```yaml
---
title: Home Page
category: categories/a.md
---
```

The output document would have the following:

```json
{
"title": "Home Page",
"category": "categories/a.md",
// ...
}
```

It would be nice to (optionally) embed the category data directly in the output document. Otherwise, I have to defer that logic to my application. Being that it's data manipulation, it seems right that Contentlayer would handle this.

I'd rather see the output like this:

```json
{
"title": "Home Page",
"category": {
"title": "My First Category"
},
// ...
}
```

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.