blakeembrey / metalsmith-pagination

A Metalsmith plugin for paginating arrays and collections
MIT License
34 stars 10 forks source link

How to use pagination with full article contents and not snippets? #29

Closed lonelyelk closed 7 years ago

lonelyelk commented 7 years ago

In page layout pagination.files[].contents inserts the whole rendered html file with its own layout. Where can I get the same contents that is at contents property in a single article layout? Or is there a way to paste whole contents in the snippet property somehow? I don't have them in my *.md files.

I noticed that I can get correct contents when using pagination before markdown, but in that case path is wrong. It points to the *.md file.

What am I doing wrong?

lonelyelk commented 7 years ago

Ok, I found a workaround. The contents of your pagination.files is the same as for collection files. Something happens when it is getting rendered. So what I did is I cleared layout of pagination files in my case. pagination.files[].layout = '' And the contents is not rendered in a layout before rendering page layout. May be it is something you would want to do by default or with an option.

Update:

Oh, but it breaks default layout. I think I would have to copy the entire contents into another field. (snippet)? Maybe the problem is with rendering the contents property.

blakeembrey commented 7 years ago

This is not an issue with this plugin. It sounds like you're rendering using a layout plugin before you use the contents property. Change the order of your middleware if you'd like to read the contents before rendering. I'd take a look at how Metalsmith works to get a better idea, but basically it works by mutating a list of file objects in memory. Those files are then written to disk from the contents property. So order does matter.

carolineBda commented 7 years ago

Hello,

I have the same problem as I have many category pages with paginations. I need the pagination to work on different pages with rich content defined in a .md file. They all have the same layout.

So basically we need a way to give more than just some metadata in a json format but a whole file as a .md. Or make all the paginations available globally under the global metadata.

Is this doable ?

carolineBda commented 7 years ago

UP :)

blakeembrey commented 7 years ago

If you have the same issue, it should be the same solution. If what you're saying is you have a different issue, feel free to open a new issue. I don't really understand your question, but it sounds like you want something more complicated and you can probably just read the source to see what's going on instead - it's really short. If you saw in the README too, you can give more metadata using the pageMetadata property (https://github.com/blakeembrey/metalsmith-pagination#options), but I'm not sure if that's what you're after - I think I need a better example.