A basic Jekyll site has a file structure similar to this:
In this tutorial we’ll take a high-level look at what these directories mean. Don’t stress if you don’t pick up these concepts now, we’ll go over these topics in-depth in later tutorials.
Holds the configuration for your Jekyll site. This is commonly used to:
- Set global variables on the site
- Configure collections or defaults
- Specify runtime variables we want to run every time
All our unpublished blog posts. This allows us to work on blog posts without publishing them to the live site.
Page snippets which can be included throughout our site. Includes are often used for page sections which are duplicated across the site like a newsletter subscribe form.
Templates which wrap around content. All the repeating HTML on our site like the header, footer and navigation typically live in a layout.
Contains our blog posts usually written in Markdown.
_data contains YAML, JSON and CSV files. The data in these files can be used throughout the Jekyll site.
Once Jekyll has built our site it puts the entire static site including all our assets in
This file is used by Jekyll’s incremental build feature to keep track of the files which have changed.
Files with front matter are processed and output to
_site on a build.