UNPKG

gatsby-theme-advanced

Version:
268 lines (267 loc) 10.1 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const path_1 = __importDefault(require("path")); const fs_1 = __importDefault(require("fs")); const url_join_1 = __importDefault(require("url-join")); // Remark plugins const remark_a11y_emoji_1 = __importDefault(require("@fec/remark-a11y-emoji")); const remark_external_links_1 = __importDefault(require("remark-external-links")); const remark_unwrap_images_1 = __importDefault(require("remark-unwrap-images")); // Config const config_1 = require("../src/config"); // RSS Utils const RssUtils = __importStar(require("./utils/rss")); // Make sure that pathPrefix is not empty const gatsbyConfig = (userConfig) => { // Merge user and default configurations const config = (0, config_1.withDefaults)(userConfig); const validatedPathPrefix = config.pathPrefix === "" ? "/" : config.pathPrefix; const netlifyConfigPath = "./src/netlifycms/index.js"; return { pathPrefix: validatedPathPrefix, siteMetadata: { config, siteUrl: (0, url_join_1.default)(config.website.url, config.pathPrefix), rssMetadata: { site_url: (0, url_join_1.default)(config.website.url, config.pathPrefix), feed_url: (0, url_join_1.default)(config.website.url, config.pathPrefix, config.website.rss), title: config.website.title, description: config.website.description, image_url: `${(0, url_join_1.default)(config.website.url, config.pathPrefix)}${config.website.logoUrl}`, copyright: config.website.copyright, }, }, plugins: [ { resolve: "gatsby-plugin-compile-es6-packages", options: { modules: ["gatsby-plugin-image"], }, }, { resolve: "gatsby-plugin-react-svg", options: { rule: { include: /\.svg$/, }, }, }, "gatsby-plugin-react-helmet", "gatsby-plugin-lodash", { resolve: "gatsby-source-filesystem", options: { name: "assets", path: config.assetDir || path_1.default.join(__dirname, "../static"), }, }, { resolve: "gatsby-source-filesystem", options: { name: "posts", path: config.contentDir || path_1.default.join(__dirname, "../content"), }, }, { resolve: "gatsby-plugin-sharp", options: { defaults: { formats: ["auto", "webp", "avif"], placeholder: "blurred", backgroundColor: "transparent", }, failOnError: true, }, }, "gatsby-transformer-sharp", "gatsby-plugin-image", "gatsby-remark-images", { resolve: `gatsby-plugin-mdx`, options: { extensions: [`.mdx`, `.md`], gatsbyRemarkPlugins: [ { resolve: "gatsby-remark-embed-video", options: { width: config.embeddedVideoWidth, }, }, { resolve: "gatsby-remark-responsive-iframe", }, { resolve: "gatsby-remark-images", options: { maxWidth: config.embeddedImageWidth, showCaptions: ["title", "alt"], }, }, { resolve: "remark-codesandbox/gatsby", options: { mode: "button", }, }, { resolve: "gatsby-remark-copy-linked-files" }, { resolve: "gatsby-remark-prismjs", options: { classPrefix: "language-", inlineCodeMarker: null, aliases: {}, showLineNumbers: false, noInlineHighlight: false, prompt: { user: "root", host: "localhost", global: false, }, escapeEntities: {}, }, }, ], remarkPlugins: [remark_unwrap_images_1.default, remark_a11y_emoji_1.default, remark_external_links_1.default], }, }, { resolve: "gatsby-plugin-disqus", options: { shortname: config.website.disqusShortname, }, }, { resolve: "gatsby-plugin-google-gtag", options: { trackingIds: [config.website.googleAnalyticsId], }, }, { resolve: "gatsby-plugin-nprogress", options: { color: config.website.themeColor, }, }, "gatsby-plugin-catch-links", "gatsby-plugin-twitter", "gatsby-plugin-sitemap", { resolve: "gatsby-plugin-manifest", options: { name: config.website.name, short_name: config.website.titleShort, description: config.website.description, start_url: validatedPathPrefix, background_color: config.website.backgroundColor, theme_color: config.website.themeColor, display: "minimal-ui", cache_busting_mode: "none", icon: config.iconPath, icons: config.iconList, }, }, { resolve: "gatsby-plugin-offline", options: { workboxConfig: { globPatterns: config.iconCachePaths, }, }, }, { resolve: "gatsby-plugin-netlify-cms", options: { modulePath: fs_1.default.existsSync(netlifyConfigPath) ? netlifyConfigPath : undefined, enableIdentityWidget: true, publicPath: "admin", htmlTitle: "Content Manager", includeRobots: false, }, }, { resolve: "gatsby-plugin-feed", options: { setup: RssUtils.setup, query: ` { site { siteMetadata { rssMetadata { site_url feed_url title description image_url copyright } } } } `, feeds: [ { serialize: RssUtils.getSerialize(config), query: ` { allMdx( limit: 1000, sort: { order: DESC, fields: [frontmatter___datePublished] }, ) { edges { node { excerpt html timeToRead fields { slug } frontmatter { title datePublished category tags } } } } } `, output: (0, config_1.withBasePath)(config, config.website.rss), title: config.website.rssTitle, site_url: config.website.url, }, ], }, }, ], }; }; exports.default = gatsbyConfig;