diff --git a/config.js b/config.js
index 743df63fb..27a65b1ba 100644
--- a/config.js
+++ b/config.js
@@ -4,6 +4,7 @@ module.exports = {
description: `A curated collection of useful Python snippets that you can understand in 30 seconds or less.`,
shortName: `30s`,
repositoryUrl: `https://github.com/30-seconds/30-seconds-of-python`,
+ siteUrl: `https://python.30secondsofcode.org`,
// Path information
snippetPath: `snippets`,
snippetDataPath: `snippet_data`,
diff --git a/gatsby-config.js b/gatsby-config.js
index 448c152b1..e4bb373e9 100644
--- a/gatsby-config.js
+++ b/gatsby-config.js
@@ -5,8 +5,10 @@ module.exports = {
title: `${config.name}`,
description: `${config.description}`,
author: `@30-seconds`,
+ siteUrl: `${config.siteUrl}`,
},
plugins: [
+ `gatsby-plugin-sitemap`,
`gatsby-plugin-transition-link`,
{
resolve: `gatsby-source-filesystem`,
diff --git a/package-lock.json b/package-lock.json
index d50f5e9d3..0f8dd8e76 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9498,6 +9498,26 @@
}
}
},
+ "gatsby-plugin-sitemap": {
+ "version": "2.2.8",
+ "resolved": "https://registry.npmjs.org/gatsby-plugin-sitemap/-/gatsby-plugin-sitemap-2.2.8.tgz",
+ "integrity": "sha512-FDWspoz4cymHis6d+PrDWm4RudoVHcGT1sjoiL8/i/zKaFZCVyDmxK2JDAy6TdpK4nLr/wc+np4n+Y5lKgfDRw==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.0.0",
+ "minimatch": "^3.0.4",
+ "pify": "^3.0.0",
+ "sitemap": "^1.13.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ }
+ }
+ },
"gatsby-plugin-transition-link": {
"version": "1.12.4",
"resolved": "https://registry.npmjs.org/gatsby-plugin-transition-link/-/gatsby-plugin-transition-link-1.12.4.tgz",
@@ -18850,6 +18870,16 @@
"integrity": "sha512-SbEG75TzH8G7eVXFSN5f9EExILKfly7SUvVY5DhhYLvfhKqhDFY0OzevWa/zwak0RLRfWS5AvfMWpd9gJvr5Yg==",
"dev": true
},
+ "sitemap": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-1.13.0.tgz",
+ "integrity": "sha1-Vpy+IYAgKSamKiZs094Jyc60P4M=",
+ "dev": true,
+ "requires": {
+ "underscore": "^1.7.0",
+ "url-join": "^1.1.0"
+ }
+ },
"slash": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
@@ -20537,6 +20567,12 @@
"integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=",
"dev": true
},
+ "underscore": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz",
+ "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==",
+ "dev": true
+ },
"underscore.string": {
"version": "3.3.5",
"resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.5.tgz",
@@ -20966,6 +21002,12 @@
}
}
},
+ "url-join": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/url-join/-/url-join-1.1.0.tgz",
+ "integrity": "sha1-dBxsL0WWxIMNZxhGCSDQySIC3Hg=",
+ "dev": true
+ },
"url-loader": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.1.2.tgz",
diff --git a/package.json b/package.json
index 732433a6c..81d0d05ce 100644
--- a/package.json
+++ b/package.json
@@ -42,6 +42,7 @@
"gatsby-plugin-react-helmet": "^3.1.2",
"gatsby-plugin-sass": "^2.1.3",
"gatsby-plugin-sharp": "^2.2.7",
+ "gatsby-plugin-sitemap": "^2.2.8",
"gatsby-plugin-transition-link": "^1.12.4",
"gatsby-remark-copy-linked-files": "^2.1.3",
"gatsby-remark-images": "^3.1.6",
diff --git a/src/docs/pages/index.js b/src/docs/pages/index.js
index 5be6815f7..6114decdc 100644
--- a/src/docs/pages/index.js
+++ b/src/docs/pages/index.js
@@ -51,7 +51,9 @@ const IndexPage = props => {
return (
<>
-
+
