With this, I was able to iterate through the lists of posts without having to use transparent = true. With your directory structure, if you changed posts to blog it should accomplish the same thing:
{% set section = get_section(path="blog/_index.md") %}
{% for page in section.pages %}
With my code, I was only trying to iterate through the list of blog posts rather than paginate, but I hope it may help in some way. Huge caveat, today is my first day using Zola and I do not have any experience with Rust. I’m experimenting with migrating from Hugo. Hope that helps!
I stumbled across the same problem: I have a /content/blog section also, and want templates/index.html to paginate over it. Doing a get_section(path="blog/_index.md") doesn’t get you a paginator. It has a property pages though, over which you can iterate.
The comment by Zola’s author keats with transparent = true in the _index.md located in the blog section was the most helpful one so far. Now I have a paginator. Everything seems fine. And it actually is.
But, one caveat for me: I had pages like about.md, imprint.md, etc. under /content, which are now also used for the paginator. Implementing some filter logic didn’t work, because of date and sort_by issues - leaving out some pages in the middle while having a paginate_by leads to ugly results.
I ended up with all my pages in its own section: /content/pages, which led to a cleaner template implementation.