1.14.0 • Public • Published


    NPM Version Build test status codecov
    MIT License Contributor Covenant

    This Eleventy plugin will automatically embed common media formats in your pages, requiring only a URL in your markdown files.

    It currently supports Instagram, SoundCloud, Spotify, TikTok, Twitch, Twitter, Vimeo, and YouTube, with more planned.

    ⚡️ Installation

    In your Eleventy project, install the plugin through npm:

    $ npm i eleventy-plugin-embed-everything

    Then add it to your Eleventy config file:

    const embedEverything = require("eleventy-plugin-embed-everything");
    module.exports = function(eleventyConfig) {

    🛠 Usage

    To embed a YouTube video into any Markdown page, paste its URL into a new line. The URL should be the only thing on that line.

    Markdown file example:

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam vehicula, elit vel condimentum porta, purus.
    Maecenas non velit nibh. Aenean eu justo et odio commodo ornare. In scelerisque sapien at.

    The same principle applies to the other supported services.


    Rick Astley performing “Never gonna give you up”

    🌈 Supported services

    Currently, the plugin supports the following embed services (listed alphabetically):

    On by default:

    • Instagram
    • Spotify
    • TikTok
    • Twitch
    • Twitter
    • Vimeo
    • YouTube

    Off by default (How to activate)

    • SoundCloud

    More are planned!

    ⚙️ Settings

    The plugin supports a number of frequently used services by default, and they have default settings of their own.

    Configure which embed services are active

    You can configure which services you want active by passing an options object to the addPlugin function:

    Example ( New in 1.11.0): configure the plugin to embed all default services plus SoundCloud

    eleventyConfig.addPlugin(embedEverything, {
      add: ['soundcloud']

    Example: configure the plugin to embed only Vimeo and Instagram:

    eleventyConfig.addPlugin(embedEverything, {
      use: ['vimeo', 'instagram']

    Configure embed services individually

    Each service comes with some useful defaults, but you can also configure each one individually. Override each plugin’s defaults by passing an options object that includes its fully-lowercase name as the key:

    // configure YouTube videos to prohibit fullscreen
    eleventyConfig.addPlugin(embedEverything, {
      youtube: {
        options: {
          allowFullscreen: false

    Substitute vimeo, instagram, and so on in place of youtube. Consult the individual plugin packages for their relevant defaults and options.

    ⚠️ Notes and caveats

    • This plugin does very little on its own. Instead, it aggregates other embed plugins in a single place.
    • Each service is itself a standalone Eleventy plugin, each of which you can install individually.
    • This plugin is in its early stages, with only a few supported embed patterns right now. If there’s a specific service you want added, please open an issue.
    • This plugin is not tested against Node.js 8 (since ava doesn’t support it). I believe the plugin still works, but Node.js < 10 compatibility is best-effort only at this point, and will be explicitly dropped in future.

    Aggregated plugins

    For more about each supported service, consult this table of relevant links.

    Service Package Repository Options
    Instagram npm GitHub Options
    SoundCloud npm GitHub Options
    Spotify npm GitHub Options
    TikTok npm GitHub Options
    Twitch npm GitHub Options
    Twitter npm GitHub Options
    Vimeo npm GitHub Options
    YouTube npm GitHub Options


    npm i eleventy-plugin-embed-everything

    DownloadsWeekly Downloads






    Unpacked Size

    13.4 kB

    Total Files


    Last publish


    • gfscott