Global Data Files #
Your global data folder is controlled by the dir.data configuration option. All *.json and module.exports values from *.js files in this directory will be added into a global data object available to all templates.
Example #
Consider a JSON data file located at _data/userList.json with the following content:
[
"user1",
"user2"
]This data will be available to your templates under the userList key like this:
{
userList: [
"user1",
"user2"
]
}Folders #
If a data file is in a folder, the folder name will inform your global data object structure. For example, in our previous example, consider if our userList.json file was moved into a users folder at _data/users/userList.json.
Our data will be now available to your templates under a users key like so:
{
users: {
userList: [
"user1",
"user2"
]
}
}Using JavaScript instead of JSON #
Read more about using module.exports values in arbitrary JavaScript data files.
Sources of Data #
When the data is merged in the Eleventy Data Cascade, the order of priority for sources of data is (from highest priority to lowest):
- Computed Data
- Front Matter Data in a Template
Front Matter Data in Layouts(only in 0.x)- Template Data Files
- Directory Data Files (and ascending Parent Directories)
- Front Matter Data in Layouts (moved in 1.0)
- Configuration API Global Data
- Global Data Files ⬅
Other pages in Data Cascade:
- Front Matter Data
- Template & Directory Data Files
- Global Data Files
- Data Deep Merge
- Config Global Data
- Computed Data
