Hosted on Cloudflare Pages.
Install dependencies
npm install
Build and host on a local development server:
npm run start
Generate a production-ready build to the _site folder:
npx @11ty/eleventy
Or you can run debug mode to see all the internals.
Reference: https://github.com/11ty/eleventy-base-blog
content/about/index.mdis an example of a content page.content/blog/has the blog posts but really they can live in any directory. They need only thepoststag to be included in the blog posts collection.- Use the
eleventyNavigationkey (via the Eleventy Navigation plugin) in your front matter to add a template to the top level site navigation. This is in use oncontent/index.njkandcontent/about/index.md. - Content can be in any template format (blog posts needn’t exclusively be markdown, for example). Configure your project’s supported templates in
eleventy.config.js->templateFormats. - The
publicfolder in your input directory will be copied to the output folder (viaaddPassthroughCopyin theeleventy.config.jsfile). This means./public/css/*will live at./_site/css/*after your build completes. - This project uses three Eleventy Layouts:
_includes/layouts/base.njk: the top level HTML structure_includes/layouts/home.njk: the home page template (wrapped intobase.njk)_includes/layouts/post.njk: the blog post template (wrapped intobase.njk)
_includes/postslist.njkis a Nunjucks include and is a reusable component used to display a list of all the posts.content/index.njkhas an example of how to use it.
If your site enforces a Content Security Policy (as public-facing sites should), you have a few choices (pick one):
- In
base.njk, remove<style>{% getBundle "css" %}</style>and uncomment<link rel="stylesheet" href="{% getBundleFileUrl "css" %}"> - Configure the server with the CSP directive
style-src: 'unsafe-inline'(less secure).