contentlayerdev / contentlayerdev/contentlayer
Combine `fields` and `computedFields`
- Vorherrschende Sprache
- TypeScript
- Sterne
- 3.5k
- Forks
- 192
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
Today we have `fields` and `computedFields`. The definitions in `computedFields` expects a function to which Contentlayer passes the processed document.
I'd rather be able to define all my fields in one place and allow the options of that field definition (presence of `resolve`) to determine whether or not it should be computed. Thus, I could have a doc type def like this:
```js
const Page = defineDocumentType(() => ({
// ...
fields: {
title: { type: 'string', required: true },
url_path: {
type: 'string',
resolve: (doc) => doc._raw.flattenedPath.replace(/pages\/?/, ''),
},
},
}))
```
To do this and still support current use cases, it'd be beneficial to not just pass the processed doc object, but also input data. (See #76 for an example use case.) IOW the shape of the `doc` passed to the `resolve` function might include the following properties:
- `_raw` would still be there as it is today
- `frontmatter` would contain the raw frontmatter content
- `body` (configurable) would contain the processed body
Beitragsleitfaden
Bewertung
Dieses Issue wurde noch nicht bewertet.