Skip to content

Instantly share code, notes, and snippets.

@pdehaan
Created October 8, 2022 00:49
Show Gist options
  • Save pdehaan/9cecf76da1b7313ecef149461f90777a to your computer and use it in GitHub Desktop.
Save pdehaan/9cecf76da1b7313ecef149461f90777a to your computer and use it in GitHub Desktop.
Eleventy event logger
const fs = require("node:fs/promises");
const { inspect } = require("node:util");
/**
* @typedef {import('@11ty/eleventy/src/UserConfig')} EleventyConfig
* @typedef {ReturnType<import('@11ty/eleventy/src/defaultConfig')>} EleventyReturnValue
* @type {(eleventyConfig: EleventyConfig) => EleventyReturnValue}
*/
module.exports = function (eleventyConfig) {
const eventData = [];
const events = [
"eleventy.config",
"eleventy.env",
"eleventy.extensionmap",
"eleventy.ignores",
"eleventy.directories",
"eleventy.globalDataFiles",
"beforeBuild",
"eleventy.before",
"eleventy.dataFiles",
"eleventy.engine.njk",
"afterBuild",
"eleventy.after",
];
for (const name of events) {
eleventyConfig.on(name, (...args) => eventData.push({$name: name, args: args.length === 1 ? args[0] : args }));
}
eleventyConfig.on("eleventy.after", async () => {
const txt = inspect(eventData, { depth:4, sorted:true });
await fs.writeFile("eleventy-events.txt", txt);
});
eleventyConfig.setQuietMode(true);
return {
dir: {
input: "src",
output: "www",
}
};
};
[
{
'$name': 'eleventy.config',
args: TemplateConfig {
config: {
additionalWatchTargets: [],
benchmarkManager: BenchmarkManager {
benchmarkGroups: [Object],
isVerbose: false,
start: 152.71041584014893
},
chokidarConfig: {},
dataDeepMerge: true,
dataExtensions: Map(0) {},
dataFilterSelectors: Set(0) {},
dataTemplateEngine: false,
dir: {
data: '_data',
includes: '_includes',
input: 'src',
output: 'www'
},
dynamicPermalinks: true,
ejsOptions: {},
events: AsyncEventEmitter {
[Symbol(kCapture)]: false,
_events: [Object: null prototype],
_eventsCount: 13,
_maxListeners: undefined
},
extensionMap: Set(0) {},
frontMatterParsingOptions: undefined,
globalData: {},
handlebarsHelpers: {
getCollectionItem: [Function (anonymous)],
getNextCollectionItem: [Function (anonymous)],
getPreviousCollectionItem: [Function (anonymous)],
log: [Function (anonymous)],
serverlessUrl: [Function (anonymous)],
slug: [Function (anonymous)],
slugify: [Function (anonymous)],
url: [Function (anonymous)]
},
handlebarsPairedShortcodes: {},
handlebarsShortcodes: {},
htmlOutputSuffix: '-o',
htmlTemplateEngine: 'liquid',
ignores: Set(2) { '**/node_modules/**', '.git/**' },
inputDir: 'src',
javascriptFunctions: {
getCollectionItem: [Function (anonymous)],
getNextCollectionItem: [Function (anonymous)],
getPreviousCollectionItem: [Function (anonymous)],
log: [Function (anonymous)],
serverlessUrl: [Function (anonymous)],
slug: [Function (anonymous)],
slugify: [Function (anonymous)],
url: [Function (anonymous)]
},
jsDataFileSuffix: '.11tydata',
keys: {
computed: 'eleventyComputed',
engineOverride: 'templateEngineOverride',
layout: 'layout',
package: 'pkg',
permalink: 'permalink',
permalinkRoot: 'permalinkBypassOutputDir'
},
layoutAliases: {},
libraryAmendments: {},
libraryOverrides: {},
linters: {},
liquidFilters: {
getCollectionItem: [Function (anonymous)],
getNextCollectionItem: [Function (anonymous)],
getPreviousCollectionItem: [Function (anonymous)],
log: [Function (anonymous)],
serverlessUrl: [Function (anonymous)],
slug: [Function (anonymous)],
slugify: [Function (anonymous)],
url: [Function (anonymous)]
},
liquidOptions: {},
liquidPairedShortcodes: {},
liquidShortcodes: {},
liquidTags: {},
markdownHighlighter: null,
markdownTemplateEngine: 'liquid',
nunjucksAsyncFilters: {},
nunjucksAsyncPairedShortcodes: {},
nunjucksAsyncShortcodes: {},
nunjucksEnvironmentOptions: {
autoescape: true,
dev: false,
lstripBlocks: false,
throwOnUndefined: false,
trimBlocks: false
},
nunjucksFilters: {
getCollectionItem: [Function (anonymous)],
getNextCollectionItem: [Function (anonymous)],
getPreviousCollectionItem: [Function (anonymous)],
log: [Function (anonymous)],
serverlessUrl: [Function (anonymous)],
slug: [Function (anonymous)],
slugify: [Function (anonymous)],
url: [Function (anonymous)]
},
nunjucksGlobals: {},
nunjucksPairedShortcodes: {},
nunjucksPrecompiledTemplates: {},
nunjucksShortcodes: {},
nunjucksTags: {},
passthroughCopies: {},
pathPrefix: '/',
plugins: [],
precompiledCollections: {},
pugOptions: {},
quietMode: true,
serverOptions: {},
serverPassthroughCopyBehavior: 'passthrough',
templateFormats: [
'liquid', 'ejs',
'md', 'hbs',
'mustache', 'haml',
'pug', 'njk',
'html', '11ty.js'
],
transforms: {},
urlTransforms: [],
useGitIgnore: true,
useTemplateCache: true,
watchJavaScriptDependencies: true,
watchThrottleWaitTime: 0
},
customRootConfig: null,
hasConfigMerged: true,
logger: ConsoleLogger {
_isVerbose: false,
outputStream: Readable {
[Symbol(kCapture)]: false,
_events: [Object: null prototype] {},
_eventsCount: 0,
_maxListeners: undefined,
_readableState: [ReadableState]
}
},
overrides: { pathPrefix: '/' },
projectConfigPaths: [ '.eleventy.js', 'eleventy.config.js', 'eleventy.config.cjs' ],
rootConfig: {
dataTemplateEngine: false,
dir: {
data: '_data',
includes: '_includes',
input: '.',
output: '_site'
},
handlebarsHelpers: {},
htmlOutputSuffix: '-o',
htmlTemplateEngine: 'liquid',
jsDataFileSuffix: '.11tydata',
keys: {
computed: 'eleventyComputed',
engineOverride: 'templateEngineOverride',
layout: 'layout',
package: 'pkg',
permalink: 'permalink',
permalinkRoot: 'permalinkBypassOutputDir'
},
markdownTemplateEngine: 'liquid',
nunjucksFilters: {},
pathPrefix: '/',
templateFormats: [
'liquid', 'ejs',
'md', 'hbs',
'mustache', 'haml',
'pug', 'njk',
'html', '11ty.js'
]
},
userConfig: UserConfig {
DateTime: [class DateTime],
_pluginExecution: true,
activeNamespace: '',
additionalWatchTargets: [],
benchmarkManager: BenchmarkManager {
benchmarkGroups: [Object],
isVerbose: false,
start: 152.71041584014893
},
benchmarks: { aggregate: [BenchmarkGroup], config: [BenchmarkGroup] },
chokidarConfig: {},
collections: {},
dataDeepMerge: true,
dataExtensions: Map(0) {},
dataFilterSelectors: Set(0) {},
dir: {
data: '_data',
includes: '_includes',
input: 'src',
output: 'www'
},
dynamicPermalinks: true,
ejsOptions: {},
events: AsyncEventEmitter {
[Symbol(kCapture)]: false,
_events: [Object: null prototype],
_eventsCount: 13,
_maxListeners: undefined
},
extensionMap: Set(0) {},
globalData: {},
handlebarsHelpers: {
getCollectionItem: [Function (anonymous)],
getNextCollectionItem: [Function (anonymous)],
getPreviousCollectionItem: [Function (anonymous)],
log: [Function (anonymous)],
serverlessUrl: [Function (anonymous)],
slug: [Function (anonymous)],
slugify: [Function (anonymous)],
url: [Function (anonymous)]
},
handlebarsPairedShortcodes: {},
handlebarsShortcodes: {},
ignores: Set(2) { '**/node_modules/**', '.git/**' },
javascriptFunctions: {
getCollectionItem: [Function (anonymous)],
getNextCollectionItem: [Function (anonymous)],
getPreviousCollectionItem: [Function (anonymous)],
log: [Function (anonymous)],
serverlessUrl: [Function (anonymous)],
slug: [Function (anonymous)],
slugify: [Function (anonymous)],
url: [Function (anonymous)]
},
layoutAliases: {},
libraryAmendments: {},
libraryOverrides: {},
linters: {},
liquidFilters: {
getCollectionItem: [Function (anonymous)],
getNextCollectionItem: [Function (anonymous)],
getPreviousCollectionItem: [Function (anonymous)],
log: [Function (anonymous)],
serverlessUrl: [Function (anonymous)],
slug: [Function (anonymous)],
slugify: [Function (anonymous)],
url: [Function (anonymous)]
},
liquidOptions: {},
liquidPairedShortcodes: {},
liquidShortcodes: {},
liquidTags: {},
logger: ConsoleLogger { _isVerbose: false, outputStream: [Readable] },
markdownHighlighter: null,
nunjucksAsyncFilters: {},
nunjucksAsyncPairedShortcodes: {},
nunjucksAsyncShortcodes: {},
nunjucksEnvironmentOptions: {},
nunjucksFilters: {
getCollectionItem: [Function (anonymous)],
getNextCollectionItem: [Function (anonymous)],
getPreviousCollectionItem: [Function (anonymous)],
log: [Function (anonymous)],
serverlessUrl: [Function (anonymous)],
slug: [Function (anonymous)],
slugify: [Function (anonymous)],
url: [Function (anonymous)]
},
nunjucksGlobals: {},
nunjucksPairedShortcodes: {},
nunjucksPrecompiledTemplates: {},
nunjucksShortcodes: {},
nunjucksTags: {},
passthroughCopies: {},
pathPrefix: '/',
plugins: [],
precompiledCollections: {},
pugOptions: {},
quietMode: true,
serverOptions: {},
serverPassthroughCopyBehavior: 'passthrough',
templateFormats: undefined,
transforms: {},
urlTransforms: [],
useGitIgnore: true,
useTemplateCache: true,
watchJavaScriptDependencies: true,
watchThrottleWaitTime: 0
},
verbose: false
}
},
{
'$name': 'eleventy.env',
args: {
config: '/private/tmp/11ty-emit-njk/.eleventy.js',
root: '/private/tmp/11ty-emit-njk',
source: 'cli'
}
},
{
'$name': 'eleventy.extensionmap',
args: EleventyExtensionMap {
_config: {
additionalWatchTargets: [],
benchmarkManager: BenchmarkManager {
benchmarkGroups: [Object],
isVerbose: false,
start: 152.71041584014893
},
chokidarConfig: {},
dataDeepMerge: true,
dataExtensions: Map(0) {},
dataFilterSelectors: Set(0) {},
dataTemplateEngine: false,
dir: {
data: '_data',
includes: '_includes',
input: 'src',
output: 'www'
},
dynamicPermalinks: true,
ejsOptions: {},
events: AsyncEventEmitter {
[Symbol(kCapture)]: false,
_events: [Object: null prototype],
_eventsCount: 13,
_maxListeners: undefined
},
extensionMap: Set(0) {},
frontMatterParsingOptions: undefined,
globalData: {},
handlebarsHelpers: {
getCollectionItem: [Function (anonymous)],
getNextCollectionItem: [Function (anonymous)],
getPreviousCollectionItem: [Function (anonymous)],
log: [Function (anonymous)],
serverlessUrl: [Function (anonymous)],
slug: [Function (anonymous)],
slugify: [Function (anonymous)],
url: [Function (anonymous)]
},
handlebarsPairedShortcodes: {},
handlebarsShortcodes: {},
htmlOutputSuffix: '-o',
htmlTemplateEngine: 'liquid',
ignores: Set(2) { '**/node_modules/**', '.git/**' },
inputDir: 'src',
javascriptFunctions: {
getCollectionItem: [Function (anonymous)],
getNextCollectionItem: [Function (anonymous)],
getPreviousCollectionItem: [Function (anonymous)],
log: [Function (anonymous)],
serverlessUrl: [Function (anonymous)],
slug: [Function (anonymous)],
slugify: [Function (anonymous)],
url: [Function (anonymous)]
},
jsDataFileSuffix: '.11tydata',
keys: {
computed: 'eleventyComputed',
engineOverride: 'templateEngineOverride',
layout: 'layout',
package: 'pkg',
permalink: 'permalink',
permalinkRoot: 'permalinkBypassOutputDir'
},
layoutAliases: {},
libraryAmendments: {},
libraryOverrides: {},
linters: {},
liquidFilters: {
getCollectionItem: [Function (anonymous)],
getNextCollectionItem: [Function (anonymous)],
getPreviousCollectionItem: [Function (anonymous)],
log: [Function (anonymous)],
serverlessUrl: [Function (anonymous)],
slug: [Function (anonymous)],
slugify: [Function (anonymous)],
url: [Function (anonymous)]
},
liquidOptions: {},
liquidPairedShortcodes: {},
liquidShortcodes: {},
liquidTags: {},
markdownHighlighter: null,
markdownTemplateEngine: 'liquid',
nunjucksAsyncFilters: {},
nunjucksAsyncPairedShortcodes: {},
nunjucksAsyncShortcodes: {},
nunjucksEnvironmentOptions: {
autoescape: true,
dev: false,
lstripBlocks: false,
throwOnUndefined: false,
trimBlocks: false
},
nunjucksFilters: {
getCollectionItem: [Function (anonymous)],
getNextCollectionItem: [Function (anonymous)],
getPreviousCollectionItem: [Function (anonymous)],
log: [Function (anonymous)],
serverlessUrl: [Function (anonymous)],
slug: [Function (anonymous)],
slugify: [Function (anonymous)],
url: [Function (anonymous)]
},
nunjucksGlobals: {},
nunjucksPairedShortcodes: {},
nunjucksPrecompiledTemplates: {},
nunjucksShortcodes: {},
nunjucksTags: {},
passthroughCopies: {},
pathPrefix: '/',
plugins: [],
precompiledCollections: {},
pugOptions: {},
quietMode: true,
serverOptions: {},
serverPassthroughCopyBehavior: 'passthrough',
templateFormats: [
'liquid', 'ejs',
'md', 'hbs',
'mustache', 'haml',
'pug', 'njk',
'html', '11ty.js'
],
transforms: {},
urlTransforms: [],
useGitIgnore: true,
useTemplateCache: true,
watchJavaScriptDependencies: true,
watchThrottleWaitTime: 0
},
_engineManager: TemplateEngineManager {
_keyToClassNameMap: {
'11ty.js': 'JavaScript',
ejs: 'Ejs',
haml: 'Haml',
hbs: 'Handlebars',
html: 'Html',
liquid: 'Liquid',
md: 'Markdown',
mustache: 'Mustache',
njk: 'Nunjucks',
pug: 'Pug'
},
config: {
additionalWatchTargets: [],
benchmarkManager: [BenchmarkManager],
chokidarConfig: {},
dataDeepMerge: true,
dataExtensions: Map(0) {},
dataFilterSelectors: Set(0) {},
dataTemplateEngine: false,
dir: [Object],
dynamicPermalinks: true,
ejsOptions: {},
events: [AsyncEventEmitter],
extensionMap: Set(0) {},
frontMatterParsingOptions: undefined,
globalData: {},
handlebarsHelpers: [Object],
handlebarsPairedShortcodes: {},
handlebarsShortcodes: {},
htmlOutputSuffix: '-o',
htmlTemplateEngine: 'liquid',
ignores: [Set],
inputDir: 'src',
javascriptFunctions: [Object],
jsDataFileSuffix: '.11tydata',
keys: [Object],
layoutAliases: {},
libraryAmendments: {},
libraryOverrides: {},
linters: {},
liquidFilters: [Object],
liquidOptions: {},
liquidPairedShortcodes: {},
liquidShortcodes: {},
liquidTags: {},
markdownHighlighter: null,
markdownTemplateEngine: 'liquid',
nunjucksAsyncFilters: {},
nunjucksAsyncPairedShortcodes: {},
nunjucksAsyncShortcodes: {},
nunjucksEnvironmentOptions: [Object],
nunjucksFilters: [Object],
nunjucksGlobals: {},
nunjucksPairedShortcodes: {},
nunjucksPrecompiledTemplates: {},
nunjucksShortcodes: {},
nunjucksTags: {},
passthroughCopies: {},
pathPrefix: '/',
plugins: [],
precompiledCollections: {},
pugOptions: {},
quietMode: true,
serverOptions: {},
serverPassthroughCopyBehavior: 'passthrough',
templateFormats: [Array],
transforms: {},
urlTransforms: [],
useGitIgnore: true,
useTemplateCache: true,
watchJavaScriptDependencies: true,
watchThrottleWaitTime: 0
},
engineCache: { njk: [Nunjucks] }
},
_extensionToKeyMap: {
'11ty.cjs': '11ty.js',
'11ty.js': '11ty.js',
ejs: 'ejs',
haml: 'haml',
hbs: 'hbs',
html: 'html',
liquid: 'liquid',
md: 'md',
mustache: 'mustache',
njk: 'njk',
pug: 'pug'
},
_spiderJsDepsCache: {},
eleventyConfig: TemplateConfig {
config: {
additionalWatchTargets: [],
benchmarkManager: [BenchmarkManager],
chokidarConfig: {},
dataDeepMerge: true,
dataExtensions: Map(0) {},
dataFilterSelectors: Set(0) {},
dataTemplateEngine: false,
dir: [Object],
dynamicPermalinks: true,
ejsOptions: {},
events: [AsyncEventEmitter],
extensionMap: Set(0) {},
frontMatterParsingOptions: undefined,
globalData: {},
handlebarsHelpers: [Object],
handlebarsPairedShortcodes: {},
handlebarsShortcodes: {},
htmlOutputSuffix: '-o',
htmlTemplateEngine: 'liquid',
ignores: [Set],
inputDir: 'src',
javascriptFunctions: [Object],
jsDataFileSuffix: '.11tydata',
keys: [Object],
layoutAliases: {},
libraryAmendments: {},
libraryOverrides: {},
linters: {},
liquidFilters: [Object],
liquidOptions: {},
liquidPairedShortcodes: {},
liquidShortcodes: {},
liquidTags: {},
markdownHighlighter: null,
markdownTemplateEngine: 'liquid',
nunjucksAsyncFilters: {},
nunjucksAsyncPairedShortcodes: {},
nunjucksAsyncShortcodes: {},
nunjucksEnvironmentOptions: [Object],
nunjucksFilters: [Object],
nunjucksGlobals: {},
nunjucksPairedShortcodes: {},
nunjucksPrecompiledTemplates: {},
nunjucksShortcodes: {},
nunjucksTags: {},
passthroughCopies: {},
pathPrefix: '/',
plugins: [],
precompiledCollections: {},
pugOptions: {},
quietMode: true,
serverOptions: {},
serverPassthroughCopyBehavior: 'passthrough',
templateFormats: [Array],
transforms: {},
urlTransforms: [],
useGitIgnore: true,
useTemplateCache: true,
watchJavaScriptDependencies: true,
watchThrottleWaitTime: 0
},
customRootConfig: null,
hasConfigMerged: true,
logger: ConsoleLogger { _isVerbose: false, outputStream: [Readable] },
overrides: { pathPrefix: '/' },
projectConfigPaths: [ '.eleventy.js', 'eleventy.config.js', 'eleventy.config.cjs' ],
rootConfig: {
dataTemplateEngine: false,
dir: [Object],
handlebarsHelpers: {},
htmlOutputSuffix: '-o',
htmlTemplateEngine: 'liquid',
jsDataFileSuffix: '.11tydata',
keys: [Object],
markdownTemplateEngine: 'liquid',
nunjucksFilters: {},
pathPrefix: '/',
templateFormats: [Array]
},
userConfig: UserConfig {
DateTime: [class DateTime],
_pluginExecution: true,
activeNamespace: '',
additionalWatchTargets: [],
benchmarkManager: [BenchmarkManager],
benchmarks: [Object],
chokidarConfig: {},
collections: {},
dataDeepMerge: true,
dataExtensions: Map(0) {},
dataFilterSelectors: Set(0) {},
dir: [Object],
dynamicPermalinks: true,
ejsOptions: {},
events: [AsyncEventEmitter],
extensionMap: Set(0) {},
globalData: {},
handlebarsHelpers: [Object],
handlebarsPairedShortcodes: {},
handlebarsShortcodes: {},
ignores: [Set],
javascriptFunctions: [Object],
layoutAliases: {},
libraryAmendments: {},
libraryOverrides: {},
linters: {},
liquidFilters: [Object],
liquidOptions: {},
liquidPairedShortcodes: {},
liquidShortcodes: {},
liquidTags: {},
logger: [ConsoleLogger],
markdownHighlighter: null,
nunjucksAsyncFilters: {},
nunjucksAsyncPairedShortcodes: {},
nunjucksAsyncShortcodes: {},
nunjucksEnvironmentOptions: {},
nunjucksFilters: [Object],
nunjucksGlobals: {},
nunjucksPairedShortcodes: {},
nunjucksPrecompiledTemplates: {},
nunjucksShortcodes: {},
nunjucksTags: {},
passthroughCopies: {},
pathPrefix: '/',
plugins: [],
precompiledCollections: {},
pugOptions: {},
quietMode: true,
serverOptions: {},
serverPassthroughCopyBehavior: 'passthrough',
templateFormats: undefined,
transforms: {},
urlTransforms: [],
useGitIgnore: true,
useTemplateCache: true,
watchJavaScriptDependencies: true,
watchThrottleWaitTime: 0
},
verbose: false
},
formatKeys: [
'liquid', 'ejs',
'md', 'hbs',
'mustache', 'haml',
'pug', 'njk',
'html', '11ty.js'
],
passthroughCopyKeys: [],
unfilteredFormatKeys: [
'liquid', 'ejs',
'md', 'hbs',
'mustache', 'haml',
'pug', 'njk',
'html', '11ty.js'
],
validTemplateLanguageKeys: [
'liquid', 'ejs',
'md', 'hbs',
'mustache', 'haml',
'pug', 'njk',
'html', '11ty.js'
]
}
},
{
'$name': 'eleventy.ignores',
args: [
'./**/node_modules/**',
'./.git/**',
'./www/**',
'./src/_includes/**',
'./src/_data/**'
]
},
{
'$name': 'eleventy.directories',
args: {
data: 'src/_data',
includes: 'src/_includes',
input: 'src',
layouts: undefined,
output: 'www'
}
},
{
'$name': 'eleventy.globalDataFiles',
args: [ './src/_data/site.js' ]
},
{
'$name': 'beforeBuild',
args: {
dir: {
data: '_data',
includes: '_includes',
input: 'src',
output: 'www'
},
inputDir: 'src',
outputMode: 'fs',
results: [
{
content: '\n<h1>THIS IS A TITLE</h1>\n',
inputPath: './src/index.njk',
outputPath: 'www/index.html',
url: '/'
},
{
content: '\n' +
'<header>\n' +
" <h1>I'm a header</h1>\n" +
' <a href="https://site.lol/">DeFaULt TiTLe</a>\n' +
'</header>\n' +
'<h1>Page Two</h1>\n',
inputPath: './src/page2.njk',
outputPath: 'www/page2/index.html',
url: '/page2/'
}
],
runMode: 'build'
}
},
{
'$name': 'eleventy.before',
args: {
dir: {
data: '_data',
includes: '_includes',
input: 'src',
output: 'www'
},
inputDir: 'src',
outputMode: 'fs',
results: [
{
content: '\n<h1>THIS IS A TITLE</h1>\n',
inputPath: './src/index.njk',
outputPath: 'www/index.html',
url: '/'
},
{
content: '\n' +
'<header>\n' +
" <h1>I'm a header</h1>\n" +
' <a href="https://site.lol/">DeFaULt TiTLe</a>\n' +
'</header>\n' +
'<h1>Page Two</h1>\n',
inputPath: './src/page2.njk',
outputPath: 'www/page2/index.html',
url: '/page2/'
}
],
runMode: 'build'
}
},
{ '$name': 'eleventy.dataFiles', args: [] },
{ '$name': 'eleventy.dataFiles', args: [] },
{
'$name': 'eleventy.engine.njk',
args: {
environment: Environment {
[Symbol(kCapture)]: false,
_events: [Object: null prototype] {},
_eventsCount: 0,
_maxListeners: undefined,
asyncFilters: [],
extensions: { setAsync: [PairedShortcodeFunction] },
extensionsList: [ [PairedShortcodeFunction] ],
filters: {
abs: [Function: abs],
batch: [Function: batch],
capitalize: [Function: capitalize],
center: [Function: center],
d: [Function: default_],
default: [Function: default_],
dictsort: [Function: dictsort],
dump: [Function: dump],
e: [Function: escape],
escape: [Function: escape],
first: [Function: first],
float: [Function: float],
forceescape: [Function: forceescape],
getCollectionItem: [Function (anonymous)],
getNextCollectionItem: [Function (anonymous)],
getPreviousCollectionItem: [Function (anonymous)],
groupby: [Function: groupby],
indent: [Function: indent],
int: [Function: macro],
join: [Function: join],
last: [Function: last],
length: [Function: lengthFilter],
list: [Function: list],
log: [Function (anonymous)],
lower: [Function: lower],
nl2br: [Function: nl2br],
random: [Function: random],
reject: [Function: filter],
rejectattr: [Function: rejectattr],
replace: [Function: replace],
reverse: [Function: reverse],
round: [Function: round],
safe: [Function: safe],
select: [Function: filter],
selectattr: [Function: selectattr],
serverlessUrl: [Function (anonymous)],
slice: [Function: slice],
slug: [Function (anonymous)],
slugify: [Function (anonymous)],
sort: [Function: macro],
string: [Function: string],
striptags: [Function: striptags],
sum: [Function: sum],
title: [Function: title],
trim: [Function: trim],
truncate: [Function: truncate],
upper: [Function: upper],
url: [Function (anonymous)],
urlencode: [Function: urlencode],
urlize: [Function: urlize],
wordcount: [Function: wordcount]
},
globals: {
cycler: [Function: cycler],
joiner: [Function: joiner],
range: [Function: range]
},
loaders: [ [FileSystemLoader] ],
opts: {
autoescape: true,
dev: false,
lstripBlocks: false,
throwOnUndefined: false,
trimBlocks: false
},
tests: {
callable: [Function: callable],
defined: [Function: defined],
divisibleby: [Function: divisibleby],
eq: [Function: equalto],
equalto: [Function: equalto],
escaped: [Function: escaped],
even: [Function: even],
falsy: [Function: falsy],
ge: [Function: ge],
greaterthan: [Function: greaterthan],
gt: [Function: greaterthan],
iterable: [Function: iterable],
le: [Function: le],
lessthan: [Function: lessthan],
lower: [Function: lower],
lt: [Function: lessthan],
mapping: [Function: mapping],
ne: [Function: ne],
null: [Function: nullTest],
number: [Function: number],
odd: [Function: odd],
sameas: [Function: equalto],
string: [Function: string],
truthy: [Function: truthy],
undefined: [Function: undefinedTest],
upper: [Function: upper]
}
},
nunjucks: {
Environment: [Function: Environment],
FileSystemLoader: [Function: FileSystemLoader],
Loader: [Function: Loader],
NodeResolveLoader: [Function: NodeResolveLoader],
PrecompiledLoader: [Function: PrecompiledLoader],
Template: [Function: Template],
WebLoader: undefined,
compile: [Function: compile],
compiler: {
Compiler: [Function: Compiler],
compile: [Function: compile]
},
configure: [Function: configure],
installJinjaCompat: [Function: installCompat],
lexer: {
TOKEN_BLOCK_END: 'block-end',
TOKEN_BLOCK_START: 'block-start',
TOKEN_BOOLEAN: 'boolean',
TOKEN_COLON: 'colon',
TOKEN_COMMA: 'comma',
TOKEN_COMMENT: 'comment',
TOKEN_DATA: 'data',
TOKEN_FLOAT: 'float',
TOKEN_INT: 'int',
TOKEN_LEFT_BRACKET: 'left-bracket',
TOKEN_LEFT_CURLY: 'left-curly',
TOKEN_LEFT_PAREN: 'left-paren',
TOKEN_NONE: 'none',
TOKEN_OPERATOR: 'operator',
TOKEN_PIPE: 'pipe',
TOKEN_REGEX: 'regex',
TOKEN_RIGHT_BRACKET: 'right-bracket',
TOKEN_RIGHT_CURLY: 'right-curly',
TOKEN_RIGHT_PAREN: 'right-paren',
TOKEN_SPECIAL: 'special',
TOKEN_STRING: 'string',
TOKEN_SYMBOL: 'symbol',
TOKEN_TILDE: 'tilde',
TOKEN_VARIABLE_END: 'variable-end',
TOKEN_VARIABLE_START: 'variable-start',
TOKEN_WHITESPACE: 'whitespace',
lex: [Function: lex]
},
lib: {
TemplateError: [Function: TemplateError],
_assign: [Function: extend],
_entries: [Function: _entries],
_prettifyError: [Function: _prettifyError],
_values: [Function: _values],
asyncFor: [Function: asyncFor],
asyncIter: [Function: asyncIter],
each: [Function: each],
escape: [Function: escape],
extend: [Function: extend],
getAttrGetter: [Function: getAttrGetter],
groupBy: [Function: groupBy],
hasOwnProp: [Function: hasOwnProp],
inOperator: [Function: inOperator],
indexOf: [Function: indexOf],
isArray: [Function: isArray],
isFunction: [Function: isFunction],
isObject: [Function: isObject],
isString: [Function: isString],
keys: [Function: keys_],
map: [Function: map],
repeat: [Function: repeat],
toArray: [Function: toArray],
without: [Function: without]
},
nodes: {
Add: [Function: subclass],
And: [Function: subclass],
Array: [Function: subclass],
AsyncAll: [Function: subclass],
AsyncEach: [Function: subclass],
BinOp: [Function: subclass],
Block: [Function: subclass],
CallExtension: [Function: subclass],
CallExtensionAsync: [Function: subclass],
Caller: [Function: subclass],
Capture: [Function: subclass],
Case: [Function: subclass],
Compare: [Function: subclass],
CompareOperand: [Function: subclass],
Concat: [Function: subclass],
Dict: [Function: subclass],
Div: [Function: subclass],
Extends: [Function: subclass],
Filter: [Function: subclass],
FilterAsync: [Function: subclass],
FloorDiv: [Function: subclass],
For: [Function: subclass],
FromImport: [Function: FromImport],
FunCall: [Function: subclass],
Group: [Function: subclass],
If: [Function: subclass],
IfAsync: [Function: subclass],
Import: [Function: subclass],
In: [Function: subclass],
Include: [Function: subclass],
InlineIf: [Function: subclass],
Is: [Function: subclass],
KeywordArgs: [Function: subclass],
Literal: [Function: subclass],
LookupVal: [Function: subclass],
Macro: [Function: subclass],
Mod: [Function: subclass],
Mul: [Function: subclass],
Neg: [Function: subclass],
Node: [Function: Node],
NodeList: [Function: NodeList],
Not: [Function: subclass],
Or: [Function: subclass],
Output: [Function: subclass],
Pair: [Function: subclass],
Pos: [Function: subclass],
Pow: [Function: subclass],
Root: [Function: subclass],
Set: [Function: subclass],
Sub: [Function: subclass],
Super: [Function: subclass],
Switch: [Function: subclass],
Symbol: [Function: subclass],
TemplateData: [Function: subclass],
Value: [Function: Value],
printNodes: [Function: printNodes]
},
parser: { Parser: [Function: Parser], parse: [Function: parse] },
precompile: [Function: precompile],
precompileString: [Function: precompileString],
render: [Function: render],
renderString: [Function: renderString],
reset: [Function: reset],
runtime: {
Frame: [Function: Frame],
SafeString: [Function: SafeString],
asyncAll: [Function: asyncAll],
asyncEach: [Function: asyncEach],
callWrap: [Function: callWrap],
contextOrFrameLookup: [Function: contextOrFrameLookup],
copySafeness: [Function: copySafeness],
ensureDefined: [Function: ensureDefined],
fromIterator: [Function: fromIterator],
handleError: [Function: handleError],
inOperator: [Function: inOperator],
isArray: [Function: isArray],
keys: [Function: keys_],
makeKeywordArgs: [Function: makeKeywordArgs],
makeMacro: [Function: makeMacro],
markSafe: [Function: markSafe],
memberLookup: [Function: memberLookup],
numArgs: [Function: numArgs],
suppressValue: [Function: suppressValue]
}
}
}
},
{
'$name': 'afterBuild',
args: {
dir: {
data: '_data',
includes: '_includes',
input: 'src',
output: 'www'
},
inputDir: 'src',
outputMode: 'fs',
results: [
{
content: '\n<h1>THIS IS A TITLE</h1>\n',
inputPath: './src/index.njk',
outputPath: 'www/index.html',
url: '/'
},
{
content: '\n' +
'<header>\n' +
" <h1>I'm a header</h1>\n" +
' <a href="https://site.lol/">DeFaULt TiTLe</a>\n' +
'</header>\n' +
'<h1>Page Two</h1>\n',
inputPath: './src/page2.njk',
outputPath: 'www/page2/index.html',
url: '/page2/'
}
],
runMode: 'build'
}
},
{
'$name': 'eleventy.after',
args: {
dir: {
data: '_data',
includes: '_includes',
input: 'src',
output: 'www'
},
inputDir: 'src',
outputMode: 'fs',
results: [
{
content: '\n<h1>THIS IS A TITLE</h1>\n',
inputPath: './src/index.njk',
outputPath: 'www/index.html',
url: '/'
},
{
content: '\n' +
'<header>\n' +
" <h1>I'm a header</h1>\n" +
' <a href="https://site.lol/">DeFaULt TiTLe</a>\n' +
'</header>\n' +
'<h1>Page Two</h1>\n',
inputPath: './src/page2.njk',
outputPath: 'www/page2/index.html',
url: '/page2/'
}
],
runMode: 'build'
}
}
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment