contentlayerdev / contentlayer

Contentlayer turns your content into data - making it super easy to import MD(X) and CMS content in your app
https://www.contentlayer.dev
MIT License
3.21k stars 199 forks source link

Preprocessing and Postprocessing Hooks? #325

Open swamidass opened 1 year ago

swamidass commented 1 year ago

I have a metalsmith site I'd like to move over or integrate with contentlayer.

Unlike CL, Metalsmith has straightforward ways of looking at the whole collection while processing individual documents. This allows, for example, ensuring that all internal website links are to documents that already exist. MS also has a large library of useful plugins.

Is there a way to hook metalsmith into content layer reloading, so it is run first before content layer? Or more directly use metalsmith to process files within content layer itself. As a work around, I suppose, I could use metalsmith to generate a directory of json files that is then used as input to content layer. But this requires basically managing two content systems.

Alternatively, is there a way to hook into the contentlayer process with content processors that can transform individual documents while having access to all collections?

schickling commented 1 year ago

Thanks for opening this issue @swamidass. Those are some really interesting ideas and use case.

Unfortunately I don't have the capacity right now to investigate/research these use cases further myself but I'd encourage you or other community members to dig into this further and create a proposal how this could work and/or what would be necessary on Contentlayer's side to enable this use case.