forked from x-govuk/govuk-eleventy-plugin
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
50 lines (41 loc) · 2.25 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
module.exports = function (eleventyConfig, pluginOptions = {}) {
const { pathPrefix } = eleventyConfig
// Plugin options
const options = require('./lib/data/options.js')(pluginOptions, pathPrefix)
// Libraries
eleventyConfig.setLibrary('md', require('./lib/markdown-it.js')(options))
eleventyConfig.setLibrary('njk', require('./lib/nunjucks.js')(eleventyConfig))
// Collections
eleventyConfig.addCollection('ordered', require('./lib/collections/ordered.js'))
eleventyConfig.addCollection('sitemap', require('./lib/collections/sitemap.js'))
eleventyConfig.addCollection('tags', require('./lib/collections/tags.js'))
eleventyConfig.addCollection('tagPages', require('./lib/collections/tag-pages.js'))
// Extensions and template formats
eleventyConfig.addExtension('scss', require('./lib/extensions/scss.js'))
eleventyConfig.addTemplateFormats('scss')
// Filters
eleventyConfig.addFilter('date', require('./lib/filters/date.js'))
eleventyConfig.addFilter('includes', require('./lib/filters/includes.js'))
eleventyConfig.addFilter('itemsFromCollection', require('./lib/filters/items-from-collection.js'))
eleventyConfig.addFilter('itemsFromPagination', require('./lib/filters/items-from-pagination.js'))
eleventyConfig.addFilter('itemsFromNavigation', require('./lib/filters/items-from-navigation.js'))
eleventyConfig.addFilter('markdown', require('./lib/filters/markdown.js'))
eleventyConfig.addFilter('noOrphans', require('./lib/filters/no-orphans.js'))
eleventyConfig.addFilter('pretty', require('./lib/filters/pretty.js'))
eleventyConfig.addFilter('smart', require('./lib/filters/smart.js'))
eleventyConfig.addFilter('tokenize', require('./lib/filters/tokenize.js'))
// Global data
eleventyConfig.addGlobalData('options', options)
eleventyConfig.addGlobalData('eleventyComputed', require('./lib/data/eleventy-computed.js'))
// Passthrough
eleventyConfig.addPassthroughCopy({
'node_modules/govuk-frontend/govuk/assets': 'assets'
})
// Plugins
eleventyConfig.addPlugin(require('@11ty/eleventy-navigation'))
eleventyConfig.addPlugin(require('@11ty/eleventy-plugin-rss'))
// Events
eleventyConfig.on('eleventy.after', async ({ dir }) => {
require('./lib/events/generate-govuk-assets.js')(dir, pathPrefix, options)
})
}