🚨 The full release notes are available on The Eleventy Blog: The Very First Beta Release of Eleventy v2.0 or you can watch me talk about this release on YouTube.
The very first Eleventy 2.0 Beta release is now available on the @beta
channel and we’re looking for Beta testers! You can try it out now:
# Local project
npm install @11ty/eleventy@beta
# Global install
npm install @11ty/eleventy@beta -g
Read more about local versus global installation.
New to 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. Watch The State of Eleventy in Two Minutes or read more about Eleventy’s project goals.
The Big Features
Smaller, More Secure
- ✅ Dependencies decreased by 32.1%: 211 modules (311 in v1.0.2)
- ✅
node_modules
file weight decreased by 77.8%: 34.3 MB (155 MB in v1.0.2) - ✅ 30.5% faster
npm install
Faster Builds
- Improved build performance (tested on a sample 500 page site against v1.0.2) using:
- Liquid: ✅ 18.18% faster
- Nunjucks: ✅ 17.74% faster
- Markdown (with Liquid): ✅ 17.95% faster
- JavaScript (11ty.js): ✅ 8.33% faster
--incremental
for incremental builds #108- Smarter incremental builds with support for layout dependencies, registered dependencies on custom templates, dependencies in
pagination
data oreleventyImport
#975
- Smarter incremental builds with support for layout dependencies, registered dependencies on custom templates, dependencies in
--ignore-initial
command line option to skip the first build (best paired with--incremental
)- Use emulated passthrough copy to serve passthrough files directly without triggering a build (will still work with live reload) #2456
Plugins
- Support for WebC, the new single file format for web components
- Eleventy Edge will render Eleventy templates in an Edge Function for dynamic content (bundled with Eleventy)
- Eleventy Dev Server replaces Browsersync, adds support for DOM-diffing live reloads. #1305 (bundled with Eleventy)
- Render Plugin will render any template syntax inside other files (bundled with Eleventy)
- Internationalization (i18n) Plugin makes it easy to create localized sites (bundled with Eleventy)
- HTML
<base>
Plugin makes it easy to deploy your site to any folder path without changing any content (works great with the path prefix feature) (bundled with Eleventy) - Support for the Vite plugin
And more…
- Support for aliasing to an existing template language #2248
- This unlocks TypeScript or JSX in Eleventy when you use
esbuild-register
and alias11ty.ts
or11ty.tsx
to11ty.js
.
- This unlocks TypeScript or JSX in Eleventy when you use
- Event arguments unlock new plugin abilities:
dir
(input/output/includes/data/layouts locations),
outputMode
(where the templates are going:fs
,json
,ndjson
),runMode
(build
,watch
, orserve
), orresults
for the processed Eleventy output. - Memory usage improvements to Pagination
Breaking Changes
⚠️ Rather than review this list, it’d be faster to use the eleventy-upgrade-helper
plugin, which runs a suite of tests to see whether or not you need to worry about these breaking changes in your project: https://github.com/11ty/eleventy-upgrade-help
- Bump minimum Node version to Node 14+ #2336
- Disable indented code blocks in Markdown by default #2438
- Both
.git
and nestednode_modules
folders are ignored by default (previously we ignorednode_modules/**
, now**/node_modules/**
) #2436 - Dates will now be stripped from the parent directory for
page.fileSlug
when the file name isindex.*
. e.g.YYYY-MM-DD-myslug/index.md
has apage.fileSlug
ofmyslug
when previously it wasYYYY-MM-DD-myslug
#1947 #2111 - Dots in global data file names should be preserved in key name for data cascade #1242 #1912
- Removes deprecated in v1.0 (and undocumented)
renderData
feature (use Computed Data instead) #2356 - Removes pre-processing global JSON data files with a template language #2728
- Removes
--passthroughall
command line flag #2682 - Major dependency bumps:
liquidjs
from v9 to v10 Release notes #2678luxon
from v2 to v3 Release notesmarkdown-it
from v12 to v13 Release notes
The Small Features
- Adds support for configuration default file names
eleventy.config.js
andeleventy.config.cjs
in addition to.eleventy.js
#1029 addShortcode
is now async-friendly #2726addFilter
is now async-friendly #2536 (also adds anaddAsyncFilter
API method)- File watching:
- Eleventy Dev Server includes a
watch
option to trigger live reloads on file changes outside of your Eleventy build. Works great when you’re using a bundler in parallel! - Decoupled ignore APIs for template processing (
eleventyConfig.ignores
) and file watching (eleventyConfig.watchIgnores
) #893
- Eleventy Dev Server includes a
- Access advanced
recursive-copy
options in passthrough file copy #1686- Unlocks passthrough copy with symlinks #530
log
filter supports chaining #2467- Adds new
git Created
date option #2468 - Adds options for
read
andencoding
to custom data formats- This unlocks using binary files (like images) to populate the Data Cascade
Even Smaller Features
setDataFileSuffixes
API method to customize Template and Directory data file suffixes (or opt-out of the Template and Directory Data Files feature) #2681- Serverless option
singleTemplateScope: false
simplifies using collections in serverless mode. #2736 - A variety of bug fixes for
--serve
issues that required server restarts. - Data Consistency:
this.page
andthis.eleventy
are now available on Shortcodes, 🆕 Filters, 🆕 Linters, and 🆕 Transformspage
andcontent
on Collection entries
- Adds
getCollectionItemIndex
universal filter #2676 - Throw error on circular layout dependencies #2076
- Plugins can now reference
eleventyConfig.pathPrefix
#2526 generatePageOnEmptyData
to generate an empty results page with an empty paginated data set #1698 #756 #731 #2208- Creating an empty JSON data file no longer throws an error #2299
Housekeeping
- Full issue list: https://github.com/11ty/eleventy/milestone/38?closed=1
- Full changelog: v1.0.2...v2.0.0-beta.1
Thank You Notes
This project would not be possible without our lovely community. Thank you to everyone that built something with Eleventy (×669 authors on our web site!), wrote a blog post about Eleventy, contributed code, wrote a plugins, helped with documentation, asked questions, answered questions, braved The Leaderboards, participated on Discord, filed issues, attended (or organized!) a meetup, said a kind word on social media ❤️.
- A huge thank you to Netlify, especially: @biilmann, Chris Bach, Lauren Sell (alum), and Claire Knight, without whom this release would not have been possible.
- 🏆 A special thanks to @pdehaan for their tireless contributions on the Eleventy Issue tracker.
- Yet more thanks to the all star Discord Moderators and Meetup Coordinators @BenDMyers, @clottman, @dleatherman, @darthmall, @nachtfunke, @siakaramalegos and @5t3ph.
- All of our supporters on Open Collective ❤️
- Contribute on Open Collective
- How else can you contribute to Eleventy?
Pull Requests From
@AleksandrHovhannisyan 🆕, @amareshsm ×2 🆕, @binyamin, @DamianOsipiuk 🆕, @epelc ×2 🆕, @j-f1 🆕, @Jaza 🆕, @kentaroi 🆕, @kev4ev 🆕, @LeoSchae 🆕, @milahu ×3, @nasivuela 🆕, @NickColley 🆕, @NotWoods, @Obayanju 🆕, @Snapstromegon ×16 (wow! 🤯), @TheDocTrier 🆕, @thinkverse 🆕, @TigersWay 🆕, @wes-goulet 🆕
Read more from the Community
Open Collective Supporters
- Gold Sponsors: Sanity.io, Nordhealth, CloudCannon, Transloadit
- Silver Sponsors: Unabridged Software, PQINA, Bejamas, Nathan Smith, Monarch Air Group, Getform.io, Mercury Jets, and OCEG
- Backers: Tyler Gaw, Ariel Salminen, Peter deHaan, Melanie Sumner, Ben Nash, Alejandro Rodríguez, Mat Marquis, Philip Borenstein, Jérôme Coupé, Nicolas Hoizey, Mike Aparicio, Ben Myers, Katie Sylor-Miller, Mark Buskbjerg, mortendk, Aaron Hans, Lauris Consulting, John Meyerhofer, Todd Libby, Luke Bonaccorsi, shawn j sandy, Jenn Schiffer, Dimitrios Grammatikogiannis, Devin Clark, Eric Bailey, Manuel Matuzovic, Kyosuke Nakamura, Tim Giles, Hans Gerwitz, Makoto Kawasaki, Horacio Gonzalez, Rob Sterlini, Josh Crain, Søren Birkemeyer, Richard Hemmer, Nick Nisi, John SJ Anderson, Ryan Swaney, Alistair Shepherd, Ivo Herrmann, Flaki, John Hall, Scott McCracken, James Steinbach, Miriam Suzanne, Angelique Weger, Bentley Davis, vince falconi, Martin Schneider, Stephanie Eckles, Frontend Weekly Tokyo, Chris Burnell, Ximenav Vf., 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, Dorin Vancea, Ara Abcarians, Paul Welsh, Ingo Steinke, Dan Ryan, Sam, Brett Nelson, Melanie Richards, Marco Zehe, Wes Ruvalcaba, Luc Poupard, Noel Forte, Entle Web Solutions, Ken Hawkins, Fershad Irani, Nikita Dubko, Aaron Gustafson, Chris, Christian Miles, Benjamin Geese, Marcus Relacion, Netin nopeustesti, Cthos, Sia Karamalegos, Jon Kuperman, Raphael Höser, Saneef Ansari, Flemming Meyer, Colin Fahrion, Dan Burzo, Dan Ott, Mobilemall.pk, Cheap VPS, David Darnes, Michel van der Kroef, 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, Andy Stevenson, HelppoHinta.fi, Robin Rendle, Tanner Dolby, jpoehnelt, Richmond Concrete, Andrew Weisbeck, Tom, CelineDesign, Nic Chan, Duc Lam, Alex Zappa, Stephen Bell, Brett DeWoody, alistairtweedie, Meta Tier List, xdesro, Alexander Wunschik, Robert Haselbacher, Lene, Iva Tech, kylepfeeley, Daniel Saunders, Dan Urbanowicz, dan leatherman, Viewality Media, Aviator Game, Softermii, Eric Carlisle, Claus Conrad, CBD Review, Eric Gallager