The source for the site at
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Zach Leatherman c4b6550f4e Adds editorconfig for my own sanity. 5 years ago
_data Move from atom.xml to feed.xml for tech agnostic-ish filename. 5 years ago
_includes Fixes urls in feed. 5 years ago
_src Separate files for syntax highlighters 5 years ago
about start of eleventy-base-blog that pairs with 0.2.8 5 years ago
css Refactors Liquid syntax highlighters to add line highlights. 5 years ago
feed Fixes urls in feed. 5 years ago
posts Show off the syntax line highlights 5 years ago
.editorconfig Adds editorconfig for my own sanity. 5 years ago
.eleventy.js Ugh, case sensitivity filename issue on Mac OS 5 years ago
.eleventyignore Initial commit. 5 years ago
.gitignore Initial commit. 5 years ago
.nvmrc Adds an .nvmrc for netlify deploys. 5 years ago
.travis.yml Change default config to use pathPrefix: "/" and then use `--pathprefix="/eleventy-base-blog/` for GitHub deploy command. Requires Eleventy v0.2.11 5 years ago
LICENSE Initial commit 5 years ago Adds Netlify stuff to the readme. 5 years ago
index.njk Moves warning message to _includes/base.njk, adds a home link to posts 5 years ago
netlify.toml Switch to debug for netlify deploy 5 years ago
package.json v3.0.1 5 years ago


A starter repository showing how to build a blog with the Eleventy static site generator.

Build Status


Getting Started

1. Clone this repository:

git clone my-blog-name

2. Navigate to the directory

cd my-blog-name

Specifically have a look at .eleventy.js to see if you want to configure any Eleventy options differently.

3. Install dependencies

npm install

4. Edit _data/metadata.json

5. Run Eleventy

npx eleventy

Or build automatically when a template changes:

npx eleventy --watch

Or in debug mode:

DEBUG=* npx eleventy

Implementation Notes

  • about/ shows how to add a content page.
  • posts/ has the blog posts but really they can live in any directory. They need only the post tag to be added to this collection.
  • Add the nav tag to add a template to the top level site navigation. For example, this is in use on index.njk and about/
  • Content can be any template format (blog posts needn’t be markdown, for example). Configure your supported templates in .eleventy.js -> templateFormats.
    • Because css and png are listed in templateFormats but are not supported template types, any files with these extensions will be copied without modification to the output (while keeping the same directory structure).
  • The blog post feed template is in feed/feed.njk. This is also a good example of using a global data files in that it uses _data/metadata.json.
  • This example uses three layouts:
    • _includes/layouts/base.njk: the top level HTML structure
    • _includes/layouts/home.njk: the home page template (wrapped into base.njk)
    • _includes/layouts/post.njk: the blog post template (wrapped into base.njk)
  • _includes/postlist.njk is a Nunjucks include and is a reusable component used to display a list of all the posts. index.njk has an example of how to use it.