Features Virtual pages
virtualPages generates Eleventy pages from a pages.yaml file in the input directory. Each entry's front-matter data is passed directly to addTemplate; if the entry has a permalink field it is used to derive the virtual slug (e.g. permalink: /about/ → .about/index.md), otherwise the array index is used.
How it works
import { readFileSync } from "fs";
import YAML from "js-yaml";
export default function (eleventyConfig) {
// Virtual pages
const pages = YAML.load(readFileSync(eleventyConfig.directories.input + "/pages.yaml", "utf8"));
for (const [index, data] of pages.entries()) {
const virtualSlug = data.permalink ? data.permalink + "index" : index;
// console.log(data, virtualSlug);
eleventyConfig.addTemplate("." + virtualSlug + ".md", "", data);
}
}
/anyblades/eleventy-blades/refs/heads/main/features/virtualPages.js