eleventyNavigation | ||||
---|---|---|---|---|
|
Data can be used on a template from multiple different sources.
{% include "datasources.md" %}
Here are a few data values we supply to your page that you can use in your templates:
pkg
: The local project’spackage.json
values.pagination
, when enabled using pagination in front matter. Read more about Pagination.collections
: Lists of all of your content, grouped by tags. Read more about Collectionspage
: Has information about the current page. See code block below forpage
contents. For example,page.url
is useful for finding the current page in a collection. Read more about Collections (look at Example: Navigation Links with anactive
class added for on the current page).
let page = {
// URL can be used in <a href> to link to other templates
url: "/current/page/myFile/",
// For permalinks: inputPath filename minus template file extension (New in v0.3.4)
fileSlug: "myFile",
// For permalinks: inputPath minus template file extension (New in v0.9.0)
filePathStem: "/current/page/myFile",
// JS Date Object for current page (used to sort collections)
date: new Date(),
// The path to the original source file for the template
// Note: this will include your input directory path!
inputPath: "./current/page/myFile.md",
// Depends on your output directory (the default is _site)
// You probably won’t use this: `url` is better.
outputPath: "./_site/current/page/myFile/index.html"
};
The fileSlug
variable is mapped from inputPath and is useful for creating your own clean permalinks.
inputPath |
page.fileSlug Result |
---|---|
"2018-01-01-myFile.md" |
"myFile" |
"myDir/myFile.md" |
"myFile" |
fileSlug
returns information on the parent directory if the file is an index
template:
inputPath |
page.fileSlug Result |
---|---|
"index.md" |
"" (empty) |
"myDir/index.md" |
"myDir" |
"myDir/2018-01-01-index.md" |
"myDir" |
The filePathStem
variable is mapped from inputPath and is useful if you’ve inherited a project that doesn’t use clean permalinks.
{% callout "info" %}Careful with this one and remember that Cool URI’s don’t change.{% endcallout %}
If you absolutely need a file extension on your output, you might use it like this:
{% codetitle "YAML Front Matter", "Syntax" %}
{% raw %}
---
permalink: "{{ page.filePathStem }}.html"
---
{% endraw %}
Example Output below is using the above permalink value.
inputPath |
page.filePathStem Result |
Example Output |
---|---|---|
"2018-01-01-myFile.md" |
"myFile" |
myFile.html |
"myDir/myFile.md" |
"myDir/myFile" |
myDir/myFile.html |
The date associated with the page. Defaults to the content’s file created date but can be overridden. Read more at Content Dates.