Skip to content

Releases: 11ty/eleventy

Eleventy v3.1.0-alpha.1 (the e18e release!)

14 Apr 16:52
Compare
Choose a tag to compare
Version Production Dep Count Production Size
v3.1.0-alpha.1 ×139 (-48) 19.8 MB (-7.6 MB)
v3.0.0 ×187 27.4 MB
  • The above improvements are thanks to the @e18e org folks! Upstream issue: e18e/ecosystem-issues#164
    • Dependency optimization by @outslept in #3715
    • Replace glob packages with lighter alternatives – fast-glob + is-glob -> tinyglobby, micromatch -> picomatch by @pralkarz in #3680
  • Improvements to engine consistency (improved use of Nunjucks cache) #3736
  • Fixes eleventy.templateModified listeners warning #3735
  • Fixes for bugs with merging Arrays in eleventyComputed. Arrays are now treated as a single entity when merging over non-computed data. Arrays will still be merged in the data cascade from multiple eleventyComputed entries.
  • Fix bug with collection definition on subsequent builds #3711
  • HtmlBasePlugin: Fix confusing error message by @noelleleigh in #3709

Milestone: https://github.com/11ty/eleventy/milestone/47?closed=1
Full Changelog: v3.0.1-alpha.5...v3.1.0-alpha.1

Eleventy v3.0.1-alpha.5

14 Mar 22:09
Compare
Choose a tag to compare
Pre-release
  • Upgrade to use Eleventy Dev Server v2.0.7 https://github.com/11ty/eleventy-dev-server/releases/tag/v2.0.7
  • Removes rifraf dependency by @jeffalo #3622 #3673 gave us some BIG WINS to node_modules size: 27.4 MB to 21.8 MB, eliminated 39 total dependency packages!
  • Improve build performance ~50ms (dynamic dev server import only on --serve) by @boehs in #3689
  • Internals: consolidates TemplateMap with Dependency Graph for more accurate build order during incremental builds (fixing unrendered template errors) #3410 (Fair warning: this was a big change!)
  • Fix duplicate permaink error on Windows after file delete and re-add #3631
  • Fix (and better error messaging) for link.slice is not a function errors when using function permalinks #3472 #3619
  • Improvements to bundler-friendiness of imports (using Programmatic API in serverless contexts) #3656
  • Fix when using eleventyConfig.setUseTemplateCache(false); and 11ty.js JavaScript templates #3667
  • Fix for passthrough copy output locations during incremental builds #3285
  • Check Error.cause for TemplateContentPrematureUseError when rendering by @noelforte in #3651
  • Fix dateValue.toLowerCase() is not a function error when using addDateParsing API #3674

Full Milestone: https://github.com/11ty/eleventy/milestone/47?closed=1
Full Changelog: v3.0.1-alpha.4...v3.0.1-alpha.5

Eleventy v3.0.1-alpha.4

29 Jan 19:41
Compare
Choose a tag to compare
Pre-release
  • Internals: adds remove method to HtmlTransformer (for Bundle Plugin)
  • Minor dependency upgrades

Full Changelog: v3.0.1-alpha.3...v3.0.1-alpha.4

Eleventy v3.0.1-alpha.3

14 Jan 22:44
Compare
Choose a tag to compare
Pre-release
  • Changes template rendering concurrency default to 1, fixes Tried to use templateContent too early issue in 3.0.1-alpha.1 #3596 (related to #3277)

Full Changelog: v3.0.1-alpha.2...v3.0.1-alpha.3

Eleventy v3.0.1-alpha.2

14 Jan 22:26
Compare
Choose a tag to compare
Pre-release

Full Changelog: v3.0.1-alpha.1...v3.0.1-alpha.2

Eleventy v3.0.1-alpha.1

20 Dec 16:12
Compare
Choose a tag to compare
Pre-release

Try it out in your project

npm install @11ty/eleventy@canary --save-exact

Read more about getting started with Eleventy or why you should use Eleventy.

What's Changed

  • Support for Import Attributes #3580 e.g. import data from './data.json' with { type: 'json' };, see 11ty/eleventy-dependency-tree-esm#2
  • Adds html-relative Passthrough Copy mode for relative asset references in HTML. Learn more at #3573 (from issue #3552)
  • Build performance improvements to v3.0.0 in #3493
  • Upgrades to @11ty/[email protected] #3595 (thank you @Zearin!)
  • Render templates in parallel. by @fqueze in #3277
    • Adds eleventyConfig.setConcurrency(Number) API to control concurrency (defaults to os.availableParallelism()) #3585
  • Bumps liquidjs dependency to 10.19.0 (from 10.17.0)
  • Replace UserConfig typedef with a subpath export (#3460) by @noelforte in #3562
  • Bump cross-spawn from 7.0.3 to 7.0.6 in the npm_and_yarn group by @dependabot in #3579
  • Fix import-related error with CommonJS modules in Node 23 by @vrugtehagel in #3519 #3518
  • Removes unreliable character encoding detection in debug output #3584
  • Fix for InputPathToUrl plugin to support unencoded paths with spaces #3559 #3583
  • IdAttribute plugin has checkDuplicates option (always enabled by default, now allows you to disable) #3560 Docs: https://www.11ty.dev/docs/plugins/id-attribute/#with-options
  • Bug fix for returning non-traditional data with eleventyConfig.addCollection API #3467
  • Error messaging improvements:
    • Improved error messaging when attempting to link to a permalink: false template (in the HTML <base> plugin) #3503
    • Better errors with Custom template types with non-string permalink values: #3472
    • Improved error messaging with syntax errors in .11ty.js files #3571
    • Improved require(esm) error messaging to reflect proper support in Node v22.12 #3568
    • Error stack improvements by @noelforte in #3572

New Contributors

Full Changelog: v3.0.0...v3.0.1-alpha.1

Eleventy v3.0.0: Possums ❤️ ESM

01 Oct 18:16
Compare
Choose a tag to compare

We did it. After 22 pre-releases and over a year of work, Eleventy 3.0.0 is now available. You can try it out now on your project using:

npm install @11ty/eleventy@latest

If you’re upgrading from a previous version of Eleventy, use the Upgrade Help plugin for automated checks and help with your upgrade!

Why should you use Eleventy? Eleventy is a flexible and production-ready site generator known for its zero-client JavaScript footprint, speedy sites, speedy builds, and full control over the output.

A few numbers on the best version of Eleventy yet:

Stats v2.0.1 v3.0.0
20% smaller 35.2 MB 28.1 MB
11% fewer dependencies 213 189
9% faster npm install 4.511s* 4.103s*

*fastest time of 3 runs (bypassing local cache)

Flagship 3.0 features

  1. Eleventy is now written in ESM with full support for ESM in your projects: configuration, data files, 11ty.js templates, etc. For many projects this won’t be a breaking change and we’ll continue to support CommonJS too. Every example on the docs now includes both a CommonJS and ESM version. Docs: https://v3.11ty.dev/docs/cjs-esm/
// ESM
export default function(eleventyConfig) {}

// We’ll keep supporting CommonJS:
module.exports = function(eleventyConfig) {}
  1. Supporting more package managers and runtimes: pnpm, yarn, Deno. More examples on the docs! https://v3.11ty.dev/docs/
  2. Asynchronous configuration #614 Docs: https://v3.11ty.dev/docs/config/
// ESM
export default async function(eleventyConfig) {}

// CommonJS
module.exports = async function(eleventyConfig) {}
  1. For-free performance improvement to built-in slugify, inputPathToUrl universal filters (via memoization) #840 Docs: https://v3.11ty.dev/docs/memoize/
  2. Named config export improves consistency for plugins #3246 and set*Directory configuration API methods #1503 Docs: https://v3.11ty.dev/docs/config-shapes/#optional-export-config-object and https://v3.11ty.dev/docs/config/#configuration-options
export default function(eleventyConfig) {
  eleventyConfig.setInputDirectory(".");
  eleventyConfig.setOutputDirectory("_site");
};

export const config = {
  dir: {
    input: ".",
    output: "_site"
  },
};
  1. Virtual Templates, configuration API to add content (great for plugins, used by the new RSS plugin!) #1612 Docs: https://v3.11ty.dev/docs/virtual-templates/
export default function(eleventyConfig) {
  eleventyConfig.addTemplate("robots.njk", "User-agent: *\nAllow: /", {
    permalink: "/robots.txt",
  });
};
  1. IdAttribute plugin adds id attributes to headings for on-page anchor links (supports all template-languages) #3363 Docs: https://v3.11ty.dev/docs/plugins/id-attribute/
<h1>Welcome to my web site</h1> becomes <h1 id="welcome-to-my-web-site">Welcome to my web site</h1>
  1. Plain-text Bundler included: https://v3.11ty.dev/docs/plugins/bundle/
export default function(eleventyConfig) {
  eleventyConfig.addBundle("css"); // Adds {% css %} paired shortcode to create per-page CSS bundles
};
  1. InputPath to URL plugin lets you link directly to an input file path (and we’ll output the right URL) Docs: https://www.11ty.dev/docs/plugins/inputpath-to-url/
<a href="my-template.md">Home</a> becomes <a href="/my-template/">Home</a>
  1. Use arbitrary JavaScript with the js Front Matter #2819 Docs: https://v3.11ty.dev/docs/data-frontmatter/#javascript-front-matter
---js
const hello = "hi";
---
{{ hello }}
  1. page.rawInput unlocks access to raw template content #1206 https://v3.11ty.dev/docs/data-eleventy-supplied/#page-variable
  2. addPreprocessor configuration API to modify raw content before rendering works for file ignores and drafts #188 Docs: https://v3.11ty.dev/docs/config-preprocessors/
  3. addDateParsing configuration API to add your own custom date parsing logic #867 Docs: https://v3.11ty.dev/docs/dates/#configuration-api-for-custom-date-parsing
  4. eleventyDataSchema data option to validate data cascade values #879 Docs: https://v3.11ty.dev/docs/data-validate/
  5. Reserved Eleventy properties in data cascade are now frozen #1173 Docs: https://v3.11ty.dev/docs/data-eleventy-supplied/#frozen-data
  6. Support for asynchronous plugins and async-friendly addPlugin configuration API #2675 Docs: https://v3.11ty.dev/docs/plugins/#plugins-are-configuration
  7. useLayouts option for Custom Template Languages allows opt-out of Eleventy Layouts #2830 Docs: https://v3.11ty.dev/docs/languages/custom/#uselayouts
  8. renderTransforms Universal Filter will run project transforms on an arbitrary block of content (useful for RSS and other feeds) #3294
  9. --incremental=filename.md on the command line #3324 Docs: https://v3.11ty.dev/docs/usage/#incremental-for-partial-incremental-builds
  10. renderContent Universal Filter now included with Render Plugin #3370 Docs: https://v3.11ty.dev/docs/plugins/render/#rendercontent-filter
  11. Dev Server updates including onRequest API for handling requests dynamically during development (used with the new Image Transform plugin)

Breaking Changes and Upgrade Path

Rather than navigating this list manually, use the Upgrade Help plugin for automated project checks and upgrade help!

Minutiae

Full Eleventy v3 Milestone (177 closed): https://github.com/11ty/eleventy/milestone/40?closed=1
Full Changelog: v2.0.1...v3.0.0

Thank You Notes

This release would not have been possible without our community and supporters.

  • To everyone that has built something with Eleventy: thank you!
  • To everyone that has answered a question about Eleventy: on the Discord, on social media, in GitHub issues or discussion, at your local meetup or coffee shop: thank you!
  • To everyone that attended the 11ty Conference earlier this year: thank you!
  • To everyone that brought a well-intentioned complaint about something you didn’t like about Eleventy: thank you!
  • To everyone that dropped a few nice words of appreciation: thank you!
  • To everyone that has supported us and made this release possible: thank you!

Thank you to @bobmonsour, @pdehaan, @Snapstromegon, @cdransf, @5t3ph, @BenDMyers, @siakaramalegos, @shivjm, @dleatherman, @darthmall, @clottman, @nachtfunke, @David-Large, Olivia Nicholson, and @mneumegen for their community contributions!

Thank you for the code contributions from @VividVisions, @mayank99, @Zearin, @chriskirknielsen, @mendhak, @fqueze, @shivjm, @rdela, @w0whitaker, @vrugtehagel, @sachac, @Snapstromegon, @alifeee, @uncenter, @Zwyx, @mayankkamboj47, @aschrab, @jgarber623, @korverdev, @mathertel, @mathieuprog, @epelc, @Ryuno-Ki, @lexoyo, @satgo1546, @KiwiKilian

Eleventy v3.0.0-beta.2: The Final Countdown

30 Sep 21:50
Compare
Choose a tag to compare

What's Changed from 3.0.0-beta.1

Minutiae

Full Changelog: v3.0.0-beta.1...v3.0.0-beta.2
Full Eleventy v3 Milestone (176 closed): https://github.com/11ty/eleventy/milestone/40?closed=1

Pre-release: Eleventy v3.0.0-alpha.20

11 Sep 19:58
Compare
Choose a tag to compare
Pre-release

Minutiae

Full Changelog: v3.0.0-alpha.19...v3.0.0-alpha.20
Full Eleventy v3 Milestone (170 closed): https://github.com/11ty/eleventy/milestone/40?closed=1

Pre-release: Eleventy v3.0.0-alpha.19

04 Sep 22:06
Compare
Choose a tag to compare
Pre-release

Minutiae

Full Changelog: v3.0.0-alpha.18...v3.0.0-alpha.19
Full Eleventy v3 Milestone (170 closed): https://github.com/11ty/eleventy/milestone/40?closed=1