diff --git a/gatsby-config.js b/gatsby-config.js index 8f12c13..5a6b6aa 100644 --- a/gatsby-config.js +++ b/gatsby-config.js @@ -84,6 +84,63 @@ module.exports = { display: `standalone`, }, }, + { + resolve: `gatsby-plugin-feed`, + options: { + query: ` + { + site { + siteMetadata { + title + description + siteUrl + site_url: siteUrl + } + } + } + `, + feeds: [ + { + serialize: ({ query: { site, allMarkdownRemark } }) => { + return allMarkdownRemark.edges.map(edge => { + return Object.assign({}, edge.node.frontmatter, { + categories: edge.node.frontmatter.tags, + description: edge.node.excerpt, + date: edge.node.frontmatter.date, + url: `${site.siteMetadata.siteUrl}/article/${edge.node.frontmatter.slug}`, + guid: `${site.siteMetadata.siteUrl}/article/${edge.node.frontmatter.slug}`, + custom_elements: [{ 'content:encoded': edge.node.html }], + }) + }) + }, + query: ` + { + allMarkdownRemark( + filter: { frontmatter: { templateKey: { eq: "article" } } } + sort: { order: DESC, fields: frontmatter___date } + ) { + edges { + node { + excerpt + html + frontmatter { + slug + title + category + tags + date + } + } + } + } + } + `, + output: '/rss.xml', + title: 'devthread.ru | RSS Лента', + }, + ], + }, + }, { resolve: "gatsby-plugin-firebase", options: { diff --git a/package-lock.json b/package-lock.json index 1ac044a..b1f177d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9124,6 +9124,18 @@ "micromatch": "^3.1.10" } }, + "gatsby-plugin-feed": { + "version": "2.5.11", + "resolved": "https://registry.npmjs.org/gatsby-plugin-feed/-/gatsby-plugin-feed-2.5.11.tgz", + "integrity": "sha512-Mnyc3sAWWCMXEO9YG76wsFxuAMQb1x4Bi3xC7/T+IlwTKHL86nRG/H+WF61BtEkw9YTX9TEHjegdoewu9OKM3A==", + "requires": { + "@babel/runtime": "^7.10.3", + "@hapi/joi": "^15.1.1", + "fs-extra": "^8.1.0", + "lodash.merge": "^4.6.2", + "rss": "^1.2.2" + } + }, "gatsby-plugin-firebase": { "version": "0.2.0-beta.4", "resolved": "https://registry.npmjs.org/gatsby-plugin-firebase/-/gatsby-plugin-firebase-0.2.0-beta.4.tgz", @@ -13519,6 +13531,11 @@ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, "lodash.throttle": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", @@ -19021,6 +19038,30 @@ "inherits": "^2.0.1" } }, + "rss": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/rss/-/rss-1.2.2.tgz", + "integrity": "sha1-UKFpiHYTgTOnT5oF0r3I240nqSE=", + "requires": { + "mime-types": "2.1.13", + "xml": "1.0.1" + }, + "dependencies": { + "mime-db": { + "version": "1.25.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.25.0.tgz", + "integrity": "sha1-wY29fHOl2/b0SgJNwNFloeexw5I=" + }, + "mime-types": { + "version": "2.1.13", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.13.tgz", + "integrity": "sha1-4HqqnGxrmnyjASxpADrSWjnpKog=", + "requires": { + "mime-db": "~1.25.0" + } + } + } + }, "run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", @@ -23023,6 +23064,11 @@ } } }, + "xml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", + "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=" + }, "xml-parse-from-string": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", diff --git a/package.json b/package.json index 6a9921b..bc8cbd6 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "firebase": "^7.16.0", "gatsby": "^2.23.12", "gatsby-image": "^2.4.12", + "gatsby-plugin-feed": "^2.5.11", "gatsby-plugin-firebase": "^0.2.0-beta.4", "gatsby-plugin-manifest": "^2.4.17", "gatsby-plugin-netlify-cms": "^4.3.9",