eleventy icon indicating copy to clipboard operation
eleventy copied to clipboard

access eleventyConfig plugin property

Open btrem opened this issue 1 year ago • 3 comments

Discussed in https://github.com/11ty/eleventy/discussions/3193

Originally posted by btrem February 7, 2024 I have several plugins in my site setup, which are listed in the eleventyConfig in a plugins array (shortened for ease of reading):

plugins: [
    {
      plugin: [AsyncFunction (anonymous)],
      options: undefined,
      pluginNamespace: ''
    },
    {
      plugin: [Function (anonymous)],
      options: undefined,
      pluginNamespace: ''
    }
  ]

One of my plugins has a pluginConfig that I can access via eleventyConfig.plugins[1].options.foo. Can I find this particular property directly? I.e., is there a way to access the plugin via it's name in the .eleventy.js addPlugin directive? I tried JSON.stringify(eleventyConfig.plugins["myPlugin"]) and got undefined.

btrem avatar Feb 24 '24 22:02 btrem

Per the recently merged docs here: https://www.11ty.dev/docs/plugins/#creating-a-plugin, I believe the options are passed in as a second argument—is that what you mean?

zachleat avatar Apr 08 '24 20:04 zachleat

[meta: I replied to this logged into a sibling's GH account; I apologize for my carelessness]

The options are passed in to the plugin as that link describes, and are available in the main plugin file, e.g. myPlugin/index.js. But how do I access the options object in other files? In my case, specifically, in other files that are part of the plugin, e.g., myPlugin/myFilter.js?

btrem avatar Apr 09 '24 19:04 btrem

I have the same problem. Did you solve it?

saiballo avatar May 23 '24 13:05 saiballo