statamic / ssg

The official Statamic Static Site Generator
229 stars 23 forks source link

Paginated URL generation #138

Closed simonhamp closed 11 months ago

simonhamp commented 1 year ago

Incorporates, builds on and simplifies #137 (so #137 may be redundant as a result if this is preferred)

Allows the developer to define which URLs are "paginators" and the config they'd like to use to generate the pages in their config/statamic/ssg.php.

Consider the following config:

    'paginators' => [
        '/journal' => [
            'collection' => 'blog',
            'perPage' => 12,
        ],
    ],

The generator uses sensible defaults: the page name and URL path part defaults to 'page', and the per-page defaults to 10. So you only need to override the parameters you need to change - minimum required is collection.

NB: This DOES NOT create the route for you that will actually render these pages (yet). But in theory, it could... it just needs to capture more information (such as the view, template and entry ID to load). I may add this later.

jesseleite commented 11 months ago

Appreciate you taking the time to PR! ❤️ That said, this one doesn't do much different from @jasonvarga's gist example, which we never felt was ready to merge in.

Closing this in favour of https://github.com/statamic/ssg/pull/140, which should work for the user automatically without any extra config, while also respecting multisite collection indexes, as well as collection tag per-page settings, filters, query scopes, pagination links, auto_links, etc. 👌

simonhamp commented 11 months ago

Agreed! Pagination detection feels like a much friendlier solution 👍🏼 nice work!