npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

eleventy-plugin-emoji

v1.1.0

Published

An accessibly emoji shortcode and filter for Eleventy projects

Downloads

171

Readme

eleventy-plugin-emoji

npm npm bundle size (minified) npm

🎈 An accessible emoji shortcode and filter for your Eleventy projects

Use

Install this package with your favorite manager:

npm i eleventy-plugin-emoji

Then add it to your project's .eleventy.js configuration:

// .eleventy.js
module.exports = function (eleventyConfig) {
  eleventyConfig.addPlugin(require("eleventy-plugin-emoji"));
};

Finally, use the emoji shortcode or filter:

Shortcode with label: {% emoji "☝️", "finger pointing to the sky" %}

Shortcode without label: {% emoji "✌️" %}

Filter with label: {{ "🤟" | emoji: "spider-man hand" }}

Filter without label: {{ "🖐" | emoji }}

Note: These filter examples use Liquid, the default markdown rendering engine for Eleventy. If you are using Nunjucks, the syntax is slightly different:

<!-- Nunjucks syntax for filter arguments -->
{{ "✍️" | emoji("taking notes") }}

How

The shortcode and filter take an emoji and optional label, and wrap it in a containing element with the appropriate accessibility attributes.

For emoji with a label, the default output is:

<!-- {% emoji "🐵", "monkey face" %} or {{ "🐵" | emoji: "monkey face" }} -->
<span aria-label="monkey face" class="eleventy-emoji" role="img">🐵</span>

For emoji without labels, the default output is:

<!-- {% emoji "🙈" %} or {{ "🙈" | emoji }} -->
<span aria-hidden="true" class="eleventy-emoji" role="img">🙈</span>

This follows the pattern recommended by Léonie Watson and used by various accessibility validators.

Options

There are two options to configure eleventy-plugin-emoji:

| Option | Default | Explanation | | ----------- | ---------------- | ------------------------------------------- | | element | span | The element that will wrap the emoji symbol | | className | eleventy-emoji | A class applied to the wrapping element |

To configure the plugin, pass an object with the any of the above keys to Eleventy's addPlugin() function:

eleventyConfig.addPlugin(require("eleventy-plugin-emoji"), {
  element: "i",
  className: "emoji",
});

The output from the previous configuration would be:

<!-- {% emoji "⚙️", "settings gear" %} -->
<i aria-label="settings gear" class="emoji" role="img">⚙️</i>

License

MIT © Sean McPherson