@zachleat zachleat released this Feb 16, 2018 · 392 commits to master since this release

Eleventy is a simpler Static Site Generator!
https://www.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.

Install

npm install -g @11ty/eleventy

Changelog

  • Plugin support: Plugins are custom code that Eleventy can import into a project from an external repository. Currently, we have plugins for RSS and Syntax Highlighting provided. This is big and there will be more to come. Read more

  • Template and Directory Specific Data Files: This is a super powerful option to configure data files for specific templates (or directories of templates). It was added to configure a default layout for an entire directory of templates, but it can do so much more. Read more.

  • Changing a Template’s Rendering Engine: Prior versions of Eleventy tied the template engine specifically to the file extension. We now allow you to override this option using the templateEngineOverride data key. Read more.

  • Adds setTemplateFormats method to the Configuration API. (In order of precedence: --formats command line, setTemplateFormats() Configuration API, templateFormats Configuration Object key)

  • Adds pathPrefix Configuration Object key, used by the url filter and inserted as a prefix to the beginning of all local href links. For example, my personal blog lives at https://www.zachleat.com/web/, so my "pathPrefix": "/web/". Don’t worry about slashes, we clean them up.

  • Adds getFilteredByGlob to Collection API. For example, in your config file, you can create these types of collections:

// Filter source file names using a glob
eleventyConfig.addCollection("onlyMarkdown", function(collection) {
  return collection.getFilteredByGlob("**/*.md");
});

// Filter source file names using a glob
eleventyConfig.addCollection("posts", function(collection) {
  return collection.getFilteredByGlob("_posts/*.md");
});
  • Manual passthrough copy: Searching the entire directory structure for files to copy based on file extensions is not optimal with large directory structures. If we know what non-template static content we want to appear in our output, we can opt-in to specify files or directories for Eleventy to copy for you. This will probably speed up your build times.
// .eleventy.js
module.exports = function(eleventyConfig) {
  eleventyConfig.addPassthroughCopy("img");

  // use a subdirectory, it’ll copy using the same directory structure.
  eleventyConfig.addPassthroughCopy("css/fonts");
};
  • Support for Asynchronous Nunjucks Filters. Do async work inside your filter!
  • Ignore source files in node_modules if .gitignore file does not exist. See #54
  • Vaguely described performance improvements
  • Bug fixes listed in Milestone
  • If you’re eleventy --watching and save while Eleventy is already running, we’ll let you know and run again for you automatically.
Assets 2