This method has been deprecated and will be removed in a future
runtime release. Use the getPages
method to create a sitemap instead,
see the documentation here.
A sitemap is a structured list of pages that enables web crawlers to find the
pages of a site.
Options
Number of sitemap entries to fetch.
Starting id
cursor of the last sitemap entry fetched.
Only sitemap entries beginning with this
pathname will be
returned.
Site locale to fetch. Introduced in v0.11.2
Return type
type Sitemap = {
id: string
loc: string
lastmod?: string
changefreq?:
| "always"
| "hourly"
| "daily"
| "weekly"
| "monthly"
| "yearly"
| "never"
priority?: number
alternateRefs?: {
hreflang: string
href: string
}[]
}[]
Examples
Using next-sitemap
The following example uses getSitemap
with next-sitemap
, a popular Next.js library for generating sitemaps.
import { Makeswift } from "@makeswift/runtime/next"
import { getServerSideSitemapLegacy } from "next-sitemap"
import { client } from "makeswift/client"
import { runtime } from "makeswift/runtime"
import "makeswift/components"
export async function getServerSideProps(context) {
const sitemap = await client.getSitemap()
return getServerSideSitemapLegacy(context, sitemap)
}
export default function Sitemap() {}
Filtering by pathname
The following example uses the pathnamePrefix
option to filter results to only include pages with a pathname beginning with /blog/
.
import { Makeswift } from "@makeswift/runtime/next"
import { getServerSideSitemapLegacy } from "next-sitemap"
import { client } from "makeswift/client"
import { runtime } from "makeswift/runtime"
import "makeswift/components"
export async function getServerSideProps(context) {
const blogSitemap = await client.getSitemap({ pathnamePrefix: "/blog/" })
return getServerSideSitemapLegacy(context, blogSitemap)
}
export default function BlogSitemap() {}
The following example uses the limit
and after
field to paginate the results of getSitemap
10 entries at a time.
import { Makeswift, Sitemap } from "@makeswift/runtime/next"
import { getServerSideSitemapLegacy } from "next-sitemap"
import { client } from "makeswift/client"
import { runtime } from "makeswift/runtime"
import "makeswift/components"
export async function getServerSideProps(context) {
const sitemap: Sitemap = []
let page: Sitemap = []
let after: string | undefined = undefined
do {
page = await client.getSitemap({ limit: 10, after })
sitemap.push(...page)
after = page.at(-1)?.id
} while (page.length > 0)
return getServerSideSitemapLegacy(context, sitemap)
}
export default function Sitemap() {}
Localization
The following example uses the locale
option to fetch the sitemap for a specific locale.
import { Makeswift } from "@makeswift/runtime/next"
import { getServerSideSitemapLegacy } from "next-sitemap"
import { client } from "makeswift/client"
import { runtime } from "makeswift/runtime"
import "makeswift/components"
export async function getServerSideProps(context) {
const sitemap = await client.getSitemap({ locale: "es" })
return getServerSideSitemapLegacy(context, sitemap)
}
export default function Sitemap() {}
If a locale is using domain-based localization, passing the locale to getSitemap
will return the sitemap for that particular domain.
For example, if in the site settings there is an es
locale with a domain of foo.es
, then passing es
to getSitemap
will return the sitemap for foo.es
.
Changelog
Version | Changes |
---|
v0.11.2 | Added locale option to getSitemap |
v0.10.7 | Released getSitemap |