Releases: 11ty/eleventy
🚧🚧 Eleventy 🕚⚡️ v0.10.0 Beta 1 🚧🚧
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
andpagination.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 berequire’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)
- Documentation updated:
Miscellanous
Documentation Web Site
- We launched Contributor Accounts on 11ty.dev, including access to on-site documentation search.
- Documentation moved from 11ty.io to 11ty.dev
- Official Eleventy plugin documentation moved to 11ty.dev
- @Munter added his
hyperlink
checker to the 11ty documentation for link rot checking! Source tweet
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
- Issues fixed in v0.10.0 Milestone
- All code changes from v0.9.0 to v0.10.0-beta.1
- Code coverage stats for v0.10.0-beta.1
- ✅ npm audit passed
Dependency Major Release Bumps
- chalk from v2.4 to v3.0.0
- handlebars from v4.1.2 to v4.5.3 (while this isn’t technically a major release bump, it’s a fair number of minor releases and probably worth noting)
Eleventy 🕚⚡️ v0.9.0: Oh my
Eleventy is a Simpler Static Site Generator.
v0.9.0 Documentation
Support Eleventy:
- ⭐️ 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!
- 🎁 Join 32 other lovely people and become an Eleventy Supporter!
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 returningfileName.11ty
, should befileName
) #588 - Fixes issue with Liquid shortcode argument parsing (failed on
page.*
variables) #600 - Fixes issue with
eleventyExcludeFromCollections
templates incorrectly throwingTemplateContentPrematureUseError
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.
fast-glob
from v2 to v3: Release notes
chokidar
from v2 to v3: requires Node 8+ Release notesdependency-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 notesmultimatch
from v3 to v4: requires Node 8+ Release notes
Administration
- Issues fixed in v0.9.0 Milestone
- All code changes from v0.8.3 to v0.9.0
- Code coverage stats for v0.9.0
npm audit
found 0 vulnerabilities in 7917 scanned packages
🚧🚧 Eleventy 🕚⚡️ v0.9.0 Beta 2: Hopefully the Last Beta
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 returningfileName.11ty
, should befileName
) #588 - Fixes issue with Liquid shortcode argument parsing (failed on
page.*
variables) #600 - Fixes issue with
eleventyExcludeFromCollections
templates incorrectly throwingTemplateContentPrematureUseError
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
fast-glob
from v2 to v3: Release notes
Administration
🚧🚧 Eleventy 🕚⚡️ v0.9.0 Beta 1: Wow this is a Big One
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 returningfileName.11ty
, should befileName
) #588 - Fixes issue with Liquid shortcode argument parsing (failed on
page.*
variables) #600 - Fixes issue with
eleventyExcludeFromCollections
templates incorrectly throwingTemplateContentPrematureUseError
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
fast-glob
from v2 to v3: Release notes
Administration
Eleventy 🕚⚡️ v0.8.3: Put the horses in, this is Stable
Eleventy is a Simpler Static Site Generator.
Support Eleventy:
- ⭐️ 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!
- 🎁 Join 15 other lovely people and become an Eleventy Open Collective Supporter!
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
isfalse
#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
Eleventy 🕚⚡️ v0.8.2: The Regression Mitigator
Eleventy is a Simpler Static Site Generator.
Support Eleventy:
- ⭐️ 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!
- 🎁 Join 14 other lovely people and become an Eleventy Open Collective Supporter!
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
Eleventy 🕚⚡️ v0.8.1: The one that works better
Eleventy is a Simpler Static Site Generator.
Support Eleventy:
- ⭐️ 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!
- 🎁 Join 14 other lovely people and become an Eleventy Open Collective Supporter!
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
Eleventy 🕚⚡️ v0.8.0: The one that is faster
Eleventy is a Simpler Static Site Generator.
Support Eleventy:
- ⭐️ 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!
- 🎁 Join 12 other lovely people and become an Eleventy Open Collective Supporter!
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 fromincludes
. 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
orsitemap.xml
files that you don’t want incollections.all
). Documentation, fixes #423 - Adds
addAllPagesToCollections
option topagination
. Without this feature, using pagination withtags
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 forpathPrefix
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
javascript-stringify
1.6 → 2.0 Release notessemver
5.6 → 6.0 Release notes
Administration
0.7.1 Maintenance Release
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
- Local project:
npm install @11ty/eleventy
- Global:
npm install -g @11ty/eleventy
- Read more about local versus global installation
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
Eleventy v0.7.0
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
- Local project:
npm install @11ty/eleventy
- Global:
npm install -g @11ty/eleventy
- Read more about local versus global installation
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
- This is a big one and I’m pretty excited about it. Use arbitrary JavaScript to build a template file. This allows you to
--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
- Requires node 6 and includes a
minimatch
vulnerability fix - Full notes: https://github.com/sindresorhus/multimatch/releases/tag/v3.0.0