Issue: disabling frontMatter.dashboard.content.pagination causes FM to "crash" #344

Closed
opened 2026-10-05 02:41:49 +02:00 by adam · 7 comments
Owner

Describe the bug
A clear and concise description of what the bug is.

  1. Set frontMatter.dashboard.content.pagination to false in the .frontmatter.json config file.
  2. From the FrontMatter panel, click "Open dashboard"
  3. FrontMatter dashboard opens for a moment and starts to display before going blank.
  4. Set frontMatter.dashboard.content.pagination to true and the dashboard will display.

Expected behavior
Expected dashboard to display my 1400+ posts...

Screenshots
Here's the dashboard with pagination enabled:
Screen Shot 2022-09-30 at 23 01 22

Pagination disabled:
Screen Shot 2022-09-30 at 23 00 51

Desktop (please complete the following information):

  • OS: MacOS 12.5.1
  • Browser Chrome 104 and Safari 15.6.1
  • FM Version: 8.1.1

Additional context
Config file .frontmatter.json:

{
  "$schema": "https://frontmatter.codes/frontmatter.schema.json",
  "frontMatter.taxonomy.contentTypes": [
    {
      "name": "default",
      "pageBundle": false,
      "previewPath": null,
      "fields": [
        {
          "title": "Title",
          "name": "title",
          "type": "string"
        },
        {
          "title": "Description",
          "name": "description",
          "type": "string"
        },
        {
          "title": "Publishing date",
          "name": "date",
          "type": "datetime",
          "default": "{{now}}",
          "isPublishDate": true
        },
        {
          "title": "Content preview",
          "name": "preview",
          "type": "image"
        },
        {
          "title": "Is in draft",
          "name": "draft",
          "type": "draft"
        },
        {
          "title": "Tags",
          "name": "tags",
          "type": "tags"
        },
        {
          "title": "Categories",
          "name": "categories",
          "type": "categories"
        }
      ]
    },
    {
      "name": "HEXO/post",
      "pageBundle": false,
      "previewPath": null,
      "fields": [
        {
          "title": "Title",
          "name": "title",
          "type": "string",
          "editable": true,
          "required": true
        },
        {
          "title": "Description",
          "name": "excerpt",
          "type": "string",
          "editable": true
        },
        {
          "title": "Post Image (PNG / JPG / SVG)",
          "name": "img",
          "editable": true,
          "type": "image",
          "description": "This is the main photo displayed on the website. SVG is recommended, but sometimes not possible if too complex.",
          "isPreviewImage": true
        },
        {
          "title": "OpenGraph image (JPG / PNG)",
          "name": "openGraph_img",
          "type": "image",
          "description": "This is the image used by FB, Twitter, or any social media site. SVG _not_ supported.",
          "default": false,
          "editable": true
        },
        {
          "title": "Publish date",
          "name": "date",
          "type": "datetime",
          "default": "{{now}}",
          "isPublishDate": true,
          "editable": false,
          "required": true
        },
        {
          "title": "Updated time",
          "name": "updated",
          "type": "datetime",
          "default": "{{now}}",
          "editable": false,
          "single": true,
          "isModifiedDate": true
        },
        {
          "title": "Tags",
          "name": "tags",
          "type": "tags",
          "description": "Tags should be limited to a absolute max of 7; \n Ideally 3...",
          "taxonomyLimit": 10,
          "editable": true
        },
        {
          "title": "Categories",
          "name": "categories",
          "type": "categories",
          "description": "this is replaced by the HEXO plug-in [hexo-auto-category](https://github.com/xu-song/hexo-auto-category)",
          "editable": true
        },
        {
          "title": "Pin this post at top?",
          "name": "sticky",
          "description": "Select a priority between 1 and 98 (1 = very top) for this post to be displayed.",
          "type": "number",
          "default": 999,
          "editable": true,
          "single": true
        },
        {
          "title": "Enable comments?",
          "name": "comments",
          "type": "boolean",
          "description": "Enable DISQUS tool for comments?",
          "default": true,
          "editable": true,
          "single": true
        },
        {
          "title": "Enable ToC?",
          "name": "toc",
          "type": "boolean",
          "description": "Display the Table of Contents?",
          "default": true,
          "editable": true,
          "single": true
        },
        {
          "title": "Default ToC open?",
          "name": "tocOpen",
          "type": "boolean",
          "description": "Should the Table of Contents be open already?",
          "default": true,
          "editable": true,
          "single": true
        },
        {
          "title": "Allow indexing and search for this post's contents?",
          "name": "indexing",
          "type": "boolean",
          "default": true,
          "editable": true,
          "single": true
        },
        {
          "title": "Display tags on Home?",
          "name": "display_tag_onHome",
          "type": "boolean",
          "description": "Show the tags for this post in the feed pages?",
          "default": true,
          "editable": true,
          "single": true
        },
        {
          "title": "Show in top recommended section on home page?",
          "name": "recommendedSection",
          "type": "boolean",
          "description": "Display this post in the recommended section below the top 'HERO' banner?",
          "default": false,
          "editable": true,
          "single": true
        },
        {
          "title": "Show donate button?",
          "name": "donate",
          "type": "boolean",
          "description": "This is great for crowd funding your work. However, don't enable this for copy/paste news reports.",
          "default": false,
          "editable": true,
          "single": true
        },
        {
          "title": "Enable MathJax",
          "name": "mathjax",
          "type": "boolean",
          "description": "If using math formulas, good to enable this.",
          "default": false,
          "editable": true,
          "single": true
        },
        {
          "title": "Show share icons?",
          "name": "share",
          "type": "boolean",
          "description": "Display the SNS icons or bot to share this post.",
          "default": true,
          "editable": true,
          "single": true
        },
        {
          "title": "Display copyright notice on post?",
          "name": "copyright",
          "type": "boolean",
          "description": "Should enable this if copied from other _copyrighted_ source... Or, if you have copyrighted it, then enable.",
          "default": true,
          "editable": true,
          "single": true
        },
        {
          "title": "source Url",
          "name": "sourceUrl",
          "description": "Original post where this was copy/pasted.",
          "editable": true,
          "single": true
        },
        {
          "title": "source Author",
          "name": "sourceAuthor",
          "description": "{First_name} {LAST_NAME} -or- '@username'",
          "editable": true
        },
        {
          "title": "source Author Image",
          "name": "sourceAuthorImg",
          "default": false,
          "editable": true
        },
        {
          "title": "source Publisher Date",
          "name": "sourcePublishDate",
          "default": false,
          "editable": true,
          "single": true
        },
        {
          "title": "copyLicense",
          "name": "copyLicense",
          "type": "string",
          "description": "What type of license is this documented under? MIT/CC/Apache/etc.",
          "default": false,
          "editable": true,
          "single": true
        },
        {
          "title": "copyLicense URL",
          "name": "copyLicenseURL",
          "type": "string",
          "description": "URL where the license is fully explained.",
          "default": false,
          "editable": true,
          "single": true
        },
        {
          "title": "copyLicense Description",
          "name": "copyLicenseDesc",
          "type": "string",
          "default": false,
          "editable": true
        },
        {
          "title": "Location on Earth",
          "name": "geolocation",
          "type": "string",
          "description": "Provide either a coordinate or text string that Google Maps can display. Where did you write this post?",
          "default": "'Chiba, Japan'",
          "editable": true,
          "single": true
        },
        {
          "title": "Read Time (autogenerated)",
          "name": "readTime",
          "type": "number",
          "editable": false,
          "default": false,
          "single": true,
          "hidden": true
        },
        {
          "title": "Word Count (autogenerated)",
          "name": "wordCount",
          "type": "number",
          "default": false,
          "editable": false,
          "single": true,
          "hidden": true
        },
        {
          "title": "Post Language",
          "name": "lang",
          "type": "string",
          "description": "{ [ISO 639-1 Code](https://en.wikipedia.org/wiki/ISO_639-1) }",
          "default": "en",
          "editable": true,
          "single": true,
          "required": true
        },
        {
          "title": "Unpublished DRAFT",
          "name": "draft",
          "type": "draft",
          "default": false,
          "editable": true
        },
        {
          "title": "type",
          "name": "type",
          "type": "string",
          "default": "HEXO/post",
          "hidden": true
        }
      ]
    },
    {
      "name": "HEXO/page",
      "pageBundle": true,
      "fields": [
        {
          "title": "Title",
          "name": "title",
          "type": "string",
          "editable": true,
          "required": true
        },
        {
          "title": "Description",
          "name": "description",
          "type": "string",
          "editable": true
        },
        {
          "title": "Page Image",
          "name": "img",
          "editable": true,
          "type": "string",
          "isPreviewImage": true
        },
        {
          "title": "Publish date",
          "name": "date",
          "type": "datetime",
          "default": "{{now}}",
          "isPublishDate": true,
          "editable": false,
          "required": true
        },
        {
          "title": "layout",
          "name": "layout",
          "type": "string",
          "default": "page"
        },
        {
          "title": "Allow indexing and search for this post's contents?",
          "name": "indexing",
          "type": "boolean",
          "default": true,
          "editable": true,
          "single": true
        }
      ]
    }
  ],
  "frontMatter.taxonomy.tags": [/* ... */],
  "frontMatter.taxonomy.categories": [/* ... */],
  "frontMatter.content.defaultFileType": "md",
  "frontMatter.content.fmHighlight": true,
  "frontMatter.content.hideFm": false,
  "frontMatter.content.pageFolders": [
    {
      "title": "Scaffolds",
      "path": "[[workspace]]/scaffolds",
      "excludeSubdir": true
    },
    {
      "title": "Pages",
      "path": "[[workspace]]/source",
      "excludeSubdir": true
    },
    {
      "title": "Posts",
      "path": "[[workspace]]/source/_posts"
    },
    {
      "title": "Drafts",
      "path": "[[workspace]]/source/_drafts"
    }
  ],
  "frontMatter.content.publicFolder": "[[workspace]]/public",
  "frontMatter.data.folders": [
    {
      "id": "HEXO/data",
      "title": "Custom data",
      "file": "[[workspace]]/source/data/*.json",
      "fileType": "json"
    },
    {
      "id": "sponsors",
      "title": "Sponsors",
      "file": "[[workspace]]/source/data/sponsors.json",
      "fileType": "json",
      "labelField": "name",
      "schema": {
        "title": "Sponsors",
        "type": "object",
        "required": [
          "name",
          "url"
        ],
        "properties": {
          "name": {
            "type": "string",
            "title": "Name"
          },
          "url": {
            "type": "string",
            "title": "URL"
          },
          "description": {
            "type": "string",
            "title": "Description"
          }
        }
      }
    }
  ],
  "frontMatter.file.preserveCasing": true,
  "frontMatter.framework.id": "HEXO",
  "frontMatter.framework.startCommand": "hexo clean && hexo server",
  "frontMatter.preview.host": "http://127.0.0.0:4000/",
  "frontMatter.preview.pathName": "{{year}}/{{month}}{{day}}/{{slug}}.html",
  "frontMatter.taxonomy.dateFormat": "YYYY/MM/dd",
  "frontMatter.taxonomy.frontMatterType": "YAML",
  "frontMatter.taxonomy.seoContentLength": 2400, 
  "frontMatter.taxonomy.indentArrays":true,
  "frontMatter.templates.enabled": true,
  "frontMatter.templates.folder": ".frontmatter/templates",
  "frontMatter.templates.prefix": "",
  "frontMatter.content.draftField": {
    "name": "draft",
    "type": "choice",
    "choices": ["draft", "in progress", "published"]
  },
  "frontMatter.dashboard.content.pagination": true
}

**Describe the bug** A clear and concise description of what the bug is. 1. Set `frontMatter.dashboard.content.pagination` to `false` in the `.frontmatter.json` config file. 2. From the FrontMatter panel, click "Open dashboard" 3. FrontMatter dashboard opens for a moment and starts to display before going blank. 4. Set `frontMatter.dashboard.content.pagination` to `true` and the dashboard will display. **Expected behavior** Expected dashboard to display my 1400+ posts... **Screenshots** Here's the dashboard with pagination enabled: ![Screen Shot 2022-09-30 at 23 01 22](https://user-images.githubusercontent.com/1673222/193286966-7fb882f4-95f3-4c55-80b7-d5a399b4051a.png) Pagination _disabled_: ![Screen Shot 2022-09-30 at 23 00 51](https://user-images.githubusercontent.com/1673222/193286954-4d943b09-405d-4561-800a-a77d0a7461d7.png) **Desktop (please complete the following information):** - OS: MacOS 12.5.1 - Browser Chrome 104 and Safari 15.6.1 - FM Version: 8.1.1 **Additional context** Config file `.frontmatter.json`: ```json { "$schema": "https://frontmatter.codes/frontmatter.schema.json", "frontMatter.taxonomy.contentTypes": [ { "name": "default", "pageBundle": false, "previewPath": null, "fields": [ { "title": "Title", "name": "title", "type": "string" }, { "title": "Description", "name": "description", "type": "string" }, { "title": "Publishing date", "name": "date", "type": "datetime", "default": "{{now}}", "isPublishDate": true }, { "title": "Content preview", "name": "preview", "type": "image" }, { "title": "Is in draft", "name": "draft", "type": "draft" }, { "title": "Tags", "name": "tags", "type": "tags" }, { "title": "Categories", "name": "categories", "type": "categories" } ] }, { "name": "HEXO/post", "pageBundle": false, "previewPath": null, "fields": [ { "title": "Title", "name": "title", "type": "string", "editable": true, "required": true }, { "title": "Description", "name": "excerpt", "type": "string", "editable": true }, { "title": "Post Image (PNG / JPG / SVG)", "name": "img", "editable": true, "type": "image", "description": "This is the main photo displayed on the website. SVG is recommended, but sometimes not possible if too complex.", "isPreviewImage": true }, { "title": "OpenGraph image (JPG / PNG)", "name": "openGraph_img", "type": "image", "description": "This is the image used by FB, Twitter, or any social media site. SVG _not_ supported.", "default": false, "editable": true }, { "title": "Publish date", "name": "date", "type": "datetime", "default": "{{now}}", "isPublishDate": true, "editable": false, "required": true }, { "title": "Updated time", "name": "updated", "type": "datetime", "default": "{{now}}", "editable": false, "single": true, "isModifiedDate": true }, { "title": "Tags", "name": "tags", "type": "tags", "description": "Tags should be limited to a absolute max of 7; \n Ideally 3...", "taxonomyLimit": 10, "editable": true }, { "title": "Categories", "name": "categories", "type": "categories", "description": "this is replaced by the HEXO plug-in [hexo-auto-category](https://github.com/xu-song/hexo-auto-category)", "editable": true }, { "title": "Pin this post at top?", "name": "sticky", "description": "Select a priority between 1 and 98 (1 = very top) for this post to be displayed.", "type": "number", "default": 999, "editable": true, "single": true }, { "title": "Enable comments?", "name": "comments", "type": "boolean", "description": "Enable DISQUS tool for comments?", "default": true, "editable": true, "single": true }, { "title": "Enable ToC?", "name": "toc", "type": "boolean", "description": "Display the Table of Contents?", "default": true, "editable": true, "single": true }, { "title": "Default ToC open?", "name": "tocOpen", "type": "boolean", "description": "Should the Table of Contents be open already?", "default": true, "editable": true, "single": true }, { "title": "Allow indexing and search for this post's contents?", "name": "indexing", "type": "boolean", "default": true, "editable": true, "single": true }, { "title": "Display tags on Home?", "name": "display_tag_onHome", "type": "boolean", "description": "Show the tags for this post in the feed pages?", "default": true, "editable": true, "single": true }, { "title": "Show in top recommended section on home page?", "name": "recommendedSection", "type": "boolean", "description": "Display this post in the recommended section below the top 'HERO' banner?", "default": false, "editable": true, "single": true }, { "title": "Show donate button?", "name": "donate", "type": "boolean", "description": "This is great for crowd funding your work. However, don't enable this for copy/paste news reports.", "default": false, "editable": true, "single": true }, { "title": "Enable MathJax", "name": "mathjax", "type": "boolean", "description": "If using math formulas, good to enable this.", "default": false, "editable": true, "single": true }, { "title": "Show share icons?", "name": "share", "type": "boolean", "description": "Display the SNS icons or bot to share this post.", "default": true, "editable": true, "single": true }, { "title": "Display copyright notice on post?", "name": "copyright", "type": "boolean", "description": "Should enable this if copied from other _copyrighted_ source... Or, if you have copyrighted it, then enable.", "default": true, "editable": true, "single": true }, { "title": "source Url", "name": "sourceUrl", "description": "Original post where this was copy/pasted.", "editable": true, "single": true }, { "title": "source Author", "name": "sourceAuthor", "description": "{First_name} {LAST_NAME} -or- '@username'", "editable": true }, { "title": "source Author Image", "name": "sourceAuthorImg", "default": false, "editable": true }, { "title": "source Publisher Date", "name": "sourcePublishDate", "default": false, "editable": true, "single": true }, { "title": "copyLicense", "name": "copyLicense", "type": "string", "description": "What type of license is this documented under? MIT/CC/Apache/etc.", "default": false, "editable": true, "single": true }, { "title": "copyLicense URL", "name": "copyLicenseURL", "type": "string", "description": "URL where the license is fully explained.", "default": false, "editable": true, "single": true }, { "title": "copyLicense Description", "name": "copyLicenseDesc", "type": "string", "default": false, "editable": true }, { "title": "Location on Earth", "name": "geolocation", "type": "string", "description": "Provide either a coordinate or text string that Google Maps can display. Where did you write this post?", "default": "'Chiba, Japan'", "editable": true, "single": true }, { "title": "Read Time (autogenerated)", "name": "readTime", "type": "number", "editable": false, "default": false, "single": true, "hidden": true }, { "title": "Word Count (autogenerated)", "name": "wordCount", "type": "number", "default": false, "editable": false, "single": true, "hidden": true }, { "title": "Post Language", "name": "lang", "type": "string", "description": "{ [ISO 639-1 Code](https://en.wikipedia.org/wiki/ISO_639-1) }", "default": "en", "editable": true, "single": true, "required": true }, { "title": "Unpublished DRAFT", "name": "draft", "type": "draft", "default": false, "editable": true }, { "title": "type", "name": "type", "type": "string", "default": "HEXO/post", "hidden": true } ] }, { "name": "HEXO/page", "pageBundle": true, "fields": [ { "title": "Title", "name": "title", "type": "string", "editable": true, "required": true }, { "title": "Description", "name": "description", "type": "string", "editable": true }, { "title": "Page Image", "name": "img", "editable": true, "type": "string", "isPreviewImage": true }, { "title": "Publish date", "name": "date", "type": "datetime", "default": "{{now}}", "isPublishDate": true, "editable": false, "required": true }, { "title": "layout", "name": "layout", "type": "string", "default": "page" }, { "title": "Allow indexing and search for this post's contents?", "name": "indexing", "type": "boolean", "default": true, "editable": true, "single": true } ] } ], "frontMatter.taxonomy.tags": [/* ... */], "frontMatter.taxonomy.categories": [/* ... */], "frontMatter.content.defaultFileType": "md", "frontMatter.content.fmHighlight": true, "frontMatter.content.hideFm": false, "frontMatter.content.pageFolders": [ { "title": "Scaffolds", "path": "[[workspace]]/scaffolds", "excludeSubdir": true }, { "title": "Pages", "path": "[[workspace]]/source", "excludeSubdir": true }, { "title": "Posts", "path": "[[workspace]]/source/_posts" }, { "title": "Drafts", "path": "[[workspace]]/source/_drafts" } ], "frontMatter.content.publicFolder": "[[workspace]]/public", "frontMatter.data.folders": [ { "id": "HEXO/data", "title": "Custom data", "file": "[[workspace]]/source/data/*.json", "fileType": "json" }, { "id": "sponsors", "title": "Sponsors", "file": "[[workspace]]/source/data/sponsors.json", "fileType": "json", "labelField": "name", "schema": { "title": "Sponsors", "type": "object", "required": [ "name", "url" ], "properties": { "name": { "type": "string", "title": "Name" }, "url": { "type": "string", "title": "URL" }, "description": { "type": "string", "title": "Description" } } } } ], "frontMatter.file.preserveCasing": true, "frontMatter.framework.id": "HEXO", "frontMatter.framework.startCommand": "hexo clean && hexo server", "frontMatter.preview.host": "http://127.0.0.0:4000/", "frontMatter.preview.pathName": "{{year}}/{{month}}{{day}}/{{slug}}.html", "frontMatter.taxonomy.dateFormat": "YYYY/MM/dd", "frontMatter.taxonomy.frontMatterType": "YAML", "frontMatter.taxonomy.seoContentLength": 2400, "frontMatter.taxonomy.indentArrays":true, "frontMatter.templates.enabled": true, "frontMatter.templates.folder": ".frontmatter/templates", "frontMatter.templates.prefix": "", "frontMatter.content.draftField": { "name": "draft", "type": "choice", "choices": ["draft", "in progress", "published"] }, "frontMatter.dashboard.content.pagination": true } ``` <!-- github-sync-id:1392499795 -->
adam closed this issue 2026-10-05 02:41:49 +02:00
Author
Owner

That's interesting, just checked in on two websites, but cannot reproduce the issue. One reason could be that the content processing takes a little longer to show all the pages. That is also the reason why the pagination was added.

Will do some further tests to see if I can somehow reproduce it.

That's interesting, just checked in on two websites, but cannot reproduce the issue. One reason could be that the content processing takes a little longer to show all the pages. That is also the reason why the pagination was added. Will do some further tests to see if I can somehow reproduce it. <!-- github-comment-id:1263632125 -->
Author
Owner

Could reproduce it a bit by copying all my blog posts making it exceed 1000 posts. It does not crash, but gets laggy and slow. Turning on pagination makes the experience better.

Why do you want to turn off pagination with that many articles?

There are solutions to overcome the issue, but need to know the reason why as well to see what the best approach would be to fix it.

Could reproduce it a bit by copying all my blog posts making it exceed 1000 posts. It does not crash, but gets laggy and slow. Turning on pagination makes the experience better. Why do you want to turn off pagination with that many articles? There are solutions to overcome the issue, but need to know the reason why as well to see what the best approach would be to fix it. <!-- github-comment-id:1263691024 -->
Author
Owner

Mostly, I wanted to see more than a small subset of my posts. I didn’t see an option to configure the number of post per page. With Hexo, I can set per_page to 50. I haven’t found such option with FM.

Mostly, I wanted to see more than a small subset of my posts. I didn’t see an option to configure the number of post per page. With Hexo, I can set `per_page` to 50. I haven’t found such option with FM. <!-- github-comment-id:1264185392 -->
Author
Owner

It is a relatively new feature that got added in the last release. That is why you won't find any options for it yet apart from turning it on/off.

A better experience would be to allow you to set the number of articles for pagination. Is that correct?

We can do this and also set like a max. value for the pages to show.

It is a relatively new feature that got added in the last release. That is why you won't find any options for it yet apart from turning it on/off. A better experience would be to allow you to set the number of articles for pagination. Is that correct? We can do this and also set like a max. value for the pages to show. <!-- github-comment-id:1264260051 -->
Author
Owner

Yeah, that would work.

Yeah, that would work. <!-- github-comment-id:1264309557 -->
Author
Owner

Think #433 is the main issue why it did not work.

Still pagination optimizations are in the plans for the next release.

Think #433 is the main issue why it did not work. Still pagination optimizations are in the plans for the next release. <!-- github-comment-id:1264971165 -->
Author
Owner

Just tested that hypothesis... Yep, you're right.
Main issue was having the scaffolds folder included in the Page folder setting with variable in the MD files... Now, it displays all 1400 articles, but is slow to scroll. I see why you added pagination.

Just tested that hypothesis... Yep, you're right. Main issue was having the `scaffolds` folder included in the Page folder setting with variable in the MD files... Now, it displays all 1400 articles, but is slow to scroll. I see why you added pagination. <!-- github-comment-id:1265495983 -->
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: adam/vscode-front-matter#344