Skip to content

Eleventy plugin to get recent Git commit time of a file, or a Eleventy collection.

License

Notifications You must be signed in to change notification settings

saneef/eleventy-plugin-git-commit-date

Repository files navigation

eleventy-plugin-git-commit-date

This Eleventy plugin provides two template filters:

Filter Description
getGitCommitDateFromPath Gets Git commit date from path.

Usage: {{ page.inputPath | getGitCommitDateFromPath }}
getCollectionNewestGitCommitDate Get Git commit date of the newest committed file from a collection.

Usage: {{ collections.all | getCollectionNewestGitCommitDate }}

🌏 This plugin is made primarily to populate <updated> fields in an RSS feed. Here is a blog post on how to use this plugin with eleventy-plugin-rss.

⚠️ Getting Git commit date is a bit slow (~50ms for each path). So, use it sparingly. It's recommended to call this filter within a production flag.

Usage

1. Install

npm install eleventy-plugin-git-commit-date

2. Add to Eleventy config

// .eleventy.js

const pluginGitCommitDate = require("eleventy-plugin-git-commit-date");

module.exports = function (eleventyConfig) {
  eleventyConfig.addPlugin(pluginGitCommitDate);
};

3. Use in templates

Using {{ page.inputPath | getGitCommitDateFromPath }} will display the git commit date of the file using a local time zone like:

Sun Dec 31 2017 18:00:00 GMT-0600 (Central Standard Time)

Using {{ collections.all | getCollectionNewestGitCommitDate }} will display the git commit date of newest file in the collection using a local time zone like:

Sun Dec 31 2017 18:00:00 GMT-0600 (Central Standard Time)

FAQs

When used with GitHub Pages, why are the last commit dates incorrect?

Only the last commit is checked out by GitHub Action Checkout by default. The commit dates for files changed in the previous commits will not be available. You can set the fetch-depth as 0 to get all the history from the Git repository.

   - name: Checkout
     uses: actions/checkout@v3
+    with:
+      fetch-depth: 0

Credits