A simpler static site generator. An alternative to Jekyll. Transforms a directory of templates (of varying types) into HTML.

Overview

eleventy Logo

eleventy 🕚 ⚡️

A simpler static site generator. An alternative to Jekyll. Written in JavaScript. Transforms a directory of templates (of varying types) into HTML.

Works with HTML, Markdown, Liquid, Nunjucks, Handlebars, Mustache, EJS, Haml, Pug, and JavaScript Template Literals.

Documentation

npm Version GitHub issues code style: prettier npm Downloads

Installation

npm install @11ty/eleventy --save-dev

Read our Getting Started guide.

Tests

npm run test

Major Roadmapped Features

Plugins

See the official docs on plugins.

Comments
  • Slug filter doesn't create url safe slugs.

    Slug filter doesn't create url safe slugs.

    I've been using the slug filter to convert regular strings to strings suitable for use as urls. However I've realised it's not set up to remove apostrophes (and possibly other characters?).

    So it's a test becomes it's-a-test, and when rendered with eleventy the url is /tags/it's-a-test/ - the ampersand breaks the url. It also looks ugly!

    I see that the package supports supplying a list of characters to remove.

    If the intention is that this filter is used to create 'safe' urls, could Eleventy remove these by default?


    As an alternative I've added my own filter using the slugify() option of the string library. I might stick with this anyway as it seems to do a good job of creating 'pretty' slugs.

    enhancement high-priority needs-review 
    opened by edwardhorsford 53
  • --incremental Build, only process files that have changed.

    --incremental Build, only process files that have changed.

    This is the step that requires knowledge of each template’s dependencies:

    • What collections the changed template is a part of and what other templates consume those collections.
    • Keep in mind JavaScript dependencies (for 11ty.js)
    • If the file is a layout, rebuild other templates use the layout.
    • If the file is a data file, rebuild what templates use the data (global data will require some extra work but directory and template data are straightforward)
      • Stretch goal here for huge pagination templates is that it would be super nice to know what changed in the data file to have a bit more precision about what pagination templates we need to write. (Selfishly I want this for my twitter archive project) (Filed separately at #1087)
    • Passthrough copy files filed separately as #977

    Punt into separate issues, later:

    • If the file is a config file, package.json, rebuild everything for now.
    • If the file is an include or an extend or an import or other internal-to-template-language specific feature, how do we discover what other files consume this? Maybe no way to tell for relative includes that don’t live in the includes folder?
    enhancement large-task enhancement: favorite feature: 🥝 incremental builds 
    opened by zachleat 33
  • `page.date` is not accurate when github action is used to deploy to server.

    `page.date` is not accurate when github action is used to deploy to server.

    Describe the bug page.date is not accurate when github action is used to deploy to server.

    To Reproduce Steps to reproduce the behavior:

    1. I have this footer.njk that is included (using {% include 'footer.njk' %} in base_layout.njk and hansreich_base_layout.njk) in all of my page (700+ pages) with intention of having 'last updated date' for pages that have been modified only: https://github.com/khoivan88/organicchemistrydata/blob/3452915650c34be52ba299c586e1474ebe340116/src/_includes/footer.njk#L4
    2. This work really well on my local machine and the date is reflected correctly.
    3. However, when I used this github action to deploy to my remote server, the date on each page seems to be the last time the github action was run. I even used rsync --checksum to compare the content and the output of rsync seems to only have transferred changed files. However, the date seems to be changed for all files https://github.com/khoivan88/organicchemistrydata/blob/master/.github/workflows/build_and_deploy.yml

    You can see the result of rsync result of one of the builds here, under 'rsync deployment', it shows only 1 file was transferred: https://github.com/khoivan88/organicchemistrydata/runs/848026787?check_suite_focus=true Yet, in the sitemap here: you can see pretty much all of the files were changed to that date: https://organicchemistrydata.org/sitemap/sitemap.xml

    I know that 11ty has mentioned this issue in the common pitfall but I'm not sure there is a way for me to set 'Last modified' date for every single of my 700+ pages automatically?

    Expected behavior When deploying using github action, either 'created date' and 'modified date' not changed for unchanged files

    Would anyone has any suggestion for me where I don't have to put date for each file?

    Thank you so much!

    duplicate 
    opened by khoivan88 32
  • Hot reload not working (editors note: contains good discussion on WSL2)

    Hot reload not working (editors note: contains good discussion on WSL2)

    Describe the bug I am working through the getting started tutorial. Hot reload does not work (no browser reload on save, and even with manual refresh changes are not picked up_

    To Reproduce Steps to reproduce the behavior:

    1. Work through the getting started tutorial up to here
    2. Run npx @11ty/eleventy --serve
    3. Visit http://localhost:8080/
    4. Make a change to index.html (for example, add some more text). Save the file.
    5. Nothing happens

    Expected behavior On save, I expected the browser to reload and my new text to display.

    Environment:

    • Windows 10
    • Eleventy 0.9.0
    • Browser is Google Chrome, and am running in the terminal in VS Code
    bug education 
    opened by StarfallProjects 31
  • Javascript Out of Memory Heap Error when 1,900+ Posts Added

    Javascript Out of Memory Heap Error when 1,900+ Posts Added

    Relative newb here so forgive me if my terminology isn't quite correct. I'll do my best to clarify where needed:

    Describe the bug I'm getting this error when I try to run Eleventy after putting all my archived blog posts into /src/posts/. It runs fine with ~10 posts.

    To Reproduce Dump a whole bunch of .md files into the Posts folder.

    Expected behavior Not crash.

    Screenshots

    Environment:

    • OS and Version: macOS 10.14.6
    • Eleventy Version 0.7.1

    Additional context

    I'm not sure if it's happening because it's trying to build the /tags/ out - I'd be fine losing those if need be.

    Thanks in advance!

    bug: memory 
    opened by iChris 31
  • Frontmatter properties replace those in .json files rather than supplementing

    Frontmatter properties replace those in .json files rather than supplementing

    This may be by design, but I had expected that the properties defined in a folder's .json would supplement those defined in a file's front matter.

    Currently the frontmatter replaces the properties in a folder's .json file. This is most obvious when dealing with arrays such as tags.

    It would be really useful to be able define a tag for every file in a folder so that each file could be added to a collection, but then to be able to add further tags in the frontmatter of each file.

    An example of this current behavior is illustrated here:

    Source: https://github.com/philhawksworth/test-11ty-tags Demo: https://peaceful-pare-34afb6.netlify.com/

    Current behavior:

    • Only those files in the posts directory without tags in their frontmatter inherit the "post" tag from the posts.json file.
    • The posts collection (listed on the home page) excludes any files with their own tags

    Expected (ok, desired!) behavior

    • All files present in the /posts directory receive the "post" tag from posts.json in addition to any that they have defined in the frontmatter.
    bug 
    opened by philhawksworth 30
  • Two separate collections: problem to output its own tags for each one

    Two separate collections: problem to output its own tags for each one

    I have two separate collections and I want in each directory the tags output like this: /sights/tags/(all tags for sights); /sounds/tags/(all tags for sounds).

    But instead I get: /sights/tags/(all tags for sights and sounds); /sounds/tags/(all tags for sounds and sights).

    It seems that permalink, as I have it, cannot use dynamic data (I get errors). So I tried Computed data to define the permalink but I can't figure it out how to do it porperly; even tried filters and I failed miserably.

    I have a repo here: https://github.com/rocc-o/raw-test-git

    If anyone could suggest me how to solve this I would be very grateful. Thanks.

    opened by rocc-o 29
  • FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory

    FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory

    The crux of this particular issue is that the Pagination feature uses too much memory.

    This will serve as the upstream parent issue for #2226, #2064, and #695

    bug: memory 
    opened by zachleat 27
  • Can't iterate over a global data subfolder

    Can't iterate over a global data subfolder

    My global data are contained in subfolders of the main data folder. For instance: data/subdata. My Nunjucks for loop is:

    {% for sub in subdata %}
    .....
    {% endfor %}
    

    However I never get anything: no looping! But if I put: subdata.entry.property or subdata['entry'].property I get that property. I mean, if I know the name of the data subfolder, I can retrieve anything declared in that data file. Does it mean that I can't iterate over the data subfolders?

    education 
    opened by octoxalis 26
  • More detailed passthrough copy options

    More detailed passthrough copy options

    I'm trying to use manual passthrough copy to copy some files over to my dist directory - but the outcome is not what I expected. I don't know if this is intentional, but it seems odd.

    I've got a folder of files I'd like to be copied. They're at src/copy-pass-through/. I added them to the eleventy config with eleventyConfig.addPassthroughCopy("./src/copy-pass-through");

    They get copied to dist, but the starting folder structure is preserved. So I get dist/src/copy-pass-through

    I would expect the files to be copied relative to the starting location. So a file located in src/copy-pass-through/images/foo.jpg would get copied to dist/images/foo.jpg.

    The current behavior seems odd to me - if my files are in a folder, I'm forced to have that appear in dist. This doesn't support my own organisation. It means if I want a file to appear in the root of dist I'm forced to have it in the root of the project.

    enhancement 
    opened by edwardhorsford 26
  • Shortcodes

    Shortcodes

    I'm wondering how shortcodes might be handled. I really like how Hugo uses shortcodes (https://gohugo.io/content-management/shortcodes/) but they would be even better if they could be run through node scripts (Hugo is written in Golang and has no support for this currently).

    Essentially, I'd expect to be able to write little snippets that take arguments, referencing a script that outputs markup and injects it back as part of the processed template. E.g.

    {{shortcodeName arg1="foo" arg2="bar"}}
    

    would run a script called shortcodeName.js that takes "foo" and "bar" then exports/returns markup with those values processed somehow.

    enhancement high-priority large-task 
    opened by Heydon 26
  • Docs for Nunjucks `setAsync`

    Docs for Nunjucks `setAsync`

    From 1.0 feature: https://github.com/11ty/eleventy/issues/2108

    Related to https://github.com/11ty/eleventy/issues/2726#issuecomment-1370110505 from @j-f1

    Include a warning for {% set %} with async content

    documentation 
    opened by zachleat 0
  • Nunjucks layout is displaying HTML code literally instead of interpreting it

    Nunjucks layout is displaying HTML code literally instead of interpreting it

    Operating system

    macOS Monterey 12.6.2

    Eleventy

    1.0.2

    Describe the bug

    I'm a new user of 11ty (and really, Javascript in general as Python and Matlab are my forte), and I'd like y'all's help in generating a static site for my personal portfolio.

    I have an existing Django-based multi-page website where all pages have different content but are created from the same basic structure. I've been trying to follow the example on 11ty's documentation to convert my code -and in the spirit of legibility, get rid of every possible instance of {% block %}.

    My understanding is that you can create one Nunjucks file to define a layout (for example, base.html), and you're supposed to be able to populate it with different content (for example, index.html). I recognize that its contents will be escaped unless you use the safe pipe. However, I am doing just that, but the HTML code in my template is being escaped, anyways, causing my layout to render it as uninterpreted text.

    I understand that you can't have conflicts between Nunjucks' Template Inheritance and 11ty's Layout Chaining, but I don't believe that is a relevant issue here. What else could I do to ensure that my webpage gets rendered properly?

    Reproduction steps

    Here's my project directory as things stand now.

    ├─ _public
    ├─ .github
    ├─ data
    ├─ node_modules
    │
    ├─ src
    │   ├─ css
    │   │
    │   ├─ include
    │   │   └─ header.html, footer.html, loading.html etc.
    │   │
    │   ├─ js
    │   │
    │   ├─ layouts
    │   │   └─ base.html
    │   │
    │   └─ index.html
    │
    ├─ .eleventy.js
    │
    └─ other files
    

    Here are the contents of key files:

    .eleventy.js

    My 11ty configuration is as follows. Other than following 11ty's notes on Nunjucks to ensure that my project's folder structure is recognized, I haven't done anything too crazy.

    module.exports = function (eleventyConfig) {
        const Nunjucks = require('nunjucks');
    
        // Copy additional files to the output folder
        eleventyConfig.addPassthroughCopy("src/css/*.css");
        eleventyConfig.addPassthroughCopy("src/js");
    
        // Configure Nunjucks
        let nunjucksEnvironment = new Nunjucks.Environment(
            new Nunjucks.FileSystemLoader([
                "src/layouts",
                "src/include",
            ])
        );
        eleventyConfig.setLibrary("njk", nunjucksEnvironment);
    
        // some additional filters
    
        // Return Object
        return {
            dir: {
                input: "src",
                output: "_public",
                data: "data",
                includes: "include",
                layouts: "layouts",
            },
            markdownTemplateEngine: "njk",
            htmlTemplateEngine: "njk",
            pathPrefix: "/",
        }
    };
    

    src/index.html

    While I intend to populate this template with a more complex set of HTML, I stripped it down to its bare bones to ensure that it's (not) working.

    ---
    layout: base
    title: Home
    ---
    Helloooo <b>this should be bolded</b>
    

    src/layouts/base.html

    Interestingly, all of the {% include %} statements are rendering just fine, and my CSS, Javascript, and additional templates are rendered just fine.

    ---
    title:
    date: Last Modified
    ---
    <!DOCTYPE html>
    <html>
    <head>
        <title>{{ title }}</title>
        {% include "header.html" %}
    </head>
    <body>
        {% include "loading.html" %}
        {% include "navbar.html" %}
        {% include "gototop.html" %}
        <main>
            {{ content | safe }}
        </main>
        {% include "footer.html" %}
    </body>
    </html>
    

    Expected behavior

    With the above code, this is the output I get.

    <!DOCTYPE html>
    <html>
    
    <head>
    <!--the CSS and JS in this part render as expected-->
    </head>
    
    <body>
        <!--the code in loading.html and navbar.html render as expected-->
        <main>
            Helloooo &lt;b&gt;this should be bolded&lt;/b&gt;
        </main>
        <!--the code in footer.html render as expected-->
    </body>
    </html>
    

    I expect the code in <main> to render as proper, functional HTML. Why is this not happening here?

    Reproduction URL

    No response

    Screenshots

    No response

    needs-triage 
    opened by keitaay 0
  • provided example for skipping templates in

    provided example for skipping templates in "compile" function only works with canary

    As written, the example for skipping templates doesn't work in v1.0.2.

    Given the following:

    // "compile" function within "eleventy.config.addExtension()".
    
    compile: async function (inputContent, inputPath) {
        let parsed = path.parse(inputPath);
    
        if (parsed.name.startsWith("_")) {
    	    return;
        }
    
        let result = sass.compileString(inputContent, {
            loadPaths: [parsed.dir || "."],
        });
    
        return (data) => {
            return result.css;
        };
    }
    

    Running npm start results in:

    > npx @11ty/eleventy --serve
    
    [11ty] Problem writing Eleventy templates: (more in DEBUG output)
    [11ty] 1. Having trouble rendering scss template ./src/assets/scss/_text.scss (via TemplateContentRenderError)
    [11ty] 2. Having trouble compiling template ./src/assets/scss/_text.scss (via TemplateContentCompileError)
    [11ty] 3. Cannot read properties of (reading 'bind') (via TypeError)
    [11ty]
    [11ty] Original error stack trace: TypeError: Cannot read properties of undefined (reading 'bind')
    [11ty]     at /Users/william/development/elev-test/node_modules/@11ty/eleventy/src/Engines/Custom.js:173:35
    [11ty] Wrote 0 files in 0.08 seconds (v1.0.2)
    

    It does, however, work if using v2.0.0-canary.23:

    > npx @11ty/eleventy --serve
    
    [11ty] Writing _site/assets/scss/main.css from ./src/assets/scss/main.scss
    [11ty] Writing _site/index.html from ./src/index.md (liquid)
    [11ty] Wrote 2 files in 0.08 seconds (v2.0.0-canary.23)
    [11ty] Watching…
    [11ty] Server at http://localhost:8080/
    

    It will also work in v1.0.2 when the if statement is moved into the return block:

    compile: async function (inputContent, inputPath) {
        return (data) => {
                let parsed = path.parse(inputPath);
    
    	    if (parsed.name.startsWith("_")) {
    		return;
    	   }
    
    	    let result = sass.compileString(inputContent, {
    		loadPaths: [parsed.dir || "."],
    	    });
    
    	    return result.css;
    	};
    }
    

    I'm not sure what changed between the two versions that would cause this, but perhaps the docs should mention the change in behavior. Happy to work on this if that would be helpful.

    documentation 
    opened by w0whitaker 0
  • Possibly incorrect output when _includes is created while the dev server is running (v2.0.0-canary.23)

    Possibly incorrect output when _includes is created while the dev server is running (v2.0.0-canary.23)

    Operating system

    macOS Monterey 12.6.2

    Eleventy

    v2.0.0-canary.23

    Describe the bug

    Hello! I'm trying out 11ty for a new static site and noticed an odd behavior.

    It doesn't reproduce on 1.0, so this might be expected at this point in the development of 2.0. I wasn't sure how close a "canary" build is to release and was excited to try out 2.0, so please feel free to close if this is known or expected.

    It seems that directories created while the dev server is running are sometimes treated differently than if they were created before the dev server was started.

    I noticed this as I was following along with a "Getting started" tutorial and created the _include folder while the dev server was running.

    Reproduction steps

    Here's a standalone reproduction on the latest canary build (v2.0.0-canary.23):

    $ mkdir bug
    $ cd bug
    $ pnpm install --save-dev @11ty/eleventy@canary
    Already up to date
    Progress: resolved 211, reused 211, downloaded 0, added 0, done
    Done in 4.3s
    $ npx @11ty/eleventy --serve
    [11ty] Wrote 0 files in 0.03 seconds (v2.0.0-canary.23)
    [11ty] Watching…
    [11ty] Server at http://localhost:8080/
    [11ty] File added: _includes/post.md
    [11ty] Writing _site/_includes/post/index.html from ./_includes/post.md (liquid)
    [11ty] Wrote 1 file in 0.05 seconds (v2.0.0-canary.23)
    [11ty] Watching…
    

    In another terminal, while the dev server runs:

    yurivish@Compy ~ % cd bug
    $ mkdir _includes
    $ echo "# Title" > _includes/post.md
    

    At this point, the dev server will print

    [11ty] File added: _includes/post.md
    [11ty] Writing _site/_includes/post/index.html from ./_includes/post.md (liquid)
    [11ty] Wrote 1 file in 0.05 seconds (v2.0.0-canary.23)
    

    If I then stop the dev server, delete the output folder, then restart the dev server, it does not regenerate the _site output from before:

    $ rm -rf _site
    $ npx @11ty/eleventy --serve
    [11ty] Wrote 0 files in 0.03 seconds (v2.0.0-canary.23)
    [11ty] Watching…
    [11ty] Server at http://localhost:8080/
    

    Which I think shows that files created while the dev server is active are not always treated the same as if they already existed.

    Expected behavior

    The same output should be generated regardless of whether or not the dev server happens to be running as the site is being edited.

    ✏️ Edit: I also noticed that in another simple set up with a Markdown file and HTML template, using --serve or --watch would update the output when the Markdown file changed but not when the HTML template changed. The update would happen, but changes from the new template would not be applied:

    Edit 2: The incremental docs do say "Layouts Coming soon in v2.0.0-canary.21. When you change a layout file, any templates using that layout file are rebuilt." So it does sound like the behavior I'm describing is not intended.

    [11ty] File changed: _includes/index.html
    [11ty] Writing _site/first-post/index.html from ./first-post.md (liquid)
    

    I also tried this in 1.0 where the same workflow works correctly, so it might be a regression in the current canary version.

    Reproduction URL

    No response

    Screenshots

    No response

    needs-triage 
    opened by yurivish 0
  • Check for user misnaming config file `.eleventy.js` as `eleventy.js`

    Check for user misnaming config file `.eleventy.js` as `eleventy.js`

    Is your feature request related to a problem? Please describe.

    Yes, on Windows 10 when I misname my config file as eleventy.js and run npx eleventy --serve, instead of getting a sensible error it attempts to open eleventy.js as a file through the system (e.g. with whatever editors I have installed).

    Describe the solution you'd like

    Instead of doing what I describe above, which is strange and unintuitive, the eleventy --serve command should print out an error indicating the file is named incorrectly and exit.

    Describe alternatives you've considered

    You could also allow users to name their files other things, but it's much safer to just do some extra validation and add a clean error.

    Additional context

    No response

    enhancement 
    opened by Kylebrown9 0
  • Layout file changes not reflected until restart

    Layout file changes not reflected until restart

    Operating system

    macOS Monterey 12.0

    Eleventy

    2.0.0-canary.23

    Describe the bug

    When making a change in a layout file (.njk), the changes are not reflected until I restart Eleventy. Eleventy detects that the file has changed (File changed: ... in the terminal) and updates all pages, but it looks like it uses a cached version of the layout file.

    The last version with which it worked was canary.20. Canary 21 added incremental builds for layout file changes (see https://github.com/11ty/eleventy/issues/108#issuecomment-1362030361), so I guess that broke the non-incremental setup...

    Reproduction steps

    1. Start Eleventy with eleventy --serve
    2. Make a change in the layout file base.njk that is used in index.md => Changes not visible in the browser
    3. Restart Eleventy => now you will see the changes

    Expected behavior

    Eleventy should write all pages with the updated layout file instead of the cached one.

    Reproduction URL

    https://github.com/rothsandro/repro.eleventy-layouts

    Screenshots

    No response

    needs-triage 
    opened by rothsandro 0
Releases(v1.0.2)
  • v1.0.2(Aug 16, 2022)

    Eleventy v1.0.2 🎈🐀⚡️🕚

    This project would not be possible without our lovely community. Thank you to everyone that built something with Eleventy (×595 authors on our web site!), wrote a blog post about Eleventy, contributed code to core or plugins, documentation, asked questions, answered questions, braved The Leaderboards, participated on Discord, filed issues, attended (or organized!) a meetup, said a kind word on Twitter ❤️.

    Install or Upgrade

    • Install to your local project: npm install @11ty/eleventy
    • Already installed in your local project? Upgrade your version: npm update @11ty/eleventy
    • Read more about local project versus global installation

    Features

    • Fixes for liquid argument parsing on shortcodes #2154 #2348 #2367 #2369
      • Help from @epelc @lexoyo @denisenadal @mahnunchik @harttle

    Milestone

    All bug fix issues can be perused at the GitHub milestone: https://github.com/11ty/eleventy/milestone/39?closed=1

    Major Version Dependency Upgrades

    There are no major version dependency updates between 1.0.2 and 1.0.1.

    THANK YOU NOTES

    Gold Sponsors: Sanity.io, Nordhealth, CloudCannon

    Silver Sponsors: Set Creative Studio, Unabridged Software, PQINA, The Coders Guild, Bejamas, Nathan Smith, Flatirons Development, Monarch Air Group, Ben Nash, getform.io, OCEG, Mercury Jets

    OpenCollective Monthly Backers: Viljami Salminen, Tyler Gaw, Peter deHaan, Melanie Sumner, Alejandro Rodríguez, Mat Marquis, Philip Borenstein, Jérôme Coupé, Max Böck, Bryce Wray, Kristof Michiels, Nicolas Hoizey, Mike Aparicio, Ben Myers, Katie Sylor-Miller, Mark Buskbjerg, mortendk, Aaron Hans, Lauris Consulting, John Meyerhofer, Todd Libby, Luke Bonaccorsi, Dimitrios Grammatikogiannis, Wellness Researched, Devin Clark, Eric Bailey, Dave Rupert, Manuel Matuzovic, Phil Hawksworth, shawn j sandy, Jenn Schiffer, Tianyu Ge, Kyosuke Nakamura, Hans Gerwitz, Makoto Kawasaki, Horacio Gonzalez, Matthew Tole, Ivan Buncic, Rob Sterlini, Mark Boulton, Søren Birkemeyer, Richard Hemmer, Nick Nisi, Andrew Harvard, John SJ Anderson, Ryan Swaney, Tim Giles, Alistair Shepherd, Ivo Herrmann, Flaki, John Hall, Scott McCracken, James Steinbach, Miriam Suzanne, Bentley Davis, Angelique Weger, vince falconi, Martin Schneider, Stephanie Eckles, Frontend Weekly Tokyo, Ferpection, Josh Crain, Chris Burnell, Ximenav Vf., Juan Miguel, Rich Holman, Kasper Storgaard, Kevin Healy, Greg Gibson, Hidde, Michelle Barker, Alesandro Ortiz, David A. Herron, Paul Robert Lloyd, Andrea Vaghi, Bryan Robinson, Ashur Cabrera, Raymond Camden, John Meguerian, Joe Lamyman, Jeffrey A Morgan, Brett Nelson, Paul Welsh, Ingo Steinke, Melanie Richards, Dorin Vancea, Marco Zehe, Wes Ruvalcaba, Luc Poupard, Entle Web Solutions, Ken Hawkins, Ara Abcarians, Fershad Irani, Nikita Dubko, Aaron Gustafson, Chris, Sam, Benjamin Geese, Marcus Relacion, Netin nopeustesti, Bobby Ray, Christian Miles, Cthos, Sia Karamalegos, Daniel Ryan, Raphael Höser, Noel Forte, Saneef Ansari, Flemming Meyer, Colin Fahrion, Dan Burzo, Jon Kuperman, Dan Ott, Mobilemall.pk, Cheap VPS, David Darnes, Jon Roobottom, Dana Byerly, Oisín Quinn, Renkaatsopivasti, Windesol Sähkön Kilpailutus, Luke Mitchell, SignpostMarv, THE PADDING, Bob Monsour, Patrick Byrne, zapscribbles, Frank Reding, quinnanya, Richmond Insulation, Cory Birdsong, Aram ZS, Michel van der Kroef, Vinicius Depizzol, Andy Stevenson, HelppoHinta.fi, Tanner Dolby, jpoehnelt, Ingo Sobolewski, Andrew Weisbeck, Richmond Concrete, Tom, CelineDesign, Nic Chan, Duc Lam, Alex Zappa, Stephen Bell, Brett DeWoody, alistairtweedie, Meta Tier List, Robert Haselbacher, Lene

    Source code(tar.gz)
    Source code(zip)
  • v1.0.1(Apr 18, 2022)

    Eleventy v1.0.1 🎈🐀⚡️🕚

    This project would not be possible without our lovely community. Thank you to everyone that built something with Eleventy (×524 authors on our web site!), wrote a blog post about Eleventy, contributed code to core or plugins, documentation, asked questions, answered questions, braved The Leaderboards, participated on Discord, filed issues, attended (or organized!) a meetup, said a kind word on Twitter ❤️.

    Install or Upgrade

    • Install to your local project: npm install @11ty/eleventy
    • Already installed in your local project? Upgrade your version: npm update @11ty/eleventy
    • Read more about local project versus global installation

    Features

    • Performance improvement to lodash/isPlainObject resulted in 28% build time improvement to web.dev (and likely made your project speedier too!) #2214 #2219
    • Adds new date: git Last Modified feature to fix issues with Content Dates in production environments #142
    • New default global data: eleventy.version (holds the current version e.g. 1.0.1) and eleventy.generator (for use in <meta name="generator" content="{{ eleventy.generator }}">) #1217 #2293
    • Extra argument to the pagination before callback with current template’s data. #1209
    • Improved error messaging with Transforms and Plugins #646
    • jsdoc Comments for ConsoleLogger class #1914

    Milestone

    All bug fix issues can be perused at the GitHub milestone: https://github.com/11ty/eleventy/milestone/37?closed=1

    Some highlights:

    • #2221 Changes default serverless generated file content to fix bug with encoded path variables in Eleventy Serverless.
    • #2267 Regression with addExtension API and return; in the compile function to skip/ignore a template.
    • #2217 Fix for this.defaultRenderer is not a function error when using an async function with addExtension’s compile
    • #1313 When your config file throws an error, Eleventy would sometimes still process data files when using --version and --help.
    • #2298 Bug with front matter in layouts
    • #2278 Obscure bug with passthrough copy and --incremental mistakenly creating a file instead an output folder
    • #2145 Fix to allow setting a layout via addGlobalData configuration API
    • #2179 Fix addGlobalData configuration API to execute once per build

    Major Version Dependency Upgrades

    There are no major version dependency updates between 1.0.1 and 1.0.0.

    THANK YOU NOTES

    First-time GitHub contributions from @vseventer

    Gold Sponsors: Sanity.io, Nordhealth

    Silver Sponsors: Set Creative Studio, Unabridged Software, PQINA, The Coders Guild, Bejamas, Nathan Smith, Flatirons Development, Monarch Air Group

    OpenCollective Monthly Backers: Viljami Salminen, Tyler Gaw, Peter deHaan, Melanie Sumner, Alejandro Rodríguez, Mat Marquis, Philip Borenstein, Jérôme Coupé, Max Böck, Bryce Wray, Kristof Michiels, Yuhei Yasuda, Nicolas Hoizey, Mike Aparicio, Ben Myers, Katie Sylor-Miller, Todd Libby, Mark Buskbjerg, mortendk, Aaron Hans, Lauris Consulting, John Meyerhofer, Luke Bonaccorsi, Dimitrios Grammatikogiannis, Keenan Payne, Devin Clark, Eric Bailey, Dave Rupert, Manuel Matuzovic, Phil Hawksworth, Wellness Researched, Tianyu Ge, Kyosuke Nakamura, Hans Gerwitz, Makoto Kawasaki, shawn j sandy, Horacio Gonzalez, Matthew Tole, Ivan Buncic, Ned Zimmerman, Jenn Schiffer, Mark Boulton, Søren Birkemeyer, Richard Hemmer, Nick Nisi, Andrew Harvard, Takuya Fukuju, John SJ Anderson, Ryan Swaney, Alistair Shepherd, Ivo Herrmann, Flaki, Rob Sterlini, Kyle Mitofsky, John Hall, Scott McCracken, James Steinbach, Miriam Suzanne, Bentley Davis, Evan Harrison, Higby, vince falconi, Martin Schneider, Stephanie Eckles, Frontend Weekly Tokyo, Angelique Weger, Ross Kinney, Tim Giles, Matt DeCamp, Chris Burnell, Ximenav Vf., Juan Miguel, Kasper Storgaard, Kevin Healy, Greg Gibson, hiddedevries.nl, Jeremy Caldwell, Michelle Barker, Alesandro Ortiz, David A. Herron, Paul Robert Lloyd, Andrea Vaghi, Bryan Robinson, Ashur Cabrera, Raymond Camden, John Meguerian, Joe Lamyman, Jeffrey A Morgan, Brett Nelson, Paul Welsh, Ingo Steinke, Josh Crain, Melanie Richards, Rich Holman, Lewis Nyman, Dorin Vancea, Marco Zehe, Wes Ruvalcaba, Luc Poupard, Ferpection, Entle Web Solutions, Ken Hawkins, Sami Singh, Fershad Irani, Nikita Dubko, Aaron Gustafson, Chris, Benjamin Geese, Marcus Relacion, Netin nopeustesti, Bobby Ray, Cthos, Sia Karamalegos, Christian Miles, Raphael Höser, Saneef Ansari, Flemming Meyer, Colin Fahrion, Dan Burzo, Gaston Rampersad, Jon Kuperman, Dan Ott, Mobilemall.pk, Cheap VPS, David Darnes, Sam, Jon Roobottom, Dana Byerly, Oisín Quinn, Renkaatsopivasti, Windesol Sähkön Kilpailutus, Luke Mitchell, SignpostMarv, THE PADDING, Bob Monsour, Marc FILLEUL, Patrick Byrne, Ara Abcarians, Daniel Ryan, zapscribbles, Frank Reding, quinnanya, Central Va Insulation, Cory Birdsong, Aram ZS, Michel van der Kroef, Vinicius Depizzol, Andy Stevenson, HelppoHinta.fi, jpoehnelt, Jina Anne, Ingo Sobolewski

    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(Jan 10, 2022)

    Eleventy v1.0.0 🎈🐀⚡️

    This project would not be possible without our lovely community. Thank you to everyone that built something with Eleventy (×476 authors on our web site!), wrote a blog post about Eleventy, contributed code to core or plugins, documentation, asked questions, answered questions, braved The Leaderboards, participated on Discord, filed issues, attended (or organized!) a meetup, said a kind word on Twitter ❤️.

    I really wish I had time to list everyone, but I do want to mention a few folks that have made tremendous contributions:

    Install or Upgrade

    • Install to your local project: npm install @11ty/eleventy
    • Already installed in your local project? Upgrade your version: npm update @11ty/eleventy
    • Read more about local project versus global installation

    Upgrading from 0.x? Try out the eleventy-upgrade-help plugin.

    This will log breaking changes that apply to your project. https://github.com/11ty/eleventy-upgrade-help

    Breaking Changes

    • Changes Node requirement to 12+ (previously: 10+)
    • Data Deep Merge is now enabled by default
    • The ordering in the Data Cascade changed slightly: Front Matter in Layout files moved to be lower precedence, below Template and Data Directory Files (but higher than Global Data).
    • liquidjs v9 major version upgrade changes:
      • setLiquidOptions: Eleventy default for dynamicPartials changed to true. Issue #240 Unquoted include paths will need to be updated or revert using dynamicPartials: false
      • setLiquidOptions: Liquid option strict_filters renamed to strictFilters. Issue #1390
      • setLiquidOptions: Eleventy default for strict_filters/strictFilters changed to true. Issue #222
      • Relative path includes (e.g. {% include "./include.liquid" %}) now look relative to the file first, and the includes directory second. Issue #2090
    • ejs v3 major version upgrade changes: Issue #1392
      • Removes <% include /included %> style include, use <%- include('/included') -%> instead. Don’t forget the dash <%- and -%>!
    • .gitignore files outside of your project root are no longer supported when calculating ignored paths in Eleventy. Issue #364
      • ✅ {ROOT}/.gitignore (supported)
      • 🚫 {INPUT_DIR}/.gitignore (not supported)
      • ✅ {ROOT}/.eleventyignore (supported)
      • ✅ {INPUT_DIR}/.eleventyignore (supported)
    • If you rely on the YYYY-MM-DD format in your file names for content dates, these are now assumed to be UTC instead of local dates. Take care if you use liquid’s built-in date format with page.date!
    • browser-sync:
    • Removes the jstl template language. Use 11ty.js instead. Issue #1084
    • Change to dataTemplateEngine: false by default. Issue #174

    Please use eleventy-upgrade-help to log breaking changes that apply to your project.

    Features

    Major

    Minor

    • Passthrough Copy now throws an error if two or more files attempt to copy to the same output location. Issue #1677
    • For better URL-safe slugs by default, we now suggest using the new slugify global filter instead of the previous slug. slug is still included for backwards compatiblity. slugify Docs. eleventy-upgrade-help includes a permalink checker to compare slug and slugify output. Issue #278
    • Added support for protocol relative URLs in the url global filter (though technically accurate, using this method is discouraged). Issue #1276
    • New Eleventy supplied data:
    • tags are now de-duped. Issue #1876
    • JavaScript functions in eleventyComputed now have access to global filters.
    • Ignores
      • node_modules are now ignored by default. Docs: Ignores and Issue #383
      • Control ignores programmatically. Docs: Ignores and Issue #894 #1405
    • Configuration: Access to eleventyConfig.dir in plugins. Issue #922
    • Configuration: Events are now Async-friendly
    • Replace chalk dependency with kleur Issue #2113
    • Adds template language-agnostic compilation caching for speeeeed Issue #1529
    • Fixes bug --input=file.njk --output=. would process 0 files. Issue #1129
    • Fixes bug where Eleventy would stop processing templates in watch/serve mode after a compilation error. Issue #1658
    • Front matter parsing errors will now report the filename of the offending file in the error message. Issue #1152
    • Option to opt-out of the browser-sync JavaScript snippet
    • Warning when Transforms that return empty content. Issue #1487
    • Transforms now have access to inputPath Issue #789
    • Shows the preprocessed template engine name on the console for html or md files Issue #1478

    Nunjucks

    • Adds eleventyConfig.setNunjucksEnvironmentOptions method. Issue #895
    • Adds eleventyConfig.addNunjucksGlobal method. Issue #1060

    Liquid

    • Adds support for asynchronous filters. Issue #831

    Milestone

    All bug fix issues can be perused at the GitHub milestone: https://github.com/11ty/eleventy/milestone/32?closed=1

    Some internals highlights:

    • Improvements to stability with Nunjucks and shortcodes in {% for %} loops
    • Fix for EMFILE: too many open files errors
    • Use a named browser-sync instance. Issue #1125
    • Switch from fs-extra to graceful-fs

    Major Version Dependency Upgrades

    These are convenience links provided. Major things of note are summarized in the Breaking Changes section above.

    • liquidjs from 6 to 9, release notes: v7 v8 v9
    • luxon from 1 to 2: (Node 12+ minimum) Upgrade Guide
    • markdown-it from 10 to 12, release notes: v11 v12
    • ejs from 2 to 3. Release notes: v3
    • mustache from 2 to 4. Release notes: v3 v4

    THANK YOU NOTES

    First-time GitHub contributions from @d2s, @Snugug, @slightlyoff, @max, @valtlai, @harttle, @binyamin, @bnb, @NotWoods, @gobeli, @lxg, @GerHobbelt, @hirusi, @stuartpb, @milahu, @oscarotero, @jakemulley, @tannerdolby, @Snapstromegon, @knokmki612, @mariusschulz, @Holben888, @zidingz, @magua-io, @masguit42, @JKC-Codes, @ThewBear, @CodeFoodPixels, @dgrammatiko, @oscard0m, @monochromer

    Gold Sponsors: Sanity.io, Nordhealth, Screen recorder for Mac

    Silver Sponsors: Piccalilli, ESLint, Unabridged Software, PQINA, The Coders Guild, Bejamas

    OpenCollective Monthly Backers: Viljami Salminen, Tyler Gaw, Peter deHaan, Melanie Sumner, Alejandro Rodríguez, Mat Marquis, Philip Borenstein, Jérôme Coupé, Max Böck, Bryce Wray, Kristof Michiels, Yuhei Yasuda, Ed Spencer, Nicolas Hoizey, Mike Aparicio, Todd Libby, Luke Bonaccorsi, Ben Myers, Katie Sylor-Miller, Mark Buskbjerg, mortendk, Aaron Hans, Lauris Consulting, John Meyerhofer, Ben Hyrman, Keenan Payne, Dimitrios Grammatikogiannis, Devin Clark, Eric Bailey, Dave Rupert, Manuel Matuzovic, Phil Hawksworth, Brian Koser, Tianyu Ge, Vadim Makeev, Kyosuke Nakamura, Hans Gerwitz, Makoto Kawasaki, Horacio Gonzalez, Matthew Tole, Wellness Researched, Ned Zimmerman, Mark Boulton, Søren Birkemeyer, Richard Hemmer, Nick Nisi, Andrew Harvard, shawn j sandy, Takuya Fukuju, John SJ Anderson, Ryan Swaney, Alistair Shepherd, Reach Digital, Ivo Herrmann, Flaki, Kyle Mitofsky, Jenn Schiffer, John Hall, Scott McCracken, James Steinbach, Miriam Suzanne, Bentley Davis, Evan Harrison, Rob Sterlini, vince falconi, Martin Schneider, Stephanie Eckles, Frontend Weekly Tokyo, Higby, Matt DeCamp, Chris Burnell, Ximenav Vf., Juan Miguel, Angelique Weger, Kasper Storgaard, Kevin Healy, Greg Gibson, hiddedevries.nl, Jeremy Caldwell, Michelle Barker, Alesandro Ortiz, David A. Herron, Paul Robert Lloyd, Andrea Vaghi, Bryan Robinson, Ashur Cabrera, Raymond Camden, John Meguerian, Joe Lamyman, Stuart Robson, Jeffrey A Morgan, Joshua Ray, Tim Giles, Brett Nelson, Paul Welsh, Ingo Steinke, Melanie Richards, Rich Holman, Ross Kinney, Lewis Nyman, Dorin Vancea, Marco Zehe, Wes Ruvalcaba, Luc Poupard, Johan Bové, Josh Crain, Entle Web Solutions, Ken Hawkins, Sami Singh, Fershad Irani, Nikita Dubko, Aaron Gustafson, Chris, Ferpection, Benjamin Geese, Maël Brunet, Marcus Relacion, Netin nopeustesti, Bobby Ray, Sia Karamalegos, Christian Miles, Raphael Höser, Cthos, Saneef Ansari, Flemming Meyer, Colin Fahrion, Dan Burzo, Gaston Rampersad, Jon Kuperman, Dan Ott, Mobilemall.pk, Cheap VPS, David Darnes, Jon Roobottom, Dana Byerly, Renkaatsopivasti, Windesol Sähkön Kilpailutus, Luke Mitchell, SignpostMarv, THE PADDING, Bob Monsour, Patrick Byrne, Ara Abcarians, Oisín Quinn, Central Va Insulation, Septic Richmond Va

    Source code(tar.gz)
    Source code(zip)
  • v0.12.1(Mar 19, 2021)

    v0.12.1 Documentation

    Install or Upgrade

    • Install to your local project: npm install @11ty/eleventy
    • Already installed in your local project? Upgrade your version: npm update @11ty/eleventy
    • Read more about local project versus global installation

    How can you support Eleventy?

    Thank you to everyone that contributed code, documentation, answered questions, filed issues, said a kind word on Twitter ❤️

    The TL;DR List

    Fix for error messaging when attempting to use Node 8

    As of Eleventy v0.12.0, Node 10 is now required. Node 8 is end of life (EOL) and no longer supported by Node. There was a small bug in the 0.12.0 release that would not show friendly error messaging when attempting to use Node 8 with Eleventy. That has been fixed.

    Administration

    Source code(tar.gz)
    Source code(zip)
  • v0.12.0(Mar 19, 2021)

    v0.12.0 Documentation

    Install or Upgrade

    • Install to your local project: npm install @11ty/eleventy
    • Already installed in your local project? Upgrade your version: npm update @11ty/eleventy
    • Read more about local project versus global installation

    How can you support Eleventy?

    Thank you to everyone that contributed code, documentation, answered questions, filed issues, said a kind word on Twitter ❤️

    The TL;DR List

    Node version support bumped from 8 to 10+

    Node 8 is end of life (EOL) and no longer supported by Node.

    Dependency Major Release Bumps

    pug 2.0.4 to 3.0.2

    • Required for npm audit issue, tracking on Eleventy Issue: https://github.com/11ty/eleventy/issues/1674
    • 3.x requires Node 10+
    • pug release notes https://github.com/pugjs/pug/releases/tag/pug%403.0.0

    chalk 3.0.0 to 4.1.0

    • 4.x requires Node 10+
    • chalk release notes https://github.com/chalk/chalk/releases/tag/v4.0.0

    fs-extra 8.1.0 to 9.1.0

    • 9.x requires Node 10+
    • https://github.com/jprichardson/node-fs-extra/blob/master/CHANGELOG.md#900--2020-03-19

    Administration

    Source code(tar.gz)
    Source code(zip)
  • v0.11.1(Oct 22, 2020)

    v0.11.1 Documentation

    Install or Upgrade

    • Install to your local project: npm install @11ty/eleventy
    • Already installed in your local project? Upgrade your version: npm update @11ty/eleventy
    • Read more about local project versus global installation

    How can you support Eleventy?

    Thank you to everyone that contributed code, documentation, answered questions, filed issues, said a kind word on Twitter ❤️

    The TL;DR List

    New Build Events

    • afterBuild, beforeBuild and Changed Files argument passed to beforeWatch
      • Documentation: https://www.11ty.dev/docs/events/

    Administration

    Source code(tar.gz)
    Source code(zip)
  • v0.11.0(May 11, 2020)

    v0.11.0 Documentation

    Install or Upgrade

    • Install to your local project: npm install @11ty/eleventy
    • Already installed in your local project? Upgrade your version: npm update @11ty/eleventy
    • Read more about local project versus global installation

    How can you support Eleventy?

    Thank you to everyone that contributed code, documentation, answered questions, filed issues, said a kind word on Twitter ❤️

    The TL;DR List

    Computed Data

    Computed Data is a mechanism to transform the data at the end of the data cascade, before template rendering.

    • Read more: https://www.11ty.dev/docs/data-computed/
    • All the related issues: #481 #335 #1061 #1043 #1098 #1085 #1031 #1130 #973 #1114 #1138 #1069 #1137 Supersedes and deprecates old renderData feature (not removed yet): #942 #941 #289 #816 #912

    Incremental Builds

    • Incremental support for --incremental is ongoing. Follow along at https://github.com/orgs/11ty/projects/3
    • This version supports incremental passthrough copy. Changing a passthrough copy file during --watch or --serve only copies the changed file and does not trigger a full build. #977

    Shortcodes

    • In shortcodes you can now access page variable data under this.page without needing to pass in as an argument (works with Nunjucks, Liquid, 11ty.js JavaScript, Handlebars) #741

    The Road to ESM

    • Adds support for *.11ty.cjs files (same as *.11ty.js files)—thanks @justinfagnani! #826 #827
      • Can use .cjs in config file, template/directory/global data files—thanks @gloryofrobots! #837 #848

    New Filters

    • Filters to retrieve next/previous items in collections. Thanks @pascalw! #529 #819 #983
      • Docs: https://www.11ty.dev/docs/filters/collection-items/
    • Adds new log filter for easy console.log from inside templates. #929
      • Docs: https://www.11ty.dev/docs/filters/log/

    The Nitty Gritty List™

    • Adds .npmignore to streamline npm payload—thanks @pdehaan! #951 #962
    • Adds additional performance-related debug messages to help developers analyze and improve performance of builds: https://www.11ty.dev/docs/debug-performance/ #1078
    • Make the priority of different file extensions explicit in Global Data—thanks @gloryofrobots! #794 #821
    • Now parses a directory data file in the top level input directory. #935 #993
    • Support for cooldown period between builds during watch/serve. Adds Configuration API method setWatchThrottleWaitTime to set (in milliseconds). Useful if you use a Save All feature in your editor that saves multiple files at the same time. #559 Related to #977 Docs forthcoming: #1003
    • Adds beforeWatch build event (runs before a re-build during watch or serve, not the initial build) #1042
    • To discourage huge passthrough copy in the build, we now show the number of files copied in console log output #1077
    • Markdown templates (and thus markdown-it plugins) can receive and use data—thanks @blacksquaresa! #643
    • Throw an error if an 11ty.js JavaScript template doesn’t return anything! Thanks @ithinkihaveacat #1013 #1012
    • Retrieve a reference to existing Eleventy provided filters in with Configuration API method getFilter, docs pending #284

    Bug fixes

    • Fail silently on empty/null dates in front matter—thanks @DirtyF @dceddia! #850 #786
    • Copy improvements in comments/code style cleanup—thanks @samuelpath! #960 #970 #968 #992 #991 #987
    • Fix for errors being swallowed in the Error Handler 😭, reporting as Cannot read property 'trim' of undefined
    • A ton of bug fixes for renderData (details above in the Computed Data section)
    • npm audit: #1023 #1026 #1025

    Administration

    Dependency Major Release Bumps

    • markdown-it from v8.4.2 to v10.0.0. Read more: https://github.com/markdown-it/markdown-it/blob/master/CHANGELOG.md
    Source code(tar.gz)
    Source code(zip)
  • v0.10.0(Jan 7, 2020)

    A special note of remembrance

    Before we get going here I just want to take a brief moment to remember the very special @jameswillweb who passed away earlier this month. James was diagnosed with ALS in 2013 and was known for his widespread teaching contributions to the web community. Probably the least of which, but one that I will always remember, was his creation of the floating possum mascot for our little Eleventy project. This mascot (nay, mastcot, because it lives in the masthead ok fine but James would have liked that one) lives at the top of the Eleventy docs and links to the Twitter thread he started in 2018. Though we never met in real life, James was clearly a one-of-a-kind. We will miss you ❤️

    Donations may be made in James’ name to The ALS Therapy Development Institute or to Quest Youth Ministries at St. John's United Methodist Church.

    Permalink: https://www.11ty.dev/news/james-williamson/

    v0.10.0 Documentation

    Installation

    • Install to your Local project (preferred): npm install @11ty/eleventy
    • Already installed in your local project? Upgrade your version: npm update @11ty/eleventy
    • Want to install globally? npm install -g @11ty/eleventy
    • Already installed globally? Upgrade your Global version: npm update -g @11ty/eleventy
    • Read more about local versus global installation

    How can you support Eleventy?

    Thank you to the code contributors that helped with this release: @gloryofrobots @edbrannin @madebymike @Ryuno-Ki @cschuller @micahmills @fredrikekelund @ahl @Munter @saenglert (and @zachleat, I guess)

    Features

    Official Plugins

    • Adds new official Navigation Plugin for hierarchical site navigation and breadcrumbs #419 #210 https://github.com/11ty/eleventy-navigation
      • Documentation: https://www.11ty.dev/docs/plugins/navigation/
    • New major version of eleventy-plugin-syntaxhighlight, only opt-in to line wrapping markup if line highlighting features are used. Read more: https://github.com/11ty/eleventy-plugin-syntaxhighlight/releases/tag/v3.0.0
      • Documentation: https://www.11ty.dev/docs/plugins/syntaxhighlight/

    Configuration API

    • Support for arbitrary data file formats in the Data Cascade. e.g. eleventyConfig.addDataExtension("yaml", contents => yaml.safeLoad(contents)); Thank you @gloryofrobots! #736 #798 #635 #630 #624 #265
      • ⚠️ Documentation pending
    • Adds setQuietMode method to Configuration API so that we don’t have to type --quiet all the time. #808
    • Adds addWatchTarget method to Configuration API for programmatic watching of arbitrary files. Thanks @MadeByMike! #803 #641
    • Show pathPrefix being used in standard console output (if non-default). #807
    • Adds getFilteredByTags to Collection API #708 #711 #830

    Pagination

    • Adds a before callback option to pagination to allow you to modify the data prior to it being paginated. Very powerful! #699
      • Documentation: https://www.11ty.dev/docs/pagination/#the-before-callback
    • Adds pagination.alias and pagination.pages options to pagination variable. These will help when creating navigation for your pagination. #280 #345 #334 #211
      • Documentation: https://www.11ty.dev/docs/pagination/nav/

    Performance

    • dependency-tree npm package used to find JavaScript dependencies was slow. https://www.11ty.dev/docs/config/#watch-javascript-dependencies Wrote https://github.com/11ty/eleventy-dependency-tree to solve this. One major difference here is that dependencies now will be require’d to resolve—so be aware of this if your node files aren’t idempotent! This pays off in a huge performance boost when using --watch or --serve. #700

    Shortcodes

    • Better support for asynchronous shortcodes (shortcode functions can return promises). Supported in 11ty.js, Liquid, and Nunjucks templates. #672 #429
      • Documentation updated:
        • https://www.11ty.dev/docs/shortcodes/
        • https://www.11ty.dev/docs/languages/javascript/
        • https://www.11ty.dev/docs/languages/liquid/
        • https://www.11ty.dev/docs/languages/nunjucks/
        • https://www.11ty.dev/docs/languages/handlebars/#asynchronous-helpers (not supported in Handlebars but the docs were updated to reflect this)

    Miscellanous

    • JSDoc annotations added to Eleventy.js. Thanks @Ryuno-Ki! #582

    Documentation Web Site

    Bug fixes

    • Improved error reporting in shortcode code. #681
    • Issue with Cannot read property 'trim' of undefined error on unhandledRejection events. #689
    • Fix for require node cache busting on Windows (some JavaScript files may not have picked up changes when watching) #341 #596 #683 Thanks @cschuller!
    • Fix bug with negated entries (!) in .gitignore or .eleventyignore files. The bug caused Eleventy to not process any files. Support was not added for negated entries—they are ignored for now. Thanks @micahmills! #677 #709
    • Fix to Sortable implementation, improved tests—thanks @edbrannin! #747
    • Fix small variable scoping issue in TemplateWriter—thanks @fredrikekelund! #724 #722
    • Fix data bleed issue in the Data Cascade with front matter and setDataDeepMerge. Thanks @ahl! #676 #735
    • Improved test coverage for EleventyErrorUtil—thank you @edbrannin! #753

    Administration

    Dependency Major Release Bumps

    Source code(tar.gz)
    Source code(zip)
  • v0.10.0-beta.2(Jan 4, 2020)

    Eleventy is a Simpler Static Site Generator.

    A special note of remembrance

    Before we get going here I just want to take a brief moment to remember the very special @jameswillweb who passed away earlier this month. James was diagnosed with ALS in 2013 and was known for his widespread teaching contributions to the web community. Probably the least of which, but one that I will always remember, was his creation of the floating possum mascot for our little Eleventy project. This mascot (nay, mastcot, because it lives in the masthead ok fine but James would have liked that one) lives at the top of the Eleventy docs and links to the Twitter thread he started in 2018. Though we never met in real life, James was clearly a one-of-a-kind. We will miss you ❤️

    Donations may be made in James’ name to The ALS Therapy Development Institute or to Quest Youth Ministries at St. John's United Methodist Church.

    Permalink: https://www.11ty.dev/news/james-williamson/

    Installation

    Install this 🚧🚧 prerelease 🚧🚧 to help test the upcoming Eleventy 0.10.0 release:

    npm install @11ty/eleventy@beta --save-dev
    

    Thank you to the code contributors that helped with this release!

    @gloryofrobots @edbrannin @madebymike @Ryuno-Ki @cschuller @micahmills @fredrikekelund @ahl @Munter @saenglert (and @zachleat, I guess)

    Features

    Official Plugins

    • Adds new official Navigation Plugin for hierarchical site navigation and breadcrumbs #419 #210 https://github.com/11ty/eleventy-navigation
      • Documentation: https://www.11ty.dev/docs/plugins/navigation/
    • New major version of eleventy-plugin-syntaxhighlight, only opt-in to line wrapping markup if line highlighting features are used. Read more: https://github.com/11ty/eleventy-plugin-syntaxhighlight/releases/tag/v3.0.0
      • Documentation: https://www.11ty.dev/docs/plugins/syntaxhighlight/

    Configuration API

    • Support for arbitrary data file formats in the Data Cascade. e.g. eleventyConfig.addDataExtension("yaml", contents => yaml.safeLoad(contents)); Thank you @gloryofrobots! #736 #798 #635 #630 #624 #265
      • ⚠️ Documentation pending
    • Adds setQuietMode method to Configuration API so that we don’t have to type --quiet all the time. #808
    • Adds addWatchTarget method to Configuration API for programmatic watching of arbitrary files. Thanks @MadeByMike! #803 #641
    • Show pathPrefix being used in standard console output (if non-default). #807
    • Adds getFilteredByTags to Collection API #708 #711 #830

    Pagination

    • Adds a before callback option to pagination to allow you to modify the data prior to it being paginated. Very powerful! #699
      • Documentation: https://www.11ty.dev/docs/pagination/#the-before-callback
    • Adds pagination.alias and pagination.pages options to pagination variable. These will help when creating navigation for your pagination. #280 #345 #334 #211
      • Documentation: https://www.11ty.dev/docs/pagination/nav/

    Performance

    • dependency-tree npm package used to find JavaScript dependencies was slow. https://www.11ty.dev/docs/config/#watch-javascript-dependencies Wrote https://github.com/11ty/eleventy-dependency-tree to solve this. One major difference here is that dependencies now will be require’d to resolve—so be aware of this if your node files aren’t idempotent! This pays off in a huge performance boost when using --watch or --serve. #700

    Shortcodes

    • Better support for asynchronous shortcodes (shortcode functions can return promises). Supported in 11ty.js, Liquid, and Nunjucks templates. #672 #429
      • Documentation updated:
        • https://www.11ty.dev/docs/shortcodes/
        • https://www.11ty.dev/docs/languages/javascript/
        • https://www.11ty.dev/docs/languages/liquid/
        • https://www.11ty.dev/docs/languages/nunjucks/
        • https://www.11ty.dev/docs/languages/handlebars/#asynchronous-helpers (not supported in Handlebars but the docs were updated to reflect this)

    Miscellanous

    • JSDoc annotations added to Eleventy.js. Thanks @Ryuno-Ki! #582

    Documentation Web Site

    Bug fixes

    • Improved error reporting in shortcode code. #681
    • Issue with Cannot read property 'trim' of undefined error on unhandledRejection events. #689
    • Fix for require node cache busting on Windows (some JavaScript files may not have picked up changes when watching) #341 #596 #683 Thanks @cschuller!
    • Fix bug with negated entries (!) in .gitignore or .eleventyignore files. The bug caused Eleventy to not process any files. Support was not added for negated entries—they are ignored for now. Thanks @micahmills! #677 #709
    • Fix to Sortable implementation, improved tests—thanks @edbrannin! #747
    • Fix small variable scoping issue in TemplateWriter—thanks @fredrikekelund! #724 #722
    • Fix data bleed issue in the Data Cascade with front matter and setDataDeepMerge. Thanks @ahl! #676 #735
    • Improved test coverage for EleventyErrorUtil—thank you @edbrannin! #753

    Administration

    Dependency Major Release Bumps

    Source code(tar.gz)
    Source code(zip)
  • v0.10.0-beta.1(Dec 9, 2019)

    Eleventy is a Simpler Static Site Generator.

    A special note of remembrance

    Before we get going here I just want to take a brief moment to remember the very special @jameswillweb who passed away earlier this month. James was diagnosed with ALS in 2013 and was known for his widespread teaching contributions to the web community. Probably the least of which, but one that I will always remember, was his creation of the floating possum mascot for our little Eleventy project. This mascot (nay, mastcot, because it lives in the masthead ok fine but James would have liked that one) lives at the top of the Eleventy docs and links to the Twitter thread he started in 2018. Though we never met in real life, James was clearly a one-of-a-kind. We will miss you ❤️

    Donations may be made in James’ name to The ALS Therapy Development Institute or to Quest Youth Ministries at St. John's United Methodist Church.

    Permalink: https://www.11ty.dev/news/james-williamson/

    Installation

    Install this 🚧🚧 prerelease 🚧🚧 to help test the upcoming Eleventy 0.10.0 release:

    npm install @11ty/eleventy@beta --save-dev
    

    Thank you to the code contributors that helped with this release!

    @gloryofrobots @edbrannin @madebymike @Ryuno-Ki @cschuller @micahmills @fredrikekelund @ahl @Munter (and @zachleat, I guess)

    Features

    Official Plugins

    • Adds new official Navigation Plugin for hierarchical site navigation and breadcrumbs #419 #210 https://github.com/11ty/eleventy-navigation
      • Documentation: https://www.11ty.dev/docs/plugins/navigation/

    Configuration API

    • Support for arbitrary data file formats in the Data Cascade. e.g. eleventyConfig.addDataExtension("yaml", contents => yaml.safeLoad(contents)); Thank you @gloryofrobots! #736 #798 #635 #630 #624 #265
      • ⚠️ Documentation pending
    • Adds setQuietMode method to Configuration API so that we don’t have to type --quiet all the time. #808
    • Adds addWatchTarget method to Configuration API for programmatic watching of arbitrary files. Thanks @MadeByMike! #803 #641
    • Show pathPrefix being used in standard console output (if non-default). #807

    Pagination

    • Adds a before callback option to pagination to allow you to modify the data prior to it being paginated. Very powerful! #699
      • Documentation: https://www.11ty.dev/docs/pagination/#the-before-callback
    • Adds pagination.alias and pagination.pages options to pagination variable. These will help when creating navigation for your pagination. #280 #345 #334 #211
      • Documentation: https://www.11ty.dev/docs/pagination/nav/

    Performance

    • dependency-tree npm package used to find JavaScript dependencies was slow. https://www.11ty.dev/docs/config/#watch-javascript-dependencies Wrote https://github.com/11ty/eleventy-dependency-tree to solve this. One major difference here is that dependencies now will be require’d to resolve—so be aware of this if your node files aren’t idempotent! This pays off in a huge performance boost when using --watch or --serve. #700

    Shortcodes

    • Better support for asynchronous shortcodes (shortcode functions can return promises). Supported in 11ty.js, Liquid, and Nunjucks templates. #672 #429
      • Documentation updated:
        • https://www.11ty.dev/docs/shortcodes/
        • https://www.11ty.dev/docs/languages/javascript/
        • https://www.11ty.dev/docs/languages/liquid/
        • https://www.11ty.dev/docs/languages/nunjucks/
        • https://www.11ty.dev/docs/languages/handlebars/#asynchronous-helpers (not supported in Handlebars but the docs were updated to reflect this)

    Miscellanous

    • JSDoc annotations added to Eleventy.js. Thanks @Ryuno-Ki! #582

    Documentation Web Site

    Bug fixes

    • Improved error reporting in shortcode code. #681
    • Issue with Cannot read property 'trim' of undefined error on unhandledRejection events. #689
    • Fix for require node cache busting on Windows (some JavaScript files may not have picked up changes when watching) #341 #596 #683 Thanks @cschuller!
    • Fix bug with negated entries (!) in .gitignore or .eleventyignore files. The bug caused Eleventy to not process any files. Support was not added for negated entries—they are ignored for now. Thanks @micahmills! #677 #709
    • Fix to Sortable implementation, improved tests—thanks @edbrannin! #747
    • Fix small variable scoping issue in TemplateWriter—thanks @fredrikekelund! #724 #722
    • Fix data bleed issue in the Data Cascade with front matter and setDataDeepMerge. Thanks @ahl! #676 #735
    • Improved test coverage for EleventyErrorUtil—thank you @edbrannin! #753

    Administration

    Dependency Major Release Bumps

    Source code(tar.gz)
    Source code(zip)
  • v0.9.0(Aug 27, 2019)

    Eleventy is a Simpler Static Site Generator.

    v0.9.0 Documentation

    Support Eleventy:

    Install

    • Install to your Local project (preferred): npm install @11ty/eleventy
    • Already installed in your local project? Upgrade your version: npm update @11ty/eleventy
    • Want to install globally? npm install -g @11ty/eleventy
    • Already installed globally? Upgrade your Global version: npm update -g @11ty/eleventy
    • Read more about local versus global installation

    Thank you to the 10 contributors that helped with this release!

    @danielstaleiny @veleek @aarongustafson @edwardhorsford @Ryuno-Ki @paulshryock @JakeArchibald @MadeByMike @Munter (and @zachleat I guess)

    Changelog

    Features

    • Shows Eleventy version in standard console output (should help me out a lot when debugging issues 👀) #657
    • Relative Includes added in Nunjucks, Liquid (already supported in EJS and Pug) #190
    • Adds support for Passthrough Copy output directory remapping #452 Thank you @MadeByMike!
    • Throws an error if two input templates attempt to write to the same output file (overlapping permalinks) #322 #562
    • Allows custom options (and formats) in front matter #410
      • e.g. use TOML in your front matter #113
      • e.g. use Front Matter excerpts
    • Adds page.filePathStem variable for permalinks #244
    • JavaScript Templates (*.11ty.js) #622 #627 Thanks @JakeArchibald!
      • Throws an error when a JavaScript template returns invalid data format #626
      • When using classes, we now re-use the same instance for data and rendering
      • Add support for JavaScript objects a la exports = { data: {}, render: function() {}
      • Add support for JavaScript Class Fields (Node 12 feature) a la: exports = class { data = {}; render() {} }
      • Add support for multiple exports a la exports.data = {}; exports.render = function() {}
      • Fails gracefully when class/object is missing a render method.
    • Config file functions do not yet support returning promises, now we throw an error when this happens. #612 Thanks @Munter!
    • Current behavior auto-ignores node_modules directory if .gitignore does not exist. Eleventy will now also auto-ignore if .gitignore does exist but is empty. #389 Thank you @danielstaleiny!
    • Eleventy searches for file extensions are now cross-platform case insensitive. #509 #517 Thanks @veleek!

    Bug fixes

    • Shows path to template on template rendering errors (No more Unknown path) #547
    • Fixes page.fileSlug with JavaScript Templates (was returning fileName.11ty, should be fileName) #588
    • Fixes issue with Liquid shortcode argument parsing (failed on page.* variables) #600
    • Fixes issue with eleventyExcludeFromCollections templates incorrectly throwing TemplateContentPrematureUseError errors. #522
    • Upgrades browser-sync to remove audit report #428
    • Fixes issue with empty tags in front matter #557 Thanks @edwardhorsford!
    • Fix for TemplateContentPrematureUseError error when using pagination #551, #634.

    Docs and other

    • Adds new layouts directory to debug output #574 Thanks @paulshryock!
    • Adds links to plugins from README #570 Thanks @Ryuno-Ki!

    Dependency Major Release Bumps

    Note that dev-dependencies are not included here.

    • chokidar from v2 to v3: requires Node 8+ Release notes
    • dependency-tree from v6 to v7: upgraded precinct from 5.x to 6.x for some typescript things ¯_(ツ)_/¯ (No release notes for this project: issue filed)
    • fs-extra from v7 to v8: Release notes
    • multimatch from v3 to v4: requires Node 8+ Release notes

    Administration

    Source code(tar.gz)
    Source code(zip)
  • v0.9.0-beta.2(Aug 17, 2019)

    Eleventy is a Simpler Static Site Generator.

    Install this 🚧🚧 prerelease 🚧🚧 to help test the upcoming Eleventy 0.9.0 release:

    npm install @11ty/eleventy@beta --save-dev
    

    Thank you to the 10 contributors that helped with this release!

    @danielstaleiny @veleek @aarongustafson @edwardhorsford @Ryuno-Ki @paulshryock @JakeArchibald @MadeByMike @Munter (and @zachleat I guess)

    Features

    • Shows Eleventy version in standard console output (should help me out a lot when debugging issues 👀) #657
    • Relative Includes added in Nunjucks, Liquid (already supported in EJS and Pug) #190
    • Adds support for Passthrough Copy output directory remapping #452 Thank you @MadeByMike!
    • Throws an error if two input templates attempt to write to the same output file (overlapping permalinks) #322 #562
    • Allows custom options (and formats) in front matter #410
      • e.g. use TOML in your front matter #113
      • e.g. use Front Matter excerpts
    • Adds page.filePathStem variable for permalinks #244
    • JavaScript Templates (*.11ty.js) #622 #627 Thanks @JakeArchibald!
      • Throws an error when a JavaScript template returns invalid data format #626
      • When using classes, we now re-use the same instance for data and rendering
      • Add support for JavaScript objects a la exports = { data: {}, render: function() {}
      • Add support for JavaScript Class Fields (Node 12 feature) a la: exports = class { data = {}; render() {} }
      • Add support for multiple exports a la exports.data = {}; exports.render = function() {}
      • Fails gracefully when class/object is missing a render method.
    • Config file functions do not yet support returning promises, now we throw an error when this happens. #612 Thanks @Munter!
    • Current behavior auto-ignores node_modules directory if .gitignore does not exist. Eleventy will now also auto-ignore if .gitignore does exist but is empty. #389 Thank you @danielstaleiny!
    • Eleventy searches for file extensions are now cross-platform case insensitive. #509 #517 Thanks @veleek!

    Bug fixes

    • Shows path to template on template rendering errors (No more Unknown path) #547
    • Fixes page.fileSlug with JavaScript Templates (was returning fileName.11ty, should be fileName) #588
    • Fixes issue with Liquid shortcode argument parsing (failed on page.* variables) #600
    • Fixes issue with eleventyExcludeFromCollections templates incorrectly throwing TemplateContentPrematureUseError errors. #522
    • Upgrades browser-sync to remove audit report #428
    • Fixes issue with empty tags in front matter #557 Thanks @edwardhorsford!
    • Fix for TemplateContentPrematureUseError error when using pagination #551, #634.

    Docs and other

    • Adds new layouts directory to debug output #574 Thanks @paulshryock!
    • Adds links to plugins from README #570 Thanks @Ryuno-Ki!

    Dependency Major Release Bumps

    Administration

    Source code(tar.gz)
    Source code(zip)
  • v0.9.0-beta.1(Jul 27, 2019)

    Eleventy is a Simpler Static Site Generator.

    Install this 🚧🚧 prerelease 🚧🚧 to help test the upcoming Eleventy 0.9.0 release:

    npm install @11ty/eleventy@beta --save-dev
    

    Thank you to the 10 contributors that helped with this release!

    @danielstaleiny @veleek @aarongustafson @edwardhorsford @Ryuno-Ki @paulshryock @JakeArchibald @MadeByMike @Munter (and @zachleat I guess)

    Features

    • Relative Includes added in Nunjucks, Liquid (already supported in EJS and Pug) #190
    • Adds support for Passthrough Copy output directory remapping #452 Thank you @MadeByMike!
    • Throws an error if two input templates attempt to write to the same output file (overlapping permalinks) #322 #562
    • Allows custom options (and formats) in front matter #410
      • e.g. use TOML in your front matter #113
      • e.g. use Front Matter excerpts
    • Adds page.filePathStem variable for permalinks #244
    • JavaScript Templates (*.11ty.js) #622 #627 Thanks @JakeArchibald!
      • Throws an error when a JavaScript template returns invalid data format #626
      • When using classes, we now re-use the same instance for data and rendering
      • Add support for JavaScript objects a la exports = { data: {}, render: function() {}
      • Add support for JavaScript Class Fields (Node 12 feature) a la: exports = class { data = {}; render() {} }
      • Add support for multiple exports a la exports.data = {}; exports.render = function() {}
      • Fails gracefully when class/object is missing a render method.
    • Config file functions do not yet support returning promises, now we throw an error when this happens. #612 Thanks @Munter!
    • Current behavior auto-ignores node_modules directory if .gitignore does not exist. Eleventy will now also auto-ignore if .gitignore does exist but is empty. #389 Thank you @danielstaleiny!
    • Eleventy searches for file extensions are now cross-platform case insensitive. #509 #517 Thanks @veleek!

    Bug fixes

    • Shows path to template on template rendering errors (No more Unknown path) #547
    • Fixes page.fileSlug with JavaScript Templates (was returning fileName.11ty, should be fileName) #588
    • Fixes issue with Liquid shortcode argument parsing (failed on page.* variables) #600
    • Fixes issue with eleventyExcludeFromCollections templates incorrectly throwing TemplateContentPrematureUseError errors. #522
    • Upgrades browser-sync to remove audit report #428
    • Fixes issue with empty tags in front matter #557 Thanks @edwardhorsford!

    Docs and other

    • Adds new layouts directory to debug output #574 Thanks @paulshryock!
    • Adds links to plugins from README #570 Thanks @Ryuno-Ki!

    Dependency Major Release Bumps

    Administration

    Source code(tar.gz)
    Source code(zip)
  • v0.8.3(May 5, 2019)

    Eleventy is a Simpler Static Site Generator.

    v0.8.3 Documentation

    Support Eleventy:

    Install

    • Install to your Local project (preferred): npm install @11ty/eleventy
    • Already installed in your local project? Upgrade your version: npm update @11ty/eleventy
    • Want to install globally? npm install -g @11ty/eleventy
    • Already installed globally? Upgrade your Global version: npm update -g @11ty/eleventy
    • Read more about local versus global installation

    Changelog

    Bug fixes

    • Fix for Nunjucks issue with too many Shortcodes (Maximum call stack exceeded) #498
    • Fix for permalinks in markdown files when markdownTemplateEngine is false #466
    • Regression around missing data files when directory names repeated in the path #491 #484
    • Fix when using pagination in a layout and a Tried to use templateContent too early error would be thrown #479
    • Fix for url filter on Windows #485 #486 Thank you @AndrewAsquith!

    Enhancements

    • Travis CI builds now run on Windows! 🎯 #353

    NPM Audits

    None

    Dependency Major Release Bumps

    None

    Administration

    Source code(tar.gz)
    Source code(zip)
  • v0.8.2(Apr 9, 2019)

    Eleventy is a Simpler Static Site Generator.

    v0.8.2 Documentation

    Support Eleventy:

    Install

    • Install to your Local project (preferred): npm install @11ty/eleventy
    • Already installed in your local project? Upgrade your version: npm update @11ty/eleventy
    • Want to install globally? npm install -g @11ty/eleventy
    • Already installed globally? Upgrade your Global version: npm update -g @11ty/eleventy
    • Read more about local versus global installation

    Changelog

    Bug fixes

    • Eleventy was not applying linters and transforms to templates with layouts correctly Fixes #475

    NPM Audits

    None

    Dependency Major Release Bumps

    None

    Administration

    Source code(tar.gz)
    Source code(zip)
  • v0.8.1(Apr 6, 2019)

    Eleventy is a Simpler Static Site Generator.

    v0.8.1 Documentation

    Support Eleventy:

    Install

    • Install to your Local project (preferred): npm install @11ty/eleventy
    • Already installed in your local project? Upgrade your version: npm update @11ty/eleventy
    • Want to install globally? npm install -g @11ty/eleventy
    • Already installed globally? Upgrade your Global version: npm update -g @11ty/eleventy
    • Read more about local versus global installation

    Changelog

    Bug fixes

    • Eleventy was not paginating correctly with data: collections Fixes #476
    • Eleventy was not paginating correctly with data: collections.all Fixes #477

    NPM Audits

    None

    Dependency Major Release Bumps

    None

    Administration

    Source code(tar.gz)
    Source code(zip)
  • v0.8.0(Apr 5, 2019)

    Eleventy is a Simpler Static Site Generator.

    v0.8.0 Documentation

    Support Eleventy:

    Install

    • Install to your Local project (preferred): npm install @11ty/eleventy
    • Already installed in your local project? Upgrade your version: npm update @11ty/eleventy
    • Want to install globally? npm install -g @11ty/eleventy
    • Already installed globally? Upgrade your Global version: npm update -g @11ty/eleventy
    • Read more about local versus global installation

    Changelog

    • PERFORMANCE PERFORMANCE PERFORMANCE Ruthlessly eliminates unnecessary renders for all template languages, build times are improved in v0.8.0. Median benchmark build time improved by up to 45% (Nunjucks) and by 25% (Liquid). Send a tweet to @​eleven_ty to let us know if and how much your build times changed!
    • Adds new directory option for a layouts directory separate from includes. This optional feature was our top requested enhancement. Documentation, fixes #137
    • More robust path joining (handles more edge cases in input/output/includes/data directories) PR from the amazing @kleinfreund! Fixes #376 #337
    • Adds eleventyExcludeFromCollections option to exclude a piece of content from all collections (think templated .htaccess or sitemap.xml files that you don’t want in collections.all). Documentation, fixes #423
    • Adds addAllPagesToCollections option to pagination. Without this feature, using pagination with tags only adds your first page template to collections. Documentation. Read more discussion at #253

    Bug fixes

    • Eleventy’s --pathprefix command line option was broken. (Configuration API for pathPrefix was working fine.) Fixes #384
    • Eleventy wasn’t watching and reloading config files correctly. Fixes #340, #450
    • Eleventy wasn’t processing .eleventyignore files correctly 😱. Fixes #403

    NPM Audits

    • Bumps handlebars minor version (exposed via npm audit) #424
    • Bumps nunjucks minor version to remove postinstall-build deprecation notice #311

    Dependency Major Release Bumps

    Administration

    Source code(tar.gz)
    Source code(zip)
  • v0.7.1(Jan 12, 2019)

    Eleventy 🕚⚡️ is a Simpler Static Site Generator.

    Documentation at v0-7-1.11ty.io

    ⭐️ Support Eleventy by starring us on GitHub! This will increase our project’s visibility on staticgen.com, a big giant list of static site generators. 🐦 Follow us on Twitter @​eleven_ty!

    Install

    Upgrade

    • Local project: npm update @11ty/eleventy
    • Global: npm update -g @11ty/eleventy

    Changelog

    • Adds Mac OS as a Travis CI test target.

    Bug fixes

    • Requiring a module that doesn’t exist #377 #378 😱 Thanks @kleinfreund!
    • Fixes major performance regression in --watch performance #375

    Milestone

    Dependency Major Release Bumps

    None

    Source code(tar.gz)
    Source code(zip)
  • v0.7.0(Jan 11, 2019)

    Eleventy 🕚⚡️ is a Simpler Static Site Generator.

    Documentation at v0-7-0.11ty.io

    ⭐️ Support Eleventy by starring us on GitHub! This will increase our project’s visibility on staticgen.com, a big giant list of static site generators. 🐦 Follow us on Twitter @​eleven_ty!

    Install

    Upgrade

    • Local project: npm update @11ty/eleventy
    • Global: npm update -g @11ty/eleventy

    Changelog

    • 🚨🚨🚨 New Template Type: JavaScript Templates 🚨🚨🚨 *.11ty.js #118 #314
      • This is a big one and I’m pretty excited about it. Use arbitrary JavaScript to build a template file. This allows you to require any arbitrary templating engine and use it in Eleventy 😮.
      • Documentation
    • --serve: Pass in your own BrowserSync configuration options #123 #370
    • --watch will now re-run Eleventy if you make any changes in local JavaScript dependencies found in your JavaScript files (JS templates, data files, Eleventy config, et al). #325
    • Error Reporting: full stack trace shown on errors #324
    • Pagination: Use reverse: true to reverse the order of the data set before pagination. #194
    • Transforms: full support for asynchronous transforms. #164
    • Benchmarking: eleventy-benchmark is a regression performance test for multi-version testing of various template types. #114

    Bug fixes

    • Mammoth Pull Request from @kleinfreund to fix various bugs with directory path resolution #231 #366
    • .eleventyignore and .gitignore files were assumed to be in the input directory (not the project root). Eleventy now looks in both places #229 #360
    • Particularly embarrassing bug with Liquid Shortcodes having trouble with arguments that contained spaces (e.g. "first name") #347
    • Nunjucks Shortcodes (not Paired) threw an error when no arguments were passed. #372
    • TemplateData Tests improved by @kleinfreund #362
    • Shortcode names weren’t being namespaced properly #320

    Milestone

    Dependency Major Release Bumps

    multimatch 2.1 → 3.0

    Source code(tar.gz)
    Source code(zip)
  • v0.6.0(Nov 25, 2018)

    Eleventy is a simpler Static Site Generator!

    ⭐️ Support Eleventy by starring us on GitHub! This will increase our project’s visibility on staticgen.com, a big giant list of static site generators. 🐦 Follow us on Twitter @​eleven_ty!

    Changelog

    • Adds support for deep data merging in the data cascade [#147]
    • Adds support for glob patterns with the input command line option, e.g. --input=*.md [#173, #276]
    • Adds firstPageLink and lastPageLink to pagination object [#312]
    • Adds “cool” URL support in pagination object (no index.html files in these) [#285]
      • Documentation
      • nextPageHref
      • previousPageHref
      • firstPageHref
      • lastPageHref
      • hrefs
    • Eleventy errors now correctly exit with an error code. Netlify builds will now fail (and not deploy) if Eleventy errors. [#264]
    • Eleventy now reports the template language in rendering errors (better transparency on markdown files that by default render as Liquid templates) [#291]

    Bug fixes

    • Fixes major regression with JSTL templates [#263]
    • Upstream issue with Liquid templates and date objects outputting as strings [#258]
    • Browsersync infinite redirect with empty string pathPrefix: pathPrefix: "" [#302]
    • Fixes bug with returning custom object in eleventyConfig.addCollection [#277]

    Milestone

    Dependency Major Release Bumps

    liquidjs ^5.1.0 -> ^6.0.0

    debug ^3.1.0 -> ^4.0.0

    • Node changes, adds support for v10
    • https://github.com/visionmedia/debug/releases/tag/4.0.0

    fs-extra ^6.0.1 -> ^7.0.0

    • Changes to copy* methods for symlinks
    • https://github.com/jprichardson/node-fs-extra/blob/master/CHANGELOG.md#700--2018-07-16
    Source code(tar.gz)
    Source code(zip)
  • v0.5.4(Sep 28, 2018)

    Eleventy is a simpler Static Site Generator!

    ⭐️ Support Eleventy by starring us on GitHub! This will increase our project’s visibility on staticgen.com, a big giant list of static site generators. 🐦 Follow us on Twitter @​eleven_ty!

    Changelog

    • Adds permalink: false option to bypass writing a template to the output directory. Set this in front matter, template or directory data files, or even a JS data file if you want to do conditional output of templates based on Environment variables. (#61)
    • Improved error messaging, specifically with:
      • Errors in configuration files (#182)
      • Missing Filters in Liquid templates (#183), note the opt-in to a strict_filters Liquid option: https://www.11ty.io/docs/languages/liquid/#optional%3A-use-your-own-options
      • Improved messaging about DEBUG mode when in DEBUG mode (#224)
    • Adds Linters feature to inspect output content. (#225)
    • Behind the scenes additions to addPlugin to facilitate more configuration options for eleventy-plugin-syntaxhighlight v2.0 https://github.com/11ty/eleventy-plugin-syntaxhighlight/releases/tag/v2.0.0

    Documentation

    • The .eleventyignore docs page got lost when we moved from GitHub, it now exists here: https://www.11ty.io/docs/ignores/ (#228)
    • @kleinfreund added a lovely Environment variables example to the documentation (using JS Data Files)
      • Docs: https://www.11ty.io/docs/data-js/#example%3A-exposing-environment-variables

    Bug fixes

    • Fixes major issue with --passthroughall flag (#205)
      • Docs: https://www.11ty.io/docs/copy/#passthrough-all-content
    • Tags in template objects will always be normalized to array form, if even using a single tag string in front matter data (#246)
      • Docs: https://www.11ty.io/docs/collections/#a-single-tag%3A-cat
    • Fixed an issue when crossover existed between multiple passthrough copy targets (#208) (e.g. ./css/fonts and ./css/fonts/myFont.woff2, for example)

    Milestone

    Dependency Semver Major Updates

    • None
    Source code(tar.gz)
    Source code(zip)
  • v0.5.3(Aug 29, 2018)

    Eleventy is a simpler Static Site Generator!

    ⭐️ Support Eleventy by starring us on GitHub! This will increase our project’s visibility on staticgen.com, a big giant list of static site generators. 🐦 Follow us on Twitter @​eleven_ty!

    Changelog

    • 🚨🚨🚨 Giant new feature: Use arbitrary JavaScript files as Eleventy data sources. This means you can now fetch and use data at build time! Works with await/async/promises. GraphQL example included 😎 and more at JavaScript Data Files.
    • New feature: return arbitrary object types from eleventyConfig.addCollection. Read more at Collections.
    • New features: adds --passthroughall command line flag to copy and/or process all files in the input directory. Read more at Passthrough Copy
    • Fixed: template/directory specific data files were not monitored for changes when using --watch or --serve. #170
    • Fixed bug with fileSlug not being included on collection item data (was previously only available as page.fileSlug) #197
    • Fixed bug with transforms not running on pagination template output. #199

    Milestone

    Dependency Semver Major Updates

    • liquidjs upgraded from ^4.0.0 to ^5.1.0
    Source code(tar.gz)
    Source code(zip)
  • v0.5.2(Aug 15, 2018)

  • v0.5.1(Aug 15, 2018)

    Eleventy is a simpler Static Site Generator!

    ⭐️ Support Eleventy by starring us on GitHub! This will increase our project’s visibility on staticgen.com, a big giant list of static site generators. 🐦 Follow us on Twitter @​eleven_ty!

    Changelog

    • New feature: Warnings on slow configuration additions (all custom tags, filters, both single and paired shortcodes). Callback must exceed 10% of total runtime. Example: image
    • Quits with an exit code of 1 on error for better CI behavior.
    • Improved performance with async/await in loops
    • Found performance regression with node version check npm package. Switched to use different package: please-upgrade-node for performance bump.
    • Fixes issue when using .js files with passthrough copy. #181
    • Fixes regression when using templateContent in paginated collections. #179
    • Adds Code of Conduct to the repo
    • Fixes regression with single file input. #172
    • Fixes regression with paginating collections created with eleventy.addCollection configuration API. #171

    Milestone

    Dependency Semver Major Updates

    • None
    Source code(tar.gz)
    Source code(zip)
  • v0.5.0(Jul 5, 2018)

    Eleventy is a simpler Static Site Generator!

    ⭐️ Support Eleventy by starring us on GitHub! This will increase our project’s visibility on staticgen.com, a big giant list of static site generators. 🐦 Follow us on Twitter @​eleven_ty!

    Changelog

    Milestone

    Dependency Semver Major Updates

    • None
    Source code(tar.gz)
    Source code(zip)
  • v0.4.0(Jun 20, 2018)

    Eleventy is a simpler Static Site Generator!

    ⭐️ Support Eleventy by starring us on GitHub! This will increase our project’s visibility on staticgen.com, a big giant list of static site generators. 🐦 Follow us on Twitter @​eleven_ty!

    Changelog

    • New feature: Option to paginate over objects (instead of just arrays)
    • New feature: Option to filter items from pagination results
    • Better updates when re-running using --watch and --serve (including improvements to applied changes in configuration files) #128
    • Updates dependencies (see major semver updates below) #87
    • Minor regression in using templates with permalinks and layouts specified in template/directory data files #121

    Milestone

    Dependency Semver Major Updates

    • normalize-path 2.1.1 to 3.0.0 (documented as having no breaking changes by their release notes)
    • gray-matter 3.1.1 to 4.0.1 (updated to require Node 4 and above 😎—we require Node 8)
    • fs-extra 5.0.0 to 6.0.1 (now requires Node 8, among other things: Changelog)
    • Switches from globby to fast-glob internally.
    Source code(tar.gz)
    Source code(zip)
  • v0.3.6(Jun 9, 2018)

    Eleventy is a simpler Static Site Generator!

    ⭐️ Support Eleventy by starring us on GitHub! This will increase our project’s visibility on staticgen.com, a big giant list of static site generators. 🐦 Follow us on Twitter @​eleven_ty!

    Changelog

    • Fix issue with cascade of template and directory data files (template values should override directory values, the reverse was happening) #138
    • url filter now accepts falsy values (improvement over vague indexOf errors before)
    • Fix for issue with pagination with aliasing and permalink slug filter #135
    • Better top level error handling (get rid of UnhandledPromiseRejectionWarning’s, especially with passthrough copy errors) #110

    Milestone

    Source code(tar.gz)
    Source code(zip)
  • v0.3.5(May 23, 2018)

    Eleventy is a simpler Static Site Generator!

    ⭐️ Support Eleventy by starring us on GitHub! This will increase our project’s visibility on staticgen.com, a big giant list of static site generators. 🐦 Follow us on Twitter @​eleven_ty!

    Changelog

    • Option to opt-out of automatic .gitignore ignores in Eleventy. Use eleventyConfig.setUseGitIgnore(false);: #125
    • Major semver update: Upgrades liquidjs to 4.0.0: #122 #73
    • Fixes issue with using permalink in layout front matter. #121
    • Fixes issue with using collections and pagination together #115 #127 #129

    Milestone

    Source code(tar.gz)
    Source code(zip)
  • v0.3.4(May 11, 2018)

    Eleventy is a simpler Static Site Generator!

    ⭐️ Support Eleventy by starring us on GitHub! This will increase our project’s visibility on staticgen.com, a big giant list of static site generators. 🐧 Follow us on Twitter @​eleven_ty!

    Changelog

    • Switches --serve mode to use browser-sync. Smarter reloads (and CSS) #119 #120 --serve automatically does a --watch (you don’t need both).
    • --watch now works with passthrough copy files (#83) AND data files (#99).
    • Adds new page.fileSlug variable for easier clean permalinks (#75):
    More inputPath => fileSlug examples:
        2018-01-01-file.md       => file
        dir/file.md              => file
    Returns parent directory if an `index` template
        index.md                 => "" (empty)
        dir/index.md             => dir
        dir/2018-01-01-index.md  => dir
    
    • Huge performance boost (switched an unnecessary deep clone to shallow)

    Milestone

    Dependency semver Major Version Upgrades:

    • None
    Source code(tar.gz)
    Source code(zip)
  • v0.3.3(Apr 17, 2018)

    Eleventy is a simpler Static Site Generator!

    ⭐️ Support Eleventy by starring us on GitHub! This will increase our project’s visibility on staticgen.com, a big giant list of static site generators.

    Changelog

    • Adds --serve mode that runs a little webserver (automatically builds files too, assumes --watch) #105
    • Bunch of EJS fixes and improvements—thanks @chrisdmacrae! #100 #103
    • Additions to permalink documentation shows how to generate a JSON file for searchability—thanks @chrisdmacrae! #107

    Milestone

    Dependency semver Major Version Upgrades:

    • None
    Source code(tar.gz)
    Source code(zip)
An example project using Node.js to run some common tasks including directory backup

All code from this tutorial as a complete package is available in this repository. If you find this tutorial helpful, please share it with your friend

Alex 11 Sep 28, 2022
Embedded CoffeeScript templates

Eco: Embedded CoffeeScript templates Eco lets you embed CoffeeScript logic in your markup. It's like EJS and ERB, but with CoffeeScript inside the <%

Sam Stephenson 1.7k Dec 17, 2022
Embedded JavaScript templates -- http://ejs.co

Embedded JavaScript templates Installation $ npm install ejs Features Control flow with <% %> Escaped output with <%= %> (escape function configurable

Matthew Eernisse 6.8k Dec 30, 2022
Embedded CoffeeScript templates

Eco: Embedded CoffeeScript templates Eco lets you embed CoffeeScript logic in your markup. It's like EJS and ERB, but with CoffeeScript inside the <%

Sam Stephenson 1.7k Jan 2, 2023
My templates for the Templater Obsidian.md plugin.

Christian's Templater Templates Found a template your like? Make sure you copy the raw file - not what Github renders. Click this button to see the ra

Christian Bager Bach Houmann 151 Dec 21, 2022
A set a periodic note templates for Obsidian.md.

MK's Periodic Note Templates A set of periodic note templates for Obsidian.md. Before You Start... Please note that these templates generally suit my

null 134 Dec 30, 2022
Browser In The Browser (BITB) Templates

BITB Browser templates for Browser In The Browser (BITB) attack. More information: https://mrd0x.com/browser-in-the-browser-phishing-attack/ Usage Eac

mrd0x 2.5k Jan 5, 2023
Convert a simple HTML syntax into tables compatible with Foundation for Emails.

Inky Inky is an HTML-based templating language that converts simple HTML into complex, responsive email-ready HTML. Designed for Foundation for Emails

Foundation 652 Dec 22, 2022
Variation-template - Variation is a PSD template that is covered into a web template using HTML5, CSS3, Bootstrapv4.6, JavaScript.

Variation Template Design Variation is a PSD website template. In this project this template is designed with HTML. Deployment This site is deployed a

Bipronath Saha 1 Jan 1, 2022
A declarative, HTML-based language that makes building web apps fun

A declarative, HTML-based language that makes building web apps fun ?? Docs ∙ Try Online ∙ Contribute ∙ Get Support Intro Marko is HTML re-imagined as

Marko 12k Jan 3, 2023
HTML Framework that allows you not to write JavaScript code.

EHTML (or Extended HTML) can be described as a set of custom elements that you can put on HTML page for different purposes and use cases. The main ide

Guseyn Ismayylov 172 Dec 22, 2022
Types generator will help user to create TS types from JSON. Just paste your single object JSON the Types generator will auto-generate the interfaces for you. You can give a name for the root object

Types generator Types generator is a utility tool that will help User to create TS Interfaces from JSON. All you have to do is paste your single objec

Vineeth.TR 16 Dec 6, 2022
⚡️🌱 Vite plugin for Twig, transforms twig templates into HTML

⚡️ ?? ViteTwig import twig from '@vituum/vite-plugin-twig' export default { plugins: [ twig({ reload: true, root: null, filte

Vituum 7 Dec 15, 2022
Compile-time tests for types. Useful to make sure types don't regress into being overly-permissive as changes go in over time.

expect-type Compile-time tests for types. Useful to make sure types don't regress into being overly-permissive as changes go in over time. Similar to

Misha Kaletsky 82 Jan 8, 2023
A modern static resume template and theme. Powered by Jekyll and GitHub pages.

modern-resume-theme A modern simple static resume template and theme. Powered by Jekyll and GitHub pages. Host your own resume on GitHub for free! Vie

James Grant 1.5k Dec 31, 2022
A handy-dandy JS shim to run OreUI files in your browser (to varying degrees of success.)

OreUIShim (C) Luminoso 2022 / MIT Licensed. Contributions Welcome! A small shim JS file to experiment with oreUI in the browser. How to use Prerequisi

null 12 Dec 8, 2022
Gofiber with NextJS Static HTML is a small Go program to showcase for bundling a static HTML export of a Next.js app

Gofiber and NextJS Static HTML Gofiber with NextJS Static HTML is a small Go program to showcase for bundling a static HTML export of a Next.js app. R

Mai 1 Jan 22, 2022
Express typescript boilerplate using @types/node, @types/express

Express framework boilerplate in typescript.

Harris Gurung 3 Sep 21, 2022
⚛️ 🚀 A progressive static site generator for React.

You are viewing the docs for v7 of React Static. You can browse all historical versions via Github branches! React Static A progressive static-site ge

React Static 10.2k Dec 27, 2022