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
- Getting Started Quick Guide
- Check out https://11ty.io/
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 localhref
links. For example, my personal blog lives athttps://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 --watch
ing and save while Eleventy is already running, we’ll let you know and run again for you automatically.