diff --git a/astro.config.mjs b/astro.config.mjs index 50b34bd..1def40c 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -5,11 +5,15 @@ import tailwindcss from '@tailwindcss/vite'; import alpinejs from '@astrojs/alpinejs'; + // https://astro.build/config export default defineConfig({ vite: { plugins: [tailwindcss()] }, - + build: { + // 示例:在构建过程中生 成`page.html` 而不是 `page/index.html`。 + format: 'file' + }, integrations: [alpinejs()] }); \ No newline at end of file diff --git a/dev.log b/dev.log new file mode 100644 index 0000000..48ce827 --- /dev/null +++ b/dev.log @@ -0,0 +1,869 @@ + +> test@0.0.1 dev +> astro dev --port 4345 + +20:06:59 [vite] connected. +20:07:00 [types] Generated 0ms +20:07:00 [vite] connected. + astro  v7.1.6 ready in 1053 ms +┃ Local http://localhost:4345/ +┃ Network use --host to expose +20:07:00 watching for file changes... +20:07:09 [200] /shows 2667ms +20:07:21 [watch] dom_modal.html +20:07:43 [200] HEAD /shows 492ms +20:07:43 [200] /shows 276ms +20:25:27 [200] /shows 672ms +20:44:17 [200] /shows 587ms +20:46:17 [200] /article 22ms +00:32:00 Configuration file updated. Restarting... +00:32:00 [watch] /src/styles/global.css +00:32:00 [vite] connected. +00:32:01 [vite] connected. +00:32:01 [vite] Re-optimizing dependencies because vite config has changed +00:32:01 [vite] server restarted. +00:32:02 [200] /shows 618ms +00:32:03 [vite] dependency optimized: alpinejs +11:23:01 [200] /shows 584ms +11:28:36 [200] /shows 943ms +11:36:18 [200] / 13271ms +11:38:37 [watch] /src/styles/global.css +11:38:38 [200] /shows 777ms +11:43:14 [watch] /src/styles/global.css +11:43:15 [200] /shows 564ms +11:45:36 [watch] /src/styles/global.css +11:45:36 [200] /shows 551ms +11:46:20 [watch] /src/styles/global.css +11:46:21 [200] /shows 610ms +11:46:42 [200] / 18ms +11:46:54 [watch] home.html +11:46:55 [200] / 4ms +11:47:06 [200] /shows 7236ms +11:47:07 [watch] home.html +11:48:14 [200] / 4ms +11:49:30 [200] / 4ms +11:49:30 [watch] home.html +11:49:53 [200] HEAD / 3ms +11:49:53 [200] / 3ms +11:54:04 [200] / 4ms +11:57:39 [watch] src/pages/index.astro +11:57:40 [200] / 30ms +11:57:40 [200] / 30ms +11:57:47 [watch] src/pages/index.astro +11:57:47 [200] / 19ms +11:58:05 [watch] src/pages/index.astro +11:58:05 [200] / 20ms +11:58:05 [200] / 20ms +11:58:05 [200] / 2ms +11:58:30 [watch] /src/pages/index.astro?astro&type=style&index=1&lang.css, /src/pages/index.astro?astro&type=style&index=0&lang.css +11:59:05 [watch] /src/pages/index.astro?astro&type=style&index=1&lang.css, /src/pages/index.astro?astro&type=style&index=0&lang.css +11:59:16 [watch] /src/pages/index.astro?astro&type=style&index=1&lang.css, /src/pages/index.astro?astro&type=style&index=0&lang.css +11:59:29 [watch] /src/pages/index.astro?astro&type=style&index=1&lang.css, /src/pages/index.astro?astro&type=style&index=0&lang.css +11:59:34 [watch] /src/pages/index.astro?astro&type=style&index=1&lang.css, /src/pages/index.astro?astro&type=style&index=0&lang.css +12:00:11 [watch] /src/pages/index.astro?astro&type=style&index=1&lang.css, /src/pages/index.astro?astro&type=style&index=0&lang.css +12:00:17 [watch] /src/pages/index.astro?astro&type=style&index=1&lang.css, /src/pages/index.astro?astro&type=style&index=0&lang.css +12:00:36 [200] / 17ms +12:00:48 [200] / 2ms +12:02:03 [200] HEAD / 3ms +12:02:03 [200] / 1ms +12:03:52 [200] / 2ms +12:05:24 [watch] src/pages/index.astro +12:05:24 [200] / 22ms +12:05:24 [200] / 22ms +12:05:24 [200] / 1ms +12:05:25 [200] / 2ms +12:05:28 [watch] /src/pages/index.astro?astro&type=style&index=1&lang.css, /src/pages/index.astro?astro&type=style&index=0&lang.css +12:05:37 [watch] src/pages/index.astro +12:05:38 [200] / 30ms +12:05:38 [200] / 30ms +12:05:38 [200] / 4ms +12:05:38 [200] / 3ms +12:05:47 [200] / 1ms +12:06:32 [200] HEAD / 2ms +12:06:33 [200] / 1ms +12:19:05 [watch] /src/pages/index.astro?astro&type=style&index=1&lang.css, /src/pages/index.astro?astro&type=style&index=0&lang.css +12:19:15 [watch] /src/pages/index.astro?astro&type=style&index=1&lang.css, /src/pages/index.astro?astro&type=style&index=0&lang.css +12:19:32 [watch] src/pages/index.astro +12:19:32 [200] / 20ms +12:19:41 [200] / 1ms +12:20:15 [200] / 3ms +12:20:52 [200] HEAD / 2ms +13:08:58 [200] / 4ms +13:09:57 [200] / 3ms +13:11:55 [watch] /src/pages/index.astro?astro&type=style&index=1&lang.css, /src/pages/index.astro?astro&type=style&index=0&lang.css +13:11:59 [watch] /src/pages/index.astro?astro&type=style&index=1&lang.css, /src/pages/index.astro?astro&type=style&index=0&lang.css +13:12:07 [200] / 21ms +13:13:05 [200] HEAD / 1ms +13:13:05 [200] / 2ms +15:52:35 [200] / 4ms +17:07:01 [200] / 2ms +17:07:15 [200] / 2ms +17:29:37 Configuration file updated. Restarting... +17:29:37 [vite] program reload +17:29:37 [ERROR] [vite] An error happened during full reload +Failed to load url astro:server-app.js (resolved id: astro:server-app.js). Does the file exist? +Error: Failed to load url astro:server-app.js (resolved id: astro:server-app.js). Does the file exist? + at loadAndTransform (file:///D:/project/test/test/node_modules/vite/dist/node/chunks/node.js:20583:31) +17:29:37 [vite] connected. +17:29:42 [vite] connected. +17:29:42 [vite] Re-optimizing dependencies because lockfile has changed +17:29:42 [vite] server restarted. +17:32:09 [200] / 1965ms +17:32:19 [vite] dependencies optimized: swiper, swiper/modules +17:53:05 [200] / 34ms +17:53:05 [200] / 3ms +17:53:05 [vite] dependency optimized: alpinejs +17:53:47 [200] / 3ms +17:53:57 [200] / 2ms +17:54:12 [200] / 2ms +17:54:59 [200] / 2ms +17:55:40 [200] / 2ms +17:55:52 [200] HEAD / 3ms +17:55:53 [200] / 2ms +17:56:49 [200] / 2ms +17:59:43 [watch] /src/pages/index.astro?astro&type=style&index=0&lang.css, /src/pages/index.astro?astro&type=style&index=1&lang.css +17:59:50 [watch] /src/pages/index.astro?astro&type=style&index=0&lang.css, /src/pages/index.astro?astro&type=style&index=1&lang.css +18:00:06 [watch] src/pages/index.astro +18:00:07 [200] / 28ms +18:00:07 [200] / 28ms +18:00:11 [200] / 2ms +18:00:49 [200] / 1ms +18:01:05 [200] HEAD / 1ms +18:01:05 [200] / 1ms +18:10:32 [200] / 2ms +18:10:40 [200] / 1ms +18:11:25 [200] / 1ms +18:12:24 [200] / 2ms +18:21:35 [200] / 3ms +18:21:56 [200] / 2ms +18:24:11 [watch] /src/pages/index.astro?astro&type=style&index=0&lang.css, /src/pages/index.astro?astro&type=style&index=1&lang.css +18:24:48 [200] / 26ms +18:24:55 [200] / 3ms +18:25:02 [200] / 1ms +18:25:17 [watch] src/pages/index.astro +[ + { + id: 52634, + brand: '5000', + title: 'Spring 2026 Ready-to-Wear', + season: 'AW26', + year: 2026, + img: 'https://assets.vogue.com/photos/68c84730627c7d40ac52aa17/master/w_2560,c_limit/00001-5000-spring-2026-ready-to-wear-credit-brand.jpg', + count: 30, + gallery: [ + 'https://assets.vogue.com/photos/68c84730627c7d40ac52aa17/master/w_2560,c_limit/00001-5000-spring-2026-ready-to-wear-credit-brand.jpg', + 'https://assets.vogue.com/photos/68c8473052c290f6844f15a4/master/w_2560,c_limit/00002-5000-spring-2026-ready-to-wear-credit-brand.jpg', + 'https://assets.vogue.com/photos/68c84730c00a8da1b9585e04/master/w_2560,c_limit/00003-5000-spring-2026-ready-to-wear-credit-brand.jpg', + 'https://assets.vogue.com/photos/68c847330865a9bf107a6248/master/w_2560,c_limit/00004-5000-spring-2026-ready-to-wear-credit-brand.jpg', + 'https://assets.vogue.com/photos/68c84733cc5a262b887823c6/master/w_2560,c_limit/00005-5000-spring-2026-ready-to-wear-credit-brand.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52633, + brand: '5000', + title: 'Fall 2025 Ready-to-Wear', + season: 'AW25', + year: 2025, + img: 'https://assets.vogue.com/photos/67a7ec6c540e35479b3d337c/master/w_2560,c_limit/00001-5000-fall-2025-ready-to-wear-credit-gorunway.jpg', + count: 27, + gallery: [ + 'https://assets.vogue.com/photos/67a7ec6c540e35479b3d337c/master/w_2560,c_limit/00001-5000-fall-2025-ready-to-wear-credit-gorunway.jpg', + 'https://assets.vogue.com/photos/67a7ec6cee822deb1e8416c6/master/w_2560,c_limit/00002-5000-fall-2025-ready-to-wear-credit-gorunway.jpg', + 'https://assets.vogue.com/photos/67a7ec6d551d29a948ad941e/master/w_2560,c_limit/00003-5000-fall-2025-ready-to-wear-credit-gorunway.jpg', + 'https://assets.vogue.com/photos/67a7ec72ee822deb1e8416c8/master/w_2560,c_limit/00004-5000-fall-2025-ready-to-wear-credit-gorunway.jpg', + 'https://assets.vogue.com/photos/67a7ec726ccfc8cbda1f1936/master/w_2560,c_limit/00005-5000-fall-2025-ready-to-wear-credit-gorunway.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52632, + brand: '5000', + title: 'Spring 2025 Ready-to-Wear', + season: 'AW25', + year: 2025, + img: 'https://assets.vogue.com/photos/66e1c75bd788bc9ca9d9acba/master/w_2560,c_limit/00001-5000-spring-2025-ready-to-wear-credit-brand.jpg', + count: 22, + gallery: [ + 'https://assets.vogue.com/photos/66e1c75bd788bc9ca9d9acba/master/w_2560,c_limit/00001-5000-spring-2025-ready-to-wear-credit-brand.jpg', + 'https://assets.vogue.com/photos/66e1c772bc1a3e72a02f841a/master/w_2560,c_limit/00002-5000-spring-2025-ready-to-wear-credit-brand.jpg', + 'https://assets.vogue.com/photos/66e1c772bc1a3e72a02f8419/master/w_2560,c_limit/00003-5000-spring-2025-ready-to-wear-credit-brand.jpg', + 'https://assets.vogue.com/photos/66e1c775c22905cb0212f62b/master/w_2560,c_limit/00004-5000-spring-2025-ready-to-wear-credit-brand.jpg', + 'https://assets.vogue.com/photos/66e1c79d0e2401b690216a7b/master/w_2560,c_limit/00005-5000-spring-2025-ready-to-wear-credit-brand.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52631, + brand: '4SDesigns', + title: 'Fall 2021 Menswear', + season: 'AW21', + year: 2021, + img: 'https://assets.vogue.com/photos/6027d24c0a9cf1d42cece5cd/master/w_2560,c_limit/00001-4SDESIGNS-MENSWEAR-FALL-21.jpg', + count: 34, + gallery: [ + 'https://assets.vogue.com/photos/6027d24c0a9cf1d42cece5cd/master/w_2560,c_limit/00001-4SDESIGNS-MENSWEAR-FALL-21.jpg', + 'https://assets.vogue.com/photos/6027d244327fc00a43425432/master/w_2560,c_limit/00002-4SDESIGNS-MENSWEAR-FALL-21.jpg', + 'https://assets.vogue.com/photos/6027d243fbb177114cbf582a/master/w_2560,c_limit/00003-4SDESIGNS-MENSWEAR-FALL-21.jpg', + 'https://assets.vogue.com/photos/6027d247257ad32ccce37ce6/master/w_2560,c_limit/00004-4SDESIGNS-MENSWEAR-FALL-21.jpg', + 'https://assets.vogue.com/photos/6027d2476da2d9ae5efbd828/master/w_2560,c_limit/00005-4SDESIGNS-MENSWEAR-FALL-21.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52630, + brand: '4SDesigns', + title: 'Spring 2021 Menswear', + season: 'AW21', + year: 2021, + img: 'https://assets.vogue.com/photos/5f5bc247c287ced7cb397bed/master/w_2560,c_limit/00001-4SDESIGN-MENS-Spring-2021.jpg', + count: 37, + gallery: [ + 'https://assets.vogue.com/photos/5f5bc247c287ced7cb397bed/master/w_2560,c_limit/00001-4SDESIGN-MENS-Spring-2021.jpg', + 'https://assets.vogue.com/photos/5f5bc1d35b20143972317da5/master/w_2560,c_limit/00002-4SDESIGN-MENS-Spring-2021.jpg', + 'https://assets.vogue.com/photos/5f5bc1df3c1d7b6a190becdd/master/w_2560,c_limit/00003-4SDESIGN-MENS-Spring-2021.jpg', + 'https://assets.vogue.com/photos/5f5bc2425b20143972317da9/master/w_2560,c_limit/00004-4SDESIGN-MENS-Spring-2021.jpg', + 'https://assets.vogue.com/photos/5f5bc213ad0b360706e648f7/master/w_2560,c_limit/00005-4SDESIGN-MENS-Spring-2021.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52629, + brand: '4SDesigns', + title: 'Spring 2022 Menswear', + season: 'AW22', + year: 2022, + img: 'https://assets.vogue.com/photos/60d1cbf645d4cb14fb3dc280/master/w_2560,c_limit/00001-4SDesigns-Mens-SS22-credit-brand.jpg', + count: 37, + gallery: [ + 'https://assets.vogue.com/photos/60d1cbf645d4cb14fb3dc280/master/w_2560,c_limit/00001-4SDesigns-Mens-SS22-credit-brand.jpg', + 'https://assets.vogue.com/photos/60d1cbfb827cc425d00d5309/master/w_2560,c_limit/00002-4SDesigns-Mens-SS22-credit-brand.jpg', + 'https://assets.vogue.com/photos/60d1cbfc43dc9f0bcf2cdf82/master/w_2560,c_limit/00003-4SDesigns-Mens-SS22-credit-brand.jpg', + 'https://assets.vogue.com/photos/60d1cbfa31f3da1aa8f2b184/master/w_2560,c_limit/00004-4SDesigns-Mens-SS22-credit-brand.jpg', + 'https://assets.vogue.com/photos/60d1cbff31f3da1aa8f2b186/master/w_2560,c_limit/00005-4SDesigns-Mens-SS22-credit-brand.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52628, + brand: '3.1 Phillip Lim', + title: 'Spring 2007 Ready-to-Wear', + season: 'AW07', + year: 2007, + img: 'https://assets.vogue.com/photos/55c6517108298d8be221a938/master/w_2560,c_limit/00010m.jpg', + count: 64, + gallery: [ + 'https://assets.vogue.com/photos/55c6517108298d8be221a938/master/w_2560,c_limit/00010m.jpg', + 'https://assets.vogue.com/photos/55c6517108298d8be221a939/master/w_2560,c_limit/00020m.jpg', + 'https://assets.vogue.com/photos/55c6517108298d8be221a93a/master/w_2560,c_limit/00030m.jpg', + 'https://assets.vogue.com/photos/55c6517108298d8be221a93b/master/w_2560,c_limit/00040m.jpg', + 'https://assets.vogue.com/photos/55c6517108298d8be221a93c/master/w_2560,c_limit/00050m.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52627, + brand: '4SDesigns', + title: 'Spring 2023 Menswear', + season: 'AW23', + year: 2023, + img: 'https://assets.vogue.com/photos/62a8a07f3f1b1935680d3bd7/master/w_2560,c_limit/00001-4SDesigns-mens-spring-2023-credit-brand.jpg', + count: 38, + gallery: [ + 'https://assets.vogue.com/photos/62a8a07f3f1b1935680d3bd7/master/w_2560,c_limit/00001-4SDesigns-mens-spring-2023-credit-brand.jpg', + 'https://assets.vogue.com/photos/62a8a07e7fdb5f476a38ea63/master/w_2560,c_limit/00002-4SDesigns-mens-spring-2023-credit-brand.jpg', + 'https://assets.vogue.com/photos/62a8a08298c7d4eb9d6771d8/master/w_2560,c_limit/00003-4SDesigns-mens-spring-2023-credit-brand.jpg', + 'https://assets.vogue.com/photos/62a8a08abbd4a39a9da9c2dc/master/w_2560,c_limit/00004-4SDesigns-mens-spring-2023-credit-brand.jpg', + 'https://assets.vogue.com/photos/62a8a093dd731c1b9956b7ce/master/w_2560,c_limit/00005-4SDesigns-mens-spring-2023-credit-brand.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52626, + brand: '4SDesigns', + title: 'Spring 2024 Menswear', + season: 'AW24', + year: 2024, + img: 'https://assets.vogue.com/photos/64972b08c2a3004981ecefa1/master/w_2560,c_limit/00001-4sdesigns-spring-2024-menswear-credit-brand.jpg', + count: 32, + gallery: [ + 'https://assets.vogue.com/photos/64972b08c2a3004981ecefa1/master/w_2560,c_limit/00001-4sdesigns-spring-2024-menswear-credit-brand.jpg', + 'https://assets.vogue.com/photos/64972b06cebc6648cb42b423/master/w_2560,c_limit/00002-4sdesigns-spring-2024-menswear-credit-brand.jpg', + 'https://assets.vogue.com/photos/64972b07117ea73b4611cc16/master/w_2560,c_limit/00003-4sdesigns-spring-2024-menswear-credit-brand.jpg', + 'https://assets.vogue.com/photos/64972b10f496fd5039bb28f5/master/w_2560,c_limit/00004-4sdesigns-spring-2024-menswear-credit-brand.jpg', + 'https://assets.vogue.com/photos/64972b166d2b1f02bbf79dfa/master/w_2560,c_limit/00005-4sdesigns-spring-2024-menswear-credit-brand.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52625, + brand: '4SDesigns', + title: 'Fall 2023 Menswear', + season: 'AW23', + year: 2023, + img: 'https://assets.vogue.com/photos/63c531d0d6dc24d26b516f7e/master/w_2560,c_limit/00001-4sdesigns-fall-2023-menswear-credit-brand.jpg', + count: 30, + gallery: [ + 'https://assets.vogue.com/photos/63c531d0d6dc24d26b516f7e/master/w_2560,c_limit/00001-4sdesigns-fall-2023-menswear-credit-brand.jpg', + 'https://assets.vogue.com/photos/63c531d23cfdf376930a346a/master/w_2560,c_limit/00002-4sdesigns-fall-2023-menswear-credit-brand.jpg', + 'https://assets.vogue.com/photos/63c531cf1944dc168acdfb98/master/w_2560,c_limit/00003-4sdesigns-fall-2023-menswear-credit-brand.jpg', + 'https://assets.vogue.com/photos/63c531d43b8c841452deb23d/master/w_2560,c_limit/00004-4sdesigns-fall-2023-menswear-credit-brand.jpg', + 'https://assets.vogue.com/photos/63c531d4a426ef92a40afb03/master/w_2560,c_limit/00005-4sdesigns-fall-2023-menswear-credit-brand.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52624, + brand: '3.1 Phillip Lim', + title: 'Fall 2007 Ready-to-Wear', + season: 'AW07', + year: 2007, + img: 'https://assets.vogue.com/photos/55c6517708298d8be222187c/master/w_2560,c_limit/00010m.jpg', + count: 70, + gallery: [ + 'https://assets.vogue.com/photos/55c6517708298d8be222187c/master/w_2560,c_limit/00010m.jpg', + 'https://assets.vogue.com/photos/55c6517708298d8be222187d/master/w_2560,c_limit/00020m.jpg', + 'https://assets.vogue.com/photos/55c6517708298d8be222187e/master/w_2560,c_limit/00030m.jpg', + 'https://assets.vogue.com/photos/55c6517708298d8be222187f/master/w_2560,c_limit/00040m.jpg', + 'https://assets.vogue.com/photos/55c6517708298d8be2221880/master/w_2560,c_limit/00050m.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52623, + brand: '4SDesigns', + title: 'Fall 2022 Menswear', + season: 'AW22', + year: 2022, + img: 'https://assets.vogue.com/photos/61e32026e135cfda761c9c1c/master/w_2560,c_limit/00001-4SDesigns-Mens-Fall-22-credit-brand.jpg', + count: 39, + gallery: [ + 'https://assets.vogue.com/photos/61e32026e135cfda761c9c1c/master/w_2560,c_limit/00001-4SDesigns-Mens-Fall-22-credit-brand.jpg', + 'https://assets.vogue.com/photos/61e32029b1c1870aceac9214/master/w_2560,c_limit/00002-4SDesigns-Mens-Fall-22-credit-brand.jpg', + 'https://assets.vogue.com/photos/61e3202cb1c1870aceac9216/master/w_2560,c_limit/00003-4SDesigns-Mens-Fall-22-credit-brand.jpg', + 'https://assets.vogue.com/photos/61e3202e1be17143b2387ab5/master/w_2560,c_limit/00004-4SDesigns-Mens-Fall-22-credit-brand.jpg', + 'https://assets.vogue.com/photos/61e32032a668411b428595ee/master/w_2560,c_limit/00005-4SDesigns-Mens-Fall-22-credit-brand.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52622, + brand: '3.1 Phillip Lim', + title: 'Fall 2006 Ready-to-Wear', + season: 'AW06', + year: 2006, + img: 'https://assets.vogue.com/photos/55c6516608298d8be220ec9d/master/w_2560,c_limit/01m.jpg', + count: 20, + gallery: [ + 'https://assets.vogue.com/photos/55c6516608298d8be220ec9d/master/w_2560,c_limit/01m.jpg', + 'https://assets.vogue.com/photos/55c6516608298d8be220ec9e/master/w_2560,c_limit/02m.jpg', + 'https://assets.vogue.com/photos/55c6516608298d8be220ec9f/master/w_2560,c_limit/03m.jpg', + 'https://assets.vogue.com/photos/55c6516608298d8be220eca0/master/w_2560,c_limit/05m.jpg', + 'https://assets.vogue.com/photos/55c6516608298d8be220eca1/master/w_2560,c_limit/06m.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52621, + brand: '3.1 Phillip Lim', + title: 'Fall 2008 Ready-to-Wear', + season: 'AW08', + year: 2008, + img: 'https://assets.vogue.com/photos/55c6518908298d8be2236856/master/w_2560,c_limit/00010m.jpg', + count: 106, + gallery: [ + 'https://assets.vogue.com/photos/55c6518908298d8be2236856/master/w_2560,c_limit/00010m.jpg', + 'https://assets.vogue.com/photos/55c6518908298d8be2236857/master/w_2560,c_limit/00020m.jpg', + 'https://assets.vogue.com/photos/55c6518908298d8be2236858/master/w_2560,c_limit/00030m.jpg', + 'https://assets.vogue.com/photos/55c6518908298d8be2236859/master/w_2560,c_limit/00040m.jpg', + 'https://assets.vogue.com/photos/55c6518908298d8be223685a/master/w_2560,c_limit/00050m.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52620, + brand: '4SDesigns', + title: 'Fall 2024 Menswear', + season: 'AW24', + year: 2024, + img: 'https://assets.vogue.com/photos/65a8fbbbe58c6b2c313c49c2/master/w_2560,c_limit/00001-4sdesigns-fall-2024-menswear-credit-brand.jpg', + count: 25, + gallery: [ + 'https://assets.vogue.com/photos/65a8fbbbe58c6b2c313c49c2/master/w_2560,c_limit/00001-4sdesigns-fall-2024-menswear-credit-brand.jpg', + 'https://assets.vogue.com/photos/65a8fbbcd46c3066d0e3a561/master/w_2560,c_limit/00002-4sdesigns-fall-2024-menswear-credit-brand.jpg', + 'https://assets.vogue.com/photos/65a8fbbdcb58e8ab7ad97d8c/master/w_2560,c_limit/00003-4sdesigns-fall-2024-menswear-credit-brand.jpg', + 'https://assets.vogue.com/photos/65a8fbbfdf79593d6bd9add0/master/w_2560,c_limit/00004-4sdesigns-fall-2024-menswear-credit-brand.jpg', + 'https://assets.vogue.com/photos/65a8fbc0d46c3066d0e3a563/master/w_2560,c_limit/00005-4sdesigns-fall-2024-menswear-credit-brand.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52619, + brand: '3.1 Phillip Lim', + title: 'Spring 2008 Ready-to-Wear', + season: 'AW08', + year: 2008, + img: 'https://assets.vogue.com/photos/55c6518008298d8be222c795/master/w_2560,c_limit/00010m.jpg', + count: 109, + gallery: [ + 'https://assets.vogue.com/photos/55c6518008298d8be222c795/master/w_2560,c_limit/00010m.jpg', + 'https://assets.vogue.com/photos/55c6518008298d8be222c796/master/w_2560,c_limit/00020m.jpg', + 'https://assets.vogue.com/photos/55c6518008298d8be222c797/master/w_2560,c_limit/00030m.jpg', + 'https://assets.vogue.com/photos/55c6518008298d8be222c798/master/w_2560,c_limit/00040m.jpg', + 'https://assets.vogue.com/photos/55c6518008298d8be222c799/master/w_2560,c_limit/00050m.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52618, + brand: '3.1 Phillip Lim', + title: 'Resort 2008', + season: 'AW08', + year: 2008, + img: 'https://assets.vogue.com/photos/55c6517d08298d8be222920d/master/w_2560,c_limit/01m.jpg', + count: 16, + gallery: [ + 'https://assets.vogue.com/photos/55c6517d08298d8be222920d/master/w_2560,c_limit/01m.jpg', + 'https://assets.vogue.com/photos/55c6517d08298d8be222920e/master/w_2560,c_limit/02m.jpg', + 'https://assets.vogue.com/photos/55c6517d08298d8be222920f/master/w_2560,c_limit/03m.jpg', + 'https://assets.vogue.com/photos/55c6517d08298d8be2229210/master/w_2560,c_limit/04m.jpg', + 'https://assets.vogue.com/photos/55c6517d08298d8be2229211/master/w_2560,c_limit/05m.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52617, + brand: '3.1 Phillip Lim', + title: 'Spring 2009 Ready-to-Wear', + season: 'AW09', + year: 2009, + img: 'https://assets.vogue.com/photos/55c6519708298d8be224625e/master/w_2560,c_limit/00010fullscreen.jpg', + count: 105, + gallery: [ + 'https://assets.vogue.com/photos/55c6519708298d8be224625e/master/w_2560,c_limit/00010fullscreen.jpg', + 'https://assets.vogue.com/photos/55c6519708298d8be224625f/master/w_2560,c_limit/00020fullscreen.jpg', + 'https://assets.vogue.com/photos/55c6519708298d8be2246260/master/w_2560,c_limit/00030fullscreen.jpg', + 'https://assets.vogue.com/photos/55c6519708298d8be2246261/master/w_2560,c_limit/00040fullscreen.jpg', + 'https://assets.vogue.com/photos/55c6519708298d8be2246262/master/w_2560,c_limit/00050fullscreen.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52616, + brand: '3.1 Phillip Lim', + title: 'Fall 2009 Ready-to-Wear', + season: 'AW09', + year: 2009, + img: 'https://assets.vogue.com/photos/55c6519f08298d8be2250311/master/w_2560,c_limit/00010fullscreen.jpg', + count: 145, + gallery: [ + 'https://assets.vogue.com/photos/55c6519f08298d8be2250311/master/w_2560,c_limit/00010fullscreen.jpg', + 'https://assets.vogue.com/photos/55c6519f08298d8be2250312/master/w_2560,c_limit/00020fullscreen.jpg', + 'https://assets.vogue.com/photos/55c6519f08298d8be2250313/master/w_2560,c_limit/00030fullscreen.jpg', + 'https://assets.vogue.com/photos/55c6519f08298d8be2250314/master/w_2560,c_limit/00040fullscreen.jpg', + 'https://assets.vogue.com/photos/55c6519f08298d8be2250315/master/w_2560,c_limit/00050fullscreen.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52615, + brand: '3.1 Phillip Lim', + title: 'Resort 2010', + season: 'AW10', + year: 2010, + img: 'https://assets.vogue.com/photos/55c651a508298d8be2257404/master/w_2560,c_limit/01fullscreen.jpg', + count: 27, + gallery: [ + 'https://assets.vogue.com/photos/55c651a508298d8be2257404/master/w_2560,c_limit/01fullscreen.jpg', + 'https://assets.vogue.com/photos/55c651a508298d8be2257405/master/w_2560,c_limit/02fullscreen.jpg', + 'https://assets.vogue.com/photos/55c651a508298d8be2257406/master/w_2560,c_limit/03fullscreen.jpg', + 'https://assets.vogue.com/photos/55c651a508298d8be2257407/master/w_2560,c_limit/04fullscreen.jpg', + 'https://assets.vogue.com/photos/55c651a508298d8be2257408/master/w_2560,c_limit/05fullscreen.jpg' + ], + collection_type: '', + season_code: '' + } +] +18:25:17 [200] / 24ms +[ + { + id: 52634, + brand: '5000', + title: 'Spring 2026 Ready-to-Wear', + season: 'AW26', + year: 2026, + img: 'https://assets.vogue.com/photos/68c84730627c7d40ac52aa17/master/w_2560,c_limit/00001-5000-spring-2026-ready-to-wear-credit-brand.jpg', + count: 30, + gallery: [ + 'https://assets.vogue.com/photos/68c84730627c7d40ac52aa17/master/w_2560,c_limit/00001-5000-spring-2026-ready-to-wear-credit-brand.jpg', + 'https://assets.vogue.com/photos/68c8473052c290f6844f15a4/master/w_2560,c_limit/00002-5000-spring-2026-ready-to-wear-credit-brand.jpg', + 'https://assets.vogue.com/photos/68c84730c00a8da1b9585e04/master/w_2560,c_limit/00003-5000-spring-2026-ready-to-wear-credit-brand.jpg', + 'https://assets.vogue.com/photos/68c847330865a9bf107a6248/master/w_2560,c_limit/00004-5000-spring-2026-ready-to-wear-credit-brand.jpg', + 'https://assets.vogue.com/photos/68c84733cc5a262b887823c6/master/w_2560,c_limit/00005-5000-spring-2026-ready-to-wear-credit-brand.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52633, + brand: '5000', + title: 'Fall 2025 Ready-to-Wear', + season: 'AW25', + year: 2025, + img: 'https://assets.vogue.com/photos/67a7ec6c540e35479b3d337c/master/w_2560,c_limit/00001-5000-fall-2025-ready-to-wear-credit-gorunway.jpg', + count: 27, + gallery: [ + 'https://assets.vogue.com/photos/67a7ec6c540e35479b3d337c/master/w_2560,c_limit/00001-5000-fall-2025-ready-to-wear-credit-gorunway.jpg', + 'https://assets.vogue.com/photos/67a7ec6cee822deb1e8416c6/master/w_2560,c_limit/00002-5000-fall-2025-ready-to-wear-credit-gorunway.jpg', + 'https://assets.vogue.com/photos/67a7ec6d551d29a948ad941e/master/w_2560,c_limit/00003-5000-fall-2025-ready-to-wear-credit-gorunway.jpg', + 'https://assets.vogue.com/photos/67a7ec72ee822deb1e8416c8/master/w_2560,c_limit/00004-5000-fall-2025-ready-to-wear-credit-gorunway.jpg', + 'https://assets.vogue.com/photos/67a7ec726ccfc8cbda1f1936/master/w_2560,c_limit/00005-5000-fall-2025-ready-to-wear-credit-gorunway.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52632, + brand: '5000', + title: 'Spring 2025 Ready-to-Wear', + season: 'AW25', + year: 2025, + img: 'https://assets.vogue.com/photos/66e1c75bd788bc9ca9d9acba/master/w_2560,c_limit/00001-5000-spring-2025-ready-to-wear-credit-brand.jpg', + count: 22, + gallery: [ + 'https://assets.vogue.com/photos/66e1c75bd788bc9ca9d9acba/master/w_2560,c_limit/00001-5000-spring-2025-ready-to-wear-credit-brand.jpg', + 'https://assets.vogue.com/photos/66e1c772bc1a3e72a02f841a/master/w_2560,c_limit/00002-5000-spring-2025-ready-to-wear-credit-brand.jpg', + 'https://assets.vogue.com/photos/66e1c772bc1a3e72a02f8419/master/w_2560,c_limit/00003-5000-spring-2025-ready-to-wear-credit-brand.jpg', + 'https://assets.vogue.com/photos/66e1c775c22905cb0212f62b/master/w_2560,c_limit/00004-5000-spring-2025-ready-to-wear-credit-brand.jpg', + 'https://assets.vogue.com/photos/66e1c79d0e2401b690216a7b/master/w_2560,c_limit/00005-5000-spring-2025-ready-to-wear-credit-brand.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52631, + brand: '4SDesigns', + title: 'Fall 2021 Menswear', + season: 'AW21', + year: 2021, + img: 'https://assets.vogue.com/photos/6027d24c0a9cf1d42cece5cd/master/w_2560,c_limit/00001-4SDESIGNS-MENSWEAR-FALL-21.jpg', + count: 34, + gallery: [ + 'https://assets.vogue.com/photos/6027d24c0a9cf1d42cece5cd/master/w_2560,c_limit/00001-4SDESIGNS-MENSWEAR-FALL-21.jpg', + 'https://assets.vogue.com/photos/6027d244327fc00a43425432/master/w_2560,c_limit/00002-4SDESIGNS-MENSWEAR-FALL-21.jpg', + 'https://assets.vogue.com/photos/6027d243fbb177114cbf582a/master/w_2560,c_limit/00003-4SDESIGNS-MENSWEAR-FALL-21.jpg', + 'https://assets.vogue.com/photos/6027d247257ad32ccce37ce6/master/w_2560,c_limit/00004-4SDESIGNS-MENSWEAR-FALL-21.jpg', + 'https://assets.vogue.com/photos/6027d2476da2d9ae5efbd828/master/w_2560,c_limit/00005-4SDESIGNS-MENSWEAR-FALL-21.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52630, + brand: '4SDesigns', + title: 'Spring 2021 Menswear', + season: 'AW21', + year: 2021, + img: 'https://assets.vogue.com/photos/5f5bc247c287ced7cb397bed/master/w_2560,c_limit/00001-4SDESIGN-MENS-Spring-2021.jpg', + count: 37, + gallery: [ + 'https://assets.vogue.com/photos/5f5bc247c287ced7cb397bed/master/w_2560,c_limit/00001-4SDESIGN-MENS-Spring-2021.jpg', + 'https://assets.vogue.com/photos/5f5bc1d35b20143972317da5/master/w_2560,c_limit/00002-4SDESIGN-MENS-Spring-2021.jpg', + 'https://assets.vogue.com/photos/5f5bc1df3c1d7b6a190becdd/master/w_2560,c_limit/00003-4SDESIGN-MENS-Spring-2021.jpg', + 'https://assets.vogue.com/photos/5f5bc2425b20143972317da9/master/w_2560,c_limit/00004-4SDESIGN-MENS-Spring-2021.jpg', + 'https://assets.vogue.com/photos/5f5bc213ad0b360706e648f7/master/w_2560,c_limit/00005-4SDESIGN-MENS-Spring-2021.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52629, + brand: '4SDesigns', + title: 'Spring 2022 Menswear', + season: 'AW22', + year: 2022, + img: 'https://assets.vogue.com/photos/60d1cbf645d4cb14fb3dc280/master/w_2560,c_limit/00001-4SDesigns-Mens-SS22-credit-brand.jpg', + count: 37, + gallery: [ + 'https://assets.vogue.com/photos/60d1cbf645d4cb14fb3dc280/master/w_2560,c_limit/00001-4SDesigns-Mens-SS22-credit-brand.jpg', + 'https://assets.vogue.com/photos/60d1cbfb827cc425d00d5309/master/w_2560,c_limit/00002-4SDesigns-Mens-SS22-credit-brand.jpg', + 'https://assets.vogue.com/photos/60d1cbfc43dc9f0bcf2cdf82/master/w_2560,c_limit/00003-4SDesigns-Mens-SS22-credit-brand.jpg', + 'https://assets.vogue.com/photos/60d1cbfa31f3da1aa8f2b184/master/w_2560,c_limit/00004-4SDesigns-Mens-SS22-credit-brand.jpg', + 'https://assets.vogue.com/photos/60d1cbff31f3da1aa8f2b186/master/w_2560,c_limit/00005-4SDesigns-Mens-SS22-credit-brand.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52628, + brand: '3.1 Phillip Lim', + title: 'Spring 2007 Ready-to-Wear', + season: 'AW07', + year: 2007, + img: 'https://assets.vogue.com/photos/55c6517108298d8be221a938/master/w_2560,c_limit/00010m.jpg', + count: 64, + gallery: [ + 'https://assets.vogue.com/photos/55c6517108298d8be221a938/master/w_2560,c_limit/00010m.jpg', + 'https://assets.vogue.com/photos/55c6517108298d8be221a939/master/w_2560,c_limit/00020m.jpg', + 'https://assets.vogue.com/photos/55c6517108298d8be221a93a/master/w_2560,c_limit/00030m.jpg', + 'https://assets.vogue.com/photos/55c6517108298d8be221a93b/master/w_2560,c_limit/00040m.jpg', + 'https://assets.vogue.com/photos/55c6517108298d8be221a93c/master/w_2560,c_limit/00050m.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52627, + brand: '4SDesigns', + title: 'Spring 2023 Menswear', + season: 'AW23', + year: 2023, + img: 'https://assets.vogue.com/photos/62a8a07f3f1b1935680d3bd7/master/w_2560,c_limit/00001-4SDesigns-mens-spring-2023-credit-brand.jpg', + count: 38, + gallery: [ + 'https://assets.vogue.com/photos/62a8a07f3f1b1935680d3bd7/master/w_2560,c_limit/00001-4SDesigns-mens-spring-2023-credit-brand.jpg', + 'https://assets.vogue.com/photos/62a8a07e7fdb5f476a38ea63/master/w_2560,c_limit/00002-4SDesigns-mens-spring-2023-credit-brand.jpg', + 'https://assets.vogue.com/photos/62a8a08298c7d4eb9d6771d8/master/w_2560,c_limit/00003-4SDesigns-mens-spring-2023-credit-brand.jpg', + 'https://assets.vogue.com/photos/62a8a08abbd4a39a9da9c2dc/master/w_2560,c_limit/00004-4SDesigns-mens-spring-2023-credit-brand.jpg', + 'https://assets.vogue.com/photos/62a8a093dd731c1b9956b7ce/master/w_2560,c_limit/00005-4SDesigns-mens-spring-2023-credit-brand.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52626, + brand: '4SDesigns', + title: 'Spring 2024 Menswear', + season: 'AW24', + year: 2024, + img: 'https://assets.vogue.com/photos/64972b08c2a3004981ecefa1/master/w_2560,c_limit/00001-4sdesigns-spring-2024-menswear-credit-brand.jpg', + count: 32, + gallery: [ + 'https://assets.vogue.com/photos/64972b08c2a3004981ecefa1/master/w_2560,c_limit/00001-4sdesigns-spring-2024-menswear-credit-brand.jpg', + 'https://assets.vogue.com/photos/64972b06cebc6648cb42b423/master/w_2560,c_limit/00002-4sdesigns-spring-2024-menswear-credit-brand.jpg', + 'https://assets.vogue.com/photos/64972b07117ea73b4611cc16/master/w_2560,c_limit/00003-4sdesigns-spring-2024-menswear-credit-brand.jpg', + 'https://assets.vogue.com/photos/64972b10f496fd5039bb28f5/master/w_2560,c_limit/00004-4sdesigns-spring-2024-menswear-credit-brand.jpg', + 'https://assets.vogue.com/photos/64972b166d2b1f02bbf79dfa/master/w_2560,c_limit/00005-4sdesigns-spring-2024-menswear-credit-brand.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52625, + brand: '4SDesigns', + title: 'Fall 2023 Menswear', + season: 'AW23', + year: 2023, + img: 'https://assets.vogue.com/photos/63c531d0d6dc24d26b516f7e/master/w_2560,c_limit/00001-4sdesigns-fall-2023-menswear-credit-brand.jpg', + count: 30, + gallery: [ + 'https://assets.vogue.com/photos/63c531d0d6dc24d26b516f7e/master/w_2560,c_limit/00001-4sdesigns-fall-2023-menswear-credit-brand.jpg', + 'https://assets.vogue.com/photos/63c531d23cfdf376930a346a/master/w_2560,c_limit/00002-4sdesigns-fall-2023-menswear-credit-brand.jpg', + 'https://assets.vogue.com/photos/63c531cf1944dc168acdfb98/master/w_2560,c_limit/00003-4sdesigns-fall-2023-menswear-credit-brand.jpg', + 'https://assets.vogue.com/photos/63c531d43b8c841452deb23d/master/w_2560,c_limit/00004-4sdesigns-fall-2023-menswear-credit-brand.jpg', + 'https://assets.vogue.com/photos/63c531d4a426ef92a40afb03/master/w_2560,c_limit/00005-4sdesigns-fall-2023-menswear-credit-brand.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52624, + brand: '3.1 Phillip Lim', + title: 'Fall 2007 Ready-to-Wear', + season: 'AW07', + year: 2007, + img: 'https://assets.vogue.com/photos/55c6517708298d8be222187c/master/w_2560,c_limit/00010m.jpg', + count: 70, + gallery: [ + 'https://assets.vogue.com/photos/55c6517708298d8be222187c/master/w_2560,c_limit/00010m.jpg', + 'https://assets.vogue.com/photos/55c6517708298d8be222187d/master/w_2560,c_limit/00020m.jpg', + 'https://assets.vogue.com/photos/55c6517708298d8be222187e/master/w_2560,c_limit/00030m.jpg', + 'https://assets.vogue.com/photos/55c6517708298d8be222187f/master/w_2560,c_limit/00040m.jpg', + 'https://assets.vogue.com/photos/55c6517708298d8be2221880/master/w_2560,c_limit/00050m.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52623, + brand: '4SDesigns', + title: 'Fall 2022 Menswear', + season: 'AW22', + year: 2022, + img: 'https://assets.vogue.com/photos/61e32026e135cfda761c9c1c/master/w_2560,c_limit/00001-4SDesigns-Mens-Fall-22-credit-brand.jpg', + count: 39, + gallery: [ + 'https://assets.vogue.com/photos/61e32026e135cfda761c9c1c/master/w_2560,c_limit/00001-4SDesigns-Mens-Fall-22-credit-brand.jpg', + 'https://assets.vogue.com/photos/61e32029b1c1870aceac9214/master/w_2560,c_limit/00002-4SDesigns-Mens-Fall-22-credit-brand.jpg', + 'https://assets.vogue.com/photos/61e3202cb1c1870aceac9216/master/w_2560,c_limit/00003-4SDesigns-Mens-Fall-22-credit-brand.jpg', + 'https://assets.vogue.com/photos/61e3202e1be17143b2387ab5/master/w_2560,c_limit/00004-4SDesigns-Mens-Fall-22-credit-brand.jpg', + 'https://assets.vogue.com/photos/61e32032a668411b428595ee/master/w_2560,c_limit/00005-4SDesigns-Mens-Fall-22-credit-brand.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52622, + brand: '3.1 Phillip Lim', + title: 'Fall 2006 Ready-to-Wear', + season: 'AW06', + year: 2006, + img: 'https://assets.vogue.com/photos/55c6516608298d8be220ec9d/master/w_2560,c_limit/01m.jpg', + count: 20, + gallery: [ + 'https://assets.vogue.com/photos/55c6516608298d8be220ec9d/master/w_2560,c_limit/01m.jpg', + 'https://assets.vogue.com/photos/55c6516608298d8be220ec9e/master/w_2560,c_limit/02m.jpg', + 'https://assets.vogue.com/photos/55c6516608298d8be220ec9f/master/w_2560,c_limit/03m.jpg', + 'https://assets.vogue.com/photos/55c6516608298d8be220eca0/master/w_2560,c_limit/05m.jpg', + 'https://assets.vogue.com/photos/55c6516608298d8be220eca1/master/w_2560,c_limit/06m.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52621, + brand: '3.1 Phillip Lim', + title: 'Fall 2008 Ready-to-Wear', + season: 'AW08', + year: 2008, + img: 'https://assets.vogue.com/photos/55c6518908298d8be2236856/master/w_2560,c_limit/00010m.jpg', + count: 106, + gallery: [ + 'https://assets.vogue.com/photos/55c6518908298d8be2236856/master/w_2560,c_limit/00010m.jpg', + 'https://assets.vogue.com/photos/55c6518908298d8be2236857/master/w_2560,c_limit/00020m.jpg', + 'https://assets.vogue.com/photos/55c6518908298d8be2236858/master/w_2560,c_limit/00030m.jpg', + 'https://assets.vogue.com/photos/55c6518908298d8be2236859/master/w_2560,c_limit/00040m.jpg', + 'https://assets.vogue.com/photos/55c6518908298d8be223685a/master/w_2560,c_limit/00050m.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52620, + brand: '4SDesigns', + title: 'Fall 2024 Menswear', + season: 'AW24', + year: 2024, + img: 'https://assets.vogue.com/photos/65a8fbbbe58c6b2c313c49c2/master/w_2560,c_limit/00001-4sdesigns-fall-2024-menswear-credit-brand.jpg', + count: 25, + gallery: [ + 'https://assets.vogue.com/photos/65a8fbbbe58c6b2c313c49c2/master/w_2560,c_limit/00001-4sdesigns-fall-2024-menswear-credit-brand.jpg', + 'https://assets.vogue.com/photos/65a8fbbcd46c3066d0e3a561/master/w_2560,c_limit/00002-4sdesigns-fall-2024-menswear-credit-brand.jpg', + 'https://assets.vogue.com/photos/65a8fbbdcb58e8ab7ad97d8c/master/w_2560,c_limit/00003-4sdesigns-fall-2024-menswear-credit-brand.jpg', + 'https://assets.vogue.com/photos/65a8fbbfdf79593d6bd9add0/master/w_2560,c_limit/00004-4sdesigns-fall-2024-menswear-credit-brand.jpg', + 'https://assets.vogue.com/photos/65a8fbc0d46c3066d0e3a563/master/w_2560,c_limit/00005-4sdesigns-fall-2024-menswear-credit-brand.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52619, + brand: '3.1 Phillip Lim', + title: 'Spring 2008 Ready-to-Wear', + season: 'AW08', + year: 2008, + img: 'https://assets.vogue.com/photos/55c6518008298d8be222c795/master/w_2560,c_limit/00010m.jpg', + count: 109, + gallery: [ + 'https://assets.vogue.com/photos/55c6518008298d8be222c795/master/w_2560,c_limit/00010m.jpg', + 'https://assets.vogue.com/photos/55c6518008298d8be222c796/master/w_2560,c_limit/00020m.jpg', + 'https://assets.vogue.com/photos/55c6518008298d8be222c797/master/w_2560,c_limit/00030m.jpg', + 'https://assets.vogue.com/photos/55c6518008298d8be222c798/master/w_2560,c_limit/00040m.jpg', + 'https://assets.vogue.com/photos/55c6518008298d8be222c799/master/w_2560,c_limit/00050m.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52618, + brand: '3.1 Phillip Lim', + title: 'Resort 2008', + season: 'AW08', + year: 2008, + img: 'https://assets.vogue.com/photos/55c6517d08298d8be222920d/master/w_2560,c_limit/01m.jpg', + count: 16, + gallery: [ + 'https://assets.vogue.com/photos/55c6517d08298d8be222920d/master/w_2560,c_limit/01m.jpg', + 'https://assets.vogue.com/photos/55c6517d08298d8be222920e/master/w_2560,c_limit/02m.jpg', + 'https://assets.vogue.com/photos/55c6517d08298d8be222920f/master/w_2560,c_limit/03m.jpg', + 'https://assets.vogue.com/photos/55c6517d08298d8be2229210/master/w_2560,c_limit/04m.jpg', + 'https://assets.vogue.com/photos/55c6517d08298d8be2229211/master/w_2560,c_limit/05m.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52617, + brand: '3.1 Phillip Lim', + title: 'Spring 2009 Ready-to-Wear', + season: 'AW09', + year: 2009, + img: 'https://assets.vogue.com/photos/55c6519708298d8be224625e/master/w_2560,c_limit/00010fullscreen.jpg', + count: 105, + gallery: [ + 'https://assets.vogue.com/photos/55c6519708298d8be224625e/master/w_2560,c_limit/00010fullscreen.jpg', + 'https://assets.vogue.com/photos/55c6519708298d8be224625f/master/w_2560,c_limit/00020fullscreen.jpg', + 'https://assets.vogue.com/photos/55c6519708298d8be2246260/master/w_2560,c_limit/00030fullscreen.jpg', + 'https://assets.vogue.com/photos/55c6519708298d8be2246261/master/w_2560,c_limit/00040fullscreen.jpg', + 'https://assets.vogue.com/photos/55c6519708298d8be2246262/master/w_2560,c_limit/00050fullscreen.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52616, + brand: '3.1 Phillip Lim', + title: 'Fall 2009 Ready-to-Wear', + season: 'AW09', + year: 2009, + img: 'https://assets.vogue.com/photos/55c6519f08298d8be2250311/master/w_2560,c_limit/00010fullscreen.jpg', + count: 145, + gallery: [ + 'https://assets.vogue.com/photos/55c6519f08298d8be2250311/master/w_2560,c_limit/00010fullscreen.jpg', + 'https://assets.vogue.com/photos/55c6519f08298d8be2250312/master/w_2560,c_limit/00020fullscreen.jpg', + 'https://assets.vogue.com/photos/55c6519f08298d8be2250313/master/w_2560,c_limit/00030fullscreen.jpg', + 'https://assets.vogue.com/photos/55c6519f08298d8be2250314/master/w_2560,c_limit/00040fullscreen.jpg', + 'https://assets.vogue.com/photos/55c6519f08298d8be2250315/master/w_2560,c_limit/00050fullscreen.jpg' + ], + collection_type: '', + season_code: '' + }, + { + id: 52615, + brand: '3.1 Phillip Lim', + title: 'Resort 2010', + season: 'AW10', + year: 2010, + img: 'https://assets.vogue.com/photos/55c651a508298d8be2257404/master/w_2560,c_limit/01fullscreen.jpg', + count: 27, + gallery: [ + 'https://assets.vogue.com/photos/55c651a508298d8be2257404/master/w_2560,c_limit/01fullscreen.jpg', + 'https://assets.vogue.com/photos/55c651a508298d8be2257405/master/w_2560,c_limit/02fullscreen.jpg', + 'https://assets.vogue.com/photos/55c651a508298d8be2257406/master/w_2560,c_limit/03fullscreen.jpg', + 'https://assets.vogue.com/photos/55c651a508298d8be2257407/master/w_2560,c_limit/04fullscreen.jpg', + 'https://assets.vogue.com/photos/55c651a508298d8be2257408/master/w_2560,c_limit/05fullscreen.jpg' + ], + collection_type: '', + season_code: '' + } +] +18:25:17 [200] / 2ms diff --git a/package-lock.json b/package-lock.json index 022ad1b..191c0e0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,7 @@ "@types/alpinejs": "^3.13.11", "alpinejs": "^3.16.1", "astro": "^7.1.6", + "swiper": "^11.2.10", "tailwindcss": "^4.3.3" }, "engines": { @@ -21,7 +22,7 @@ }, "node_modules/@astrojs/alpinejs": { "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/@astrojs/alpinejs/-/alpinejs-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/@astrojs/alpinejs/-/alpinejs-1.0.0.tgz", "integrity": "sha512-xmLFD8MBunXCG39nS3dmINQfdhqlDNbHAYyw8n6jfLGL/AFeyYOtz6p1EtXX8NEbGLHk7mUOHoaC3j1WudUYoQ==", "license": "MIT", "peerDependencies": { @@ -521,6 +522,16 @@ "tslib": "^2.4.0" } }, + "node_modules/@emnapi/runtime": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.3.tgz", + "integrity": "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@emnapi/wasi-threads": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/@emnapi/wasi-threads/-/wasi-threads-2.0.1.tgz", @@ -2444,10 +2455,9 @@ }, "node_modules/@types/alpinejs": { "version": "3.13.11", - "resolved": "https://registry.npmmirror.com/@types/alpinejs/-/alpinejs-3.13.11.tgz", + "resolved": "https://registry.npmjs.org/@types/alpinejs/-/alpinejs-3.13.11.tgz", "integrity": "sha512-3KhGkDixCPiLdL3Z/ok1GxHwLxEWqQOKJccgaQL01wc0EVM2tCTaqlC3NIedmxAXkVzt/V6VTM8qPgnOHKJ1MA==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@types/estree": { "version": "1.0.9", @@ -2520,10 +2530,9 @@ }, "node_modules/alpinejs": { "version": "3.16.1", - "resolved": "https://registry.npmmirror.com/alpinejs/-/alpinejs-3.16.1.tgz", + "resolved": "https://registry.npmjs.org/alpinejs/-/alpinejs-3.16.1.tgz", "integrity": "sha512-QXcW8MK9JoG8GZ7vCt2cXJlcEPIA7Xk/7IQ1+L2iLp7sXcIxct0PrgidmHzK97gD9QlfUjHXPxujdZ1mC2PYVg==", "license": "MIT", - "peer": true, "dependencies": { "@vue/reactivity": "~3.1.1" } @@ -3059,7 +3068,6 @@ "integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==", "hasInstallScript": true, "license": "MIT", - "peer": true, "bin": { "esbuild": "bin/esbuild" }, @@ -4394,6 +4402,25 @@ "url": "https://opencollective.com/svgo" } }, + "node_modules/swiper": { + "version": "11.2.10", + "resolved": "https://registry.npmjs.org/swiper/-/swiper-11.2.10.tgz", + "integrity": "sha512-RMeVUUjTQH+6N3ckimK93oxz6Sn5la4aDlgPzB+rBrG/smPdCTicXyhxa+woIpopz+jewEloiEE3lKo1h9w2YQ==", + "funding": [ + { + "type": "patreon", + "url": "https://www.patreon.com/swiperjs" + }, + { + "type": "open_collective", + "url": "http://opencollective.com/swiper" + } + ], + "license": "MIT", + "engines": { + "node": ">= 4.7.0" + } + }, "node_modules/tailwindcss": { "version": "4.3.3", "resolved": "https://registry.npmmirror.com/tailwindcss/-/tailwindcss-4.3.3.tgz", @@ -4739,7 +4766,6 @@ "resolved": "https://registry.npmmirror.com/vite/-/vite-8.2.0.tgz", "integrity": "sha512-pn+CFpM0lwDeKwmOq1ZaBK/9sjorZcgqxki6MbY/jPEVd9vichIlmlD4HmQ5wdP5EgqQCFRaACBxMC7uEGc6lQ==", "license": "MIT", - "peer": true, "dependencies": { "lightningcss": "^1.33.0", "picomatch": "^4.0.5", diff --git a/package.json b/package.json index b163840..4b8d0a8 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "@types/alpinejs": "^3.13.11", "alpinejs": "^3.16.1", "astro": "^7.1.6", + "swiper": "^11.2.10", "tailwindcss": "^4.3.3" } } diff --git a/src/lib/api.ts b/src/lib/api.ts index 5fff8cc..9e20242 100644 --- a/src/lib/api.ts +++ b/src/lib/api.ts @@ -66,15 +66,21 @@ async function request(path: string, params?: URLSearchParams): Promise { } // 侧边栏品牌清单(含 article_count 计数) +// 支持 keyword(模糊搜索 name/show_name)/ letter(A-Z 或 OTHER=中文)/ featured(精选)参数, +// 用于品牌筛选弹窗的「搜索 + A-Z 跳转 + 热门推荐」三种按需加载,避免一次拉全量。 export async function getBrands(opts?: { size?: number only_with_articles?: number featured?: number + keyword?: string + letter?: string }): Promise { const qs = new URLSearchParams() if (opts?.size) qs.set("size", String(opts.size)) - if (opts?.only_with_articles) qs.set("only_with_articles", String(opts.only_with_articles)) - if (opts?.featured) qs.set("featured", String(opts.featured)) + if (opts?.only_with_articles != null) qs.set("only_with_articles", String(opts.only_with_articles)) + if (opts?.featured != null) qs.set("featured", String(opts.featured)) + if (opts?.keyword) qs.set("keyword", opts.keyword) + if (opts?.letter) qs.set("letter", opts.letter) const j = await request<{ data?: any[] }>("/public/brands", qs) return (j.data ?? []).map((b: any) => ({ id: Number(b.id), diff --git a/src/lib/data.ts b/src/lib/data.ts index 8a01d6a..f2c7d5e 100644 --- a/src/lib/data.ts +++ b/src/lib/data.ts @@ -186,6 +186,7 @@ export function loadArticlesWithImages(size = 40): Promise { if (!API_BASE) return [] try { const res = await fetch(`${API_BASE}/api/public/articles?page=1&size=${size}&with_images=5`) + console.log(res) if (!res.ok) return [] const json: any = await res.json() const items: RawArticle[] = json?.data ?? [] diff --git a/src/pages/index.astro b/src/pages/index.astro index e04b266..221a71f 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -6,68 +6,20 @@ import { getShows, seriesLabel } from "../lib/data" // 默认 tab(Shows)走 SSR:构建期从接口预取真实数据与多图,首屏立即可见。 // 其余 tab(Backstage / Events / Street)点击时才由前端请求接口动态渲染,避免一次性拉全量拖慢首屏。 const shows = await getShows(20) -// 精选轮播:取前 5 场秀,做成「左图右文」卡片式轮播(Featured Carousel) -const slides = shows.slice(0, 5) -// 右侧品牌栏:跨分页拉取「与轮播不同品牌」的其他精选品牌,按品牌去重取 2 个 -const API_BASE = (import.meta.env.PUBLIC_API_BASE || "").replace(/\/$/, "") -const slideBrands = new Set(slides.map(s => s.brand)) -const rail: typeof shows = [] -const railSeen = new Set() -if (API_BASE) { - for (let pg = 1; pg <= 6 && rail.length < 6; pg++) { - try { - const rr = await fetch(`${API_BASE}/api/public/articles?page=${pg}&size=40&with_images=5`) - if (!rr.ok) break - const rj = await rr.json() - const items: any[] = rj?.data ?? [] - for (const r of items) { - const b = r.brand_name || "Unknown" - if (slideBrands.has(b) || railSeen.has(b)) continue - railSeen.add(b) - rail.push({ - id: r.id, brand: b, title: r.title || "", - collection_type: r.collection_type, season_code: r.season_code, - year: Number(r.year) || 0, - count: r.image_count || 0, img: r.cover || "", - gallery: (r.images || []).map((im: any) => im.image || "").filter(Boolean).slice(0, 5), - }) - if (rail.length >= 2) break - } - } catch {} - } -} -const railHot = [...rail].sort((a, b) => (b.count || 0) - (a.count || 0)) -// 最新取前 2;最热取 count 最高的 2;若两者完全相同(库内品牌少),改取最新之外的其它品牌,保证切换有可见差异 -const latestSet = rail.slice(0, 2) -let hotSet = railHot.slice(0, 2) -if (hotSet.length === 2 && latestSet.length === 2 && - hotSet[0].brand === latestSet[0].brand && hotSet[1].brand === latestSet[1].brand) { - const lb = new Set(latestSet.map((r) => r.brand)) - const others = rail.filter((r) => !lb.has(r.brand)).slice(0, 2) - if (others.length === 2) hotSet = others -} - -// 拼装右侧卡片的文案字段 -function railEyebrow(r: typeof shows[number]) { - const m = (r.title || "").match(/(\d{4}).*?(Spring|Summer|Fall|Autumn|Winter|Resort|Pre-Fall|Cruise)/i) - const season = m ? `${m[1]} ${m[2]}` : (r.season_code || "") - const yr = r.year ? `${r.year}` : "" - return [yr || (m ? m[1] : ""), season].filter(Boolean).join(" · ").toUpperCase() || "Featured Runway" -} -function railTagline(r: typeof shows[number]) { - return `${seriesLabel(r.collection_type)}${r.season_code ? " · " + r.season_code : ""}` -} -function railDesc(r: typeof shows[number]) { - const yr = r.year || ((r.title || "").match(/\b(19|20)\d{2}\b/) || [""])[0] - const seasonTxt = (() => { - const m = (r.title || "").match(/(Spring|Summer|Fall|Autumn|Winter|Resort|Pre-Fall|Cruise)/i) - if (m) { - const map: Record = { Spring: "春", Summer: "夏", Fall: "秋冬", Autumn: "秋冬", Winter: "冬", Resort: "度假", "Pre-Fall": "早秋", Cruise: "度假" } - return (map[m[1].toLowerCase().replace(/(^|\s)\w/g, (s) => s.toUpperCase())] || map[m[1]] || "") + (yr || "") - } - return yr ? `${yr} 发布` : "" - })() - return { seasonTxt: seasonTxt || (yr ? `${yr} 发布` : "") } +// 横向滚动走秀画廊:扁平化所有 show 的图片(cover + gallery 去重), +// 每张卡片 = 一个文章(show)的封面,不展开 gallery,避免同一文章重复出现。 +type GalleryItem = { src: string; brand: string; articleId: number; year: number; title: string; collection_type?: string } +const galleryItems: GalleryItem[] = [] +for (const s of shows) { + if (!s.img) continue + galleryItems.push({ + src: s.img, + brand: s.brand, + articleId: s.id, + year: s.year, + title: s.title, + collection_type: s.collection_type, + }) } --- @@ -104,150 +56,39 @@ function railDesc(r: typeof shows[number]) { 全部走秀 → - -
- - - - - - -
- - - {slides.length > 0 && ( - )} - -
- {shows.slice(5).map((s) => ( - - ))} -
-
- -
- @@ -265,12 +106,6 @@ function railDesc(r: typeof shows[number]) { - - -
-
Previous
-
Next
-
-
@@ -36,7 +27,7 @@ if (!yearChips.length) yearChips = yearSeed @@ -57,17 +48,12 @@ if (!yearChips.length) yearChips = yearSeed
-
+ + +
+
+
+
+

全部品牌

+ +
+ +
+ +
+
+
热门推荐
+
+
    + +
  • 未找到匹配的品牌
  • +
+
+
+ + +
+
+
+
@@ -286,10 +325,6 @@ if (!yearChips.length) yearChips = yearSeed .showsaside { @apply flex-none w-[240px] bg-white sticky top-5 max-h-[calc(100vh-40px)] rounded-none transition-[flex-basis] duration-250 ease-in-out flex flex-col max-md:static max-md:max-h-none max-md:w-full; } - html.showsaside-collapsed .showsaside, - .showsaside.is-collapsed { - @apply flex-none w-[44px]; - } .showsaside-head { @apply flex items-center justify-between p-[14px_14px_12px] border-b border-black shrink-0; @@ -297,25 +332,10 @@ if (!yearChips.length) yearChips = yearSeed .showsaside-h { @apply text-[11px] tracking-[0.26em] uppercase font-bold m-0 leading-none transition-opacity duration-200; } - html.showsaside-collapsed .showsaside-h, - .showsaside.is-collapsed .showsaside-h { - @apply opacity-0 pointer-events-none w-0 overflow-hidden; - } - - .showsaside-toggle { - @apply appearance-none bg-white border-[1.5px] border-black w-[22px] h-[22px] inline-flex items-center justify-center cursor-pointer rounded-none text-black p-0 transition-transform duration-250 ease-in-out hover:bg-black hover:text-white; - } - html.showsaside-collapsed .showsaside-toggle, - .showsaside.is-collapsed .showsaside-toggle { - @apply ml-auto rotate-180; - } .showsaside-body { @apply p-[14px_14px_18px] overflow-y-auto flex-1 min-h-0 [scrollbar-width:thin] [scrollbar-color:#ccc_#fff]; } - html.showsaside-collapsed .showsaside-body { - @apply hidden; - } .showsg { @apply border-t border-[#e6e6e6] py-[12px] pb-[6px] first-of-type:border-t-0 first-of-type:pt-1; @@ -479,11 +499,62 @@ if (!yearChips.length) yearChips = yearSeed @keyframes hbxProg { 0% { left: -38%; } 100% { left: 100%; } } @keyframes hbxShim { 0%, 100% { opacity: .85; } 50% { opacity: .55; } } + /* ===== 品牌筛选弹窗 ===== */ + .showsmodal { + @apply fixed inset-0 z-[60] flex items-center justify-center p-[16px]; + } + .showsmodal-mask { + @apply absolute inset-0 bg-black/45; + } + .showsmodal-panel { + @apply relative w-full max-w-[680px] max-h-[86vh] bg-white flex flex-col border border-black; + } + .showsmodal-head { + @apply flex items-center justify-between px-[16px] py-[13px] border-b border-black shrink-0; + } + .showsmodal-head h3 { + @apply m-0 text-[13px] tracking-[0.2em] uppercase font-bold; + } + .showsmodal-x { + @apply appearance-none bg-white border border-black w-[24px] h-[24px] inline-flex items-center justify-center cursor-pointer text-[12px] leading-none; + } + .showsmodal-x:hover { @apply bg-black text-white; } + .showsmodal-search { @apply px-[16px] pt-[12px] pb-[8px] shrink-0; } + .showsmodal-input { + @apply w-full border border-black px-[10px] py-[8px] text-[13px] outline-none; + } + .showsmodal-input:focus { @apply ring-1 ring-black; } + .showsmodal-az { + @apply flex flex-wrap gap-[4px] px-[16px] pb-[10px] border-b border-[#e6e6e6] shrink-0; + } + .showsmodal-az .az { + @apply appearance-none bg-white border border-[#ccc] w-[22px] h-[22px] text-[11px] cursor-pointer leading-none; + } + .showsmodal-az .az.active { @apply bg-black text-white border-black; } + .showsmodal-body { @apply flex-1 min-h-0 overflow-y-auto px-[16px] py-[8px]; } + .showsmodal-hint { + @apply text-[11px] tracking-[0.2em] uppercase text-[#888] py-[6px] pb-[8px]; + } + .showsmodal-loading { @apply flex justify-center py-[28px] text-[#bdbdbd]; } + .showsmodal-list { @apply list-none m-0 p-0; } + .showsmodal-row { + @apply flex items-center gap-[8px] w-full cursor-pointer py-[7px] border-b border-[#f0f0f0] text-[13px]; + } + .showsmodal-name { @apply flex-1 truncate; } + .showsmodal-ct { @apply text-[#999] text-[11px] ml-auto; } + .showsmodal-empty { @apply py-[28px] text-center text-[#999] text-[13px]; } + .showsmodal-foot { + @apply flex items-center justify-between px-[16px] py-[12px] border-t border-black shrink-0 text-[12px]; + } + .showsmodal-ok { + @apply appearance-none bg-black text-white border border-black px-[22px] py-[8px] cursor-pointer text-[12px] tracking-[0.1em]; + } +