eleventy-plugin-head

1.1.1 • Public • Published

eleventy-plugin-head 🐶

next/head for Eleventy

Append elements to the head of your page from your templates. Automatically de-duplicates entries. Works with all templating languages supported by Eleventy. Great for using web components in your Eleventy sites.

Usage

Install the plugin:

npm i eleventy-plugin-head --save-development

...and add it to your .eleventy.js configuration file:

const pluginHead = require('eleventy-plugin-head ');

module.exports = function (eleventyConfig) {
  eleventyConfig.addPlugin(pluginHead);
};

Use it in your templates to add elements to the head from everywhere in your templates:

{% head 'key', '<hello/>' %}

You can also programmatically add elements to the head (e.g. from within a shortcode):

eleventyConfig.addShortcode("title", function(title) {
  pluginHead.head.add(this.page.inputPath, 'title', `<title>${title}</title>`);
  return '';
}

Example

Use it do define different components sharing the same script:

hello-alice.njk: {% head 'greeter', '
<script src="greeter.js"></script>
' %} <my-greeter>Alice</my-greeter>
hello-bob.njk: {% head 'greeter', '
<script src="greeter.js"></script>
' %} <my-greeter>Bob</my-greeter>

You can now use both components without having to worry about importing the same script multiple times.

<body>
  {% include 'hello-alice.njk' %} {% include 'hello-bob.njk' %}
</body>

Which will result in:

<head>
  <script src="greeter.js"></script>
</head>
<body>
  <my-greeter>Alice</my-greeter>
  <my-greeter>Bob</my-greeter>
</body>

Package Sidebar

Install

npm i eleventy-plugin-head

Weekly Downloads

1

Version

1.1.1

License

Apache-2.0

Unpacked Size

15.2 kB

Total Files

6

Last publish

Collaborators

  • sebastianbenz