Skip to content

Commit

Permalink
Simple aliases to built-ins (just a key in addExtension) should not…
Browse files Browse the repository at this point in the history
… use a CustomEngine. Fixes #3339
  • Loading branch information
zachleat committed Jun 27, 2024
1 parent d9655c0 commit 6d8e069
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 1 deletion.
7 changes: 6 additions & 1 deletion src/TemplateRender.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import EleventyBaseError from "./Errors/EleventyBaseError.js";
import EleventyExtensionMap from "./EleventyExtensionMap.js";
import TemplateEngineManager from "./Engines/TemplateEngineManager.js";
import CustomEngine from "./Engines/Custom.js";

// import debugUtil from "debug";
Expand Down Expand Up @@ -80,7 +81,11 @@ class TemplateRender {
this.extensionMap.config = this.eleventyConfig;

let extensionEntry = this.extensionMap.getExtensionEntry(name);
this._engineName = extensionEntry?.aliasKey || extensionEntry?.key;
let engineName = extensionEntry?.aliasKey || extensionEntry?.key;
if (TemplateEngineManager.isSimpleAlias(extensionEntry)) {
engineName = extensionEntry?.key;
}
this._engineName = engineName;

if (!extensionEntry || !this._engineName) {
throw new TemplateRenderUnknownEngineError(
Expand Down
18 changes: 18 additions & 0 deletions test/EleventyTest.js
Original file line number Diff line number Diff line change
Expand Up @@ -1335,6 +1335,24 @@ test("Custom Markdown Render with permalink, Issue #2780", async (t) => {
t.is(results[0].content.trim(), `<h1>Markdown?</h1>`);
});

test("Custom Markdown Render with permalink, Issue #2780 #3339", async (t) => {
let elev = new Eleventy("./test/stubs-virtual/", undefined, {
config: eleventyConfig => {
eleventyConfig.addTemplateFormats("markdown");
eleventyConfig.addExtension("markdown", {
key: "md"
});

eleventyConfig.addTemplate("filename-hi.markdown", `# Markdown?`, { permalink: "/{{ page.fileSlug }}.html" });
}
});

let results = await elev.toJSON();
t.is(results.length, 1);
t.is(results[0].url, `/filename-hi.html`);
t.is(results[0].content.trim(), `<h1>Markdown?</h1>`);
});

test("Test input/output conflicts (input overwrites output), Issue #3327", async (t) => {
let elev = new Eleventy("./test/stubs-virtual/", "./test/stubs-virtual/", {
config: eleventyConfig => {
Expand Down

0 comments on commit 6d8e069

Please sign in to comment.