1
0
Fork 0
Find a file
2025-05-03 21:44:01 -05:00
.forgejo/workflows full urls again 2025-04-21 10:56:40 -05:00
_data lint 2025-05-02 22:38:37 -05:00
_includes cleanup and restructure bundle resources 2025-05-02 22:26:41 -05:00
content add exif stripping 2025-05-03 21:44:01 -05:00
public lint 2025-05-02 22:38:37 -05:00
styles/config/vocabularies/Base finalize nix-unprivileged-deployments 2025-04-21 08:42:38 -05:00
.editorconfig fix indentation in markdown yaml frontmatter 2025-05-02 22:26:41 -05:00
.gitattributes added fonts 2025-01-01 20:35:57 -06:00
.gitignore update gitignore for jj 2025-05-02 21:40:54 -05:00
.ignore lint 2025-05-02 22:38:37 -05:00
.vale.ini add vocab 2025-04-15 12:05:26 -05:00
eleventy.config.js refactor drafts system 2025-05-03 18:41:01 -05:00
flake.lock add treefmt 2025-05-02 22:37:18 -05:00
flake.nix lint 2025-05-02 22:38:37 -05:00
LICENSE initial commit 2024-07-01 12:43:44 -05:00
markdown-it-figcaption.js lint 2025-05-02 22:38:37 -05:00
markdown-it-revealjs.js lint 2025-05-02 22:38:37 -05:00
package-lock.json feeds 2025-04-14 23:09:32 -05:00
package.json lint 2025-05-02 22:38:37 -05:00
package.nix lint 2025-05-02 22:38:37 -05:00
README.md lint 2025-05-02 22:38:37 -05:00
strip_exif.sh add exif stripping 2025-05-03 21:44:01 -05:00
treefmt.nix add treefmt 2025-05-02 22:37:18 -05:00

eleventy-base-blog v8

A starter repository showing how to build a blog with the Eleventy site generator (using the v2.0 release).

Getting Started

  1. Make a directory and navigate to it:
mkdir my-blog-name
cd my-blog-name
  1. Clone this Repository
git clone https://github.com/11ty/eleventy-base-blog.git .

Optional: Review eleventy.config.js and _data/metadata.js to configure the sites options and data.

  1. Install dependencies
npm install
  1. Run Eleventy

Generate a production-ready build to the _site folder:

npx @11ty/eleventy

Or build and host on a local development server:

npx @11ty/eleventy --serve

Or you can run debug mode to see all the internals.

Features

Demos

Deploy this to your own site

Deploy this Eleventy site in just a few clicks on these services:

Implementation Notes

  • content/about/index.md is an example of a content page.
  • content/blog/ has the blog posts but really they can live in any directory. They need only the posts tag to be included in the blog posts collection.
  • Use the eleventyNavigation key (via the Eleventy Navigation plugin) in your front matter to add a template to the top level site navigation. This is in use on content/index.njk and content/about/index.md.
  • Content can be in any template format (blog posts neednt exclusively be markdown, for example). Configure your projects supported templates in eleventy.config.js -> templateFormats.
  • The public folder in your input directory will be copied to the output folder (via addPassthroughCopy in the eleventy.config.js file). This means ./public/css/* will live at ./_site/css/* after your build completes.
  • Provides two content feeds:
    • content/feed/feed.njk
    • content/feed/json.njk
  • This project uses three Eleventy 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/postslist.njk is a Nunjucks include and is a reusable component used to display a list of all the posts. content/index.njk has an example of how to use it.

Content Security Policy

If your site enforces a Content Security Policy (as public-facing sites should), you have a few choices (pick one):

  1. In base.njk, remove <style>{% getBundle "css" %}</style> and uncomment <link rel="stylesheet" href="{% getBundleFileUrl "css" %}">
  2. Configure the server with the CSP directive style-src: 'unsafe-inline' (less secure).