eleventy-plugin-vue icon indicating copy to clipboard operation
eleventy-plugin-vue copied to clipboard

Pagination is creating multiple HTML files, but with the same content on each one

Open philwolstenholme opened this issue 2 years ago • 0 comments

I'm using Eleventy 2.0.0-canary.18 and the Vue plugin 0.7.4. My whole package-lock.json is here.

I'm trying to split https://wolstenhol.me/github-stars up into multiple pages showing 15 items per page. It's using some global data as the source.

You can see how the file is set up here: https://github.com/philwolstenholme/wolstenhol-11ty/blob/github-star-pagination/src/github-stars.vue:

<template>
  <article>
    <!-- … -->
    <PwGitHubStars :stars="pagination.items"></PwGitHubStars>
    <p>This is page {{ pagination.pageNumber }}</p>
     <!-- … -->
  </article>
</template>

<script>
import PwGitHubStars from './includes/pw-git-hub-stars.vue';
export default {
  data: {
    layout: 'page',
    title: 'Github stars',
    seo: {
      description: `Partly for me to big up great projects, and partly as a set of things to check out later.`,
      changeFreq: 'weekly',
    },
    // eleventyNavigation: { key: 'github-stars' },
    pagination: {
      data: 'githubStars',
      size: 15,
    },
    permalink(data) {
      const parts = [data.page.filePathStem];
      const pageNumber = data.pagination.pageNumber + 1;
      if (pageNumber === 1) {
        return `${parts.join('.')}/index.html`;
      }
      return `${parts.join('.')}/${pageNumber}.html`;
    },
  },
  components: { PwGitHubStars },
};
</script>

Eleventy is creating files with the right filenames, but they all have identical content. pagination.pageNumber is 0 for all of them:

  • https://deploy-preview-37--cranky-mcnulty-01683e.netlify.app/github-stars/
  • https://deploy-preview-37--cranky-mcnulty-01683e.netlify.app/github-stars/2
  • https://deploy-preview-37--cranky-mcnulty-01683e.netlify.app/github-stars/3

etc…

If this isn't a user error on my part then I think this might possibly be a Vue plugin issue rather than an Eleventy issue, because if I stick the below content into a github-starz.njk file then the output is as I'd expect (different items on each page):

---
title: Github stars
pagination:
  data: githubStars
  size: 12
---

{%- for item in pagination.items %} - [{{ item.name }}]({{ item.url }}) {%- endfor %}

Can anyone see what I'm doing wrong? A branch demoing the problem can be found here but you won't be able to build it, unfortunately (it relies on a bunch of local environment variables that I can't share, API keys etc).

philwolstenholme avatar Dec 21 '22 22:12 philwolstenholme