@nuxtjs/sitemap 7.2.2 → 7.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/200.html +8 -8
- package/dist/client/404.html +8 -8
- package/dist/client/_nuxt/{55E5Yw1s.js → CVk65OM4.js} +1 -1
- package/dist/client/_nuxt/{7drkBByC.js → DSpSYhQ0.js} +1 -1
- package/dist/client/_nuxt/DjCbjd0V.js +1 -0
- package/dist/client/_nuxt/{DMlF0wMg.js → Dr1nZTDi.js} +11 -11
- package/dist/client/_nuxt/builds/latest.json +1 -1
- package/dist/client/_nuxt/builds/meta/a7edfb62-88a3-4edd-bb56-925f702ef970.json +1 -0
- package/dist/client/_nuxt/error-404.XjI5GY46.css +1 -0
- package/dist/client/_nuxt/error-500.BYuxNBj_.css +1 -0
- package/dist/client/index.html +8 -8
- package/dist/module.cjs +33 -18
- package/dist/module.json +1 -1
- package/dist/module.mjs +33 -18
- package/dist/runtime/server/plugins/nuxt-content-v2.js +2 -2
- package/dist/runtime/server/plugins/warm-up.js +2 -2
- package/dist/runtime/server/routes/__sitemap__/debug.js +2 -2
- package/dist/runtime/server/routes/sitemap/[sitemap].xml.js +2 -2
- package/dist/runtime/server/routes/sitemap.xml.js +2 -2
- package/dist/runtime/server/routes/sitemap.xsl.js +2 -2
- package/dist/runtime/server/routes/sitemap_index.xml.js +2 -2
- package/dist/runtime/server/sitemap/urlset/sources.js +1 -1
- package/dist/runtime/server/utils.d.ts +1 -1
- package/dist/runtime/server/utils.js +1 -1
- package/package.json +11 -11
- package/dist/client/_nuxt/BJ4Li9vH.js +0 -1
- package/dist/client/_nuxt/builds/meta/bc845d88-1260-4cd6-8743-707a992c7426.json +0 -1
- package/dist/client/_nuxt/error-404.DWO74KKP.css +0 -1
- package/dist/client/_nuxt/error-500.DVC0lzO_.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"
|
|
1
|
+
{"id":"a7edfb62-88a3-4edd-bb56-925f702ef970","timestamp":1738116556737}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"a7edfb62-88a3-4edd-bb56-925f702ef970","timestamp":1738116556737,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.spotlight[data-v-361c38f9]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);bottom:-30vh;filter:blur(20vh);height:40vh}.gradient-border[data-v-361c38f9]{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:.5rem;position:relative}@media (prefers-color-scheme:light){.gradient-border[data-v-361c38f9]{background-color:#ffffff4d}.gradient-border[data-v-361c38f9]:before{background:linear-gradient(90deg,#e2e2e2,#e2e2e2 25%,#00dc82,#36e4da 75%,#0047e1)}}@media (prefers-color-scheme:dark){.gradient-border[data-v-361c38f9]{background-color:#1414144d}.gradient-border[data-v-361c38f9]:before{background:linear-gradient(90deg,#303030,#303030 25%,#00dc82,#36e4da 75%,#0047e1)}}.gradient-border[data-v-361c38f9]:before{background-size:400% auto;border-radius:.5rem;bottom:0;content:"";left:0;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.5;padding:2px;position:absolute;right:0;top:0;transition:background-position .3s ease-in-out,opacity .2s ease-in-out;width:100%}.gradient-border[data-v-361c38f9]:hover:before{background-position:-50% 0;opacity:1}.fixed[data-v-361c38f9]{position:fixed}.left-0[data-v-361c38f9]{left:0}.right-0[data-v-361c38f9]{right:0}.z-10[data-v-361c38f9]{z-index:10}.z-20[data-v-361c38f9]{z-index:20}.grid[data-v-361c38f9]{display:grid}.mb-16[data-v-361c38f9]{margin-bottom:4rem}.mb-8[data-v-361c38f9]{margin-bottom:2rem}.max-w-520px[data-v-361c38f9]{max-width:520px}.min-h-screen[data-v-361c38f9]{min-height:100vh}.w-full[data-v-361c38f9]{width:100%}.flex[data-v-361c38f9]{display:flex}.cursor-pointer[data-v-361c38f9]{cursor:pointer}.place-content-center[data-v-361c38f9]{place-content:center}.items-center[data-v-361c38f9]{align-items:center}.justify-center[data-v-361c38f9]{justify-content:center}.overflow-hidden[data-v-361c38f9]{overflow:hidden}.bg-white[data-v-361c38f9]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-4[data-v-361c38f9]{padding-left:1rem;padding-right:1rem}.px-8[data-v-361c38f9]{padding-left:2rem;padding-right:2rem}.py-2[data-v-361c38f9]{padding-bottom:.5rem;padding-top:.5rem}.text-center[data-v-361c38f9]{text-align:center}.text-8xl[data-v-361c38f9]{font-size:6rem;line-height:1}.text-xl[data-v-361c38f9]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-361c38f9]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-361c38f9]{font-weight:300}.font-medium[data-v-361c38f9]{font-weight:500}.leading-tight[data-v-361c38f9]{line-height:1.25}.font-sans[data-v-361c38f9]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.antialiased[data-v-361c38f9]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\:bg-black[data-v-361c38f9]{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\:text-white[data-v-361c38f9]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\:px-0[data-v-361c38f9]{padding-left:0;padding-right:0}.sm\:px-6[data-v-361c38f9]{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-3[data-v-361c38f9]{padding-bottom:.75rem;padding-top:.75rem}.sm\:text-4xl[data-v-361c38f9]{font-size:2.25rem;line-height:2.5rem}.sm\:text-xl[data-v-361c38f9]{font-size:1.25rem;line-height:1.75rem}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.spotlight[data-v-a95503b2]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);filter:blur(20vh)}.fixed[data-v-a95503b2]{position:fixed}.-bottom-1\/2[data-v-a95503b2]{bottom:-50%}.left-0[data-v-a95503b2]{left:0}.right-0[data-v-a95503b2]{right:0}.grid[data-v-a95503b2]{display:grid}.mb-16[data-v-a95503b2]{margin-bottom:4rem}.mb-8[data-v-a95503b2]{margin-bottom:2rem}.h-1\/2[data-v-a95503b2]{height:50%}.max-w-520px[data-v-a95503b2]{max-width:520px}.min-h-screen[data-v-a95503b2]{min-height:100vh}.place-content-center[data-v-a95503b2]{place-content:center}.overflow-hidden[data-v-a95503b2]{overflow:hidden}.bg-white[data-v-a95503b2]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-8[data-v-a95503b2]{padding-left:2rem;padding-right:2rem}.text-center[data-v-a95503b2]{text-align:center}.text-8xl[data-v-a95503b2]{font-size:6rem;line-height:1}.text-xl[data-v-a95503b2]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-a95503b2]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-a95503b2]{font-weight:300}.font-medium[data-v-a95503b2]{font-weight:500}.leading-tight[data-v-a95503b2]{line-height:1.25}.font-sans[data-v-a95503b2]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.antialiased[data-v-a95503b2]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\:bg-black[data-v-a95503b2]{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\:text-white[data-v-a95503b2]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\:px-0[data-v-a95503b2]{padding-left:0;padding-right:0}.sm\:text-4xl[data-v-a95503b2]{font-size:2.25rem;line-height:2.5rem}}
|
package/dist/client/index.html
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<!DOCTYPE html><html data-capo=""><head><meta charset="utf-8">
|
|
2
2
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
3
3
|
<link rel="stylesheet" href="/__sitemap__/devtools/_nuxt/entry.CJ2Eg9q-.css" crossorigin>
|
|
4
|
-
<link rel="modulepreload" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/
|
|
4
|
+
<link rel="modulepreload" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/Dr1nZTDi.js">
|
|
5
5
|
<link rel="prefetch" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/DsBKuouk.js">
|
|
6
6
|
<link rel="prefetch" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/D_z4Izcz.js">
|
|
7
7
|
<link rel="prefetch" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/727ZlQH0.js">
|
|
@@ -174,7 +174,7 @@
|
|
|
174
174
|
<link rel="prefetch" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/CSp6iqVD.js">
|
|
175
175
|
<link rel="prefetch" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/Be6lgOlo.js">
|
|
176
176
|
<link rel="prefetch" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/BiFfXF7O.js">
|
|
177
|
-
<link rel="prefetch" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/
|
|
177
|
+
<link rel="prefetch" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/DjCbjd0V.js">
|
|
178
178
|
<link rel="prefetch" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/DQVVAn-B.js">
|
|
179
179
|
<link rel="prefetch" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/BJGe-b2p.js">
|
|
180
180
|
<link rel="prefetch" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/B14Poo8t.js">
|
|
@@ -275,9 +275,9 @@
|
|
|
275
275
|
<link rel="prefetch" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/D0r3Knsf.js">
|
|
276
276
|
<link rel="prefetch" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/CVO1_9PV.js">
|
|
277
277
|
<link rel="prefetch" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/CG6Dc4jp.js">
|
|
278
|
-
<link rel="prefetch" as="style" crossorigin href="/__sitemap__/devtools/_nuxt/error-404.
|
|
279
|
-
<link rel="prefetch" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/
|
|
280
|
-
<link rel="prefetch" as="style" crossorigin href="/__sitemap__/devtools/_nuxt/error-500.
|
|
281
|
-
<link rel="prefetch" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/
|
|
282
|
-
<script type="module" src="/__sitemap__/devtools/_nuxt/
|
|
283
|
-
<script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__sitemap__/devtools",buildId:"
|
|
278
|
+
<link rel="prefetch" as="style" crossorigin href="/__sitemap__/devtools/_nuxt/error-404.XjI5GY46.css">
|
|
279
|
+
<link rel="prefetch" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/DSpSYhQ0.js">
|
|
280
|
+
<link rel="prefetch" as="style" crossorigin href="/__sitemap__/devtools/_nuxt/error-500.BYuxNBj_.css">
|
|
281
|
+
<link rel="prefetch" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/CVk65OM4.js">
|
|
282
|
+
<script type="module" src="/__sitemap__/devtools/_nuxt/Dr1nZTDi.js" crossorigin></script></head><body><div id="__nuxt"></div><div id="teleports"></div><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1738116561334,false]</script>
|
|
283
|
+
<script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__sitemap__/devtools",buildId:"a7edfb62-88a3-4edd-bb56-925f702ef970",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script></body></html>
|
package/dist/module.cjs
CHANGED
|
@@ -12,7 +12,6 @@ const stdEnv = require('std-env');
|
|
|
12
12
|
const promises = require('node:fs/promises');
|
|
13
13
|
const node_path = require('node:path');
|
|
14
14
|
const chalk = require('chalk');
|
|
15
|
-
const nitropack = require('nitropack');
|
|
16
15
|
const normalise_js = require('../dist/runtime/server/sitemap/urlset/normalise.js');
|
|
17
16
|
|
|
18
17
|
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
@@ -232,6 +231,9 @@ export {}
|
|
|
232
231
|
function createPagesPromise(nuxt = kit.useNuxt()) {
|
|
233
232
|
return new Promise((resolve) => {
|
|
234
233
|
nuxt.hooks.hook("modules:done", () => {
|
|
234
|
+
if (typeof nuxt.options.pages !== "undefined" && nuxt.options.pages === false) {
|
|
235
|
+
return resolve([]);
|
|
236
|
+
}
|
|
235
237
|
kit.extendPages(resolve);
|
|
236
238
|
});
|
|
237
239
|
});
|
|
@@ -290,19 +292,18 @@ const sourceRegex = /<source[^>]*\ssrc="([^"]+)"/g;
|
|
|
290
292
|
function extractSitemapMetaFromHtml(html, options) {
|
|
291
293
|
options = options || { images: true, videos: true, lastmod: true, alternatives: true };
|
|
292
294
|
const payload = {};
|
|
295
|
+
const resolveUrl = options?.resolveUrl || ((s) => s);
|
|
296
|
+
const mainRegex = /<main[^>]*>([\s\S]*?)<\/main>/;
|
|
297
|
+
const mainMatch = mainRegex.exec(html);
|
|
293
298
|
if (options?.images) {
|
|
294
299
|
const images = /* @__PURE__ */ new Set();
|
|
295
|
-
const mainRegex = /<main[^>]*>([\s\S]*?)<\/main>/;
|
|
296
|
-
const mainMatch = mainRegex.exec(html);
|
|
297
300
|
if (mainMatch?.[1] && mainMatch[1].includes("<img")) {
|
|
298
301
|
const imgRegex = /<img\s+(?:[^>]*?\s)?src=["']((?!data:|blob:|file:)[^"']+?)["'][^>]*>/gi;
|
|
299
302
|
let match;
|
|
300
303
|
while ((match = imgRegex.exec(mainMatch[1])) !== null) {
|
|
301
304
|
if (match.index === imgRegex.lastIndex)
|
|
302
305
|
imgRegex.lastIndex++;
|
|
303
|
-
|
|
304
|
-
if (url.startsWith("/"))
|
|
305
|
-
url = kit.tryUseNuxt() ? kit$1.withSiteUrl(url) : url;
|
|
306
|
+
const url = resolveUrl(match[1]);
|
|
306
307
|
images.add(url);
|
|
307
308
|
}
|
|
308
309
|
}
|
|
@@ -311,8 +312,6 @@ function extractSitemapMetaFromHtml(html, options) {
|
|
|
311
312
|
}
|
|
312
313
|
if (options?.videos) {
|
|
313
314
|
const videos = [];
|
|
314
|
-
const mainRegex = /<main[^>]*>([\s\S]*?)<\/main>/;
|
|
315
|
-
const mainMatch = mainRegex.exec(html);
|
|
316
315
|
if (mainMatch?.[1] && mainMatch[1].includes("<video")) {
|
|
317
316
|
let videoMatch;
|
|
318
317
|
while ((videoMatch = videoRegex.exec(mainMatch[1])) !== null) {
|
|
@@ -365,11 +364,12 @@ function extractSitemapMetaFromHtml(html, options) {
|
|
|
365
364
|
}
|
|
366
365
|
if (sources.length > 0) {
|
|
367
366
|
videos.push(...sources.map((source) => {
|
|
368
|
-
if (
|
|
369
|
-
|
|
367
|
+
if (videoObj.thumbnail_loc) {
|
|
368
|
+
videoObj.thumbnail_loc = resolveUrl(String(videoObj.thumbnail_loc));
|
|
369
|
+
}
|
|
370
370
|
return {
|
|
371
371
|
...videoObj,
|
|
372
|
-
content_loc: source
|
|
372
|
+
content_loc: resolveUrl(source)
|
|
373
373
|
};
|
|
374
374
|
}));
|
|
375
375
|
} else {
|
|
@@ -460,11 +460,24 @@ function setupPrerenderHandler(_options, nuxt = kit.useNuxt()) {
|
|
|
460
460
|
videos: options.discoverVideos,
|
|
461
461
|
// TODO configurable?
|
|
462
462
|
lastmod: true,
|
|
463
|
-
alternatives: true
|
|
463
|
+
alternatives: true,
|
|
464
|
+
resolveUrl(s) {
|
|
465
|
+
return s.startsWith("/") ? kit$1.withSiteUrl(s) : s;
|
|
466
|
+
}
|
|
464
467
|
}), route._sitemap);
|
|
465
468
|
});
|
|
466
469
|
nitro.hooks.hook("prerender:done", async () => {
|
|
467
|
-
|
|
470
|
+
const isNuxt4 = nuxt.options._majorVersion === 4;
|
|
471
|
+
let nitroModule;
|
|
472
|
+
if (isNuxt4) {
|
|
473
|
+
nitroModule = await import(String("nitro"));
|
|
474
|
+
} else {
|
|
475
|
+
nitroModule = await import(String("nitropack"));
|
|
476
|
+
}
|
|
477
|
+
if (!nitroModule) {
|
|
478
|
+
return;
|
|
479
|
+
}
|
|
480
|
+
await nitroModule.build(prerenderer);
|
|
468
481
|
const routes = [];
|
|
469
482
|
if (options.debug)
|
|
470
483
|
routes.push("/__sitemap__/debug.json");
|
|
@@ -866,11 +879,13 @@ declare module 'vue-router' {
|
|
|
866
879
|
if (typeof config.runtimeCacheStorage === "object")
|
|
867
880
|
routeRules.cache.base = "sitemap";
|
|
868
881
|
}
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
882
|
+
if (config.xsl) {
|
|
883
|
+
nuxt.options.nitro.routeRules[config.xsl] = {
|
|
884
|
+
headers: {
|
|
885
|
+
"Content-Type": "application/xslt+xml"
|
|
886
|
+
}
|
|
887
|
+
};
|
|
888
|
+
}
|
|
874
889
|
if (usingMultiSitemaps) {
|
|
875
890
|
nuxt.options.nitro.routeRules["/sitemap.xml"] = { redirect: "/sitemap_index.xml" };
|
|
876
891
|
nuxt.options.nitro.routeRules["/sitemap_index.xml"] = routeRules;
|
package/dist/module.json
CHANGED
package/dist/module.mjs
CHANGED
|
@@ -10,7 +10,6 @@ import { provider, env } from 'std-env';
|
|
|
10
10
|
import { mkdir, writeFile } from 'node:fs/promises';
|
|
11
11
|
import { join } from 'node:path';
|
|
12
12
|
import chalk from 'chalk';
|
|
13
|
-
import { build } from 'nitropack';
|
|
14
13
|
import { normaliseDate } from '../dist/runtime/server/sitemap/urlset/normalise.js';
|
|
15
14
|
|
|
16
15
|
async function resolveUrls(urls, ctx) {
|
|
@@ -225,6 +224,9 @@ export {}
|
|
|
225
224
|
function createPagesPromise(nuxt = useNuxt()) {
|
|
226
225
|
return new Promise((resolve) => {
|
|
227
226
|
nuxt.hooks.hook("modules:done", () => {
|
|
227
|
+
if (typeof nuxt.options.pages !== "undefined" && nuxt.options.pages === false) {
|
|
228
|
+
return resolve([]);
|
|
229
|
+
}
|
|
228
230
|
extendPages(resolve);
|
|
229
231
|
});
|
|
230
232
|
});
|
|
@@ -283,19 +285,18 @@ const sourceRegex = /<source[^>]*\ssrc="([^"]+)"/g;
|
|
|
283
285
|
function extractSitemapMetaFromHtml(html, options) {
|
|
284
286
|
options = options || { images: true, videos: true, lastmod: true, alternatives: true };
|
|
285
287
|
const payload = {};
|
|
288
|
+
const resolveUrl = options?.resolveUrl || ((s) => s);
|
|
289
|
+
const mainRegex = /<main[^>]*>([\s\S]*?)<\/main>/;
|
|
290
|
+
const mainMatch = mainRegex.exec(html);
|
|
286
291
|
if (options?.images) {
|
|
287
292
|
const images = /* @__PURE__ */ new Set();
|
|
288
|
-
const mainRegex = /<main[^>]*>([\s\S]*?)<\/main>/;
|
|
289
|
-
const mainMatch = mainRegex.exec(html);
|
|
290
293
|
if (mainMatch?.[1] && mainMatch[1].includes("<img")) {
|
|
291
294
|
const imgRegex = /<img\s+(?:[^>]*?\s)?src=["']((?!data:|blob:|file:)[^"']+?)["'][^>]*>/gi;
|
|
292
295
|
let match;
|
|
293
296
|
while ((match = imgRegex.exec(mainMatch[1])) !== null) {
|
|
294
297
|
if (match.index === imgRegex.lastIndex)
|
|
295
298
|
imgRegex.lastIndex++;
|
|
296
|
-
|
|
297
|
-
if (url.startsWith("/"))
|
|
298
|
-
url = tryUseNuxt() ? withSiteUrl(url) : url;
|
|
299
|
+
const url = resolveUrl(match[1]);
|
|
299
300
|
images.add(url);
|
|
300
301
|
}
|
|
301
302
|
}
|
|
@@ -304,8 +305,6 @@ function extractSitemapMetaFromHtml(html, options) {
|
|
|
304
305
|
}
|
|
305
306
|
if (options?.videos) {
|
|
306
307
|
const videos = [];
|
|
307
|
-
const mainRegex = /<main[^>]*>([\s\S]*?)<\/main>/;
|
|
308
|
-
const mainMatch = mainRegex.exec(html);
|
|
309
308
|
if (mainMatch?.[1] && mainMatch[1].includes("<video")) {
|
|
310
309
|
let videoMatch;
|
|
311
310
|
while ((videoMatch = videoRegex.exec(mainMatch[1])) !== null) {
|
|
@@ -358,11 +357,12 @@ function extractSitemapMetaFromHtml(html, options) {
|
|
|
358
357
|
}
|
|
359
358
|
if (sources.length > 0) {
|
|
360
359
|
videos.push(...sources.map((source) => {
|
|
361
|
-
if (
|
|
362
|
-
|
|
360
|
+
if (videoObj.thumbnail_loc) {
|
|
361
|
+
videoObj.thumbnail_loc = resolveUrl(String(videoObj.thumbnail_loc));
|
|
362
|
+
}
|
|
363
363
|
return {
|
|
364
364
|
...videoObj,
|
|
365
|
-
content_loc: source
|
|
365
|
+
content_loc: resolveUrl(source)
|
|
366
366
|
};
|
|
367
367
|
}));
|
|
368
368
|
} else {
|
|
@@ -453,11 +453,24 @@ function setupPrerenderHandler(_options, nuxt = useNuxt()) {
|
|
|
453
453
|
videos: options.discoverVideos,
|
|
454
454
|
// TODO configurable?
|
|
455
455
|
lastmod: true,
|
|
456
|
-
alternatives: true
|
|
456
|
+
alternatives: true,
|
|
457
|
+
resolveUrl(s) {
|
|
458
|
+
return s.startsWith("/") ? withSiteUrl(s) : s;
|
|
459
|
+
}
|
|
457
460
|
}), route._sitemap);
|
|
458
461
|
});
|
|
459
462
|
nitro.hooks.hook("prerender:done", async () => {
|
|
460
|
-
|
|
463
|
+
const isNuxt4 = nuxt.options._majorVersion === 4;
|
|
464
|
+
let nitroModule;
|
|
465
|
+
if (isNuxt4) {
|
|
466
|
+
nitroModule = await import(String("nitro"));
|
|
467
|
+
} else {
|
|
468
|
+
nitroModule = await import(String("nitropack"));
|
|
469
|
+
}
|
|
470
|
+
if (!nitroModule) {
|
|
471
|
+
return;
|
|
472
|
+
}
|
|
473
|
+
await nitroModule.build(prerenderer);
|
|
461
474
|
const routes = [];
|
|
462
475
|
if (options.debug)
|
|
463
476
|
routes.push("/__sitemap__/debug.json");
|
|
@@ -859,11 +872,13 @@ declare module 'vue-router' {
|
|
|
859
872
|
if (typeof config.runtimeCacheStorage === "object")
|
|
860
873
|
routeRules.cache.base = "sitemap";
|
|
861
874
|
}
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
875
|
+
if (config.xsl) {
|
|
876
|
+
nuxt.options.nitro.routeRules[config.xsl] = {
|
|
877
|
+
headers: {
|
|
878
|
+
"Content-Type": "application/xslt+xml"
|
|
879
|
+
}
|
|
880
|
+
};
|
|
881
|
+
}
|
|
867
882
|
if (usingMultiSitemaps) {
|
|
868
883
|
nuxt.options.nitro.routeRules["/sitemap.xml"] = { redirect: "/sitemap_index.xml" };
|
|
869
884
|
nuxt.options.nitro.routeRules["/sitemap_index.xml"] = routeRules;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { defu } from "defu";
|
|
2
|
-
import {
|
|
2
|
+
import { useSitemapRuntimeConfig } from "../utils.js";
|
|
3
3
|
import { defineNitroPlugin } from "#imports";
|
|
4
4
|
export default defineNitroPlugin((nitroApp) => {
|
|
5
|
-
const { discoverImages, isNuxtContentDocumentDriven } =
|
|
5
|
+
const { discoverImages, isNuxtContentDocumentDriven } = useSitemapRuntimeConfig();
|
|
6
6
|
nitroApp.hooks.hook("content:file:afterParse", async (content) => {
|
|
7
7
|
const validExtensions = ["md", "mdx"];
|
|
8
8
|
if (content.sitemap === false || content._draft || !validExtensions.includes(content._extension) || content._partial || content.robots === false)
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { withLeadingSlash } from "ufo";
|
|
2
|
-
import {
|
|
2
|
+
import { useSitemapRuntimeConfig } from "../utils.js";
|
|
3
3
|
import { defineNitroPlugin } from "#imports";
|
|
4
4
|
export default defineNitroPlugin((nitroApp) => {
|
|
5
|
-
const { sitemaps } =
|
|
5
|
+
const { sitemaps } = useSitemapRuntimeConfig();
|
|
6
6
|
const queue = [];
|
|
7
7
|
const sitemapsWithRoutes = Object.entries(sitemaps).filter(([, sitemap]) => sitemap._route);
|
|
8
8
|
for (const [, sitemap] of sitemapsWithRoutes)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineEventHandler } from "h3";
|
|
2
|
-
import {
|
|
2
|
+
import { useSitemapRuntimeConfig } from "../../utils.js";
|
|
3
3
|
import {
|
|
4
4
|
childSitemapSources,
|
|
5
5
|
globalSitemapSources,
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
} from "../../sitemap/urlset/sources.js";
|
|
8
8
|
import { useNitroOrigin } from "#imports";
|
|
9
9
|
export default defineEventHandler(async (e) => {
|
|
10
|
-
const _runtimeConfig =
|
|
10
|
+
const _runtimeConfig = useSitemapRuntimeConfig();
|
|
11
11
|
const { sitemaps: _sitemaps } = _runtimeConfig;
|
|
12
12
|
const runtimeConfig = { ..._runtimeConfig };
|
|
13
13
|
delete runtimeConfig.sitemaps;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { createError, defineEventHandler, getRouterParam } from "h3";
|
|
2
2
|
import { withoutLeadingSlash, withoutTrailingSlash } from "ufo";
|
|
3
|
-
import {
|
|
3
|
+
import { useSitemapRuntimeConfig } from "../../utils.js";
|
|
4
4
|
import { createSitemap } from "../../sitemap/nitro.js";
|
|
5
5
|
export default defineEventHandler(async (e) => {
|
|
6
|
-
const runtimeConfig =
|
|
6
|
+
const runtimeConfig = useSitemapRuntimeConfig(e);
|
|
7
7
|
const { sitemaps } = runtimeConfig;
|
|
8
8
|
const sitemapName = withoutLeadingSlash(withoutTrailingSlash((getRouterParam(e, "sitemap") || e.path)?.replace(".xml", "").replace(runtimeConfig.sitemapsPathPrefix || "", "")));
|
|
9
9
|
const isChunking = typeof sitemaps.chunks !== "undefined" && !Number.isNaN(Number(sitemapName));
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { defineEventHandler, sendRedirect } from "h3";
|
|
2
2
|
import { withBase } from "ufo";
|
|
3
|
-
import {
|
|
3
|
+
import { useSitemapRuntimeConfig } from "../utils.js";
|
|
4
4
|
import { createSitemap } from "../sitemap/nitro.js";
|
|
5
5
|
import { useRuntimeConfig } from "#imports";
|
|
6
6
|
export default defineEventHandler(async (e) => {
|
|
7
|
-
const runtimeConfig =
|
|
7
|
+
const runtimeConfig = useSitemapRuntimeConfig();
|
|
8
8
|
const { sitemaps } = runtimeConfig;
|
|
9
9
|
if ("index" in sitemaps) {
|
|
10
10
|
return sendRedirect(e, withBase("/sitemap_index.xml", useRuntimeConfig().app.baseURL), import.meta.dev ? 302 : 301);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { defineEventHandler, getHeader, setHeader } from "h3";
|
|
2
2
|
import { getQuery, parseURL, withQuery } from "ufo";
|
|
3
|
-
import {
|
|
3
|
+
import { useSitemapRuntimeConfig } from "../utils.js";
|
|
4
4
|
import { createSitePathResolver, useSiteConfig } from "#imports";
|
|
5
5
|
export default defineEventHandler(async (e) => {
|
|
6
6
|
const fixPath = createSitePathResolver(e, { absolute: false, withBase: true });
|
|
7
|
-
const { sitemapName: fallbackSitemapName, cacheMaxAgeSeconds, version, xslColumns, xslTips } =
|
|
7
|
+
const { sitemapName: fallbackSitemapName, cacheMaxAgeSeconds, version, xslColumns, xslTips } = useSitemapRuntimeConfig();
|
|
8
8
|
setHeader(e, "Content-Type", "application/xslt+xml");
|
|
9
9
|
if (cacheMaxAgeSeconds)
|
|
10
10
|
setHeader(e, "Cache-Control", `public, max-age=${cacheMaxAgeSeconds}, must-revalidate`);
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { appendHeader, defineEventHandler, setHeader } from "h3";
|
|
2
2
|
import { joinURL } from "ufo";
|
|
3
|
-
import {
|
|
3
|
+
import { useSitemapRuntimeConfig } from "../utils.js";
|
|
4
4
|
import { buildSitemapIndex, urlsToIndexXml } from "../sitemap/builder/sitemap-index.js";
|
|
5
5
|
import { useNitroUrlResolvers } from "../sitemap/nitro.js";
|
|
6
6
|
import { useNitroApp } from "#imports";
|
|
7
7
|
export default defineEventHandler(async (e) => {
|
|
8
|
-
const runtimeConfig =
|
|
8
|
+
const runtimeConfig = useSitemapRuntimeConfig();
|
|
9
9
|
const nitro = useNitroApp();
|
|
10
10
|
const resolvers = useNitroUrlResolvers(e);
|
|
11
11
|
const sitemaps = await buildSitemapIndex(resolvers, runtimeConfig, nitro);
|
|
@@ -21,7 +21,7 @@ export async function fetchDataSource(input, event) {
|
|
|
21
21
|
signal: timeoutController.signal,
|
|
22
22
|
headers: defu(options?.headers, {
|
|
23
23
|
Accept: isXmlRequest ? "text/xml" : "application/json"
|
|
24
|
-
}, event ? {
|
|
24
|
+
}, event ? { host: getRequestHost(event, { xForwardedHost: true }) } : {}),
|
|
25
25
|
// @ts-expect-error untyped
|
|
26
26
|
onResponse({ response }) {
|
|
27
27
|
if (typeof response._data === "string" && response._data.startsWith("<!DOCTYPE html>"))
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { H3Event } from 'h3';
|
|
2
2
|
import type { ModuleRuntimeConfig } from '../types.js';
|
|
3
3
|
export * from '../utils-pure.js';
|
|
4
|
-
export declare function
|
|
4
|
+
export declare function useSitemapRuntimeConfig(e?: H3Event): ModuleRuntimeConfig;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { normalizeRuntimeFilters } from "../utils-pure.js";
|
|
2
2
|
import { useRuntimeConfig } from "#imports";
|
|
3
3
|
export * from "../utils-pure.js";
|
|
4
|
-
export function
|
|
4
|
+
export function useSitemapRuntimeConfig(e) {
|
|
5
5
|
const clone = JSON.parse(JSON.stringify(useRuntimeConfig(e).sitemap));
|
|
6
6
|
for (const k in clone.sitemaps) {
|
|
7
7
|
const sitemap = clone.sitemaps[k];
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nuxtjs/sitemap",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "7.2.
|
|
4
|
+
"version": "7.2.4",
|
|
5
5
|
"description": "Powerfully flexible XML Sitemaps that integrate seamlessly, for Nuxt.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Harlan Wilton",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
51
|
"@nuxt/devtools-kit": "^2.0.0-beta.3",
|
|
52
|
-
"@nuxt/kit": "^3.15.
|
|
52
|
+
"@nuxt/kit": "^3.15.3",
|
|
53
53
|
"chalk": "^5.4.1",
|
|
54
54
|
"defu": "^6.1.4",
|
|
55
55
|
"h3-compression": "^0.3.2",
|
|
@@ -63,21 +63,21 @@
|
|
|
63
63
|
"ufo": "^1.5.4"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
|
-
"@nuxt/content": "^3.0.
|
|
66
|
+
"@nuxt/content": "^3.0.1",
|
|
67
67
|
"@nuxt/eslint-config": "^0.7.5",
|
|
68
|
-
"@nuxt/module-builder": "0.8.4",
|
|
68
|
+
"@nuxt/module-builder": "^0.8.4",
|
|
69
69
|
"@nuxt/test-utils": "^3.15.4",
|
|
70
70
|
"@nuxt/ui": "^2.21.0",
|
|
71
|
-
"@nuxtjs/i18n": "9.1.
|
|
72
|
-
"@nuxtjs/robots": "^5.2.
|
|
73
|
-
"bumpp": "^
|
|
74
|
-
"eslint": "^9.
|
|
71
|
+
"@nuxtjs/i18n": "^9.1.3",
|
|
72
|
+
"@nuxtjs/robots": "^5.2.2",
|
|
73
|
+
"bumpp": "^10.0.1",
|
|
74
|
+
"eslint": "^9.19.0",
|
|
75
75
|
"eslint-plugin-n": "^17.15.1",
|
|
76
76
|
"execa": "^9.5.2",
|
|
77
|
-
"nuxt": "^3.15.
|
|
78
|
-
"nuxt-i18n-micro": "^1.
|
|
77
|
+
"nuxt": "^3.15.3",
|
|
78
|
+
"nuxt-i18n-micro": "^1.73.0",
|
|
79
79
|
"typescript": "5.6.3",
|
|
80
|
-
"vitest": "^3.0.
|
|
80
|
+
"vitest": "^3.0.4"
|
|
81
81
|
},
|
|
82
82
|
"resolutions": {
|
|
83
83
|
"postcss": "8.4.47",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e=Object.freeze(JSON.parse(`{"displayName":"Sass","fileTypes":["sass"],"foldingStartMarker":"/\\\\*|^#|^\\\\*|^\\\\b|*#?region|^\\\\.","foldingStopMarker":"\\\\*/|*#?endregion|^\\\\s*$","name":"sass","patterns":[{"begin":"^(\\\\s*)(/\\\\*)","end":"(\\\\*/)|^(?!\\\\s\\\\1)","name":"comment.block.sass","patterns":[{"include":"#comment-tag"},{"include":"#comment-param"}]},{"match":"^[\\\\t ]*/?//[\\\\t ]*[SRI][\\\\t ]*$","name":"keyword.other.sass.formatter.action"},{"begin":"^[\\\\t ]*//[\\\\t ]*(import)[\\\\t ]*(css-variables)[\\\\t ]*(from)","captures":{"1":{"name":"keyword.control"},"2":{"name":"variable"},"3":{"name":"keyword.control"}},"end":"$\\\\n?","name":"comment.import.css.variables","patterns":[{"include":"#import-quotes"}]},{"include":"#double-slash"},{"include":"#double-quoted"},{"include":"#single-quoted"},{"include":"#interpolation"},{"include":"#curly-brackets"},{"include":"#placeholder-selector"},{"begin":"\\\\$[a-zA-Z0-9_-]+(?=:)","captures":{"0":{"name":"variable.other.name"}},"end":"$\\\\n?|(?=\\\\)\\\\s\\\\)|\\\\)\\\\n)","name":"sass.script.maps","patterns":[{"include":"#double-slash"},{"include":"#double-quoted"},{"include":"#single-quoted"},{"include":"#interpolation"},{"include":"#variable"},{"include":"#rgb-value"},{"include":"#numeric"},{"include":"#unit"},{"include":"#flag"},{"include":"#comma"},{"include":"#function"},{"include":"#function-content"},{"include":"#operator"},{"include":"#reserved-words"},{"include":"#parent-selector"},{"include":"#property-value"},{"include":"#semicolon"},{"include":"#dotdotdot"}]},{"include":"#variable-root"},{"include":"#numeric"},{"include":"#unit"},{"include":"#flag"},{"include":"#comma"},{"include":"#semicolon"},{"include":"#dotdotdot"},{"begin":"@include|\\\\+(?!\\\\W|\\\\d)","captures":{"0":{"name":"keyword.control.at-rule.css.sass"}},"end":"(?=\\\\n|\\\\()","name":"support.function.name.sass.library"},{"begin":"^(@use)","captures":{"0":{"name":"keyword.control.at-rule.css.sass.use"}},"end":"(?=\\\\n)","name":"sass.use","patterns":[{"match":"as|with","name":"support.type.css.sass"},{"include":"#numeric"},{"include":"#unit"},{"include":"#variable-root"},{"include":"#rgb-value"},{"include":"#comma"},{"include":"#parenthesis-open"},{"include":"#parenthesis-close"},{"include":"#colon"},{"include":"#import-quotes"}]},{"begin":"^@import(.*?)( as.*)?$","captures":{"1":{"name":"constant.character.css.sass"},"2":{"name":"invalid"}},"end":"(?=\\\\n)","name":"keyword.control.at-rule.use"},{"begin":"@mixin|^[\\\\t ]*=|@function","captures":{"0":{"name":"keyword.control.at-rule.css.sass"}},"end":"$\\\\n?|(?=\\\\()","name":"support.function.name.sass","patterns":[{"match":"[\\\\w-]+","name":"entity.name.function"}]},{"begin":"@","end":"$\\\\n?|\\\\s(?!(all|braille|embossed|handheld|print|projection|screen|speech|tty|tv|if|only|not)(\\\\s|,))","name":"keyword.control.at-rule.css.sass"},{"begin":"(?<!\\\\-|\\\\()\\\\b(a|abbr|acronym|address|applet|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|embed|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|picture|pre|progress|q|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video|main|svg|rect|ruby|center|circle|ellipse|line|polyline|polygon|path|text|u|slot)\\\\b(?!-|\\\\)|:\\\\s)|&","end":"$\\\\n?|(?=\\\\s|,|\\\\(|\\\\)|\\\\.|\\\\#|\\\\[|>|-|_)","name":"entity.name.tag.css.sass.symbol","patterns":[{"include":"#interpolation"},{"include":"#pseudo-class"}]},{"begin":"#","end":"$\\\\n?|(?=\\\\s|,|\\\\(|\\\\)|\\\\.|\\\\[|>)","name":"entity.other.attribute-name.id.css.sass","patterns":[{"include":"#interpolation"},{"include":"#pseudo-class"}]},{"begin":"\\\\.|(?<=&)(-|_)","end":"$\\\\n?|(?=\\\\s|,|\\\\(|\\\\)|\\\\[|>)","name":"entity.other.attribute-name.class.css.sass","patterns":[{"include":"#interpolation"},{"include":"#pseudo-class"}]},{"begin":"\\\\[","end":"\\\\]","name":"entity.other.attribute-selector.sass","patterns":[{"include":"#double-quoted"},{"include":"#single-quoted"},{"match":"\\\\^|\\\\$|\\\\*|~","name":"keyword.other.regex.sass"}]},{"match":"^((?<=\\\\]|\\\\)|not\\\\(|\\\\*|>|>\\\\s)|\\n*):[a-z:-]+|(::|:-)[a-z:-]+","name":"entity.other.attribute-name.pseudo-class.css.sass"},{"include":"#module"},{"match":"[\\\\w-]*\\\\(","name":"entity.name.function"},{"match":"\\\\)","name":"entity.name.function.close"},{"begin":":","end":"$\\\\n?|(?=\\\\s\\\\(|and\\\\(|\\\\),)","name":"meta.property-list.css.sass.prop","patterns":[{"match":"(?<=:)[a-z-]+\\\\s","name":"support.type.property-name.css.sass.prop.name"},{"include":"#double-slash"},{"include":"#double-quoted"},{"include":"#single-quoted"},{"include":"#interpolation"},{"include":"#curly-brackets"},{"include":"#variable"},{"include":"#rgb-value"},{"include":"#numeric"},{"include":"#unit"},{"include":"#module"},{"match":"--.+?(?=\\\\))","name":"variable.css"},{"match":"[\\\\w-]*\\\\(","name":"entity.name.function"},{"match":"\\\\)","name":"entity.name.function.close"},{"include":"#flag"},{"include":"#comma"},{"include":"#semicolon"},{"include":"#function"},{"include":"#function-content"},{"include":"#operator"},{"include":"#parent-selector"},{"include":"#property-value"}]},{"include":"#rgb-value"},{"include":"#function"},{"include":"#function-content"},{"begin":"(?<=})(?!\\\\n|\\\\(|\\\\)|[a-zA-Z0-9_-]+:)","end":"\\\\s|(?=,|\\\\.|\\\\[|\\\\)|\\\\n)","name":"entity.name.tag.css.sass","patterns":[{"include":"#interpolation"},{"include":"#pseudo-class"}]},{"include":"#operator"},{"match":"[a-z-]+((?=:|#{))","name":"support.type.property-name.css.sass.prop.name"},{"include":"#reserved-words"},{"include":"#property-value"}],"repository":{"colon":{"match":":","name":"meta.property-list.css.sass.colon"},"comma":{"match":"\\\\band\\\\b|\\\\bor\\\\b|,","name":"comment.punctuation.comma.sass"},"comment-param":{"match":"\\\\@(\\\\w+)","name":"storage.type.class.jsdoc"},"comment-tag":{"begin":"(?<={{)","end":"(?=}})","name":"comment.tag.sass"},"curly-brackets":{"match":"{|}","name":"invalid"},"dotdotdot":{"match":"\\\\.\\\\.\\\\.","name":"variable.other"},"double-quoted":{"begin":"\\"","end":"\\"","name":"string.quoted.double.css.sass","patterns":[{"include":"#quoted-interpolation"}]},"double-slash":{"begin":"//","end":"$\\\\n?","name":"comment.line.sass","patterns":[{"include":"#comment-tag"}]},"flag":{"match":"!(important|default|optional|global)","name":"keyword.other.important.css.sass"},"function":{"match":"(?<=[\\\\s|\\\\(|,|:])(?!url|format|attr)[a-zA-Z0-9_-][\\\\w-]*(?=\\\\()","name":"support.function.name.sass"},"function-content":{"begin":"(?<=url\\\\(|format\\\\(|attr\\\\()","end":".(?=\\\\))","name":"string.quoted.double.css.sass"},"import-quotes":{"match":"[\\"']?\\\\.{0,2}[\\\\w/]+[\\"']?","name":"constant.character.css.sass"},"interpolation":{"begin":"#{","end":"}","name":"support.function.interpolation.sass","patterns":[{"include":"#variable"},{"include":"#numeric"},{"include":"#operator"},{"include":"#unit"},{"include":"#comma"},{"include":"#double-quoted"},{"include":"#single-quoted"}]},"module":{"captures":{"1":{"name":"constant.character.module.name"},"2":{"name":"constant.numeric.module.dot"}},"match":"([\\\\w-]+?)(\\\\.)","name":"constant.character.module"},"numeric":{"match":"(-|\\\\.)?[0-9]+(\\\\.[0-9]+)?","name":"constant.numeric.css.sass"},"operator":{"match":"\\\\+|\\\\s-\\\\s|\\\\s-(?=\\\\$)|(?<=\\\\()-(?=\\\\$)|\\\\s-(?=\\\\()|\\\\*|/|%|=|!|<|>|~","name":"keyword.operator.sass"},"parent-selector":{"match":"&","name":"entity.name.tag.css.sass"},"parenthesis-close":{"match":"\\\\)","name":"entity.name.function.parenthesis.close"},"parenthesis-open":{"match":"\\\\(","name":"entity.name.function.parenthesis.open"},"placeholder-selector":{"begin":"(?<!\\\\d)%(?!\\\\d)","end":"$\\\\n?|\\\\s","name":"entity.other.inherited-class.placeholder-selector.css.sass"},"property-value":{"match":"[a-zA-Z0-9_-]+","name":"meta.property-value.css.sass support.constant.property-value.css.sass"},"pseudo-class":{"match":":[a-z:-]+","name":"entity.other.attribute-name.pseudo-class.css.sass"},"quoted-interpolation":{"begin":"#{","end":"}","name":"support.function.interpolation.sass","patterns":[{"include":"#variable"},{"include":"#numeric"},{"include":"#operator"},{"include":"#unit"},{"include":"#comma"}]},"reserved-words":{"match":"\\\\b(false|from|in|not|null|through|to|true)\\\\b","name":"support.type.property-name.css.sass"},"rgb-value":{"match":"(#)([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\\\\b","name":"constant.language.color.rgb-value.css.sass"},"semicolon":{"match":";","name":"invalid"},"single-quoted":{"begin":"'","end":"'","name":"string.quoted.single.css.sass","patterns":[{"include":"#quoted-interpolation"}]},"unit":{"match":"(?<=[\\\\d]|})(ch|cm|deg|dpcm|dpi|dppx|em|ex|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vw|fr|%)","name":"keyword.control.unit.css.sass"},"variable":{"match":"\\\\$[a-zA-Z0-9_-]+","name":"variable.other.value"},"variable-root":{"match":"\\\\$[a-zA-Z0-9_-]+","name":"variable.other.root"}},"scopeName":"source.sass"}`)),n=[e];export{n as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"id":"bc845d88-1260-4cd6-8743-707a992c7426","timestamp":1737365954751,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.spotlight[data-v-94106983]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);bottom:-30vh;filter:blur(20vh);height:40vh}.gradient-border[data-v-94106983]{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:.5rem;position:relative}@media (prefers-color-scheme:light){.gradient-border[data-v-94106983]{background-color:#ffffff4d}.gradient-border[data-v-94106983]:before{background:linear-gradient(90deg,#e2e2e2,#e2e2e2 25%,#00dc82,#36e4da 75%,#0047e1)}}@media (prefers-color-scheme:dark){.gradient-border[data-v-94106983]{background-color:#1414144d}.gradient-border[data-v-94106983]:before{background:linear-gradient(90deg,#303030,#303030 25%,#00dc82,#36e4da 75%,#0047e1)}}.gradient-border[data-v-94106983]:before{background-size:400% auto;border-radius:.5rem;bottom:0;content:"";left:0;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.5;padding:2px;position:absolute;right:0;top:0;transition:background-position .3s ease-in-out,opacity .2s ease-in-out;width:100%}.gradient-border[data-v-94106983]:hover:before{background-position:-50% 0;opacity:1}.fixed[data-v-94106983]{position:fixed}.left-0[data-v-94106983]{left:0}.right-0[data-v-94106983]{right:0}.z-10[data-v-94106983]{z-index:10}.z-20[data-v-94106983]{z-index:20}.grid[data-v-94106983]{display:grid}.mb-16[data-v-94106983]{margin-bottom:4rem}.mb-8[data-v-94106983]{margin-bottom:2rem}.max-w-520px[data-v-94106983]{max-width:520px}.min-h-screen[data-v-94106983]{min-height:100vh}.w-full[data-v-94106983]{width:100%}.flex[data-v-94106983]{display:flex}.cursor-pointer[data-v-94106983]{cursor:pointer}.place-content-center[data-v-94106983]{place-content:center}.items-center[data-v-94106983]{align-items:center}.justify-center[data-v-94106983]{justify-content:center}.overflow-hidden[data-v-94106983]{overflow:hidden}.bg-white[data-v-94106983]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-4[data-v-94106983]{padding-left:1rem;padding-right:1rem}.px-8[data-v-94106983]{padding-left:2rem;padding-right:2rem}.py-2[data-v-94106983]{padding-bottom:.5rem;padding-top:.5rem}.text-center[data-v-94106983]{text-align:center}.text-8xl[data-v-94106983]{font-size:6rem;line-height:1}.text-xl[data-v-94106983]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-94106983]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-94106983]{font-weight:300}.font-medium[data-v-94106983]{font-weight:500}.leading-tight[data-v-94106983]{line-height:1.25}.font-sans[data-v-94106983]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.antialiased[data-v-94106983]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\:bg-black[data-v-94106983]{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\:text-white[data-v-94106983]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\:px-0[data-v-94106983]{padding-left:0;padding-right:0}.sm\:px-6[data-v-94106983]{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-3[data-v-94106983]{padding-bottom:.75rem;padding-top:.75rem}.sm\:text-4xl[data-v-94106983]{font-size:2.25rem;line-height:2.5rem}.sm\:text-xl[data-v-94106983]{font-size:1.25rem;line-height:1.75rem}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.spotlight[data-v-e755cb88]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);filter:blur(20vh)}.fixed[data-v-e755cb88]{position:fixed}.-bottom-1\/2[data-v-e755cb88]{bottom:-50%}.left-0[data-v-e755cb88]{left:0}.right-0[data-v-e755cb88]{right:0}.grid[data-v-e755cb88]{display:grid}.mb-16[data-v-e755cb88]{margin-bottom:4rem}.mb-8[data-v-e755cb88]{margin-bottom:2rem}.h-1\/2[data-v-e755cb88]{height:50%}.max-w-520px[data-v-e755cb88]{max-width:520px}.min-h-screen[data-v-e755cb88]{min-height:100vh}.place-content-center[data-v-e755cb88]{place-content:center}.overflow-hidden[data-v-e755cb88]{overflow:hidden}.bg-white[data-v-e755cb88]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-8[data-v-e755cb88]{padding-left:2rem;padding-right:2rem}.text-center[data-v-e755cb88]{text-align:center}.text-8xl[data-v-e755cb88]{font-size:6rem;line-height:1}.text-xl[data-v-e755cb88]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-e755cb88]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-e755cb88]{font-weight:300}.font-medium[data-v-e755cb88]{font-weight:500}.leading-tight[data-v-e755cb88]{line-height:1.25}.font-sans[data-v-e755cb88]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.antialiased[data-v-e755cb88]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\:bg-black[data-v-e755cb88]{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\:text-white[data-v-e755cb88]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\:px-0[data-v-e755cb88]{padding-left:0;padding-right:0}.sm\:text-4xl[data-v-e755cb88]{font-size:2.25rem;line-height:2.5rem}}
|