93 lines
2.9 KiB
JavaScript
93 lines
2.9 KiB
JavaScript
|
const urlFilter = require("./Filters/Url");
|
|||
|
const serverlessUrlFilter = require("./Filters/ServerlessUrl");
|
|||
|
const slugFilter = require("./Filters/Slug");
|
|||
|
const slugifyFilter = require("./Filters/Slugify");
|
|||
|
const getLocaleCollectionItem = require("./Filters/GetLocaleCollectionItem");
|
|||
|
const getCollectionItemIndex = require("./Filters/GetCollectionItemIndex");
|
|||
|
|
|||
|
module.exports = function (config) {
|
|||
|
let templateConfig = this;
|
|||
|
|
|||
|
config.addFilter("slug", slugFilter);
|
|||
|
config.addFilter("slugify", slugifyFilter);
|
|||
|
|
|||
|
// Add pathPrefix manually to a URL
|
|||
|
config.addFilter("url", function addPathPrefix(url, pathPrefixOverride) {
|
|||
|
let pathPrefix;
|
|||
|
if (pathPrefixOverride && typeof pathPrefixOverride === "string") {
|
|||
|
pathPrefix = pathPrefixOverride;
|
|||
|
} else {
|
|||
|
pathPrefix = templateConfig.getPathPrefix();
|
|||
|
}
|
|||
|
|
|||
|
return urlFilter.call(this, url, pathPrefix);
|
|||
|
});
|
|||
|
|
|||
|
config.addFilter("log", (input, ...messages) => {
|
|||
|
console.log(input, ...messages);
|
|||
|
return input;
|
|||
|
});
|
|||
|
|
|||
|
config.addFilter("serverlessUrl", serverlessUrlFilter);
|
|||
|
|
|||
|
config.addFilter("getCollectionItemIndex", function (collection, pageOverride) {
|
|||
|
return getCollectionItemIndex.call(this, collection, pageOverride);
|
|||
|
});
|
|||
|
|
|||
|
config.addFilter("getCollectionItem", function (collection, pageOverride, langCode) {
|
|||
|
return getLocaleCollectionItem.call(this, config, collection, pageOverride, langCode, 0);
|
|||
|
});
|
|||
|
config.addFilter("getPreviousCollectionItem", function (collection, pageOverride, langCode) {
|
|||
|
return getLocaleCollectionItem.call(this, config, collection, pageOverride, langCode, -1);
|
|||
|
});
|
|||
|
config.addFilter("getNextCollectionItem", function (collection, pageOverride, langCode) {
|
|||
|
return getLocaleCollectionItem.call(this, config, collection, pageOverride, langCode, 1);
|
|||
|
});
|
|||
|
|
|||
|
return {
|
|||
|
templateFormats: [
|
|||
|
"liquid",
|
|||
|
"ejs",
|
|||
|
"md",
|
|||
|
"hbs",
|
|||
|
"mustache",
|
|||
|
"haml",
|
|||
|
"pug",
|
|||
|
"njk",
|
|||
|
"html",
|
|||
|
"11ty.js",
|
|||
|
],
|
|||
|
// if your site lives in a subdirectory, change this
|
|||
|
pathPrefix: "/",
|
|||
|
markdownTemplateEngine: "liquid",
|
|||
|
htmlTemplateEngine: "liquid",
|
|||
|
htmlOutputSuffix: "-o",
|
|||
|
|
|||
|
// Renamed from `jsDataFileSuffix` in 2.0 (and swapped to an Array)
|
|||
|
// If you remove "" we won’t look for dir/dir.json or file.json
|
|||
|
dataFileSuffixes: [".11tydata", ""],
|
|||
|
|
|||
|
// "index" will look for `directory/index.*` directory data files instead of `directory/directory.*`
|
|||
|
dataFileDirBaseNameOverride: false,
|
|||
|
|
|||
|
keys: {
|
|||
|
package: "pkg",
|
|||
|
layout: "layout",
|
|||
|
permalink: "permalink",
|
|||
|
permalinkRoot: "permalinkBypassOutputDir",
|
|||
|
engineOverride: "templateEngineOverride",
|
|||
|
computed: "eleventyComputed",
|
|||
|
},
|
|||
|
dir: {
|
|||
|
input: ".",
|
|||
|
includes: "_includes",
|
|||
|
data: "_data",
|
|||
|
output: "_site",
|
|||
|
},
|
|||
|
// deprecated, use config.addHandlebarsHelper
|
|||
|
handlebarsHelpers: {},
|
|||
|
// deprecated, use config.addNunjucksFilter
|
|||
|
nunjucksFilters: {},
|
|||
|
};
|
|||
|
};
|