summaryrefslogtreecommitdiff
path: root/src/pages/sitemap/blogs.xml.js
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-05-04 14:08:38 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-05-04 14:08:38 +0700
commit8bf81ed018dfd89b30f887c09689442881bb4872 (patch)
tree343a0ae7988c34892b4a6b5464369570003989ba /src/pages/sitemap/blogs.xml.js
parent2dccfa3f8953231599cf646d82078fb23297f1c7 (diff)
fixing sitemap
Diffstat (limited to 'src/pages/sitemap/blogs.xml.js')
-rw-r--r--src/pages/sitemap/blogs.xml.js31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/pages/sitemap/blogs.xml.js b/src/pages/sitemap/blogs.xml.js
new file mode 100644
index 00000000..7f41ad0f
--- /dev/null
+++ b/src/pages/sitemap/blogs.xml.js
@@ -0,0 +1,31 @@
+import { createSlug } from '@/core/utils/slug'
+import blogsApi from '@/lib/blog/api/blogsApi'
+import { create } from 'xmlbuilder'
+
+export async function getServerSideProps({ res }) {
+ const baseUrl = process.env.SELF_HOST + '/blog/'
+ const blogs = await blogsApi({ limit: 0, offset: 0 })
+ const sitemap = create('urlset', { encoding: 'utf-8' }).att(
+ 'xmlns',
+ 'http://www.sitemaps.org/schemas/sitemap/0.9'
+ )
+
+ const date = new Date()
+ blogs.blogs.forEach((blog) => {
+ const url = sitemap.ele('url')
+ url.ele('loc', createSlug(baseUrl, blog.title, blog.id))
+ url.ele('lastmod', date.toISOString().slice(0, 10))
+ url.ele('changefreq', 'weekly')
+ url.ele('priority', '0.6')
+ })
+
+ res.setHeader('Content-Type', 'text/xml')
+ res.write(sitemap.end())
+ res.end()
+
+ return { props: {} }
+}
+
+export default function SitemapProducts() {
+ return null
+}