on master help sign in
events
commitaafeae545cf7f6909c7b38e6b8fe2226f1929c0a authorGavin Atkinson <gvnatknsn@protonmail.com> dateTue 13 Jul 2021, 16:10 (5 years ago) parent0c69a39
13 files changed+79−97
components/EventPreview.js+33 components/PostPreview.js+1−1 content/_index.md−3 content/events/2021-03-18-developer-call-pressure-and-protolith.md+2−2 content/events/2021-04-01-developer-call-javascript-apps-on-urbit.md+1−1 content/events/2021-04-27-bitcoin-launch.md+1−1 content/events/2021-05-27-town-hall.md+10−5 pages/404.js+1 pages/blog/[slug].js+1−1 pages/events.js+11−67 pages/events/[slug].js+8−8 pages/index.js+9−8 tailwind.config.js+1
components/EventPreview.jsnew file+33
@@ -0,0 +1,33 @@
1+import Link from "next/link";
2+
3+export default function EventPreview({ event, className, title }) {
4+ // Event tiles have a 'dark mode' used when their background images are dark and white text is needed for legibility.
5+ const grayText = event.extra?.dark ? "text-midWhite" : "text-gray";
6+ const blackText = event.extra?.dark ? "text-white" : "text-black";
7+
8+ return (
9+ <div className={`cursor-pointer ${className}`}>
10+ {title ? <h3 className="mb-2">{title}</h3> : null}
11+ <div
12+ key={event.slug}
13+ className={`bg-wall rounded-xl h-96 bg-cover bg-center bg-no-repeat`}
14+ style={{ backgroundImage: `url(${event.extra?.image})` || "" }}
15+ >
16+ <Link href={`/events/${event.slug}`}>
17+ <div className="flex flex-col p-4 justify-between items-between h-full relative">
18+ <div className="flex-grow-1 flex flex-col justify-center h-full">
19+ <h4 className={`mb-4 ${blackText}`}>{event.title}</h4>
20+ <p className={grayText}>{event?.type}</p>
21+ </div>
22+ <div className="absolute p-4 left-0 bottom-0 w-full">
23+ <p className={`${grayText} type-ui-small`}>{event.extra.host}</p>
24+ <p className={`${grayText} type-ui-small`}>
25+ {event.extra.guests}
26+ </p>
27+ </div>
28+ </div>
29+ </Link>
30+ </div>
31+ </div>
32+ );
33+}
components/PostPreview.js+1−1
@@ -10,7 +10,7 @@ export default function PostPreview(props) {
1010 <Link href={`/blog/${props.post.slug}`} key={`post-${props.post.slug}`}>
1111 <div>
1212 <BackgroundImage
13− className="w-full h-80 rounded-lg"
13+ className="w-full h-96 rounded-lg"
1414 src={props.post.extra.image || ""}
1515 />
1616 <p className="text-black mt-2">{props.post.title}</p>
content/_index.mddeleted−3
@@ -1,3 +0,0 @@
1−+++
2−title = "Home"
3−+++
content/events/2021-03-18-developer-call-pressure-and-protolith.md+2−2
@@ -6,7 +6,7 @@ pinned = false
66host = "Urbit"
77time = "09:00 PST"
88location = "Online event"
9−image = "https://secure.meetupstatic.com/photos/event/6/8/2/a/600_495146666.jpeg"
9+image = ""
1010registration_url = "https://www.meetup.com/urbit-sf/events/276898246/"
1111description = "Matilde Park, Landscape team lead, talks about the distinctions between the Landscape product and basic Urbit development, and the significance of building Landscape for Tlon."
1212youtube = "XjIDZQUZZtE"
@@ -16,4 +16,4 @@ Landscape was an experiment. Now it’s Tlon's flagship client for the Urbit pro
1616
1717Matilde Park, Landscape team lead, talks about the distinctions between the Landscape product and basic Urbit development, and the significance of building Landscape for Tlon — the role of “high-pressure experiments” in forcing our computer toward something rock-hard, diamond-perfect. With a few examples of ongoing deployments, she also outlines the problems being solved right now and the ones still a touch further out.
1818
19−As usual, join us after the talk on the call to ask questions and hang out.
19+As usual, join us after the talk on the call to ask questions and hang out.
content/events/2021-04-01-developer-call-javascript-apps-on-urbit.md+1−1
@@ -6,7 +6,7 @@ pinned = false
66host = "Mike Osborne (~taller-ravnut)"
77time = "09:00 PST"
88location = "Online Event"
9−image = "https://marpem-files.sfo2.digitaloceanspaces.com/radbur-sivmus/2021.4.05..15.41.17-urbit-javascript-diagram.png"
9+image = ""
1010registration_url = "https://www.meetup.com/urbit-sf/events/277261928/"
1111guests = "Tyler Brown Cifu Shuster (~radbur-sivmus)"
1212description = "In this talk, Tyler Brown Cifu Shuster (~radbur-sivmus) explains how to use Javascript tools to develop a client for Urbit."
content/events/2021-04-27-bitcoin-launch.md+1−1
@@ -6,7 +6,7 @@ pinned = false
66host = "Urbit Foundation"
77time = "12:00pm PDT"
88location = "Online Event"
9−image = "https://storage.googleapis.com/media.urbit.org/site/events/20210413-bitcoin-header.png"
9+image = "https://media.urbit.org/site/events/bitcoin-launch-event.png"
1010registration_url = "https://www.meetup.com/urbit-sf/events/276741426/"
1111youtube = "_aRnfacZPto"
1212guests = "Marty Bent"
content/events/2021-05-27-town-hall.md+10−5
@@ -6,11 +6,12 @@ pinned = true
66host = "Josh Lehman (~wolref-podlex)"
77time = "12:00 - 15:30 PDT"
88location = "Online Event"
9−image = ""
9+image = "https://media.urbit.org/site/events/URBIT-TOWN-HALL.png"
1010registration_url = "https://www.meetup.com/urbit-sf/events/278188361/"
1111guests = "Hunter Miller (~nocsyx-lassul) and Justin Murphy (~hatryx-lastud)"
1212description = "A virtual mini-conference for the Urbit community featuring a special keynote talk from our friend Justin Murphy."
1313youtube = "8YSwt0vDPj0"
14+dark=true
1415+++
1516
1617The Urbit community has grown at a rapid clip throughout 2021. There are so many exciting things going on that it's hard to convey them all, even with Developer Calls happening every two weeks. This event will function as a virtual "mini-conference" where we'll give a series of important and exciting announcements, including both formal and informal talks from many members of our community.
@@ -18,22 +19,26 @@ The Urbit community has grown at a rapid clip throughout 2021. There are so many
1819Here's a rundown of what we'll be discussing:
1920
2021## Introduction: State of the Network
21−*12:00 PDT, Josh Lehman*
22+
23+_12:00 PDT, Josh Lehman_
2224
2325Urbit is under heavy, active development by both Tlon and a wide range of contributors. Josh Lehman will discuss some of the most important areas of work being undertaken, provide a picture of where Tlon and community efforts are going in the future, and even has a few exciting announcements to make.
2426
2527## Taisho, Urbit's Port City
26−*~12:20 PDT, Hunter Miller*
28+
29+_~12:20 PDT, Hunter Miller_
2730
2831Piloting an Urbit ship requires expertise that many lack. To achieve the rich and prosperous ecosystem we've all envisioned requires making that journey easier. In this talk, Hunter Miller introduces a new way for users to join the network with minimal effort.
2932
3033## Keynote: The Revenge of Teleology
31−*~13:00 PDT, Justin Murphy*
34+
35+_~13:00 PDT, Justin Murphy_
3236
3337Teleology—or inquiry into ultimate ends—has been out of fashion since the seventeenth century, when Francis Bacon said that, “like a virgin consecrated to God,” it “produces nothing.” I argue that the digital revolution is inverting Bacon’s claim. Baconian instrumentalism is now suffering from diminishing returns—it is what the youth today call a Boomer Ideology. Rather, the greatest gains are going to individuals and communities with teleological attitudes. This talk will observe some examples and present a model consistent with the observations. Bitcoin inquires after the telos of money, the most winning independent “content creators” inquire after the telos of media, and Urbit inquires after the telos of personal computing.
3438
3539## Lightning Talks
36−*14:00 PDT, you?*
40+
41+_14:00 PDT, you?_
3742
3843After the scheduled talks we'll break out into a series of 30 minute talks led by community members. There will be up to three talks given in parallel at each of 14:00 PDT, 14:30 PDT and 15:00 PDT (so nine talks total).
3944
pages/404.js+1
@@ -1,3 +1,4 @@
1+import Head from "next/head";
12import Container from "../components/Container";
23import SingleColumn from "../components/SingleColumn";
34import Header from "../components/Header";
pages/blog/[slug].js+1−1
@@ -89,7 +89,7 @@ export default function Post({
8989 </code>
9090 </h4>
9191 </Section>
92− <Section className="flex">
92+ <Section wide className="flex">
9393 {previousPost === null ? (
9494 <div className={"w-1/2 mr-4"} />
9595 ) : (
pages/events.js+11−67
@@ -10,87 +10,31 @@ import Section from "../components/Section";
1010import BackgroundImage from "../components/BackgroundImage";
1111import { getAllPosts, formatDate } from "../lib/lib";
1212
13−// function assignEventCard(event) {
14−// if (event.extra.youtube) {
15−// return (
16−// <img
17−// src={`http://img.youtube.com/vi/${event.extra.youtube}/maxresdefault.jpg`}
18−// className="w-full rounded-lg h-auto w-full"
19−// />
20−// );
21−// }
22−//
23−// if (event.extra.image) {
24−// return (
25−// <BackgroundImage
26−// src={event.extra.image}
27−// style={{ height: "620px" }}
28−// className="w-full rounded-lg"
29−// />
30−// );
31−// }
32−//
33−// return (
34−// <div
35−// className="w-full rounded-lg bg-wall"
36−// style={{ height: "620px" }}
37−// ></div>
38−// );
39−// }
40−//
41−// function EventCard(props) {
42−// return (
43−// <div key={props.event.slug} className="mb-24 cursor-pointer">
44−// <Link href={`/events/${props.event.slug}`}>
45−// <div>
46−// {assignEventCard(props.event)}
47−// <h3 className="mt-4">{props.event.title}</h3>
48−// <div className="flex items-baseline">
49−// {props.event.extra.author ? (
50−// <div className="type-ui text-gray mt-4">
51−// {props.event.extra.author}
52−// </div>
53−// ) : null}
54−// {props.event.extra.author && post.extra.ship ? (
55−// <div className="mx-1 text-gray">•</div>
56−// ) : null}
57−// {props.event.extra.ship ? (
58−// <div className="type-ui text-gray font-mono">
59−// {props.event.extra.ship}
60−// </div>
61−// ) : null}
62−// </div>
63−//
64−// <div className="type-ui text-gray mt-2">
65−// {formatDate(new Date(props.event.date))} - {props.event.extra.time}
66−// </div>
67−// </div>
68−// </Link>
69−// </div>
70−// );
71−// }
72−
7313function EventCard({ event }) {
14+ // Event tiles have a 'dark mode' used when their background images are dark and white text is needed for legibility.
15+ const grayText = event.extra?.dark ? "text-midWhite" : "text-gray";
16+ const blackText = event.extra?.dark ? "text-white" : "text-black";
17+
7418 return (
7519 <div
7620 key={event.slug}
77− className="mb-24 cursor-pointer bg-wall rounded-xl tile-height"
78− style={{ backgroundImage: event.extra?.image || "" }}
21+ className="mb-24 cursor-pointer bg-wall rounded-xl tile-height bg-cover bg-center bg-no-repeat"
22+ style={{ backgroundImage: `url(${event.extra?.image})` || "" }}
7923 >
8024 <Link href={`/events/${event.slug}`}>
8125 <div className="flex flex-col p-8 justify-between items-between h-full relative">
8226 <div className="flex-grow-1 flex flex-col justify-center h-full">
83− <h3 className="mb-4">{event.title}</h3>
84− <h4 className="mt-4 type-gray">{event?.type}</h4>
27+ <h3 className={`mb-4 ${blackText}`}>{event.title}</h3>
28+ <h4 className={grayText}>{event?.type}</h4>
8529 </div>
8630 <div className="absolute left-8 bottom-8 w-full">
87− <p className="text-gray">{event.extra.host}</p>
88− <p className="text-gray">{event.extra.guests}</p>
31+ <p className={grayText}>{event.extra.host}</p>
32+ <p className={grayText}>{event.extra.guests}</p>
8933 </div>
9034 {event.extra.youtube ? (
9135 <a
9236 onClick={(e) => e.stopPropagation()}
93− className="absolute w-16 h-16 right-8 bottom-8 bg-white flex items-center justify-center rounded-full bg-cover bg-center bg-no-repeat"
37+ className="absolute w-16 h-16 right-8 bottom-8 bg-white flex items-center justify-center rounded-full"
9438 target="_blank"
9539 href={`https://www.youtube.com/watch?v=${event.extra.youtube}`}
9640 >
pages/events/[slug].js+8−8
@@ -16,7 +16,7 @@ import Footer from "../../components/Footer";
1616import BackgroundImage from "../../components/BackgroundImage";
1717import SingleColumn from "../../components/SingleColumn";
1818import NewsletterSignup from "../../components/NewletterSignup";
19−import PostPreview from "../../components/PostPreview";
19+import EventPreview from "../../components/EventPreview";
2020import Section from "../../components/Section";
2121import { name, contact } from "../../lib/constants";
2222import markdownStyles from "../../styles/markdown.module.css";
@@ -103,22 +103,22 @@ export default function Event({
103103 </code>
104104 </h4>
105105 </Section>
106− <Section wide>
106+ <Section wide className="flex">
107107 {previousPost === null ? (
108108 <div className={"w-1/2 mr-4"} />
109109 ) : (
110− <PostPreview
111− title="Previous Post"
112− post={previousPost}
110+ <EventPreview
111+ title="Previous Event"
112+ event={previousPost}
113113 className="mr-4 w-1/2"
114114 />
115115 )}
116116 {nextPost === null ? (
117117 <div className={"w-1/2 ml-4"} />
118118 ) : (
119− <PostPreview
120− title="Next Post"
121− post={nextPost}
119+ <EventPreview
120+ title="Next Event"
121+ event={nextPost}
122122 className="ml-4 w-1/2"
123123 />
124124 )}
pages/index.js+9−8
@@ -10,6 +10,7 @@ import BackgroundImage from "../components/BackgroundImage";
1010import TabCarousel from "../components/TabCarousel";
1111import NewsletterSignup from "../components/NewletterSignup";
1212import PostPreview from "../components/PostPreview";
13+import EventPreview from "../components/EventPreview";
1314import { getAllPosts, formatDate, getOpenGrantsCount } from "../lib/lib";
1415import { contact } from "../lib/constants";
1516
@@ -232,23 +233,23 @@ export default function Home({ posts, events, openGrantsCount, search }) {
232233 </div>
233234 </div>
234235 <div className="flex flex-wrap">
235− <PostPreview
236− post={events[0]}
236+ <EventPreview
237+ event={events[0]}
237238 className={`w-full md:w-1/2 pr-0 pb-8 md:pr-4`}
238239 key={events[0].slug}
239240 />
240− <PostPreview
241− post={events[1]}
241+ <EventPreview
242+ event={events[1]}
242243 className={`w-full md:w-1/2 pl-0 pb-8 md:pl-4`}
243244 key={events[1].slug}
244245 />
245− <PostPreview
246− post={events[3]}
246+ <EventPreview
247+ event={events[3]}
247248 className={`w-full md:w-1/2 pr-0 pb-8 md:pr-4`}
248249 key={events[3].slug}
249250 />
250− <PostPreview
251− post={events[4]}
251+ <EventPreview
252+ event={events[4]}
252253 className={`w-full md:w-1/2 pl-0 pb-8 md:pl-4`}
253254 key={events[4].slug}
254255 />
tailwind.config.js+1
@@ -24,6 +24,7 @@ module.exports = {
2424 red: "#ff4136",
2525 transparent: "rgba(0,0,0,0)",
2626 washedWhite: "rgba(255,255,255, 0.5)",
27+ midWhite: "rgba(255,255,255, 0.8)",
2728 },
2829 fontFamily: {
2930 sans: ["Inter", "-apple-system", "sans-serif"],