Skip to content

Commit

Permalink
Cherry pick to 1.x: Adds eleventy.version and eleventy.generator
Browse files Browse the repository at this point in the history
…to Eleventy supplied global data to fix #2293.
  • Loading branch information
zachleat committed Apr 15, 2022
1 parent e42467b commit 7ce1494
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 7 deletions.
12 changes: 9 additions & 3 deletions src/TemplateData.js
@@ -1,9 +1,11 @@
const pkg = require("../package.json");
const fs = require("fs");
const fastglob = require("fast-glob");
const path = require("path");
const lodashset = require("lodash/set");
const lodashget = require("lodash/get");
const lodashUniq = require("lodash/uniq");
const semver = require("semver");
const { TemplatePath } = require("@11ty/eleventy-utils");

const merge = require("./Util/Merge");
Expand Down Expand Up @@ -310,10 +312,14 @@ class TemplateData {
}
}

if (!("eleventy" in globalData)) {
globalData.eleventy = {};
}
// #2293 for meta[name=generator]
globalData.eleventy.version = semver.coerce(pkg.version).toString();
globalData.eleventy.generator = `Eleventy v${globalData.eleventy.version}`;

if (this.environmentVariables) {
if (!("eleventy" in globalData)) {
globalData.eleventy = {};
}
if (!("env" in globalData.eleventy)) {
globalData.eleventy.env = {};
}
Expand Down
25 changes: 21 additions & 4 deletions test/TemplateDataTest.js
Expand Up @@ -456,10 +456,8 @@ test("Parent directory for data (Issue #337)", async (t) => {

let data = await dataObj.getData();

t.deepEqual(data, {
xyz: {
hi: "bye",
},
t.deepEqual(data.xyz, {
hi: "bye",
});
});

Expand Down Expand Up @@ -519,3 +517,22 @@ test("addGlobalData complex key", async (t) => {
t.is(data.deep.nested.one, "first");
t.is(data.deep.nested.two, "second");
});

test("eleventy.version and eleventy.generator returned from data", async (t) => {
let eleventyConfig = new TemplateConfig();
eleventyConfig.userConfig.addGlobalData("deep.nested.one", () => "first");
eleventyConfig.userConfig.addGlobalData("deep.nested.two", () => "second");

let dataObj = new TemplateData("./test/stubs-empty/", eleventyConfig);
let data = await dataObj.getData();

let version = require("semver")
.coerce(require("../package.json").version)
.toString();

t.is(data.eleventy.version, version);
t.is(data.eleventy.generator, `Eleventy v${version}`);

t.is(data.deep.nested.one, "first");
t.is(data.deep.nested.two, "second");
});
2 changes: 2 additions & 0 deletions test/TemplateTest.js
Expand Up @@ -1362,6 +1362,7 @@ test("Data Cascade (Deep merge)", async (t) => {
let data = await tmpl.getData();
t.deepEqual(Object.keys(data).sort(), [
"datafile",
"eleventy",
"frontmatter",
"page",
"parent",
Expand Down Expand Up @@ -1397,6 +1398,7 @@ test("Data Cascade (Shallow merge)", async (t) => {
let data = await tmpl.getData();
t.deepEqual(Object.keys(data).sort(), [
"datafile",
"eleventy",
"frontmatter",
"page",
"parent",
Expand Down
Empty file added test/stubs-empty/.gitkeep
Empty file.

0 comments on commit 7ce1494

Please sign in to comment.