@@ -19,6 +19,7 @@ import PostPreview from "../components/PostPreview";
19import EventPreview from "../components/EventPreview";
19import EventPreview from "../components/EventPreview";
20import { eventKeys } from "../lib/constants";
20import { eventKeys } from "../lib/constants";
21import IndexCard from "../components/ecosystem/IndexCard";
21import IndexCard from "../components/ecosystem/IndexCard";
22+import HighlightCard from "../components/HighlightCard";
22import fs from "fs";
23import fs from "fs";
23import path from "path";
24import path from "path";
24import Meta from "../components/Meta";
25import Meta from "../components/Meta";
@@ -26,6 +27,7 @@ import { matchEcosystemPost } from "../lib/lib";
27export default function Home({
28export default function Home({
29 ecosystem,
31 ecosystem,
31 grantNumbers,
33 grantNumbers,
@@ -58,57 +60,15 @@ export default function Home({
62− <Section className="pb-12">
66+ <Section className="pb-12">
64 <div className="flex flex-col space-y-4 md:space-y-0 md:flex-row md:space-x-4">
67 <div className="flex flex-col space-y-4 md:space-y-0 md:flex-row md:space-x-4">
65−
68+ <HighlightCard highlight={highlights[0]} key={highlights[0].slug} />
66−
69+ <HighlightCard highlight={highlights[1]} key={highlights[1].slug} />
67− <Link href="#">
70+ <HighlightCard highlight={highlights[2]} key={highlights[2].slug} />
68− <div className="cursor-pointer bg-wall-100 rounded-xl min-h-0 flex-1">
69− <div className="flex flex-col p-4 h-full relative">
70− <div className="w-64 md:w-full rounded-xl object-cover overflow-hidden basis-3/5">
71− <img className="h-full w-64 md:w-full object-cover" src="https://storage.googleapis.com/media.urbit.org/site/featured/state-of-network.png"/>
73− <div className="pt-4">
74− <p className="mb-2 font-semibold leading-5">State of the Network</p>
75− <p className="text-sm leading-5">Urbit is not the same in 2023 as it was in 2022.</p>
81− <Link href="https://roadmap.urbit.org">
82− <div className="bg-wall-100 rounded-xl min-h-0 flex-1">
83− <div className="cursor-pointer flex flex-col p-4 h-full relative">
84− <div className="w-64 md:w-full rounded-xl object-cover overflow-hidden basis-3/5">
85− <img className="h-full w-64 md:w-full object-cover" src="https://storage.googleapis.com/media.urbit.org/site/featured/roadmap-icon.jpg"/>
87− <div className="pt-4">
88− <p className="mb-2 font-semibold leading-5">Roadmap</p>
89− <p className="text-sm leading-5">Explore the technical plan for making Urbit suitable to mass adoption.</p>
96− <Link href="https://developers.urbit.org/courses/hsl">
97− <div className="bg-wall-100 rounded-xl min-h-0 flex-1">
98− <div className="cursor-pointer flex flex-col p-4 h-full relative">
99− <div className="w-64 md:w-full rounded-xl object-cover overflow-hidden basis-3/5">
100− <img className="h-full w-64 md:w-full object-cover" src="https://storage.googleapis.com/media.urbit.org/site/featured/hoon-school-23.png"/>
102− <div className="pt-4">
103− <p className="mb-2 font-semibold leading-5">Hoon School Live 23'</p>
104− <p className="text-sm leading-5">The next cohort class to learn Hoon begins in March.</p>
112 </Section>
72 </Section>
@@ -372,6 +332,8 @@ export default function Home({
375export async function getStaticProps() {
337export async function getStaticProps() {
376 // Latest blog posts
338 // Latest blog posts
377 const posts = getAllPosts(
339 const posts = getAllPosts(
@@ -380,6 +342,14 @@ export async function getStaticProps() {
347+ const highlights = getAllPosts(
348+ ["title", "slug", "image", "url", "description"],
383 // Latest ecosystem report with matched post metadata
353 // Latest ecosystem report with matched post metadata
384 const ecosystem = matchEcosystemPost(getAllPosts(
354 const ecosystem = matchEcosystemPost(getAllPosts(
385 ["date", "featured-1", "featured-2", "featured-3"],
355 ["date", "featured-1", "featured-2", "featured-3"],
@@ -451,6 +421,7 @@ export async function getStaticProps() {
454 ecosystem,
425 ecosystem,
455 grantNumbers,
426 grantNumbers,
456 events: happeningNow.concat(futureEvents).concat(pastEvents),
427 events: happeningNow.concat(futureEvents).concat(pastEvents),