const path = require('path') const fs = require('fs') const yaml = require('js-yaml') const meta = yaml.load(fs.readFileSync('./content/meta.yml', 'utf8')) const { url } = meta // required for gatsby-plugin-meta-redirect require('regenerator-runtime/runtime') module.exports = { siteMetadata: { siteUrl: `${url}` }, plugins: [ { resolve: 'gatsby-source-filesystem', options: { name: 'posts', path: path.join(__dirname, 'content', 'posts') } }, { resolve: 'gatsby-source-filesystem', options: { name: 'media', path: path.join(__dirname, 'content', 'media') } }, { resolve: 'gatsby-source-filesystem', options: { name: 'posts', path: path.join(__dirname, 'content') } }, { resolve: 'gatsby-source-filesystem', options: { name: 'images', path: path.join(__dirname, 'src', 'images') } }, { resolve: 'gatsby-transformer-remark', options: { excerpt_separator: '', plugins: [ { resolve: 'gatsby-remark-images', options: { maxWidth: 940, linkImagesToOriginal: false, // sizeByPixelDensity: true, showCaptions: true, backgroundColor: '#dfe8ef' } }, { resolve: 'gatsby-remark-copy-linked-files', options: { destinationDir: 'media' } }, 'gatsby-remark-prismjs', 'gatsby-remark-smartypants', 'gatsby-remark-autolink-headers' ] } }, { resolve: 'gatsby-plugin-sass', options: { includePaths: [`${__dirname}/node_modules`, `${__dirname}/src/styles`] } }, { resolve: 'gatsby-plugin-lunr', options: { languages: [ { // ISO 639-1 language codes. See https://lunrjs.com/guides/language_support.html for details name: 'en' } ], // Fields to index. If store === true value will be stored in index file. // Attributes for custom indexing logic. See https://lunrjs.com/docs/lunr.Builder.html for details fields: [ { name: 'title', store: true, attributes: { boost: 20 } }, { name: 'content' }, { name: 'excerpt', attributes: { boost: 10 } }, { name: 'category', store: true, attributes: { boost: 5 } }, { name: 'tags', store: true }, { name: 'url', store: true } ], // How to resolve each field's value for a supported node type resolvers: { // For any node of type MarkdownRemark, list how to resolve the fields' values MarkdownRemark: { title: node => node.frontmatter.title, content: node => node.rawMarkdownBody, excerpt: node => node.frontmatter.excerpt, category: node => node.frontmatter.category, tags: node => node.frontmatter.tags, url: node => node.fields.slug } } } }, 'gatsby-plugin-react-helmet', 'gatsby-transformer-yaml', 'gatsby-transformer-sharp', 'gatsby-plugin-sharp', 'gatsby-plugin-sitemap', 'gatsby-plugin-catch-links', 'gatsby-redirect-from', 'gatsby-plugin-meta-redirect' ] }