A starter environment for creating plugins for Eleventy (11ty).
Fork this repo, or select "Use this template" to get started.
This template is setup to run a single page 11ty site for testing your plugin functionality. The build files are excluded from the final plugin package via .npmignore
.
Your plugin functionality should live in/be exported from .eleventy.js
. You will find a sample of creating a filter plugin in this template, including setting up a default config and merging user options.
Be sure to update the package.json
with your own details!
You can test your functionality within this project's local 11ty build by running npm start
, but you'll also want to test it as a plugin.
From another local 11ty project, you can set the require()
path relatively to your plugin's project directory, and then use it just as you would for a plugin coming from a package.
Example, assuming you place all your repositories within the same parent directory:
const pluginName = require("../plugin-directory");
module.exports = (eleventyConfig) => {
eleventyConfig.addPlugin(pluginName, { optionName: 'if needed' );
};
Then, run the project to test the plugin's functionality.
Note that making changes in the plugin source will likely require restarting the test project.
- Bryan Robinson's "Create a Plugin with 11ty" demonstration on "Learn With Jason"
The following is a boilerplate for your final plugin README.
Describe how to install your plugin, such as:
npm install @scope/plugin-name
Then, include it in your .eleventy.js
config file:
const pluginName = require("@scope/plugin-name");
module.exports = (eleventyConfig) => {
eleventyConfig.addPlugin(pluginName);
};
Option | Type | Default |
---|---|---|
option name | type | default value |
Show examples of likely configurations.
Contributions are welcome. Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as below, without any additional terms or conditions.
This project is licensed under either of
at your option.
The SPDX license identifier for this project is MIT OR Apache-2.0.
For more information and updates, please visit the project's GitHub repository.
Join our Discord community for support, or leave an issue on this repository!