diff --git a/public/events/masonry/1.webp b/public/events/masonry/1.webp new file mode 100644 index 0000000..a8a1e92 Binary files /dev/null and b/public/events/masonry/1.webp differ diff --git a/public/events/masonry/2.webp b/public/events/masonry/2.webp new file mode 100644 index 0000000..67711fb Binary files /dev/null and b/public/events/masonry/2.webp differ diff --git a/public/events/masonry/3.webp b/public/events/masonry/3.webp new file mode 100644 index 0000000..c711b96 Binary files /dev/null and b/public/events/masonry/3.webp differ diff --git a/public/events/masonry/4.webp b/public/events/masonry/4.webp new file mode 100644 index 0000000..5a26a3e Binary files /dev/null and b/public/events/masonry/4.webp differ diff --git a/public/events/masonry/5.webp b/public/events/masonry/5.webp new file mode 100644 index 0000000..25ba17b Binary files /dev/null and b/public/events/masonry/5.webp differ diff --git a/public/events/masonry/6.webp b/public/events/masonry/6.webp new file mode 100644 index 0000000..c516f03 Binary files /dev/null and b/public/events/masonry/6.webp differ diff --git a/public/events/masonry/7.webp b/public/events/masonry/7.webp new file mode 100644 index 0000000..56c798b Binary files /dev/null and b/public/events/masonry/7.webp differ diff --git a/public/events/masonry/8.webp b/public/events/masonry/8.webp new file mode 100644 index 0000000..bc40740 Binary files /dev/null and b/public/events/masonry/8.webp differ diff --git a/public/events/masonry/9.webp b/public/events/masonry/9.webp new file mode 100644 index 0000000..e8c39a2 Binary files /dev/null and b/public/events/masonry/9.webp differ diff --git a/public/hp-bg-redesign.webp b/public/hp-bg-redesign.webp new file mode 100644 index 0000000..0d0b6de Binary files /dev/null and b/public/hp-bg-redesign.webp differ diff --git a/src/components/EventMasonry.astro b/src/components/EventMasonry.astro new file mode 100644 index 0000000..bc32b33 --- /dev/null +++ b/src/components/EventMasonry.astro @@ -0,0 +1,29 @@ +--- +const { + images = [ + "/events/masonry/1.webp", + "/events/masonry/2.webp", + "/events/masonry/3.webp", + "/events/masonry/4.webp", + "/events/masonry/5.webp", + "/events/masonry/6.webp", + "/events/masonry/7.webp", + "/events/masonry/8.webp", + "/events/masonry/9.webp", + ], +} = Astro.props; +--- + +
+ { + images.map((image, index) => ( +
+ {`Image +
+ )) + } +
diff --git a/src/pages/index.astro b/src/pages/index.astro index 069dd89..877d353 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -1,159 +1,213 @@ --- - -import BaseLayout from '../layouts/base.astro'; -import AboutFooter from '../components/AboutFooter.astro'; -import core from '../core.json'; -import articles from '../articles.json'; -import talks from '../talks.json'; -import explorer from '../explorer.json'; -import dbRepo from '../db-repo.json'; -import { format } from 'date-fns'; -import EventItem from '../components/EventItem.astro'; -import { isFutureDate } from '../lib/date'; +import BaseLayout from "../layouts/base.astro"; +import AboutFooter from "../components/AboutFooter.astro"; +import core from "../core.json"; +import articles from "../articles.json"; +import talks from "../talks.json"; +import dbRepo from "../db-repo.json"; +import { format } from "date-fns"; +import EventItem from "../components/EventItem.astro"; +import { isFutureDate } from "../lib/date"; +import EventMasonry from "../components/EventMasonry.astro"; const events = core.events; -const upcomingEvents = [] -let eventsPast = 0 -let eventsUpcoming = 0 +const upcomingEvents = []; +let eventsPast = 0; +let eventsUpcoming = 0; for (const ev of events) { - let future = isFutureDate(ev.date) - if (future) { - upcomingEvents.push(ev) - eventsUpcoming++ - } else { - eventsPast++ - } + let future = isFutureDate(ev.date); + if (future) { + upcomingEvents.push(ev); + eventsUpcoming++; + } else { + eventsPast++; + } } -const featuredEvents = [] +const featuredEvents = []; for (const e of upcomingEvents) { - if (featuredEvents.length > 2) { - break; - } - if (['summit', 'meetup', 'online-summit'].includes(e.type) && - e.links?.rsvp && !featuredEvents.find(ex => ex.type === e.type)) { - featuredEvents.push(e) - } + if (featuredEvents.length > 2) { + break; + } + if ( + ["summit", "meetup", "online-summit"].includes(e.type) && + e.links?.rsvp && + !featuredEvents.find((ex) => ex.type === e.type) + ) { + featuredEvents.push(e); + } } - --- - + +
+
+
+
Events
+
+
+
{eventsUpcoming}
+
Upcoming events
+
+
+
{eventsPast}
+
Past events
+
+
+
+
+
+ +
+ +
+
+ {dbRepo.stars} +
+
+
+
{dbRepo.count}
+
Projects
+
+
+
{dbRepo.contributors}
+
Contributors
+
+
+
+
+
Research
+
+
+
{core.research.length} research projects →
+
+
+
+
+
-
-
-
-
Events
-
-
-
{eventsUpcoming}
-
Upcoming events
-
-
-
{ eventsPast}
-
Past events
-
-
-
-
- - -
{dbRepo.stars}
-
-
-
{dbRepo.count}
-
Projects
-
-
-
{dbRepo.contributors}
-
Contributors
-
-
-
-
-
Research
-
-
-
{core.research.length} research projects →
-
-
-
-
-
- - -
- -
-

Featured Upcoming Events

-
+
+

Featured Events

+
-
- {featuredEvents.map((event) => ( - - ))} -
+
+ Our gatherings aim to build understanding and solidarity among diverse + interest groups, cultures, states, chains, ecosystems, and backgrounds. We + bring together Web3 and non-tech individuals, builders, researchers, + philosophers, lawyers, policymakers, hacktivists, key players, local + communities, and the general public. Formats: Meetups, Summits, + Congresses, Hackathons, Camp fires +
+
- +
+ +
-
-

Latest Articles

-
+
+
+ {featuredEvents.map((event) => )} +
-
- {articles.slice(0,4).map((entry) => ( -
-
- {entry.title} - {format(new Date(entry.date), 'MMMM do, yyyy')} -
-
- ))} -
+ - +
+

Latest Articles

+
-
-

Latest Talks

-
+
+ { + articles.slice(0, 4).map((entry) => ( +
+
+ {entry.title} + + {format(new Date(entry.date), "MMMM do, yyyy")} + +
+
+ )) + } +
-
- {talks.slice(0,4).map((entry) => ( -
- -
- ))} -
+ - +
+

Latest Talks

+
- -
- +
+ { + talks.slice(0, 4).map((entry) => ( +
+ +
+ )) + } +
+ + + + +