diff --git a/docs/content/0.getting-started/0.introduction.md b/docs/content/0.getting-started/0.introduction.md new file mode 100644 index 00000000..0c7049e1 --- /dev/null +++ b/docs/content/0.getting-started/0.introduction.md @@ -0,0 +1,15 @@ +--- +title: 'Nuxt Sitemap' +description: 'Powerfully flexible XML Sitemaps that integrate seamlessly, for Nuxt.' +navigation: + title: 'Introduction' +--- + +## Features + +- 🌴 Single /sitemap.xml or multiple /posts-sitemap.xml, /pages-sitemap.xml +- 📊 Fetch your sitemap URLs from anywhere +- 😌 Automatic lastmod, image discovery and best practice sitemaps +- 🔄 SWR caching, route rules support +- 🎨 Debug using the Nuxt DevTools integration or the XML Stylesheet +- 🤝 Integrates seamlessly with Nuxt I18n and Nuxt Content diff --git a/docs/content/0.getting-started/1.installation.md b/docs/content/0.getting-started/1.installation.md index 6f7ead9f..e9a29d66 100644 --- a/docs/content/0.getting-started/1.installation.md +++ b/docs/content/0.getting-started/1.installation.md @@ -5,54 +5,25 @@ navigation: title: 'Installation' --- -1. Install `@nuxtjs/sitemap` dependency to your project: +## Module Setup -```bash -npx nuxi@latest module add sitemap -``` +:ModuleInstall{name="@nuxtjs/sitemap"} -2. Set Site Config +## Previewing Your Sitemap -It's recommended to always set a canonical site URL to avoid duplicate content issues. +After you've set up the module with the minimal config, you should be able to visit [`/sitemap.xml`](http://localhost:3000/sitemap.xml) to see the generated sitemap. -You can set your site URL in [many ways](/site-config/guides/setting-site-config), the easiest is `nuxt.config` or `.env`: +All pages preset are discovered from your [Application Sources](/sitemap/getting-started/data-sources), for dynamic URLs see [Dynamic URLs](/sitemap/guides/dynamic-urls). -While optional, it's also recommended to set a `name` as this will be displayed on your sitemap. +You can debug this further in Nuxt DevTools under the Sitemap tab. -::code-group +## Next Steps -```ts [nuxt.config.ts] -export default defineNuxtConfig({ - site: { - url: 'https://example.com', - name: 'My Awesome Website' - }, -}) -``` +It's recommended to use this module with Nuxt Robots so that the sitemap paths are automatically added to your robots.txt file. -```bash [.env] -NUXT_PUBLIC_SITE_URL=https://example.com -``` -:: +:ModuleCard{slug="robots" class="w-1/2"} -Sitemap URLs will have their [trailing slashes](/nuxt-seo/guides/trailing-slashes) removed by default. If you want to keep them, you can set the `trailingSlash` option to `true`: - -```ts [nuxt.config.ts] -export default defineNuxtConfig({ - site: { - // optional: only if you have trailing slashes enabled - trailingSlash: true - }, -}) -``` - -3. Preview your Sitemap - -After you've set up the module, if you visit `/sitemap.xml` you can see the generated sitemap. - -This has been generated with [Application Sources](/sitemap/getting-started/data-sources). - -4. Next Steps +Other suggestions: - You may want to add your own sources, see [Dynamic URLs](/sitemap/guides/dynamic-urls). - Have 1000's of pages? Consider using [Multiple Sitemaps](/sitemap/guides/multi-sitemaps). diff --git a/docs/content/0.getting-started/3.stackblitz.md b/docs/content/0.getting-started/3.stackblitz.md deleted file mode 100644 index 5178e022..00000000 --- a/docs/content/0.getting-started/3.stackblitz.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: "Reproductions: Stackblitz" -description: Create minimal reproductions for Nuxt Sitemap or just experiment with the module. ---- - -You can use the Nuxt Sitemap Stackblitz playgrounds for either: -- Playing around with the module in a sandbox environment -- Making reproductions for issues (Learn more about [Why Reproductions are Required](https://antfu.me/posts/why-reproductions-are-required)) - -## Stackblitz Playgrounds - -- [Dynamic URLs](https://stackblitz.com/edit/nuxt-starter-dyraxc?file=server%2Fapi%2F_sitemap-urls.ts) -- [i18n](https://stackblitz.com/edit/nuxt-starter-jwuie4?file=app.vue) -- [Manual Chunking](https://stackblitz.com/edit/nuxt-starter-umyso3?file=nuxt.config.ts) -- [Nuxt Content Document Driven](https://stackblitz.com/edit/nuxt-starter-a5qk3s?file=nuxt.config.ts) diff --git a/docs/content/0.getting-started/3.troubleshooting.md b/docs/content/0.getting-started/3.troubleshooting.md new file mode 100644 index 00000000..0ecc8129 --- /dev/null +++ b/docs/content/0.getting-started/3.troubleshooting.md @@ -0,0 +1,59 @@ +--- +title: "Troubleshooting Nuxt Sitemap" +description: Create minimal reproductions for Nuxt Sitemap or just experiment with the module. +navigation: + title: 'Troubleshooting' +--- + +## Debugging + +### Nuxt DevTools + +The best tool for debugging is the Nuxt DevTools integration with Nuxt Sitemap. + +This will show you all of your sitemaps and the sources used to generate it. + +### Debug Endpoint + +If you prefer looking at the raw data, you can use the debug endpoint. This is only enabled in +development unless you enable the `debug` option. + +Visit `/__sitemap__/debug.json` within your browser, this is the same data used by Nuxt DevTools. + +### Debugging Prerendering + +If you're trying to debug the prerendered sitemap, you should enable the `debug` option and check your output +for the file `.output/public/__sitemap__/debug.json`. + +## Submitting an Issue + +When submitting an issue, it's important to provide as much information as possible. + +The easiest way to do this is to create a minimal reproduction using the Stackblitz playgrounds: + +- [Dynamic URLs](https://stackblitz.com/edit/nuxt-starter-dyraxc?file=server%2Fapi%2F_sitemap-urls.ts) +- [i18n](https://stackblitz.com/edit/nuxt-starter-jwuie4?file=app.vue) +- [Manual Chunking](https://stackblitz.com/edit/nuxt-starter-umyso3?file=nuxt.config.ts) +- [Nuxt Content Document Driven](https://stackblitz.com/edit/nuxt-starter-a5qk3s?file=nuxt.config.ts) + +## Troubleshooting FAQ + +### Why is my browser not rendering the XML properly? + +When disabling the [XSL](/sitemap/guides/customising-ui#disabling-the-xls) (XML Stylesheet) in, the XML will +be rendered by the browser. + +If you have a i18n integration, then it's likely you'll see your sitemap look raw text instead of XML. + +![Broken XML because of xhtml namespace.](/sitemap/formatting-error.png) + +This is a [browser bug](https://bugs.chromium.org/p/chromium/issues/detail?id=580033) in parsing the `xhtml` namespace which is required to add localised URLs to your sitemap. +There is no workaround besides re-enabled the XSL. + +### Google Search Console shows Error when submitting my Sitemap? + +Seeing "Error" when submitting a new sitemap is common. This is because Google previously +crawled your site for a sitemap and found nothing. + +If your sitemap is [validating](https://www.xml-sitemaps.com/validate-xml-sitemap.html) correctly, then you're all set. +It's best to way a few days and check back. In nearly all cases, the error will resolve itself. diff --git a/docs/content/0.getting-started/4.faq.md b/docs/content/0.getting-started/4.faq.md deleted file mode 100644 index 5b3cb7a0..00000000 --- a/docs/content/0.getting-started/4.faq.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: FAQ -description: Frequently asked questions about Nuxt Sitemap. ---- - -## Why is my browser not rendering the XML properly? - -When disabling the [XSL](/sitemap/guides/customising-ui#disabling-the-xls) (XML Stylesheet) in, the XML will -be rendered by the browser. - -If you have a i18n integration, then it's likely you'll see your sitemap look raw text instead of XML. - -![Broken XML because of xhtml namespace.](/sitemap/formatting-error.png) - -This is a [browser bug](https://bugs.chromium.org/p/chromium/issues/detail?id=580033) in parsing the `xhtml` namespace which is required to add localised URLs to your sitemap. -There is no workaround besides re-enabled the XSL. - -## Google Search Console shows Error when submitting my Sitemap? - -Seeing "Error" when submitting a new sitemap is common. This is because Google previously -crawled your site for a sitemap and found nothing. - -If your sitemap is [validating](https://www.xml-sitemaps.com/validate-xml-sitemap.html) correctly, then you're all set. -It's best to way a few days and check back. In nearly all cases, the error will resolve itself. diff --git a/docs/content/0.getting-started/_dir.yml b/docs/content/0.getting-started/_dir.yml deleted file mode 100644 index bcd2ba14..00000000 --- a/docs/content/0.getting-started/_dir.yml +++ /dev/null @@ -1 +0,0 @@ -title: Getting Started diff --git a/docs/content/1.integrations/2.robots.md b/docs/content/1.integrations/2.robots.md deleted file mode 100644 index 56dc80ee..00000000 --- a/docs/content/1.integrations/2.robots.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: Nuxt Robots -description: How to use the Nuxt Robots module with Nuxt Content. ---- - -The [@nuxtjs/robots](https://github.com/nuxt-modules/robots) module is useful for creating a dynamic runtime robots.txt file. - -## Setup - -The module will automatically handle the correct URL to add to the robots.txt, even when using -multiple sitemaps. - -There are no extra steps needed. diff --git a/docs/content/1.integrations/_dir.yml b/docs/content/1.integrations/_dir.yml deleted file mode 100644 index 67b3de90..00000000 --- a/docs/content/1.integrations/_dir.yml +++ /dev/null @@ -1 +0,0 @@ -title: Integrations diff --git a/docs/content/0.getting-started/2.data-sources.md b/docs/content/2.guides/0.data-sources.md similarity index 100% rename from docs/content/0.getting-started/2.data-sources.md rename to docs/content/2.guides/0.data-sources.md diff --git a/docs/content/2.guides/0.lastmod.md b/docs/content/2.guides/0.lastmod.md deleted file mode 100644 index ea0a61e7..00000000 --- a/docs/content/2.guides/0.lastmod.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: Setting Lastmod -description: Learn how to set the lastmod of your sitemap URLs. ---- - -In some cases you'll want to set the `lastmod`, `changefreq`, or `priority` of your sitemap URLs. To -do this, you have a few options depending on your setup. - -See [Best Practices](/sitemap/guides/best-practices) for details on how to optimize these values. - -## Page Meta - -Support for configuring these values through `definePageMeta` is coming soon. - -## Prerendering Lastmod - -When prerendering your site, you can make use of setting the `article:modified_time` meta tag in your page's head. This -meta tag will be used as the `lastmod` value in your sitemap. - -```vue [pages/index.vue] - -``` - -## Route Rules - -A more general approach is to use [Route rules](https://nuxt.com/docs/api/configuration/nuxt-config/#routerules). - -```ts [nuxt.config.ts] -export default defineNuxtConfig({ - routeRules: { - '/about': { sitemap: { changefreq: 'daily', priority: 0.3 } } - } -}) -``` - -Alternatively, you can use the [defineRouteRules](https://nuxt.com/docs/api/utils/define-route-rules) helper on specific pages. - -```vue [pages/index.vue] - -``` - -Using `defineRouteRules` feature is experimental and in order to use it you must enable the `experimental.inlineRouteRules` option in your nuxt.config. diff --git a/docs/content/2.guides/1.multi-sitemaps.md b/docs/content/2.guides/0.multi-sitemaps.md similarity index 100% rename from docs/content/2.guides/1.multi-sitemaps.md rename to docs/content/2.guides/0.multi-sitemaps.md diff --git a/docs/content/1.integrations/0.i18n.md b/docs/content/2.guides/1.i18n.md similarity index 86% rename from docs/content/1.integrations/0.i18n.md rename to docs/content/2.guides/1.i18n.md index 663933dc..27806136 100644 --- a/docs/content/1.integrations/0.i18n.md +++ b/docs/content/2.guides/1.i18n.md @@ -1,14 +1,16 @@ --- -title: Nuxt I18n -description: How to use the Nuxt Sitemap module with Nuxt I18n. +title: I18n +description: Setting up a sitemap with Nuxt I18n and Nuxt I18n Micro. --- -Out of the box, the sitemap module will integrate directly with [@nuxtjs/i18n](https://i18n.nuxtjs.org/). -You will need to use v8+ of the i18n module. +## Introduction -I18n configuration can get quite complicated, so it's important to figure out what mode you're using. +Out of the box, the module integrates with [@nuxtjs/i18n](https://i18n.nuxtjs.org/) and [nuxt-i18n-micro](https://github.com/s00d/nuxt-i18n-micro) +without any extra configuration. -## Modes +However, I18n is tricky, you may need to tinker with a few options to get the best results. + +## I18n Modes ### Automatic I18n Multi Sitemap diff --git a/docs/content/2.guides/2.images-videos.md b/docs/content/2.guides/2.images-videos.md index 1741e0e1..1c3848d6 100644 --- a/docs/content/2.guides/2.images-videos.md +++ b/docs/content/2.guides/2.images-videos.md @@ -1,6 +1,6 @@ --- -title: Images & Videos -description: Learn how to add images and videos in your sitemap. +title: Images, Videos, News +description: Learn how to add images, videos and news in your sitemap. --- Generated sitemaps are given the `image` and `video` namespaces by default. This allows you to add images and videos to your sitemap. @@ -179,7 +179,48 @@ Each format would be added to your sitemap in the following format: ``` -## Opt-out +## News + +To add news to your sitemap, you can use the `news` property on the sitemap entry. Only [Google's News sitemap](https://developers.google.com/search/docs/crawling-indexing/sitemaps/news-sitemap) extension is supported. + +The TypeScript interface for news is as follows: + +```ts +export interface GoogleNewsEntry { + title: string + publication_date: Date | string + publication: { + name: string + language: string + } +} +``` + +You can implement this as follows: + +```ts [nuxt.config.ts] +export default defineNuxtConfig({ + sitemap: { + urls: [ + { + loc: '/news/nuxt-sitemap-turns-6', + news: [ + { + title: 'Nuxt Sitemap Turns 6', + publication_date: '2021-01-01', + publication: { + name: 'Nuxt Sitemap', + language: 'en', + }, + } + ] + } + ] + } +}) +``` + +## Image & Video Opt-out To opt-out of this behaviour, you can set the `discoverImages` and `discoverVideos` config to `false` respectively. @@ -191,3 +232,4 @@ export default defineNuxtConfig({ } }) ``` + diff --git a/docs/content/2.guides/3.cache.md b/docs/content/2.guides/3.cache.md deleted file mode 100644 index 158bb393..00000000 --- a/docs/content/2.guides/3.cache.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: Sitemap Caching -description: Use the default cache engine to keep your sitemaps fast. ---- - -Caching your sitemap can help reduce the load on your server and improve performance. - -By default, SWR caching is enabled on production environments and sitemaps will be cached for 10 minutes. - -This is configured by overriding your route rules and leveraging the native Nuxt caching. - -### Cache Time - -You can change the cache time by setting the `cacheMaxAgeSeconds` option. - -```ts -export default defineNuxtConfig({ - sitemap: { - cacheMaxAgeSeconds: 3600 // 1 hour - } -}) -``` - -If you want to disable caching, set the `cacheMaxAgeSeconds` to `0`. - -### Cache Driver - -The cache engine is set to the Nitro default of the `cache/` path. - -If you want to customise the cache engine, you can set the `runtimeCacheStorage` option. - -```ts [nuxt.config.ts] -export default defineNuxtConfig({ - sitemap: { - // cloudflare kv binding example - runtimeCacheStorage: { - driver: 'cloudflare-kv-binding', - binding: 'OG_IMAGE_CACHE' - } - } -}) -``` diff --git a/docs/content/2.guides/0.filtering-urls.md b/docs/content/2.guides/3.filtering-urls.md similarity index 76% rename from docs/content/2.guides/0.filtering-urls.md rename to docs/content/2.guides/3.filtering-urls.md index 15c1a79e..13180550 100644 --- a/docs/content/2.guides/0.filtering-urls.md +++ b/docs/content/2.guides/3.filtering-urls.md @@ -3,18 +3,24 @@ title: Disabling Indexing description: How to filter the URLs generated from application sources. --- -When viewing your sitemap.xml for the first time, you may notice some URLs you don't want to be included. +## Introduction +When viewing your sitemap.xml for the first time, you may notice some URLs you don't want to be included. These URLs are most likely coming from [Application Sources](/sitemap/getting-started/data-sources). If you don't want to disable these sources but want to remove these URLs you have a couple of options. -## Disabling Page Indexing +## Nuxt Robots -If you don't want a URL in your sitemap because you don't want search engines to crawl it, -then you can make use of the `index` route rule. +The easiest way to block search engines from indexing a URL is to use the [Nuxt Robots](/robots/getting-started/installation) module +and simply block the URL in your robots.txt. -To actually block search engines, you will need to use this with the [Nuxt Robots](/robots/getting-started/installation) module. +Nuxt Sitemap will honour any blocked pages from being ignored in the sitemap. + +## Disabling indexing with Route Rules + +If you don't want a page in your sitemap because you don't want search engines to crawl it, +then you can make use of the `robots` route rule. ### Disabling indexing for a pattern of URLs @@ -29,12 +35,13 @@ export default defineNuxtConfig({ }) ``` -### Disabling indexing for a Page +### Inline route rules -If you just have some specific pages, you can use the experimental [`defineRouteRules`](https://nuxt.com/docs/api/utils/define-route-rules) +If you just have some specific pages, you can use the experimental [`defineRouteRules`](https://nuxt.com/docs/api/utils/define-route-rules), which must +be enabled. ```vue - +``` + + +## Lastmod: Prerendering Hints + +When prerendering your site, you can make use of setting the `article:modified_time` meta tag in your page's head. This +meta tag will be used as the `lastmod` value in your sitemap. + +```vue [pages/index.vue] + +``` diff --git a/docs/content/2.guides/4.route-rules.md b/docs/content/2.guides/4.route-rules.md deleted file mode 100644 index cd2c2772..00000000 --- a/docs/content/2.guides/4.route-rules.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: Route Rules -description: Configure your sitemap entries with route rules. ---- - -To change the behaviour of your sitemap URLs, you can use [Route rules](https://nuxt.com/docs/api/configuration/nuxt-config/#routerules). - -When doing so, you can provide either `robots: false` as a shortcut or a full `sitemap` object, see [Sitemap URL Schema](/sitemap/api/schema). - -Either through your nuxt config file using pattern matching. - -```ts [nuxt.config.ts] -export default defineNuxtConfig({ - routeRules: { - // Don't add any /secret/** URLs to the sitemap.xml - '/secret/**': { robots: false }, - // modify the sitemap.xml entry for specific URLs - '/about': { sitemap: { changefreq: 'daily', priority: 0.3 } } - } -}) -``` - -Alternatively, you can use the `defineRouteRules` helper on specific pages. - -```vue [pages/index.vue] - -``` diff --git a/docs/content/1.integrations/1.content.md b/docs/content/2.guides/5.content.md similarity index 100% rename from docs/content/1.integrations/1.content.md rename to docs/content/2.guides/5.content.md diff --git a/docs/content/2.guides/5.prerendering.md b/docs/content/2.guides/5.prerendering.md index fe0b27bb..281d686b 100644 --- a/docs/content/2.guides/5.prerendering.md +++ b/docs/content/2.guides/5.prerendering.md @@ -3,6 +3,8 @@ title: Nuxt Prerendering description: Perender your pages and have them all automatically added to your sitemap. --- +## Introduction + When prerendering routes using Nuxt through either `nuxi generate` or using the prerender options, the module will extract data from the generated HTML and add it to the sitemap. diff --git a/docs/content/2.guides/7.debugging.md b/docs/content/2.guides/7.debugging.md deleted file mode 100644 index dc6bfe3d..00000000 --- a/docs/content/2.guides/7.debugging.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: Debugging -description: How to debug the sitemap generated from Nuxt Sitemap. ---- - -It's quite likely at some point you'll open your sitemap and think "this isn't right". - -## Nuxt DevTools - -The best tool for debugging is the Nuxt DevTools integration with Nuxt Sitemap. - -This will show you all of your sitemaps and the sources used to generate it. - -## Debug Endpoint - -If you prefer looking at the raw data, you can use the debug endpoint. This is only enabled in -development unless you enable the `debug` option. - -Visit `/__sitemap__/debug.json` within your browser, this is the same data used by Nuxt DevTools. - -## Debugging Prerendering - -If you're trying to debug the prerendered sitemap, you should enable the `debug` option and check your output -for the file `.output/public/__sitemap__/debug.json`. diff --git a/docs/content/2.guides/8.best-practices.md b/docs/content/2.guides/8.best-practices.md index dd7b1e17..d4ee7b9b 100644 --- a/docs/content/2.guides/8.best-practices.md +++ b/docs/content/2.guides/8.best-practices.md @@ -5,53 +5,6 @@ navigation: title: Best Practices --- -## Performance - -When dealing with many URLs that are being generated from an external API, the best option is use the `sitemaps` -option to create [Named Sitemap Chunks](/sitemap/guides/multi-sitemaps). - -Each sitemap should contain its own `sources`, this allows other sitemaps to be generated without waiting for this request. - -```ts -export default defineNuxtConfig({ - sitemap: { - sitemaps: { - posts: { - sources: [ - 'https://api.something.com/urls' - ] - }, - }, - }, -}) -``` - -If you need to split this up further, you should consider chunking by the type and some pagination format. For example, -you can paginate by when posts were created. - -```ts -export default defineNuxtConfig({ - sitemap: { - sitemaps: { - posts2020: { - sources: [ - 'https://api.something.com/urls?filter[yearCreated]=2020' - ] - }, - posts2021: { - sources: [ - 'https://api.something.com/urls?filter[yearCreated]=2021' - ] - }, - }, - }, -}) -``` - -Additionally, you may want to consider the following experimental options that may help with performance: -- `experimentalCompression` - Gzip's and streams the sitemap -- `experimentalWarmUp` - Creates the sitemaps when Nitro starts - ## Set appropriate lastmod The `lastmod` field is used to indicate when a page was last updated. This is used by search engines to determine how often to crawl your site. diff --git a/docs/content/2.guides/9.submitting-sitemap.md b/docs/content/2.guides/9.submitting-sitemap.md index 4f66e0a7..134f8572 100644 --- a/docs/content/2.guides/9.submitting-sitemap.md +++ b/docs/content/2.guides/9.submitting-sitemap.md @@ -3,6 +3,8 @@ title: 'Submitting Your Sitemap' description: 'How to submit your sitemap to Google Search Console to start getting indexed.' --- +## Introduction + When going live with a new site and you're looking to get indexed by Google, the best starting point is to submit your sitemap to Google Search Console. diff --git a/docs/content/2.guides/_dir.yml b/docs/content/2.guides/_dir.yml deleted file mode 100644 index e9454921..00000000 --- a/docs/content/2.guides/_dir.yml +++ /dev/null @@ -1 +0,0 @@ -title: Guides diff --git a/docs/content/4.api/_dir.yml b/docs/content/4.api/_dir.yml deleted file mode 100644 index 91864357..00000000 --- a/docs/content/4.api/_dir.yml +++ /dev/null @@ -1 +0,0 @@ -title: Nuxt API diff --git a/docs/content/4.api/schema.md b/docs/content/4.api/schema.md deleted file mode 100644 index b019baf5..00000000 --- a/docs/content/4.api/schema.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Schema -description: The schema for some of the sitemap module data. ---- - -## Sitemap Entry - -The sitemap entry schema mostly follows the [sitemap specification](https://www.sitemaps.org/protocol.html), with additional Sitemap extension recommendations from Google such as [News](https://developers.google.com/search/docs/crawling-indexing/sitemaps/news-sitemap), [Images](https://developers.google.com/search/docs/crawling-indexing/sitemaps/image-sitemaps), and [Videos](https://developers.google.com/search/docs/crawling-indexing/sitemaps/video-sitemaps). - -The following options are supported: - -- `loc` - URL of the page. -- `lastmod` - The date of last modification of the file -- `changefreq` - How frequently the page is likely to change. -- `priority` - The priority of this URL relative to other URLs on your site. -- `alternatives` - An array of alternatives to include in the sitemap entry as ``. -- `news` - An array of news to include in the sitemap entry as ``. -- `images` - An array of images to include in the sitemap entry as ``. -- `video` - An array of videos to include in the sitemap entry as ``. - -```ts -export interface SitemapUrl { - loc: string - lastmod?: string | Date - changefreq?: Changefreq - priority?: 0 | 0.1 | 0.2 | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | 0.8 | 0.9 | 1 - alternatives?: Array - news?: GoogleNewsEntry - images?: Array - videos?: Array - _i18nTransform?: boolean - _sitemap?: string - url?: string // @deprecated use `loc` -} - -export type Changefreq = - | 'always' - | 'hourly' - | 'daily' - | 'weekly' - | 'monthly' - | 'yearly' - | 'never' - -export interface AlternativeEntry { - hreflang: string - href: string | URL -} - -export interface GoogleNewsEntry { - title: string - publication_date: Date | string - publication: { - name: string - language: string - } -} - -export interface ImageEntry { - loc: string | URL - caption?: string - geoLocation?: string - title?: string - license?: string | URL -} - -export interface VideoEntry { - title: string - thumbnail_loc: string | URL - description: string - content_loc?: string | URL - player_loc?: string | URL - duration?: number - expiration_date?: Date | string - rating?: number - view_count?: number - publication_date?: Date | string - family_friendly?: 'yes' | 'no' | boolean - restriction?: Restriction - platform?: Platform - price?: ({ - price?: number | string - currency?: string - type?: 'rent' | 'purchase' | 'package' | 'subscription' - })[] - requires_subscription?: 'yes' | 'no' | boolean - uploader?: { - uploader: string - info?: string | URL - } - live?: 'yes' | 'no' | boolean - tag?: string | string[] -} -``` diff --git a/docs/content/5.nitro-api/_dir.yml b/docs/content/5.nitro-api/_dir.yml deleted file mode 100644 index dd231477..00000000 --- a/docs/content/5.nitro-api/_dir.yml +++ /dev/null @@ -1 +0,0 @@ -title: Nitro API diff --git a/docs/content/5.releases/v6.md b/docs/content/5.releases/5.v6.md similarity index 100% rename from docs/content/5.releases/v6.md rename to docs/content/5.releases/5.v6.md diff --git a/docs/content/5.releases/v5.md b/docs/content/5.releases/6.v5.md similarity index 100% rename from docs/content/5.releases/v5.md rename to docs/content/5.releases/6.v5.md diff --git a/docs/content/5.releases/v4.md b/docs/content/5.releases/7.v4.md similarity index 100% rename from docs/content/5.releases/v4.md rename to docs/content/5.releases/7.v4.md diff --git a/docs/content/5.releases/v3.md b/docs/content/5.releases/8.v3.md similarity index 100% rename from docs/content/5.releases/v3.md rename to docs/content/5.releases/8.v3.md diff --git a/docs/content/5.releases/_dir.yml b/docs/content/5.releases/_dir.yml deleted file mode 100644 index 21e6ce54..00000000 --- a/docs/content/5.releases/_dir.yml +++ /dev/null @@ -1 +0,0 @@ -title: Releases