This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
import axios from 'axios'
|
||||
import fs from 'fs'
|
||||
import path from 'path'
|
||||
|
||||
const DOMAIN = 'https://hub.nizika.monster'
|
||||
const API_BASE_URL = 'https://hub.nizika.monster/api'
|
||||
|
||||
const fetchPostIds =
|
||||
async () => (await axios.get (`${ API_BASE_URL }/posts`)).data.posts.map (post => post.id)
|
||||
|
||||
const fetchTagNames =
|
||||
async () => (await axios.get (`${ API_BASE_URL }/tags`)).data.map (tag => tag.name)
|
||||
|
||||
const fetchWikiTitles =
|
||||
async () => (await axios.get (`${ API_BASE_URL }/wiki`)).data.map (page => page.title)
|
||||
|
||||
const routes = [
|
||||
'/',
|
||||
...(await fetchTagNames ()).map (tags => `/posts?${ (new URLSearchParams ({ tags })).toString () }`),
|
||||
...(await fetchPostIds ()).map (id => `/posts/${ id }`),
|
||||
'/tags',
|
||||
'/tags/nico',
|
||||
'/wiki',
|
||||
'/wiki/changes',
|
||||
...(await fetchWikiTitles ()).map (title => `/wiki/${ encodeURIComponent (title) }`),
|
||||
'/users',
|
||||
'/users/settings']
|
||||
|
||||
const xml = `<?xml version="1.0" encoding="UTF-8"?>
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
${ routes.map (route => ` <url><loc>${ DOMAIN }${ route }</loc></url>`).join ('\n') }
|
||||
</urlset>`
|
||||
|
||||
fs.writeFileSync (path.resolve ('dist/sitemap.xml'), xml)
|
||||
Reference in New Issue
Block a user