photogabble / eleventy-plugin-font-subsetting

Font Subsetting made easier...
https://www.photogabble.co.uk/projects/eleventyjs-font-subsetting-plugin/
MIT License
0 stars 0 forks source link

`outputPath.endsWith is not a function` when using plugin on site with a `permalink: false` post #1

Open no-miti opened 8 months ago

no-miti commented 8 months ago

I use permalink: false for draft pages, so that I don't build anything for production unnecessarily. When trying to use this plugin alongside that, however, those posts will create this error:

[11ty] Problem writing Eleventy templates: (more in DEBUG output)
[11ty] 1. Having trouble writing to "false" from "./in/content/aaaaaaaa/testing/index.md" (via EleventyTemplateError)
[11ty] 2. Transform `identifyGlyphs` encountered an error when transforming ./in/content/aaaaaaaa/testing/index.md. (via EleventyTransformError)
[11ty] 3. outputPath.endsWith is not a function (via TypeError)

Going through some old issue posts on 11ty leads me to assume that it's just a matter of the plugin not checking for whether or not the post being scraped for glyphs has a permalink to output to. Looking for the output in debug mode seems to confirm this, as it looks to be trying to find a filename that does not exist as a result:

// DEBUG ERROR
Eleventy:EleventyErrorHandler (error stack): TypeError: outputPath.endsWith is not a function
    at Object.<anonymous> (/[...]/node_modules/@photogabble+eleventy-plugin-font-subsetting@1.0.0/node_modules/@photogabble/eleventy-plugin-font-subsetting/index.js:62:20)
// what's at eleventy-plugin-font-subsetting/index.js:62:20
  eleventyConfig.addTransform('identifyGlyphs', (content, outputPath) => {
    if (outputPath.endsWith('.html')) glyphs.add(content);
    return content;
  });
jacksongoode commented 1 month ago

I also get this as well. Any solution?