gitextract_wdbjvyab/ ├── .attw.json ├── .claude/ │ └── skills/ │ ├── nuxt-site-config-skilld/ │ │ └── SKILL.md │ ├── nuxt-test-utils-skilld/ │ │ └── SKILL.md │ ├── skilld-lock.yaml │ └── vitest-skilld/ │ └── SKILL.md ├── .editorconfig ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── 01-feature-suggestion.yml │ │ ├── 02-bug-report.yml │ │ ├── 03-documentation.yml │ │ ├── 04-help-wanted.yml │ │ └── config.yml │ ├── pull_request_template.md │ ├── renovate.json5 │ └── workflows/ │ ├── nightly.yml │ ├── release.yml │ └── test.yml ├── .gitignore ├── .npmrc ├── .nuxtrc ├── LICENSE.md ├── README.md ├── SECURITY.md ├── benchmark/ │ ├── app/ │ │ └── app.vue │ ├── bench.mjs │ ├── nuxt.config.ts │ ├── package.json │ └── server/ │ └── api/ │ └── ping.get.ts ├── build.config.ts ├── devtools/ │ ├── app.config.ts │ ├── app.vue │ ├── components/ │ │ └── Source.vue │ ├── composables/ │ │ ├── rpc.ts │ │ └── state.ts │ ├── nuxt.config.ts │ ├── package.json │ ├── pages/ │ │ ├── app-sources.vue │ │ ├── debug.vue │ │ ├── docs.vue │ │ ├── index.vue │ │ └── user-sources.vue │ └── tsconfig.json ├── docs/ │ └── content/ │ ├── 0.getting-started/ │ │ ├── 0.introduction.md │ │ ├── 1.installation.md │ │ ├── 2.data-sources.md │ │ └── 3.troubleshooting.md │ ├── 1.guides/ │ │ ├── 0.dynamic-urls.md │ │ ├── 1.filtering-urls.md │ │ ├── 2.multi-sitemaps.md │ │ ├── 3.i18n.md │ │ ├── 4.content.md │ │ ├── 5.prerendering.md │ │ ├── 6.best-practices.md │ │ ├── 7.submitting-sitemap.md │ │ └── 8.zero-runtime.md │ ├── 2.advanced/ │ │ ├── 0.loc-data.md │ │ ├── 1.images-videos.md │ │ ├── 2.performance.md │ │ ├── 3.chunking-sources.md │ │ └── 4.customising-ui.md │ ├── 4.api/ │ │ ├── 0.config.md │ │ └── 1.nuxt-hooks.md │ ├── 5.nitro-api/ │ │ └── nitro-hooks.md │ └── 5.releases/ │ ├── 3.v8.md │ ├── 4.v7.md │ ├── 5.v6.md │ ├── 6.v5.md │ ├── 7.v4.md │ └── 8.v3.md ├── eslint.config.mjs ├── examples/ │ ├── basic/ │ │ ├── app/ │ │ │ ├── app.vue │ │ │ └── pages/ │ │ │ ├── about.vue │ │ │ ├── contact.vue │ │ │ └── index.vue │ │ ├── nuxt.config.ts │ │ ├── package.json │ │ └── tsconfig.json │ ├── dynamic-urls/ │ │ ├── app/ │ │ │ ├── app.vue │ │ │ └── pages/ │ │ │ ├── blog/ │ │ │ │ └── [slug].vue │ │ │ └── index.vue │ │ ├── nuxt.config.ts │ │ ├── package.json │ │ ├── server/ │ │ │ └── api/ │ │ │ └── _sitemap-urls.ts │ │ └── tsconfig.json │ └── i18n/ │ ├── app/ │ │ ├── app.vue │ │ └── pages/ │ │ ├── about.vue │ │ ├── contact.vue │ │ └── index.vue │ ├── nuxt.config.ts │ ├── package.json │ └── tsconfig.json ├── package.json ├── patches/ │ └── @nuxtjs__mdc.patch ├── playground/ │ ├── .nuxtrc │ ├── app.vue │ ├── assets/ │ │ └── css/ │ │ └── main.css │ ├── content/ │ │ ├── _partial.md │ │ ├── bar.md │ │ ├── foo.md │ │ └── posts/ │ │ ├── bar.md │ │ └── foo.md │ ├── nuxt.config.ts │ ├── pages/ │ │ ├── .ignored/ │ │ │ └── test.vue │ │ ├── [...slug].vue │ │ ├── _dir/ │ │ │ └── robots.txt │ │ ├── about.vue │ │ ├── api/ │ │ │ └── foo.vue │ │ ├── blocked-by-robots-txt/ │ │ │ └── foo.vue │ │ ├── blog/ │ │ │ ├── [id].vue │ │ │ ├── categories.vue │ │ │ ├── index.vue │ │ │ ├── tags/ │ │ │ │ ├── edit.vue │ │ │ │ └── new.vue │ │ │ └── tags.vue │ │ ├── blog.vue │ │ ├── foo.bar.vue │ │ ├── hidden-path-but-in-sitemap/ │ │ │ └── index.vue │ │ ├── hide-me.vue │ │ ├── ignore-foo.vue │ │ ├── index.vue │ │ ├── new-page.vue │ │ ├── prerender-video.vue │ │ ├── prerender.vue │ │ ├── secret.vue │ │ └── users-[group]/ │ │ ├── [id].vue │ │ └── index.vue │ ├── server/ │ │ ├── api/ │ │ │ ├── _sitemap-urls.ts │ │ │ ├── fetch.ts │ │ │ ├── multi-sitemap-sources/ │ │ │ │ ├── bar.ts │ │ │ │ └── foo.ts │ │ │ ├── prerendered.ts │ │ │ ├── sitemap-bar.ts │ │ │ ├── sitemap-foo.ts │ │ │ └── sitemap-urls-to-be-confumsed-by-fetch.ts │ │ ├── plugins/ │ │ │ └── sitemap.ts │ │ ├── routes/ │ │ │ └── __sitemap.ts │ │ └── tsconfig.json │ └── tsconfig.json ├── pnpm-workspace.yaml ├── src/ │ ├── content.ts │ ├── devtools.ts │ ├── module.ts │ ├── prerender.ts │ ├── runtime/ │ │ ├── server/ │ │ │ ├── composables/ │ │ │ │ ├── asSitemapUrl.ts │ │ │ │ └── defineSitemapEventHandler.ts │ │ │ ├── content-compat.ts │ │ │ ├── kit.ts │ │ │ ├── plugins/ │ │ │ │ ├── compression.ts │ │ │ │ ├── nuxt-content-v2.ts │ │ │ │ └── warm-up.ts │ │ │ ├── robots-polyfill/ │ │ │ │ └── getPathRobotConfig.ts │ │ │ ├── routes/ │ │ │ │ ├── __sitemap__/ │ │ │ │ │ ├── debug-production.ts │ │ │ │ │ ├── debug.ts │ │ │ │ │ ├── nuxt-content-urls-v2.ts │ │ │ │ │ └── nuxt-content-urls-v3.ts │ │ │ │ ├── __zero-runtime/ │ │ │ │ │ ├── sitemap/ │ │ │ │ │ │ └── [sitemap].xml.ts │ │ │ │ │ ├── sitemap.xml.ts │ │ │ │ │ └── sitemap_index.xml.ts │ │ │ │ ├── sitemap/ │ │ │ │ │ └── [sitemap].xml.ts │ │ │ │ ├── sitemap.xml.ts │ │ │ │ ├── sitemap.xsl.ts │ │ │ │ └── sitemap_index.xml.ts │ │ │ ├── sitemap/ │ │ │ │ ├── builder/ │ │ │ │ │ ├── sitemap-index.ts │ │ │ │ │ ├── sitemap.ts │ │ │ │ │ └── xml.ts │ │ │ │ ├── event-handlers.ts │ │ │ │ ├── nitro.ts │ │ │ │ ├── urlset/ │ │ │ │ │ ├── normalise.ts │ │ │ │ │ ├── sort.ts │ │ │ │ │ └── sources.ts │ │ │ │ └── utils/ │ │ │ │ └── chunk.ts │ │ │ ├── tsconfig.json │ │ │ └── utils.ts │ │ ├── types.ts │ │ └── utils-pure.ts │ ├── templates.ts │ ├── utils/ │ │ ├── index.ts │ │ ├── parseHtmlExtractSitemapMeta.ts │ │ ├── parseSitemapIndex.ts │ │ └── parseSitemapXml.ts │ └── utils-internal/ │ ├── filter.ts │ ├── i18n.ts │ ├── kit.ts │ └── nuxtSitemap.ts ├── test/ │ ├── bench/ │ │ ├── i18n.bench.ts │ │ ├── normalize.bench.ts │ │ ├── sitemap.bench.ts │ │ └── xml.bench.ts │ ├── e2e/ │ │ ├── chunks/ │ │ │ ├── cache-headers.test.ts │ │ │ ├── chunk-count.test.ts │ │ │ ├── default.ts │ │ │ ├── generate.test.ts │ │ │ └── memoization.test.ts │ │ ├── content-v3/ │ │ │ ├── default.test.ts │ │ │ ├── define-schema.test.ts │ │ │ ├── filtering.test.ts │ │ │ ├── i18n.test.ts │ │ │ └── yaml-json.test.ts │ │ ├── global-setup.ts │ │ ├── hooks/ │ │ │ └── sources-hook-simple.test.ts │ │ ├── i18n/ │ │ │ ├── custom-paths-no-prefix.test.ts │ │ │ ├── custom-paths.test.ts │ │ │ ├── custom-sitemaps-i18n.test.ts │ │ │ ├── domains.test.ts │ │ │ ├── dynamic-urls.test.ts │ │ │ ├── filtering-base-url.test.ts │ │ │ ├── filtering-include.test.ts │ │ │ ├── filtering-regexp.test.ts │ │ │ ├── filtering.test.ts │ │ │ ├── generate-prefix-except-default.test.ts │ │ │ ├── generate.test.ts │ │ │ ├── no-prefix.test.ts │ │ │ ├── pages-multi.test.ts │ │ │ ├── pages.disabled-routes.test.ts │ │ │ ├── pages.no-prefix.test.ts │ │ │ ├── pages.only-locales.test.ts │ │ │ ├── pages.prefix-and-default.test.ts │ │ │ ├── pages.prefix-except-default.test.ts │ │ │ ├── pages.prefix.test.ts │ │ │ ├── pages.test.ts │ │ │ ├── prefix-and-default.test.ts │ │ │ ├── prefix-except-default.test.ts │ │ │ ├── prefix-iso.test.ts │ │ │ ├── prefix-simple.test.ts │ │ │ ├── route-rules.test.ts │ │ │ └── simple-trailing.test.ts │ │ ├── issues/ │ │ │ ├── 504-duplicate-api-calls.test.ts │ │ │ ├── issue-384.test.ts │ │ │ ├── issue-561.test.ts │ │ │ ├── issue-564.test.ts │ │ │ └── issue-588.test.ts │ │ ├── multi/ │ │ │ ├── cache-filesystem.test.ts │ │ │ ├── cache-swr.test.ts │ │ │ ├── chunking-edge-cases.test.ts │ │ │ ├── chunking.test.ts │ │ │ ├── defaults.ts │ │ │ ├── endpoints.ts │ │ │ ├── filtering.test.ts │ │ │ └── issue-514.test.ts │ │ └── single/ │ │ ├── baseUrl.test.ts │ │ ├── baseUrlTrailingSlash.test.ts │ │ ├── changeApiUrl.test.ts │ │ ├── encodeDynamicUrls.test.ts │ │ ├── filtering.test.ts │ │ ├── generate.test.ts │ │ ├── issue-592.test.ts │ │ ├── lastmod.test.ts │ │ ├── news.test.ts │ │ ├── pageMetaSitemap.test.ts │ │ ├── queryRoutes.test.ts │ │ ├── routeRules.ts │ │ ├── routeRulesTrailingSlash.test.ts │ │ ├── sitemapName.test.ts │ │ ├── trailingSlashes.ts │ │ ├── urlEncoded.test.ts │ │ ├── video.test.ts │ │ ├── xsl.test.ts │ │ ├── zero-runtime-build.test.ts │ │ └── zero-runtime-dev.test.ts │ ├── fixtures/ │ │ ├── basic/ │ │ │ ├── nuxt.config.ts │ │ │ ├── pages/ │ │ │ │ ├── about.vue │ │ │ │ ├── crawled.vue │ │ │ │ ├── dynamic/ │ │ │ │ │ └── [slug].vue │ │ │ │ ├── index.vue │ │ │ │ └── sub/ │ │ │ │ └── page.vue │ │ │ └── server/ │ │ │ ├── api/ │ │ │ │ └── sitemap/ │ │ │ │ ├── bar.ts │ │ │ │ └── foo.ts │ │ │ └── routes/ │ │ │ └── __sitemap.ts │ │ ├── chunk-cache/ │ │ │ ├── app.vue │ │ │ ├── nuxt.config.ts │ │ │ └── server/ │ │ │ └── api/ │ │ │ ├── posts.ts │ │ │ └── source-call-count.ts │ │ ├── chunk-count/ │ │ │ ├── app.vue │ │ │ ├── nuxt.config.ts │ │ │ └── server/ │ │ │ └── api/ │ │ │ ├── posts-call-count.ts │ │ │ └── posts.ts │ │ ├── chunks/ │ │ │ ├── app.vue │ │ │ ├── nuxt.config.ts │ │ │ └── server/ │ │ │ ├── api/ │ │ │ │ └── sitemap/ │ │ │ │ ├── bar.ts │ │ │ │ └── foo.ts │ │ │ └── routes/ │ │ │ └── __sitemap.ts │ │ ├── content-v3/ │ │ │ ├── .nuxtrc │ │ │ ├── app.vue │ │ │ ├── content/ │ │ │ │ ├── .navigation.yml │ │ │ │ ├── _partial.md │ │ │ │ ├── bar.md │ │ │ │ ├── foo.md │ │ │ │ ├── posts/ │ │ │ │ │ ├── .navigation.yml │ │ │ │ │ ├── bar.md │ │ │ │ │ ├── fallback.md │ │ │ │ │ └── foo.md │ │ │ │ ├── test-json.json │ │ │ │ └── test-yaml.yml │ │ │ ├── content.config.ts │ │ │ ├── nuxt.config.ts │ │ │ └── pages/ │ │ │ └── [...slug].vue │ │ ├── content-v3-define-schema/ │ │ │ ├── app.vue │ │ │ ├── content/ │ │ │ │ ├── bar.md │ │ │ │ ├── draft.md │ │ │ │ ├── foo.md │ │ │ │ ├── future.md │ │ │ │ └── published.md │ │ │ ├── content.config.ts │ │ │ ├── nuxt.config.ts │ │ │ └── pages/ │ │ │ └── [...slug].vue │ │ ├── content-v3-filtering/ │ │ │ ├── content/ │ │ │ │ ├── bar.md │ │ │ │ ├── draft.md │ │ │ │ ├── foo.md │ │ │ │ ├── future.md │ │ │ │ └── published.md │ │ │ ├── content.config.ts │ │ │ └── nuxt.config.ts │ │ ├── content-v3-i18n/ │ │ │ ├── .nuxtrc │ │ │ ├── app.vue │ │ │ ├── content/ │ │ │ │ ├── en/ │ │ │ │ │ ├── getting-started.md │ │ │ │ │ └── index.md │ │ │ │ └── ja/ │ │ │ │ ├── getting-started.md │ │ │ │ └── index.md │ │ │ ├── content.config.ts │ │ │ ├── nuxt.config.ts │ │ │ └── pages/ │ │ │ └── [...slug].vue │ │ ├── generate/ │ │ │ ├── nuxt.config.ts │ │ │ ├── pages/ │ │ │ │ ├── about.vue │ │ │ │ ├── crawled.vue │ │ │ │ ├── dynamic/ │ │ │ │ │ └── [slug].vue │ │ │ │ ├── index.vue │ │ │ │ ├── noindex.vue │ │ │ │ └── sub/ │ │ │ │ └── page.vue │ │ │ └── server/ │ │ │ ├── api/ │ │ │ │ └── sitemap/ │ │ │ │ ├── bar.ts │ │ │ │ └── foo.ts │ │ │ └── routes/ │ │ │ └── __sitemap.ts │ │ ├── hooks/ │ │ │ ├── nuxt.config.ts │ │ │ ├── pages/ │ │ │ │ └── index.vue │ │ │ └── server/ │ │ │ ├── plugins/ │ │ │ │ └── sitemap.ts │ │ │ └── routes/ │ │ │ └── __sitemap.ts │ │ ├── i18n/ │ │ │ ├── locales/ │ │ │ │ ├── en.ts │ │ │ │ ├── hr.ts │ │ │ │ ├── ja.ts │ │ │ │ ├── nl.ts │ │ │ │ └── zh.ts │ │ │ ├── nuxt.config.ts │ │ │ ├── pages/ │ │ │ │ ├── dynamic/ │ │ │ │ │ └── [page].vue │ │ │ │ ├── index.vue │ │ │ │ ├── no-i18n.vue │ │ │ │ └── test.vue │ │ │ └── server/ │ │ │ └── routes/ │ │ │ ├── __sitemap.ts │ │ │ └── i18n-urls.ts │ │ ├── i18n-custom-paths/ │ │ │ ├── app.vue │ │ │ ├── nuxt.config.ts │ │ │ └── server/ │ │ │ └── routes/ │ │ │ └── __sitemap.ts │ │ ├── i18n-generate/ │ │ │ ├── nuxt.config.ts │ │ │ └── pages/ │ │ │ └── index.vue │ │ ├── i18n-micro/ │ │ │ ├── locales/ │ │ │ │ ├── en.ts │ │ │ │ ├── hr.ts │ │ │ │ ├── ja.ts │ │ │ │ ├── nl.ts │ │ │ │ └── zh.ts │ │ │ ├── nuxt.config.ts │ │ │ ├── pages/ │ │ │ │ ├── dynamic/ │ │ │ │ │ └── [page].vue │ │ │ │ ├── index.vue │ │ │ │ └── test.vue │ │ │ └── server/ │ │ │ └── routes/ │ │ │ ├── __sitemap.ts │ │ │ └── i18n-urls.ts │ │ ├── i18n-no-prefix/ │ │ │ ├── locales/ │ │ │ │ ├── en.ts │ │ │ │ ├── hr.ts │ │ │ │ ├── ja.ts │ │ │ │ ├── nl.ts │ │ │ │ └── zh.ts │ │ │ ├── nuxt.config.ts │ │ │ ├── pages/ │ │ │ │ ├── dynamic/ │ │ │ │ │ └── [page].vue │ │ │ │ ├── index.vue │ │ │ │ └── test.vue │ │ │ └── server/ │ │ │ └── routes/ │ │ │ ├── __sitemap.ts │ │ │ └── i18n-urls.ts │ │ ├── issue-384/ │ │ │ ├── nuxt.config.ts │ │ │ └── pages/ │ │ │ ├── about.vue │ │ │ └── index.vue │ │ ├── issue-504/ │ │ │ ├── nuxt.config.ts │ │ │ ├── pages/ │ │ │ │ ├── about.vue │ │ │ │ └── index.vue │ │ │ └── server/ │ │ │ └── api/ │ │ │ └── __sitemap__/ │ │ │ ├── [s_type].ts │ │ │ └── call-count.ts │ │ ├── issue-514/ │ │ │ ├── nuxt.config.ts │ │ │ ├── pages/ │ │ │ │ ├── about.vue │ │ │ │ └── index.vue │ │ │ └── server/ │ │ │ └── api/ │ │ │ └── urls.ts │ │ ├── issue-561/ │ │ │ ├── nuxt.config.ts │ │ │ └── pages/ │ │ │ ├── index.vue │ │ │ ├── privacy-policy.vue │ │ │ └── submit-art.vue │ │ ├── issue-588/ │ │ │ ├── nuxt.config.ts │ │ │ └── pages/ │ │ │ ├── about.vue │ │ │ ├── contact.vue │ │ │ └── index.vue │ │ ├── issue-592/ │ │ │ ├── nuxt.config.ts │ │ │ └── pages/ │ │ │ └── index.vue │ │ ├── multi-with-chunks/ │ │ │ ├── app.vue │ │ │ ├── nuxt.config.ts │ │ │ └── server/ │ │ │ └── api/ │ │ │ ├── posts.ts │ │ │ └── products.ts │ │ ├── no-pages/ │ │ │ ├── app.vue │ │ │ └── nuxt.config.ts │ │ └── sources-hook/ │ │ ├── nuxt.config.ts │ │ ├── pages/ │ │ │ └── index.vue │ │ └── server/ │ │ ├── api/ │ │ │ ├── dynamic-source.ts │ │ │ └── initial-source.ts │ │ └── plugins/ │ │ └── sources-hook.ts │ ├── types/ │ │ ├── templates.test-d.ts │ │ └── tsconfig.json │ └── unit/ │ ├── i18n-disabled-routes.test.ts │ ├── i18n-dynamic-routes.test.ts │ ├── i18n.test.ts │ ├── lastmod.test.ts │ ├── normalise.test.ts │ ├── parseHtmlExtractSitemapMeta.test.ts │ ├── parsePages.test.ts │ ├── parseSitemapXml.test.ts │ ├── sitemapIndex.test.ts │ ├── sorting.test.ts │ └── sourcesHook.test.ts ├── tsconfig.json └── vitest.config.ts