import { feedPlugin } from "@11ty/eleventy-plugin-rss";

import metadata from "./_data/metadata.js";
import pluginFilters from "./_config/filters.js";

export default async function(eleventyConfig) {
  eleventyConfig.setUseGitIgnore(false);

	eleventyConfig.addPlugin(pluginFilters);

  eleventyConfig.addPlugin(feedPlugin, {
    type: "atom",
    outputPath: "/feed.xml",
    collection: {
      name: "posts",
      limit: 10
    },
    metadata: {
      title: metadata.title,
      subtitle: metadata.description,
      base: metadata.url,
      author: {
        name: metadata.author.name
      }
    }
  })

  eleventyConfig.addCollection("series", collectionsApi => {
    const seriesNames = collectionsApi.
      getFilteredByTag("posts").
      filter(post => post.data.series != null).
      map(post => post.data.series.name).
      sort();

    return [...new Set(seriesNames)];
  });

  eleventyConfig.addCollection("site_nav", collectionsApi => {
    return collectionsApi.
      getAll().
      filter(page => page.data.nav_order).
      sort((a, b) => a.data.nav_order - b.data.nav_order);
  });

  eleventyConfig.addPassthroughCopy({
    "./content/resources/": "/"
  });
};

export const config = {
  dir: {
    input: 'content',
    includes: '../_includes',
    data: '../_data',
    output: 'dist'
  }
};