mirror of
https://github.com/Einundzwanzig-Podcast/einundzwanzig.space.git
synced 2025-12-13 08:16:49 +00:00
🗺 Add sitemap
This commit is contained in:
51
package-lock.json
generated
51
package-lock.json
generated
@@ -1461,6 +1461,12 @@
|
||||
"universalify": "^0.1.0"
|
||||
}
|
||||
},
|
||||
"fs.realpath": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
||||
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
|
||||
"dev": true
|
||||
},
|
||||
"fsevents": {
|
||||
"version": "2.1.3",
|
||||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
|
||||
@@ -1492,6 +1498,20 @@
|
||||
"integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==",
|
||||
"dev": true
|
||||
},
|
||||
"glob": {
|
||||
"version": "7.1.6",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
|
||||
"integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fs.realpath": "^1.0.0",
|
||||
"inflight": "^1.0.4",
|
||||
"inherits": "2",
|
||||
"minimatch": "^3.0.4",
|
||||
"once": "^1.3.0",
|
||||
"path-is-absolute": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"glob-parent": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
|
||||
@@ -1701,6 +1721,16 @@
|
||||
"integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=",
|
||||
"dev": true
|
||||
},
|
||||
"inflight": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
||||
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"once": "^1.3.0",
|
||||
"wrappy": "1"
|
||||
}
|
||||
},
|
||||
"inherits": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
||||
@@ -2577,6 +2607,15 @@
|
||||
"ee-first": "1.1.1"
|
||||
}
|
||||
},
|
||||
"once": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"wrappy": "1"
|
||||
}
|
||||
},
|
||||
"onchange": {
|
||||
"version": "7.0.2",
|
||||
"resolved": "https://registry.npmjs.org/onchange/-/onchange-7.0.2.tgz",
|
||||
@@ -2827,6 +2866,12 @@
|
||||
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
|
||||
"dev": true
|
||||
},
|
||||
"path-is-absolute": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
||||
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
|
||||
"dev": true
|
||||
},
|
||||
"path-key": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
|
||||
@@ -4799,6 +4844,12 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"wrappy": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
|
||||
"dev": true
|
||||
},
|
||||
"ws": {
|
||||
"version": "6.1.4",
|
||||
"resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz",
|
||||
|
||||
@@ -25,7 +25,8 @@
|
||||
"optimize": "npm-run-all -p optimize:* -s rev",
|
||||
"optimize:styles": "csso dist/css/main.css --output dist/css/main.css",
|
||||
"rev": "node-file-rev --manifest=generated/rev.json --root=dist dist/css/* dist/js/* dist/img/*.svg dist/img/cover/*.png dist/img/team/*.jpg dist/img/team/*.png",
|
||||
"prod": "NODE_ENV=production npm-run-all build optimize -s build:pages"
|
||||
"sitemap": "node tasks/generate_sitemap.js",
|
||||
"prod": "NODE_ENV=production npm-run-all build optimize -s build:pages sitemap"
|
||||
},
|
||||
"dependencies": {
|
||||
"amplitudejs": "5.2.0"
|
||||
@@ -34,6 +35,7 @@
|
||||
"autoprefixer": "10.0.1",
|
||||
"browser-sync": "2.26.12",
|
||||
"csso-cli": "3.0.0",
|
||||
"glob": "7.1.6",
|
||||
"jstransformer-markdown-it": "2.1.0",
|
||||
"markdown-it": "11.0.1",
|
||||
"node-file-rev": "1.1.2",
|
||||
|
||||
7
src/sitemap.pug
Normal file
7
src/sitemap.pug
Normal file
@@ -0,0 +1,7 @@
|
||||
doctype xml
|
||||
urlset(xmlns="http://www.sitemaps.org/schemas/sitemap/0.9")
|
||||
each url in pages
|
||||
url
|
||||
loc= url
|
||||
lastmod= now
|
||||
changefreq weekly
|
||||
3
static/robots.txt
Normal file
3
static/robots.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
User-agent: *
|
||||
|
||||
Sitemap: https://einundzwanzig.space/sitemap.xml
|
||||
13
tasks/generate_sitemap.js
Normal file
13
tasks/generate_sitemap.js
Normal file
@@ -0,0 +1,13 @@
|
||||
const pug = require('pug')
|
||||
const glob = require('glob')
|
||||
const { writeFileSync } = require('fs')
|
||||
const { resolve } = require('path')
|
||||
|
||||
const html = glob.sync(resolve(__dirname, '..', `dist/**/*.html`))
|
||||
const pages = html.map(file => file.replace(/.*\/dist/, 'https://einundzwanzig.space'))
|
||||
const now = (new Date()).toISOString()
|
||||
const file = resolve(__dirname, '..', `src/sitemap.pug`)
|
||||
const rendered = pug.renderFile(file, { pages, now, pretty: true })
|
||||
const dst = resolve(__dirname, '..', 'dist', 'sitemap.xml')
|
||||
|
||||
writeFileSync(dst, rendered)
|
||||
Reference in New Issue
Block a user