diff --git a/nuxt/components/industry-page/Applications.vue b/nuxt/components/industry-page/Applications.vue new file mode 100644 index 0000000000..f0fecdf350 --- /dev/null +++ b/nuxt/components/industry-page/Applications.vue @@ -0,0 +1,68 @@ + + + diff --git a/nuxt/components/industry-page/Compliance.vue b/nuxt/components/industry-page/Compliance.vue new file mode 100644 index 0000000000..9c0dbd5968 --- /dev/null +++ b/nuxt/components/industry-page/Compliance.vue @@ -0,0 +1,38 @@ + + + diff --git a/nuxt/components/industry-page/Cta.vue b/nuxt/components/industry-page/Cta.vue new file mode 100644 index 0000000000..7368c77a9e --- /dev/null +++ b/nuxt/components/industry-page/Cta.vue @@ -0,0 +1,18 @@ + + + diff --git a/nuxt/components/industry-page/Hero.vue b/nuxt/components/industry-page/Hero.vue new file mode 100644 index 0000000000..1692ab4f86 --- /dev/null +++ b/nuxt/components/industry-page/Hero.vue @@ -0,0 +1,67 @@ + + + diff --git a/nuxt/components/industry-page/Metrics.vue b/nuxt/components/industry-page/Metrics.vue new file mode 100644 index 0000000000..5e4a7d8c59 --- /dev/null +++ b/nuxt/components/industry-page/Metrics.vue @@ -0,0 +1,39 @@ + + + diff --git a/nuxt/components/industry-page/Roi.vue b/nuxt/components/industry-page/Roi.vue new file mode 100644 index 0000000000..30a96f120a --- /dev/null +++ b/nuxt/components/industry-page/Roi.vue @@ -0,0 +1,21 @@ + + + diff --git a/nuxt/components/industry-page/Template.vue b/nuxt/components/industry-page/Template.vue new file mode 100644 index 0000000000..8b2c6f0657 --- /dev/null +++ b/nuxt/components/industry-page/Template.vue @@ -0,0 +1,83 @@ + + + diff --git a/nuxt/components/industry/MatchingUseCases.vue b/nuxt/components/industry-page/UseCases.vue similarity index 83% rename from nuxt/components/industry/MatchingUseCases.vue rename to nuxt/components/industry-page/UseCases.vue index 91aac62197..663d1bf37b 100644 --- a/nuxt/components/industry/MatchingUseCases.vue +++ b/nuxt/components/industry-page/UseCases.vue @@ -1,6 +1,10 @@ diff --git a/nuxt/pages/industries/index.vue b/nuxt/pages/industries/index.vue index 8877b7daee..898c58f58f 100644 --- a/nuxt/pages/industries/index.vue +++ b/nuxt/pages/industries/index.vue @@ -3,24 +3,17 @@ // classes from src/css/style.css. // // What the port changes on purpose: -// - collections["industry"] becomes the `industries` data collection plus the one -// hand-written page. src/industries/industries.json tagged every file in that -// directory, so automotive.njk was on the listing too even though it used its own -// layout; AUTOMOTIVE below keeps it there. +// - collections["industry"] becomes two data collections merged into one card grid: +// industriesLegacy (the seven restored pages, transitional) and industries (the +// automotive-page template, starting with automotive itself and industrial-machinery). +// Once industriesLegacy is retired this page only needs the second query. // - The CTA macros become and . -const { data: industries } = await useAsyncData('industries-listing', () => +const { data: legacyIndustries } = await useAsyncData('industries-legacy-listing', () => queryCollection('industriesLegacy').select('slug', 'seoMeta', 'hero').all() ) - -// /industries/automotive/ is a hand-written page, not a collection entry, so its card -// copy is declared here. It reads from the same fields the collection cards use. -const AUTOMOTIVE = { - slug: 'automotive', - title: 'Automotive Manufacturing Applications | FlowFuse', - description: 'Connect PLCs, SCADA, MES, and plant IT systems in one place. FlowFuse helps teams monitor, automate, and standardize production workflows across plants in real time.', - image: '/images/industries/automotive.jpg', - imageAlt: 'Aerial view of an automotive manufacturing plant floor', -} +const { data: templateIndustries } = await useAsyncData('industries-listing', () => + queryCollection('industries').select('slug', 'seoMeta', 'listingImage', 'listingImageAlt').all() +) // The .njk stripped the brand suffix off meta.title for the card heading. function cardTitle(title: string) { @@ -28,15 +21,22 @@ function cardTitle(title: string) { } const cards = computed(() => { - const fromCollection = (industries.value || []).map(industry => ({ + const fromLegacy = (legacyIndustries.value || []).map(industry => ({ slug: industry.slug, title: industry.seoMeta.title, description: industry.seoMeta.description, image: industry.hero?.image, imageAlt: industry.hero?.imageAlt, })) + const fromTemplate = (templateIndustries.value || []).map(industry => ({ + slug: industry.slug, + title: industry.seoMeta.title, + description: industry.seoMeta.description, + image: industry.listingImage, + imageAlt: industry.listingImageAlt, + })) // `| sort(false, true, "data.meta.title")`: case-insensitive, ascending. - return [...fromCollection, AUTOMOTIVE] + return [...fromLegacy, ...fromTemplate] .sort((a, b) => a.title.toLowerCase().localeCompare(b.title.toLowerCase(), 'en')) }) diff --git a/nuxt/pages/industries/industrial-machinery.vue b/nuxt/pages/industries/industrial-machinery.vue new file mode 100644 index 0000000000..97ab22d046 --- /dev/null +++ b/nuxt/pages/industries/industrial-machinery.vue @@ -0,0 +1,15 @@ + + + diff --git a/nuxt/public/images/customer-headshots/felix-reck-walter-tools.png b/nuxt/public/images/customer-headshots/felix-reck-walter-tools.png new file mode 100644 index 0000000000..204f153652 Binary files /dev/null and b/nuxt/public/images/customer-headshots/felix-reck-walter-tools.png differ diff --git a/nuxt/public/images/industries/industrial-machinery/act-on-stops.png b/nuxt/public/images/industries/industrial-machinery/act-on-stops.png new file mode 100644 index 0000000000..98c0adc410 Binary files /dev/null and b/nuxt/public/images/industries/industrial-machinery/act-on-stops.png differ diff --git a/nuxt/public/images/industries/industrial-machinery/bring-your-ai.png b/nuxt/public/images/industries/industrial-machinery/bring-your-ai.png new file mode 100644 index 0000000000..91e4fc7bab Binary files /dev/null and b/nuxt/public/images/industries/industrial-machinery/bring-your-ai.png differ diff --git a/nuxt/public/images/industries/industrial-machinery/error-proof-work.png b/nuxt/public/images/industries/industrial-machinery/error-proof-work.png new file mode 100644 index 0000000000..cf03dd574e Binary files /dev/null and b/nuxt/public/images/industries/industrial-machinery/error-proof-work.png differ diff --git a/src/_data/chrome.json b/src/_data/chrome.json index 42c0b044ca..ef7ce36ed0 100644 --- a/src/_data/chrome.json +++ b/src/_data/chrome.json @@ -134,13 +134,18 @@ { "title": "By Industry", "titleGrid": "xl:col-start-2 xl:row-start-1", - "listClasses": "row-span-[2] xl:col-start-2 xl:row-start-2", + "listClasses": "row-span-[3] xl:col-start-2 xl:row-start-2", "links": [ { "label": "Automotive", "href": "/industries/automotive/", "icon": "car" }, + { + "label": "Industrial Machinery", + "href": "/industries/industrial-machinery/", + "icon": "cog-6-tooth" + }, { "label": "See all industries", "href": "/industries/", @@ -481,6 +486,10 @@ "label": "Automotive", "href": "/industries/automotive/" }, + { + "label": "Industrial Machinery", + "href": "/industries/industrial-machinery/" + }, { "label": "See all industries", "href": "/industries/"