on master help sign in
Merge pull request #1572 from urbit/mp/tidy

components: cleanup omnibus

commitabf1b490bd40d917e99b7f1299f93c71ba9cda33 authormatildepark <matilde.park@urbit.org> dateWed 15 Jun 2022, 14:10 (4 years ago) parentd7625e08c05033
48 files changed+109−238
components/EventPreview.js+14−52 components/GuideColumn.js−8 components/Lorem.js−106 components/Markdown.js+5−5 components/Snippets.js+8−1 components/Button.js → components/content/Button.js components/Callout.js → components/content/Callout.js components/Tab.js → components/content/Tab.js components/Tabs.js → components/content/Tabs.js components/ResourceCard.js → components/gateway/ResourceCard.js+1−1 components/BubbleLink.js → components/index/BubbleLink.js content/events/2017-08-11-after-hours-bootstrapping-urbit-from-the-ethereum-blockchain.md+2−2 content/events/2017-09-22-after-hours-fun-with-arvo-the-urbit-os.md+2−2 content/events/2017-10-26-after-hours-designing-robust-human-systems.md+2−2 content/events/2017-11-16-after-hours-visiting-contributors.md+2−2 content/events/2018-01-26-urbit-irl-20181.md+2−2 content/events/2018-02-23-urbit-irl-20182.md+2−2 content/events/2018-03-11-20183-hoon-school.md+2−2 content/events/2018-03-23-urbit-irl-20183.md+2−2 content/events/2018-05-25-urbit-irl-20185.md+2−2 content/events/2018-08-03-after-hours-decentralized-web-summit.md+2−2 content/events/2018-08-17-urbit-irl-20188.md+2−2 content/events/2018-09-21-urbit-irl-20189.md+2−2 content/events/2018-10-10-urbit-zcash-blockchain-week.md+2−2 content/events/2018-12-20-after-hours-its-just-a-party-man.md+2−2 content/events/2019-03-01-after-hours-ask-galen-anything.md+1−1 content/events/2019-03-08-urbit-irl-austin-tx.md+2−2 content/events/2019-04-19-urbit-irl-20194.md+2−2 content/events/2019-05-17-urbit-irl-20195.md+2−2 content/events/2019-06-21-urbit-irl-20196.md+2−2 content/events/2019-07-19-urbit-irl-20197.md+4−2 content/events/2019-08-29-urbit-austin-20198.md+4−2 content/events/2019-10-04-urbit-irl-201910.md+4−2 content/events/2019-11-15-urbit-irl-201911.md+4−2 content/events/2019-12-13-urbit-irl-201912.md+4−2 content/events/2020-01-24-urbit-irl-20201.md+4−2 content/events/2020-02-28-urbit-irl-20202.md+4−2 content/events/2020-04-03-urbit-os1-launch-party.md+4−2 content/events/2020-10-09-urbit-hosting-launch-event.md+4−3 content/events/2020-12-10-developer-call-injecting-external-services-into-urbit.md+1−2 content/events/2021-03-18-developer-call-pressure-and-protolith.md+1−1 content/events/2021-04-01-developer-call-javascript-apps-on-urbit.md+1−1 content/events/2021-04-27-bitcoin-launch.md+1 content/events/2021-05-13-developer-call-versioned-networking.md+1−1 content/events/2022-04-26-urbit-foundation-meetup-kingsnight-amsterdam.md−1 lib/constants.js+1 pages/ids/[id].js+1−1 pages/index.js+1−2
components/EventPreview.js+14−52
@@ -1,55 +1,8 @@
11import Link from "next/link";
22import { DateTime } from "luxon";
3−import {
4− ShowOrHide,
5− ReadableList,
6− Person,
7− Name,
8− DateRange,
9−} from "../components/Snippets";
10−import {
11− generateDisplayDate,
12− generateRealtimeDate,
13− formatDate,
14− formatTime,
15− formatTimeZone,
16−} from "../lib/lib";
17−
18−// JAL(2021.9.13) Couldn't quite get this to work properly. There's a trailing
19−// "and"
20−//
21−// function GuestList({ guests, textClass }) {
22−
23−// const renderGuests = guests?.length > 2 ? guests?.slice(0,2) : guests;
24−// const noRenderGuestsCount = guests?.slice(2).length;
25−
26−// return (
27−// <p className={textClass + " type-sub"}>
28−// <b>
29−// {renderGuests?.length > 1 ? "With guests " : "With guest "}
30−// </b>
31−// <ReadableList>
32−// {renderGuests?.map((guest, index) => (
33−// <>
34−// <Person
35−// key={`${guest.name}-${guest.patp}`}
36−// nameClassNames={textClass}
37−// patpClassNames={textClass}
38−// name={guest.name}
39−// patp={guest.patp}
40−// />
41−// {renderGuests?.length > 1 ? <span>, </span> : <></>}
42−// </>
43−// ))}
44−// {noRenderGuestsCount > 1 ?
45−// <Name>{noRenderGuestsCount} more </Name>
46−// :
47−// <></>
48−// }
49−// </ReadableList>
50−// </p>
51−// );
52−// }
3+import { DateRange } from "../components/Snippets";
4+import { generateDisplayDate, generateRealtimeDate } from "../lib/lib";
5+import classNames from "classnames";
536
547export default function EventPreview({ event, className, big }) {
558 // Event tiles have a 'dark mode' used when their background images are dark and white text is needed for legibility.
@@ -75,7 +28,14 @@ export default function EventPreview({ event, className, big }) {
7528 >
7629 <Link href={`/events/${event.slug}`}>
7730 <div
78− className={`flex flex-col p-6 justify-between items-between h-full relative`}
31+ className={classNames(
32+ "flex flex-col p-6 justify-between items-between h-full relative",
33+ {
34+ "backdrop-brightness-50 rounded-xl": Boolean(
35+ event?.darken_image
36+ ),
37+ }
38+ )}
7939 >
8040 <div
8141 className={`grow-1 flex ${
@@ -83,7 +43,9 @@ export default function EventPreview({ event, className, big }) {
8343 } flex-col h-full`}
8444 >
8545 <h3 className={`${blackText} mb-2`}>{event.title}</h3>
86− <p className={blackText + ""}>{event.description}</p>
46+ <p className={blackText + " truncate text-sm"}>
47+ {event.description}
48+ </p>
8749 </div>
8850
8951 <div className="absolute p-6 left-0 bottom-0 w-full pr-32">
components/GuideColumn.jsdeleted−8
@@ -1,8 +0,0 @@
1−// Guide Column
2−export default function GuideColumn({ children }) {
3− return (
4− <div className="flex flex-col w-full items-center py-20 max-w-screen-2xl">
5− {children}
6− </div>
7− );
8−}
components/Lorem.jsdeleted−106
@@ -1,106 +0,0 @@
1−// Giant lorem ipsum for tests
2−export default function Lorem(props) {
3− return (
4− <div className={props.className || ''}>
5− Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus sagittis posuere purus vitae auctor. Duis consequat commodo metus vel pellentesque. Nulla massa neque, commodo sed placerat vel, mattis sed felis. Proin et felis auctor, tristique ante at, mollis nisi. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; In tempus blandit volutpat. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
6−
7− Praesent egestas at metus ac pharetra. Pellentesque tempus elit ex, vel scelerisque magna ornare ac. Vestibulum vitae est nibh. Nullam posuere, libero ac aliquet congue, urna tortor faucibus leo, eu bibendum quam nulla id metus. Vivamus eget feugiat ex. Sed purus nulla, ultricies eget dui fermentum, pellentesque posuere lectus. Maecenas vel orci dignissim ligula luctus varius. Quisque convallis massa in lectus aliquet, varius varius risus scelerisque. Suspendisse et interdum turpis. Sed ac fermentum nulla. Donec nunc est, tincidunt ac fermentum luctus, auctor vel dui. Vivamus hendrerit, libero sed pellentesque viverra, est massa pretium tellus, vel ultrices turpis ante at orci.
8−
9− Interdum et malesuada fames ac ante ipsum primis in faucibus. Integer sit amet dui sed purus accumsan tempor. Aenean posuere lacus mollis mattis maximus. Integer hendrerit pulvinar tempus. Nam aliquet ipsum et arcu convallis placerat. Donec facilisis odio sed dolor ultricies, nec rhoncus lacus fringilla. Cras luctus odio ipsum, in pretium eros volutpat sit amet. Integer fringilla ipsum at bibendum imperdiet. Maecenas auctor magna non arcu varius rhoncus. Nunc dictum elementum suscipit. Proin rhoncus lacus in massa eleifend blandit.
10−
11− Maecenas eu tellus dignissim, venenatis turpis eu, tempus odio. Praesent viverra vitae neque in dapibus. Donec fermentum neque at augue volutpat bibendum. Integer blandit tristique sodales. Vestibulum ultrices nulla ac est vulputate imperdiet. Vivamus venenatis cursus tellus quis faucibus. Curabitur non fringilla felis. Sed blandit tellus quis dictum cursus. In quam ex, euismod at ipsum quis, porta tempor nisl. In id scelerisque diam, quis gravida mi.
12−
13− Nullam lacinia quis nibh vitae fermentum. Sed in libero vitae massa pulvinar feugiat nec non sem. Donec tristique ac felis vel feugiat. Suspendisse tempus ante metus, non porttitor arcu tincidunt nec. Vestibulum iaculis dolor ut quam lobortis, quis mollis purus imperdiet. Vivamus faucibus interdum nibh vel lacinia. Pellentesque at tempus mi. In hac habitasse platea dictumst. Phasellus ultricies tincidunt elementum. Mauris mollis mollis auctor.
14−
15− Suspendisse potenti. Pellentesque egestas leo ut arcu imperdiet vehicula. Fusce dapibus volutpat leo, tempus sodales risus ultricies et. Nullam gravida massa ac aliquam egestas. In facilisis vitae eros vitae posuere. Duis enim enim, commodo vel dapibus et, consequat sed purus. Morbi ornare vitae tellus nec ultricies. Curabitur egestas lacus ut dictum laoreet. Praesent bibendum cursus pellentesque. Maecenas fringilla tempor lacus id feugiat. Praesent non imperdiet velit. Nulla facilisi. Vestibulum elementum, velit sed ultricies porta, odio eros porta libero, a tempor turpis arcu malesuada ipsum. Phasellus eu mauris elit.
16−
17− Curabitur id justo a eros tristique semper sodales non ipsum. Mauris aliquam felis sed orci pretium, at placerat urna posuere. Suspendisse potenti. In ac ipsum lorem. Maecenas in semper tortor, ac consectetur enim. Nullam sit amet nulla ante. Aliquam viverra risus et mauris suscipit, at gravida risus dignissim. Proin tincidunt metus eros. Donec tempus finibus nulla quis ullamcorper. Etiam ut nulla nisl. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Vivamus lacinia ornare mauris ac fringilla. Maecenas ac faucibus ipsum.
18−
19− Nulla finibus fringilla lacus, id venenatis dolor pulvinar vitae. Vestibulum vulputate luctus eros, sed commodo justo consectetur fermentum. Suspendisse potenti. Morbi ex diam, dapibus vel faucibus id, mattis et felis. Ut a interdum augue, euismod fringilla ex. Nullam fermentum, eros sed congue vestibulum, tortor neque tempus sapien, in ultricies erat nulla in eros. Aliquam non velit semper, ullamcorper augue nec, auctor purus. Duis enim felis, viverra nec nisi vel, sodales bibendum ante. Etiam sollicitudin ornare cursus.
20−
21− Donec iaculis bibendum viverra. Mauris mattis consectetur suscipit. Proin at cursus risus. Vivamus eu felis condimentum, tempus enim id, vestibulum odio. Praesent pretium massa vitae turpis aliquet posuere. Nunc egestas, libero eu vestibulum iaculis, leo sapien consequat dolor, ut feugiat nisl metus vel eros. Suspendisse faucibus felis a est porta tincidunt. Sed diam orci, sodales non orci nec, pharetra dapibus ipsum.
22−
23− Quisque rutrum, urna non vehicula porta, tellus dolor maximus quam, et pharetra justo diam quis neque. Suspendisse at lorem rhoncus, maximus tortor nec, sodales leo. Vivamus eu condimentum mauris. Pellentesque varius, velit nec maximus volutpat, dui purus porta lorem, eu dapibus metus risus non sem. Vestibulum id libero tellus. Quisque tortor turpis, laoreet eu est et, mollis volutpat elit. Nunc posuere enim sit amet vulputate fringilla. Curabitur pretium arcu in sem mattis pellentesque. Quisque vulputate ex leo, at accumsan tellus fermentum sit amet. Fusce ac velit vel dolor lacinia gravida. Proin ac faucibus felis.
24−
25− Aliquam semper massa et cursus laoreet. Praesent nec ante auctor, dapibus sem id, pellentesque justo. Maecenas iaculis ex sapien, in tempor erat dapibus a. Vivamus varius ut turpis eget vehicula. Sed condimentum enim non consectetur sagittis. Donec eu ipsum eros. Pellentesque convallis tellus id finibus rutrum. Fusce et facilisis metus. Proin quis orci iaculis enim iaculis ultrices a et ipsum. Vivamus blandit a diam at condimentum.
26−
27− Donec et vestibulum purus. Ut at est pulvinar mauris ultrices facilisis. Duis lacus quam, euismod maximus venenatis at, consectetur id nunc. Suspendisse elementum risus vitae eros laoreet gravida. Fusce aliquam, justo eu auctor iaculis, purus justo molestie metus, in tincidunt metus magna nec orci. Proin lacus libero, maximus eu laoreet nec, egestas et lorem. Nunc condimentum, arcu ac elementum facilisis, purus ligula maximus est, sit amet hendrerit dui ante eu elit. Aenean tempor rutrum massa eget efficitur. Donec tempor metus diam, in gravida nunc lobortis at. Nam elementum sollicitudin aliquam. Proin sit amet quam eros. Vivamus ut ante nisi. Pellentesque vitae felis consectetur erat ultrices ultrices ut a ante. Duis interdum, ante id accumsan maximus, nisi sem euismod sem, vitae facilisis ex nunc a quam. Pellentesque libero sem, tempus sit amet blandit sed, interdum sed ante. Maecenas vitae rhoncus augue, eu molestie erat.
28−
29− Nullam bibendum, lacus vel tincidunt tristique, ligula sapien interdum velit, non pretium dolor tortor sollicitudin leo. Aliquam vel lorem ut ligula mattis auctor. Proin ullamcorper molestie augue, eget pulvinar justo placerat eu. Sed euismod vehicula enim. In semper faucibus consectetur. Pellentesque interdum varius varius. Cras laoreet felis vitae eros iaculis sollicitudin. Aenean eu mattis felis. Proin mattis nunc sodales hendrerit fringilla. Aliquam velit mauris, feugiat eu felis a, ullamcorper tempus velit. Fusce non pulvinar quam, commodo imperdiet mi. Nam rhoncus turpis neque, in eleifend purus cursus vel. Quisque lobortis, nulla ut auctor finibus, ex nunc tristique nisl, in tincidunt est massa ut sem.
30−
31− Vestibulum eu urna elit. Aliquam tempor cursus faucibus. Praesent scelerisque dui eu lorem auctor, eu lacinia nibh porttitor. Ut et eros eget felis tristique volutpat a ac tortor. Praesent quis lorem a mauris ultrices imperdiet quis a odio. In cursus maximus orci sed dignissim. Donec semper, orci id consectetur pulvinar, turpis lorem eleifend quam, eu fringilla libero mauris vel ante. Nunc id tellus elit. Etiam facilisis vitae lorem vel fermentum.
32−
33− Sed bibendum maximus nulla a egestas. Cras commodo ipsum quis magna viverra, quis tempus eros gravida. Donec et dictum dui. Etiam vel orci quis mi molestie eleifend. Vivamus vel tincidunt augue. Fusce vel tortor sagittis, viverra velit nec, consequat elit. Maecenas sem metus, dignissim non mauris ac, elementum tempor lectus. Suspendisse vel sapien tincidunt elit posuere mattis vel id mauris. Nam vitae imperdiet orci. Sed bibendum justo eu bibendum consequat. Mauris mauris sapien, blandit eget semper nec, pulvinar at lorem.
34−
35− Pellentesque vitae nunc sed nibh condimentum tempor eget sed est. Quisque bibendum eu odio vitae pharetra. Cras ut condimentum purus. Nullam ipsum dui, efficitur tempus tincidunt et, condimentum a ipsum. Curabitur malesuada nibh id massa imperdiet porttitor. Duis quis lobortis dui. Mauris aliquam lectus arcu, vel euismod ante dignissim quis.
36−
37− In ut vulputate nisi. Vivamus felis est, vestibulum vitae scelerisque non, blandit sit amet purus. Nullam dictum, turpis sed rutrum lacinia, sapien enim dictum lectus, ut molestie lorem enim id mi. Donec vestibulum dui urna, ut viverra purus mattis sit amet. In maximus metus ipsum. Sed bibendum scelerisque mattis. Nunc sed dolor at metus euismod semper. Cras libero purus, porttitor nec sapien eu, pellentesque malesuada magna. Etiam euismod purus ut leo pharetra, sollicitudin hendrerit nibh dignissim. Nam accumsan lacus in velit commodo, non mollis urna ornare. Vivamus ligula metus, ultrices a iaculis quis, venenatis pellentesque nisl. Proin vestibulum pellentesque tortor vel tempor.
38−
39− Pellentesque id orci tincidunt, egestas erat eu, fermentum ipsum. Nunc efficitur nulla vitae nunc feugiat porttitor. Fusce risus est, dignissim in fermentum vel, finibus eu sapien. Maecenas mollis lorem nec dolor ornare, vel vestibulum nunc fringilla. Quisque at ante nunc. Nam blandit nisi quis blandit auctor. Cras ac sem lorem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Fusce nulla tellus, porttitor id aliquet iaculis, auctor a quam. Aenean sodales pulvinar vehicula.
40−
41− Etiam non diam tortor. Ut posuere dolor id placerat posuere. Aliquam erat volutpat. Morbi tempor volutpat venenatis. Sed id iaculis mi, in commodo dui. Aliquam eleifend urna sagittis lorem porta malesuada. Praesent placerat justo sed luctus finibus. Vivamus commodo porttitor metus, vulputate sagittis ipsum finibus non. Vestibulum porttitor varius metus eu fermentum. Morbi eleifend augue sit amet velit aliquam facilisis.
42−
43− Donec et lorem lectus. Integer ex neque, lobortis vitae posuere eu, tincidunt id enim. Vivamus consectetur elit porttitor mi viverra, in sodales velit finibus. Fusce auctor felis a ipsum mollis, nec ornare metus tempus. Fusce nulla felis, semper vitae lorem non, tincidunt feugiat tellus. Vivamus eu pulvinar elit. Proin leo odio, laoreet eu purus ut, luctus laoreet ante. Ut commodo lacus odio, in scelerisque tortor pharetra in. Aenean rhoncus augue non egestas condimentum. Donec maximus placerat facilisis. Praesent aliquam augue non purus volutpat blandit. Pellentesque id mollis enim.
44−
45− In ut eros posuere, imperdiet sapien a, dapibus velit. Nam at blandit neque. Nam euismod leo et venenatis mattis. Praesent consectetur, risus consequat condimentum tincidunt, ante nibh aliquam ligula, condimentum egestas augue tortor non risus. Nulla accumsan diam a sapien tempus hendrerit. Fusce fringilla mi quis blandit sodales. Quisque finibus mi vel nisi efficitur imperdiet. Cras luctus dapibus mauris non feugiat. Aliquam eu rutrum ipsum. Aliquam elementum luctus molestie. Maecenas molestie nisi molestie, sollicitudin arcu vel, condimentum diam. Mauris eu quam ac lacus accumsan vestibulum. Etiam et mi imperdiet sem convallis dapibus vel eget nisl. In vel faucibus risus. Curabitur luctus pellentesque eros, ac condimentum tellus placerat nec. Nam gravida consequat tincidunt.
46−
47− Vestibulum consectetur vitae erat non ultrices. Nullam eu diam dictum ante vehicula tempor sit amet et est. Donec ipsum justo, facilisis lobortis vehicula eleifend, viverra a leo. Donec hendrerit, lorem et congue dictum, ipsum nunc facilisis nunc, non ornare nulla augue eu nibh. Ut condimentum in mauris eget blandit. Donec sed est mi. Nunc gravida sodales vestibulum. In hac habitasse platea dictumst.
48−
49− Aliquam interdum mauris turpis, a efficitur eros molestie suscipit. Donec elementum ultrices augue, in facilisis sapien vestibulum ac. Sed sit amet dictum augue. Nullam posuere ante sit amet cursus molestie. Praesent odio dolor, molestie ac eleifend vitae, tempor quis ligula. Cras a volutpat sem, a varius sapien. Curabitur finibus nisl quis porttitor luctus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Pellentesque dignissim lacus a neque ultricies blandit. Donec a imperdiet est. Phasellus a tristique lectus. Mauris in augue in metus euismod fringilla.
50−
51− Praesent congue tincidunt hendrerit. Vivamus efficitur neque est, vel ultricies lectus tempor et. Fusce sit amet lorem sit amet enim eleifend faucibus. Pellentesque mattis malesuada scelerisque. Aliquam quam elit, commodo a commodo nec, vestibulum eget neque. Suspendisse et nibh vestibulum massa placerat maximus rutrum non felis. Donec non nisi rhoncus ipsum luctus ultrices sit amet vel ligula.
52−
53− In dictum vitae neque vehicula faucibus. Curabitur elementum nibh turpis, a pellentesque nunc viverra eu. Morbi dapibus justo dolor, nec fringilla turpis condimentum eu. Donec nec nibh eu erat tincidunt semper a ut erat. Duis accumsan mattis convallis. Aenean lacus elit, ultrices vitae nibh sit amet, consectetur vulputate risus. Morbi blandit lacus et condimentum mollis. Maecenas id massa ut massa interdum viverra a nec nisl. Pellentesque ullamcorper fringilla eros et volutpat.
54−
55− Suspendisse egestas, purus sit amet condimentum tincidunt, nunc nibh pulvinar turpis, vel eleifend lacus elit nec ligula. In viverra et ipsum a faucibus. In dictum turpis nec lectus hendrerit, vitae imperdiet orci tincidunt. Aliquam felis risus, aliquam vel ornare vel, molestie vehicula tortor. Etiam ullamcorper sit amet tellus in mollis. Proin ut rhoncus enim. In sit amet blandit est. Quisque ultricies tortor a felis ultricies, in auctor ex feugiat. Integer tempus auctor nunc id molestie. Praesent eget placerat odio. Maecenas feugiat justo a odio blandit venenatis.
56−
57− Nunc sit amet justo eu sapien efficitur porta. Pellentesque aliquet elementum odio. Donec est diam, vehicula quis scelerisque eget, gravida non arcu. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Ut vehicula vestibulum commodo. Integer sed nunc sit amet augue hendrerit aliquam id quis elit. Donec congue risus non mauris condimentum luctus.
58−
59− Sed dapibus nulla id feugiat eleifend. Vestibulum cursus malesuada nunc quis porta. Curabitur sodales justo augue, ac semper arcu gravida in. Nunc eu ex rutrum, viverra ipsum in, interdum leo. Nunc erat leo, consectetur vitae magna eget, lacinia auctor dolor. Etiam consequat eros sit amet lorem mollis malesuada. Suspendisse sit amet aliquet libero. Cras ut nisl aliquet, pulvinar odio nec, porttitor nisl. Aenean feugiat diam eget sapien rhoncus placerat. Etiam tincidunt blandit dui at venenatis. Nullam viverra tincidunt diam eget lacinia. Fusce hendrerit arcu nisi, euismod tincidunt eros blandit non. Fusce vehicula est a lorem ornare, id ultrices metus tempor. Aenean in sollicitudin felis.
60−
61− Nunc euismod dolor erat, sit amet maximus quam blandit nec. Sed mollis placerat facilisis. Donec placerat eget lectus non egestas. In hac habitasse platea dictumst. Nullam vitae molestie justo, vitae convallis massa. Pellentesque quis magna sit amet est consequat vestibulum sed vestibulum tellus. Cras pharetra mi efficitur libero rutrum blandit. Vivamus eu orci ut diam pellentesque scelerisque. In dignissim malesuada risus. Phasellus eu scelerisque justo. Morbi nunc mi, tempus eu tempor sit amet, feugiat quis elit.
62−
63− Nunc iaculis consectetur lectus, non placerat eros. Praesent sed tellus magna. Fusce in dui mattis, auctor turpis ut, condimentum metus. Duis nibh elit, euismod nec tellus quis, pulvinar consectetur nisl. Quisque laoreet, urna ut pharetra vehicula, erat dolor molestie lorem, ornare porta enim lacus ac massa. Donec volutpat dignissim mi. Nam in imperdiet lectus. Morbi quis varius risus. In ut fermentum elit. In hac habitasse platea dictumst. Duis gravida, nisl at consectetur hendrerit, risus diam porta nisi, dignissim gravida libero urna sit amet diam. Nunc orci felis, tincidunt in turpis quis, varius molestie ex. Praesent dapibus ipsum quis velit cursus, a vehicula orci mattis. In bibendum convallis lorem nec maximus. Praesent erat libero, accumsan vitae semper at, ultrices ornare urna. Sed interdum ex vitae lectus tempus, sit amet imperdiet elit blandit.
64−
65− Nulla rhoncus dolor in ex porttitor, sit amet scelerisque risus sollicitudin. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed a orci quis diam vehicula pellentesque at molestie risus. Vivamus sollicitudin urna ex, at porta elit blandit sed. Pellentesque malesuada hendrerit diam porttitor ultricies. Suspendisse lobortis, diam non dapibus pulvinar, dui mi sodales quam, in vulputate nibh urna sit amet felis. Mauris sit amet tempor tortor. Ut viverra varius erat, pretium efficitur enim tempor vel.
66−
67− Sed et mi at neque ornare aliquet ac id risus. Pellentesque auctor varius hendrerit. Vestibulum rhoncus, magna id dapibus dapibus, eros nisl blandit lacus, id suscipit odio leo eget lorem. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas mauris mi, volutpat id felis sit amet, condimentum venenatis ligula. Vivamus vitae ligula aliquet diam viverra dignissim eget vitae dolor. Fusce gravida tincidunt volutpat. Nulla hendrerit lectus in justo tincidunt, ac scelerisque lorem ultricies. Sed varius iaculis ipsum at maximus.
68−
69− Nulla facilisi. Curabitur et ullamcorper turpis, vitae venenatis tortor. Fusce elementum in nulla vitae tempus. Nam malesuada, nulla quis molestie fermentum, quam sapien vestibulum neque, nec posuere metus nisl semper turpis. Vestibulum semper euismod pretium. Aenean mattis scelerisque pulvinar. Duis pharetra ex ut sem pretium, ut tempus ipsum bibendum. Ut id ligula eu neque suscipit accumsan et non libero. Nulla non ante ligula. Vivamus a posuere justo. Interdum et malesuada fames ac ante ipsum primis in faucibus. Donec ut sollicitudin lectus, in finibus libero. Morbi tempor turpis at metus porta pulvinar.
70−
71− Donec sollicitudin posuere turpis, sagittis finibus sapien vestibulum finibus. Suspendisse gravida, quam non faucibus dictum, risus ex vulputate nunc, non viverra ipsum leo ut orci. Pellentesque pellentesque vehicula vulputate. Nullam sagittis quis justo et dignissim. Nulla sodales erat nec malesuada malesuada. Phasellus tincidunt tincidunt tincidunt. Nunc malesuada sem ut lectus elementum, non pulvinar augue porta. Proin ultrices sem ut maximus ultricies.
72−
73− Sed id luctus massa. Ut elementum erat sed sem euismod viverra. Aenean a libero suscipit, facilisis tellus vitae, egestas lectus. Nunc eget maximus purus, vel varius leo. Suspendisse dui felis, aliquet ut ullamcorper sed, ultrices at purus. Pellentesque luctus odio feugiat hendrerit consectetur. Quisque auctor lobortis sem. Sed arcu odio, fringilla sit amet ipsum et, dapibus maximus risus. Aenean malesuada turpis nec aliquet commodo. Morbi mauris nisi, porttitor et sapien vitae, interdum sollicitudin purus. Aliquam at magna ac quam viverra venenatis sit amet ut velit. Aenean accumsan lorem vel nisi tempor condimentum. Nunc elementum ligula ac placerat viverra. Cras et quam in ligula vestibulum finibus sed nec purus. In a accumsan dui. Donec urna neque, venenatis nec nibh mattis, semper convallis orci.
74−
75− Maecenas luctus pretium ultrices. Donec rutrum nisi vel augue placerat, vitae laoreet velit vehicula. Suspendisse potenti. Quisque posuere congue metus eu viverra. Etiam lacus ante, ullamcorper vitae consectetur sit amet, elementum sit amet risus. Nulla tempus nisi in arcu eleifend rhoncus. Proin elit risus, ultrices eu dui sit amet, dictum finibus dolor. Nunc faucibus sagittis est, eget tempor dui congue ac. Mauris dictum mollis dolor eget gravida. Duis pharetra sed quam non tempor. Ut elementum nisl vel commodo dictum. Quisque velit urna, eleifend sit amet interdum at, interdum in ante. Duis sed elit mauris. In finibus ipsum nec aliquam venenatis. Sed enim mi, gravida et fringilla vel, viverra ut mi. Maecenas est leo, viverra ut interdum ac, viverra ut est.
76−
77− Cras faucibus tempor consequat. Donec bibendum magna augue, sed faucibus ex semper vel. Nullam sit amet sem enim. Nunc tincidunt, lectus nec blandit rutrum, mi dui mattis ligula, et interdum massa libero in urna. Curabitur in elit viverra, hendrerit enim quis, finibus turpis. Ut euismod efficitur iaculis. Nunc mauris metus, condimentum ac posuere ac, vehicula eget est. Maecenas tincidunt eget leo vel tempus.
78−
79− Nam porta nulla et sapien ultricies facilisis. Fusce sed rutrum ligula, scelerisque interdum mauris. Sed feugiat venenatis nibh, vitae interdum purus sodales pharetra. Praesent commodo ultricies laoreet. Donec efficitur porta massa sit amet ullamcorper. Nulla consequat ante nec consequat aliquet. Ut vel rutrum turpis, eu mattis lacus. Donec dapibus fringilla nunc, dictum porttitor risus scelerisque et. Vivamus vitae lorem commodo, laoreet risus a, cursus diam. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
80−
81− Vivamus consequat libero venenatis, aliquet felis nec, gravida arcu. Donec iaculis elit massa, in mattis leo lobortis quis. Nunc id tellus egestas, posuere felis nec, dapibus massa. Integer sagittis sem et nulla sagittis, non dapibus odio aliquam. Proin vitae dolor lacus. Maecenas porttitor nisl ut leo eleifend, sed fermentum lorem iaculis. Donec diam lectus, aliquam in commodo et, sodales nec nunc. Vivamus imperdiet ante non porttitor ullamcorper. Donec vestibulum velit ut sapien pharetra porta.
82−
83− Ut tempus, enim vel aliquet convallis, eros magna interdum nisi, vel fermentum sem lorem eget magna. Nulla eu sapien id augue ornare vestibulum. Curabitur a mollis turpis, eu fringilla quam. Cras congue lorem eget mauris finibus cursus eu sit amet nisi. Sed ante tellus, molestie id velit ut, congue aliquam lacus. Mauris ultrices leo a enim porttitor, ut rutrum mauris feugiat. Vivamus volutpat, quam eget accumsan cursus, diam ante luctus nibh, ut aliquet nisl mauris at enim. Phasellus purus ex, scelerisque vel quam in, facilisis sollicitudin augue.
84−
85− Morbi faucibus ut nisi eu facilisis. Donec congue sapien eget felis interdum fringilla. Duis eget magna hendrerit, varius velit eu, accumsan augue. Vestibulum massa nibh, pulvinar ac facilisis a, ultrices ac arcu. Suspendisse fermentum et lorem et euismod. Sed auctor purus justo, id malesuada lacus vehicula nec. Phasellus venenatis nulla eu lacus finibus, sed auctor dolor dapibus. Mauris sollicitudin augue mi, sed viverra dolor imperdiet sed. Nulla facilisi. Pellentesque placerat aliquet erat nec pellentesque. Curabitur accumsan ultricies pharetra.
86−
87− Aliquam eget lobortis velit, a sollicitudin urna. Etiam eget nunc fermentum, pellentesque velit non, commodo nulla. Cras ultrices sapien purus, ut sagittis orci viverra at. Nulla sed auctor neque, quis pulvinar leo. Nulla ut tempus nunc, in condimentum justo. Morbi pretium fermentum quam ac luctus. Duis eu faucibus enim. Duis imperdiet eleifend ante, nec egestas elit posuere vel. Morbi varius porttitor urna quis ullamcorper. In sapien velit, sagittis eu vestibulum sed, faucibus a elit. Praesent eros mi, vestibulum vel est eget, egestas luctus mauris. Morbi fringilla sapien ut purus auctor laoreet.
88−
89− Mauris dapibus nisl lacus, sit amet malesuada enim molestie non. Pellentesque feugiat tempor nisi vel vehicula. Sed congue ultrices condimentum. Nulla eget urna laoreet, dictum mauris ac, consequat nisi. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur tempus ante et ex elementum vestibulum. In sit amet nunc quis dui gravida auctor congue non dui. Vestibulum varius vehicula risus sit amet posuere. Morbi a urna volutpat, varius augue sed, sollicitudin diam. In pulvinar felis quis tellus scelerisque, ut dictum turpis placerat. Nunc nunc ligula, cursus a sagittis at, tristique vel ligula. Ut lorem arcu, fringilla vitae molestie nec, dignissim et elit. Praesent commodo, nibh ut semper dapibus, ligula velit maximus lorem, at dapibus ante turpis viverra felis. Etiam mollis mi enim, ac cursus tortor feugiat eu. Phasellus ut augue sit amet nunc vehicula varius.
90−
91− Ut purus libero, tempor in diam quis, fringilla euismod dolor. Nullam vitae leo magna. Donec elementum eget ex non vestibulum. Praesent vitae consequat urna. Aenean sit amet vehicula lorem. Aliquam malesuada auctor suscipit. Phasellus rhoncus auctor erat. Nam cursus consectetur lacus.
92−
93− Morbi velit nulla, maximus ac urna ut, finibus tincidunt orci. Sed blandit, nisi sit amet eleifend ultricies, sem justo rhoncus ipsum, eget lobortis enim sem a ante. Vestibulum faucibus sapien magna, nec eleifend eros fermentum sed. Praesent ante lacus, ornare non elementum egestas, porta eget mi. Aenean sit amet luctus erat. Sed dapibus, tortor feugiat viverra luctus, enim sem vestibulum quam, quis elementum nunc velit a nunc. Morbi faucibus pulvinar placerat. Cras vehicula tempor lobortis. Nulla sagittis lorem quis odio eleifend, nec ultricies odio rhoncus. Nunc euismod interdum leo in dignissim. Nullam a metus erat. Phasellus commodo tellus lacus, aliquet faucibus mi accumsan sed. Mauris ultrices sit amet libero in rhoncus. Duis at lectus non est blandit finibus eu id libero.
94−
95− Donec iaculis ante ut neque dictum, id malesuada orci iaculis. Nunc semper venenatis arcu non consequat. Etiam consectetur arcu ac felis gravida elementum. Suspendisse potenti. Curabitur tortor libero, aliquam nec sem eu, maximus rhoncus augue. Phasellus placerat rhoncus ex, cursus tristique ex efficitur et. Mauris sagittis convallis mollis. Duis tristique vulputate felis, vel accumsan tellus hendrerit vel. Quisque sit amet justo vitae dui pellentesque ullamcorper. Morbi consectetur elit dolor, quis consequat tortor fringilla sit amet.
96−
97− Praesent molestie ligula non euismod congue. Maecenas semper orci turpis, consectetur varius nisi fringilla a. Donec eget iaculis est, in fermentum augue. Nulla facilisi. In dapibus, nulla non aliquam placerat, tellus nulla commodo neque, eu fermentum augue nulla et magna. Proin auctor nunc fringilla ultricies efficitur. Suspendisse et eros a dolor pharetra semper. Donec sed elit vel odio sollicitudin dapibus vitae at felis. Aliquam sit amet aliquet elit.
98−
99− Aliquam id quam id felis gravida facilisis quis et velit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nullam ultricies mauris ut erat sodales dignissim. Vivamus molestie justo et ante congue interdum. Pellentesque id dolor sagittis ex sollicitudin interdum. Donec dictum, quam in tristique volutpat, libero nibh commodo erat, id porttitor diam ante vitae nunc. Donec ut finibus turpis, a luctus lorem.
100−
101− Donec et elit ut lorem tincidunt maximus id porttitor arcu. Mauris pharetra lacinia dignissim. Aliquam vel rutrum libero. Nam vehicula, nibh et ullamcorper pulvinar, leo nunc dapibus quam, et mattis purus lorem id diam. In ut venenatis felis. Suspendisse et tempor nulla. Sed finibus pretium nisi quis molestie. In hac habitasse platea dictumst. Nunc accumsan egestas dui, nec suscipit turpis efficitur sed. Mauris dapibus nisl nec eros maximus sollicitudin. Curabitur eget tincidunt ligula. Vivamus in maximus odio.
102−
103− Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aliquam erat volutpat. Donec et auctor ante. Fusce et ullamcorper risus, nec ullamcorper risus. Vestibulum id iaculis tellus. Quisque a ultricies neque, id viverra quam. Ut est nunc, finibus id leo sed, sodales viverra magna. Proin sit amet purus tellus. Nullam at viverra massa, in gravida justo. In hac habitasse platea dictumst. Mauris orci ligula, porta sit amet est vel, faucibus ullamcorper magna. Nunc eget convallis dui, et faucibus mi. Aliquam erat volutpat. Maecenas mattis mollis mauris in dictum. Suspendisse potenti.
104− </div>
105− )
106−}
components/Markdown.js+5−5
@@ -1,16 +1,16 @@
11import React from "react";
22import Link from "next/link";
3−import Markdoc, { Ast, Node, Tag, Raw } from "@markdoc/markdoc";
3+import Markdoc, { Ast, Tag } from "@markdoc/markdoc";
44import { heading } from "./schema/Heading.markdoc";
55import { footnoteRef } from "./schema/footnoteRef.markdoc";
66import { footnoteItem } from "./schema/footnoteItem.markdoc";
77import { link } from "./schema/link.markdoc";
88import { image } from "./schema/image.markdoc";
99import { sup } from "./schema/superscript.markdoc";
10−import Tabs from "../components/Tabs";
11−import Tab from "../components/Tab";
12−import Button from "../components/Button";
13−import Callout from "../components/Callout";
10+import Tabs from "./content/Tabs";
11+import Tab from "./content/Tab";
12+import Button from "./content/Button";
13+import Callout from "./content/Callout";
1414import Highlight, { defaultProps } from "prism-react-renderer";
1515import parse from "html-react-parser";
1616import Prism from "prism-react-renderer/prism";
components/Snippets.js+8−1
@@ -1,3 +1,4 @@
1+import Link from "next/link";
12import {
23 getAllEvents,
34 generateDisplayDate,
@@ -12,7 +13,13 @@ export function Name({ children, className }) {
1213}
1314
1415export function Patp({ children, className }) {
15− return <code className={`font-mono ${className || ""}`}>{children}</code>;
16+ return (
17+ <Link href={`/ids/${children}`} passHref>
18+ <a>
19+ <code className={`font-mono ${className || ""}`}>{children}</code>
20+ </a>
21+ </Link>
22+ );
1623}
1724
1825// Used to render a human name alongside their @p
components/Button.js → components/content/Button.jsrenamed

The content is the same.

components/Callout.js → components/content/Callout.jsrenamed

The content is the same.

components/Tab.js → components/content/Tab.jsrenamed

The content is the same.

components/Tabs.js → components/content/Tabs.jsrenamed

The content is the same.

components/ResourceCard.js → components/gateway/ResourceCard.jsrenamed+1−1
@@ -1,5 +1,5 @@
11import Link from "next/link";
2−import GatewayImage from "./gateway/Image";
2+import GatewayImage from "./Image";
33
44const ResourceCard = ({ type, shortcode, title, color, image }) => (
55 <Link href={`/${type}s/${shortcode}`}>
components/BubbleLink.js → components/index/BubbleLink.jsrenamed

The content is the same.

content/events/2017-08-11-after-hours-bootstrapping-urbit-from-the-ethereum-blockchain.md+2−2
@@ -1,6 +1,6 @@
11+++
22title = "After hours: Bootstrapping Urbit from the Ethereum blockchain"
3−ends = "2017-08-12T07:00:00.000-07:00"
3+ends = "2017-08-12T19:00:00.000-07:00"
44pinned = false
55location = "Urbit Office"
66image = ""
@@ -8,7 +8,7 @@ registration_url = "https://www.meetup.com/urbit-sf/events/242295411/"
88description = "This time we'll be opening up the office, opening up a few cold ones, and talking about Urbit + Ethereum."
99guests = ""
1010timezone = "America/Los_Angeles"
11−starts = "2017-08-12T04:00:00.000-07:00"
11+starts = "2017-08-12T16:00:00.000-07:00"
1212
1313[[hosts]]
1414name = "Urbit"
content/events/2017-09-22-after-hours-fun-with-arvo-the-urbit-os.md+2−2
@@ -1,13 +1,13 @@
11+++
22title = "After hours: Fun with %arvo (the Urbit OS)"
3−ends = "2017-09-23T07:00:00.000-07:00"
3+ends = "2017-09-23T19:00:00.000-07:00"
44location = "Urbit Office"
55image = ""
66registration_url = "https://www.meetup.com/urbit-sf/events/243213975/"
77description = "Same as usual: cold drinks in the backyard with the hoons.  Come meet other people crazy enough to want to replace the internet."
88guests = ""
99timezone = "America/Los_Angeles"
10−starts = "2017-09-23T04:00:00.000-07:00"
10+starts = "2017-09-23T16:00:00.000-07:00"
1111
1212[[hosts]]
1313name = "Urbit"
content/events/2017-10-26-after-hours-designing-robust-human-systems.md+2−2
@@ -1,13 +1,13 @@
11+++
22title = "After hours: Designing robust human systems"
3−ends = "2017-10-27T07:00:00.000-07:00"
3+ends = "2017-10-27T19:00:00.000-07:00"
44location = "Urbit Office"
55image = ""
66registration_url = "https://www.meetup.com/urbit-sf/events/244316080/"
77description = "The office will be open and the beer will be cold.  Come hang out and talk about all things Urbit and Urbit related.  Cryptoeconomics, protocols, architecture, Japanese poetry, ancient aqueducts.  You get the idea."
88guests = ""
99timezone = "America/Los_Angeles"
10−starts = "2017-10-27T04:00:00.000-07:00"
10+starts = "2017-10-27T16:00:00.000-07:00"
1111
1212[[hosts]]
1313name = "Urbit"
content/events/2017-11-16-after-hours-visiting-contributors.md+2−2
@@ -1,12 +1,12 @@
11+++
22title = "After hours: Visiting contributors"
3−ends = "2017-11-17T07:00:00.000-08:00"
3+ends = "2017-11-17T19:00:00.000-08:00"
44location = "Urbit Office"
55image = ""
66registration_url = "https://www.meetup.com/urbit-sf/events/245090392/"
77description = "We've moved! Come check out our new digs, have a beer and hear about what people have been working on."
88timezone = "America/Los_Angeles"
9−starts = "2017-11-17T04:00:00.000-08:00"
9+starts = "2017-11-17T16:00:00.000-08:00"
1010
1111[[hosts]]
1212name = "Urbit"
content/events/2018-01-26-urbit-irl-20181.md+2−2
@@ -1,13 +1,13 @@
11+++
22title = "Urbit IRL ~2018.1"
3−ends = "2018-01-27T06:00:00.000-08:00"
3+ends = "2018-01-27T18:00:00.000-08:00"
44location = "Urbit office"
55image = ""
66registration_url = "https://www.meetup.com/urbit-sf/events/246972285/"
77description = "Happy New Year!"
88guests = ""
99timezone = "America/Los_Angeles"
10−starts = "2018-01-27T04:00:00.000-08:00"
10+starts = "2018-01-27T16:00:00.000-08:00"
1111
1212[[hosts]]
1313name = "Urbit"
content/events/2018-02-23-urbit-irl-20182.md+2−2
@@ -1,13 +1,13 @@
11+++
22title = "Urbit IRL ~2018.2"
3−ends = "2018-02-24T07:00:00.000-08:00"
3+ends = "2018-02-24T19:00:00.000-08:00"
44location = "Urbit office"
55image = ""
66registration_url = "https://www.meetup.com/urbit-sf/events/247797527/"
77description = "Turns out that just getting Urbit fans in one room is pretty fun — so come hang out and have something to drink."
88guests = ""
99timezone = "America/Los_Angeles"
10−starts = "2018-02-24T04:00:00.000-08:00"
10+starts = "2018-02-24T16:00:00.000-08:00"
1111
1212[[hosts]]
1313name = "Urbit"
content/events/2018-03-11-20183-hoon-school.md+2−2
@@ -1,13 +1,13 @@
11+++
22title = "~2018.3 Hoon School"
3−ends = "2018-03-12T07:00:00.000-07:00"
3+ends = "2018-03-12T19:00:00.000-07:00"
44location = "Urbit office"
55image = ""
66registration_url = "https://www.meetup.com/urbit-sf/events/248416276/"
77description = "Come, bring your laptop, and we'll get you started building things in Urbit's language — Hoon."
88guests = ""
99timezone = "America/Los_Angeles"
10−starts = "2018-03-12T04:00:00.000-07:00"
10+starts = "2018-03-12T16:00:00.000-07:00"
1111
1212[[hosts]]
1313name = "Urbit"
content/events/2018-03-23-urbit-irl-20183.md+2−2
@@ -1,13 +1,13 @@
11+++
22title = "Urbit IRL ~2018.3"
3−ends = "2018-03-24T07:00:00.000-07:00"
3+ends = "2018-03-24T19:00:00.000-07:00"
44location = "Urbit office"
55image = ""
66registration_url = "https://www.meetup.com/urbit-sf/events/248852261/"
77description = "Turns out that just getting Urbit fans in one room is pretty fun — so come hang out and have a beer."
88guests = ""
99timezone = "America/Los_Angeles"
10−starts = "2018-03-24T04:00:00.000-07:00"
10+starts = "2018-03-24T16:00:00.000-07:00"
1111
1212[[hosts]]
1313name = "Urbit"
content/events/2018-05-25-urbit-irl-20185.md+2−2
@@ -1,13 +1,13 @@
11+++
22title = "Urbit IRL ~2018.5"
3−ends = "2018-05-26T07:00:00.000-07:00"
3+ends = "2018-05-26T19:00:00.000-07:00"
44location = "Urbit office"
55image = ""
66registration_url = "https://www.meetup.com/urbit-sf/events/250889557/"
77description = "Turns out that just getting Urbit fans in one room is pretty fun — so come hang out and have a beer (or wine)."
88guests = ""
99timezone = "America/Los_Angeles"
10−starts = "2018-05-26T04:00:00.000-07:00"
10+starts = "2018-05-26T16:00:00.000-07:00"
1111
1212[[hosts]]
1313name = "Urbit"
content/events/2018-08-03-after-hours-decentralized-web-summit.md+2−2
@@ -1,13 +1,13 @@
11+++
22title = "After hours 'decentralized web summit'"
3−ends = "2018-08-04T03:00:00.000-07:00"
3+ends = "2018-08-04T15:00:00.000-07:00"
44location = "Orbit Room"
55image = ""
66registration_url = "https://www.meetup.com/urbit-sf/events/253423219/"
77description = "We’re hosting a last minute happy hour for our friends in town for the Decentralized Web Summit. All are welcome to join us tomorrow, Friday, August 3 at the Orbit Room from 5-7PM."
88guests = ""
99timezone = "America/Los_Angeles"
10−starts = "2018-08-04T01:00:00.000-07:00"
10+starts = "2018-08-04T13:00:00.000-07:00"
1111
1212[[hosts]]
1313name = "Urbit"
content/events/2018-08-17-urbit-irl-20188.md+2−2
@@ -1,13 +1,13 @@
11+++
22title = "Urbit IRL ~2018.8"
3−ends = "2018-08-18T06:00:00.000-07:00"
3+ends = "2018-08-18T18:00:00.000-07:00"
44location = "Urbit Office"
55image = ""
66registration_url = "https://www.meetup.com/urbit-sf/events/253292678/"
77description = "UPDATE: Hey Everyone! Due to a conflict, we are rescheduling our gathering to the following Friday, August 17."
88guests = ""
99timezone = "America/Los_Angeles"
10−starts = "2018-08-18T04:00:00.000-07:00"
10+starts = "2018-08-18T16:00:00.000-07:00"
1111
1212[[hosts]]
1313name = "Urbit"
content/events/2018-09-21-urbit-irl-20189.md+2−2
@@ -1,13 +1,13 @@
11+++
22title = "Urbit IRL ~2018.9"
3−ends = "2018-09-22T07:00:00.000-07:00"
3+ends = "2018-09-22T19:00:00.000-07:00"
44location = "Urbit Office"
55image = ""
66registration_url = "https://www.meetup.com/urbit-sf/events/254602025/"
77description = "Turns out that just getting Urbit fans in one room is pretty fun — so come hang out and have a beer (or wine)."
88guests = ""
99timezone = "America/Los_Angeles"
10−starts = "2018-09-22T04:00:00.000-07:00"
10+starts = "2018-09-22T16:00:00.000-07:00"
1111
1212[[hosts]]
1313name = "Urbit"
content/events/2018-10-10-urbit-zcash-blockchain-week.md+2−2
@@ -1,13 +1,13 @@
11+++
22title = "Urbit + Zcash: 'Blockchain Week'"
3−ends = "2018-10-11T06:00:00.000-07:00"
3+ends = "2018-10-11T18:00:00.000-07:00"
44location = "Urbit Office"
55image = ""
66registration_url = "https://www.meetup.com/urbit-sf/events/255001807/"
77description = "We're all full and looking forward to seeing you tonight. After you check-in at the front door please come up to floor 2, room 222."
88guests = ""
99timezone = "America/Los_Angeles"
10−starts = "2018-10-11T03:00:00.000-07:00"
10+starts = "2018-10-11T15:00:00.000-07:00"
1111
1212[[hosts]]
1313name = "Urbit"
content/events/2018-12-20-after-hours-its-just-a-party-man.md+2−2
@@ -1,13 +1,13 @@
11+++
22title = "After hours: It's just a party, man"
3−ends = "2018-12-21T06:00:00.000-08:00"
3+ends = "2018-12-21T18:00:00.000-08:00"
44location = "Urbit Office"
55image = ""
66registration_url = "https://www.meetup.com/urbit-sf/events/256732938/"
77description = "We had a busy and productive 2018. This time around, we're just going to play music and relax."
88guests = ""
99timezone = "America/Los_Angeles"
10−starts = "2018-12-21T03:00:00.000-08:00"
10+starts = "2018-12-21T15:00:00.000-08:00"
1111
1212[[hosts]]
1313name = "Urbit"
content/events/2019-03-01-after-hours-ask-galen-anything.md+1−1
@@ -7,7 +7,7 @@ registration_url = "https://www.meetup.com/urbit-sf/events/259144802/"
77description = "We thought we'd try something new this month. Come hang out and ask Galen questions about Azimuth, Arvo, or any part of Urbit."
88guests = ""
99timezone = "America/Los_Angeles"
10−starts = "2019-03-02T03:30:00.000-08:00"
10+starts = "2019-03-02T15:30:00.000-08:00"
1111
1212[[hosts]]
1313name = "Urbit"
content/events/2019-03-08-urbit-irl-austin-tx.md+2−2
@@ -1,13 +1,13 @@
11+++
22title = "Urbit IRL: Austin, TX"
3−ends = "2019-03-09T03:00:00.000-08:00"
3+ends = "2019-03-09T15:00:00.000-08:00"
44location = "Garage"
55image = ""
66registration_url = "https://www.meetup.com/urbit-sf/events/259307805/"
77description = "We're coming to Austin, TX! It turns out that just getting Urbit fans in one room is pretty fun — so come hang out and have a drink on us. Feel free to bring friends and come early for Urbit shirts."
88guests = ""
99timezone = "America/Chicago"
10−starts = "2019-03-09T01:00:00.000-08:00"
10+starts = "2019-03-09T13:00:00.000-08:00"
1111
1212[[hosts]]
1313name = "Urbit"
content/events/2019-04-19-urbit-irl-20194.md+2−2
@@ -1,13 +1,13 @@
11+++
22title = "Urbit IRL ~2019.4"
3−ends = "2019-04-20T06:00:00.000-07:00"
3+ends = "2019-04-20T18:00:00.000-07:00"
44location = "Urbit Office"
55image = ""
66registration_url = "https://www.meetup.com/urbit-sf/events/260326318/"
77description = "Turns out that just getting Urbit fans in one room is pretty fun — so come hang out and have a beer (or wine)."
88guests = ""
99timezone = "America/Los_Angeles"
10−starts = "2019-04-20T03:00:00.000-07:00"
10+starts = "2019-04-20T15:00:00.000-07:00"
1111
1212[[hosts]]
1313name = "Urbit"
content/events/2019-05-17-urbit-irl-20195.md+2−2
@@ -1,13 +1,13 @@
11+++
22title = "Urbit IRL ~2019.5"
3−ends = "2019-05-18T06:00:00.000-07:00"
3+ends = "2019-05-18T18:00:00.000-07:00"
44location = "Urbit Office"
55image = ""
66registration_url = "https://www.meetup.com/urbit-sf/events/261110620/"
77description = "Turns out that just getting Urbit fans in one room is pretty fun — so come hang out and have a beer, or wine."
88guests = ""
99timezone = "America/Los_Angeles"
10−starts = "2019-05-18T03:00:00.000-07:00"
10+starts = "2019-05-18T15:00:00.000-07:00"
1111
1212[[hosts]]
1313name = "Urbit"
content/events/2019-06-21-urbit-irl-20196.md+2−2
@@ -1,13 +1,13 @@
11+++
22title = "Urbit IRL ~2019.6"
3−ends = "2019-06-22T06:00:00.000-07:00"
3+ends = "2019-06-22T18:00:00.000-07:00"
44location = "Urbit Office"
55image = ""
66registration_url = "https://www.meetup.com/urbit-sf/events/262079477/"
77description = "Turns out that just getting Urbit fans in one room is pretty fun — so come hang out and have some beer and pizza."
88guests = ""
99timezone = "America/Los_Angeles"
10−starts = "2019-06-22T03:00:00.000-07:00"
10+starts = "2019-06-22T15:00:00.000-07:00"
1111
1212[[hosts]]
1313name = "Urbit"
content/events/2019-07-19-urbit-irl-20197.md+4−2
@@ -1,13 +1,15 @@
11+++
22title = "Urbit IRL ~2019.7"
3−ends = "2019-07-20T06:00:00.000-07:00"
3+ends = "2019-07-20T18:00:00.000-07:00"
44location = "Urbit Office"
55image = "https://secure.meetupstatic.com/photos/event/e/0/5/b/600_482817435.jpeg"
66registration_url = "https://www.meetup.com/urbit-sf/events/262858100/"
77description = "Turns out that just getting Urbit fans in one room is pretty fun — so come hang out and chat with old and new friends over a beer."
88guests = ""
99timezone = "America/Los_Angeles"
10−starts = "2019-07-20T03:00:00.000-07:00"
10+starts = "2019-07-20T15:00:00.000-07:00"
11+dark = "true"
12+darken_image = "true"
1113
1214[[hosts]]
1315name = "Urbit"
content/events/2019-08-29-urbit-austin-20198.md+4−2
@@ -1,13 +1,15 @@
11+++
22title = "Urbit Austin ~2019.8"
3−ends = "2019-08-30T04:00:00.000-07:00"
3+ends = "2019-08-30T16:00:00.000-07:00"
44location = "Garage"
55image = "https://secure.meetupstatic.com/photos/event/a/8/d/4/600_483643220.jpeg"
66registration_url = "https://www.meetup.com/urbit-sf/events/263655974/"
77description = "Thanks to our friends over at Garage for offering to host another meetup in Austin, Texas."
88guests = ""
99timezone = "America/Chicago"
10−starts = "2019-08-30T02:00:00.000-07:00"
10+starts = "2019-08-30T14:00:00.000-07:00"
11+dark = "true"
12+darken_image = "true"
1113
1214[[hosts]]
1315name = "Urbit"
content/events/2019-10-04-urbit-irl-201910.md+4−2
@@ -1,13 +1,15 @@
11+++
22title = "Urbit IRL ~2019.10"
3−ends = "2019-10-05T06:00:00.000-07:00"
3+ends = "2019-10-05T18:00:00.000-07:00"
44location = "Urbit Office"
55image = "https://secure.meetupstatic.com/photos/event/e/1/c/5/600_485217797.jpeg"
66registration_url = "https://www.meetup.com/urbit-sf/events/265165676/"
77description = "Lately, Urbit has been having dangerous amounts of fun online. So we got thinking, 'Wouldn't it be smart to try having fun offline as well?' Thus, we invented something totally new: an offline chatroom."
88guests = ""
99timezone = "America/Los_Angeles"
10−starts = "2019-10-05T03:00:00.000-07:00"
10+starts = "2019-10-05T15:00:00.000-07:00"
11+dark = "true"
12+darken_image = "true"
1113
1214[[hosts]]
1315name = "Urbit"
content/events/2019-11-15-urbit-irl-201911.md+4−2
@@ -1,13 +1,15 @@
11+++
22title = "Urbit IRL ~2019.11"
3−ends = "2019-11-16T06:00:00.000-08:00"
3+ends = "2019-11-16T18:00:00.000-08:00"
44location = "Urbit Office"
55image = "https://secure.meetupstatic.com/photos/event/4/c/e/6/600_486379686.jpeg"
66registration_url = "https://www.meetup.com/urbit-sf/events/266146513/"
77description = "Lately, Urbit has been having dangerous amounts of fun online. So we got thinking, 'Wouldn't it be smart to try having fun offline as well?' Thus, we invented something totally new: an offline chatroom."
88guests = ""
99timezone = "America/Los_Angeles"
10−starts = "2019-11-16T03:00:00.000-08:00"
10+starts = "2019-11-16T15:00:00.000-08:00"
11+dark = "true"
12+darken_image = "true"
1113
1214[[hosts]]
1315name = "Urbit"
content/events/2019-12-13-urbit-irl-201912.md+4−2
@@ -1,13 +1,15 @@
11+++
22title = "Urbit IRL ~2019.12"
3−ends = "2019-12-14T05:00:00.000-08:00"
3+ends = "2019-12-14T17:00:00.000-08:00"
44location = "Urbit Office"
55image = "https://secure.meetupstatic.com/photos/event/6/a/8/8/600_487107272.jpeg"
66registration_url = "https://www.meetup.com/urbit-sf/events/266904108/"
77description = "Come celebrate, friends! Urbit has had quite the decade, transforming from an intercepted interstellar transmission to a functional operating system, which also functions."
88guests = ""
99timezone = "America/Los_Angeles"
10−starts = "2019-12-14T03:00:00.000-08:00"
10+starts = "2019-12-14T15:00:00.000-08:00"
11+dark = "true"
12+darken_image = "true"
1113
1214[[hosts]]
1315name = "Urbit"
content/events/2020-01-24-urbit-irl-20201.md+4−2
@@ -1,13 +1,15 @@
11+++
22title = "Urbit IRL ~2020.1"
3−ends = "2020-01-25T06:00:00.000-08:00"
3+ends = "2020-01-25T18:00:00.000-08:00"
44location = "Urbit Office"
55image = "https://secure.meetupstatic.com/photos/event/2/1/7/6/600_487988566.jpeg"
66registration_url = "https://www.meetup.com/urbit-sf/events/267753862/"
77description = "Neo-Urbit arrives from the future."
88guests = ""
99timezone = "America/Los_Angeles"
10−starts = "2020-01-25T03:00:00.000-08:00"
10+starts = "2020-01-25T15:00:00.000-08:00"
11+dark = "true"
12+darken_image = "true"
1113
1214[[hosts]]
1315name = "Urbit"
content/events/2020-02-28-urbit-irl-20202.md+4−2
@@ -1,13 +1,15 @@
11+++
22title = "Urbit IRL ~2020.2"
3−ends = "2020-02-29T06:00:00.000-08:00"
3+ends = "2020-02-29T18:00:00.000-08:00"
44location = "Urbit Office"
55image = "https://secure.meetupstatic.com/photos/event/8/5/e/b/600_488794283.jpeg"
66registration_url = "https://www.meetup.com/urbit-sf/events/268519069/"
77description = "Urbit is a wilderness right now. A vast continent of possibility. We're gonna head out there and hack around. Join us."
88guests = ""
99timezone = "America/Los_Angeles"
10−starts = "2020-02-29T03:00:00.000-08:00"
10+starts = "2020-02-29T15:00:00.000-08:00"
11+dark = "true"
12+darken_image = "true"
1113
1214[[hosts]]
1315name = "Urbit"
content/events/2020-04-03-urbit-os1-launch-party.md+4−2
@@ -1,6 +1,6 @@
11+++
22title = "Urbit OS1 Launch Party"
3−ends = "2020-04-04T06:00:00.000-07:00"
3+ends = "2020-04-04T18:00:00.000-07:00"
44location = "Online event"
55image = "https://secure.meetupstatic.com/photos/event/1/f/8/b/600_489548075.jpeg"
66registration_url = "https://www.meetup.com/urbit-sf/events/268519156/"
@@ -8,7 +8,9 @@ youtube = "71ViyftPkGk"
88description = "Join us as we launch Urbit OS1!"
99guests = ""
1010timezone = "America/Los_Angeles"
11−starts = "2020-04-04T03:00:00.000-07:00"
11+starts = "2020-04-04T15:00:00.000-07:00"
12+dark = "true"
13+darken_image = "true"
1214
1315[[hosts]]
1416name = "Urbit"
content/events/2020-10-09-urbit-hosting-launch-event.md+4−3
@@ -1,6 +1,6 @@
11+++
22title = "Urbit Hosting Launch Event"
3−ends = "2020-10-10T03:00:00.000-07:00"
3+ends = "2020-10-10T15:00:00.000-07:00"
44location = "Online event"
55image = "https://secure.meetupstatic.com/photos/event/8/600_492480008.jpeg"
66registration_url = "https://www.meetup.com/urbit-sf/events/273439025/"
@@ -8,8 +8,9 @@ youtube = "w3qKe_WZr50"
88description = ""
99guests = ""
1010timezone = "America/Los_Angeles"
11−starts = "2020-10-10T01:00:00.000-07:00"
12−
11+starts = "2020-10-10T13:00:00.000-07:00"
12+dark = "true"
13+darken_image = "true"
1314[[hosts]]
1415name = "Urbit"
1516+++
content/events/2020-12-10-developer-call-injecting-external-services-into-urbit.md+1−2
@@ -21,5 +21,4 @@ This call will feature a discussion by well-known developer in the Urbit communi
2121
2222Developer calls are focused on the technologies that underpin Urbit, from the top of the stack to the very bottom. They’re an opportunity for the people developing and contributing to Urbit to share their knowledge and expertise, including things that typically don’t make it into the docs, such as how and why Urbit works the way it does.
2323
24−The livestream will be held on YouTube, and a group video call will be made available via Google Meet after the talk for casual discussion and in-person conversation."
25−+++
24+The livestream will be held on YouTube, and a group video call will be made available via Google Meet after the talk for casual discussion and in-person conversation.
content/events/2021-03-18-developer-call-pressure-and-protolith.md+1−1
@@ -1,6 +1,6 @@
11+++
22title = "Developer Call: Pressure and Protolith"
3−ends = "2021-03-04T18:30:00.000-08:00"
3+ends = "2021-03-18T18:30:00.000-08:00"
44location = "Online event"
55image = ""
66registration_url = "https://www.meetup.com/urbit-sf/events/276898246/"
content/events/2021-04-01-developer-call-javascript-apps-on-urbit.md+1−1
@@ -22,4 +22,4 @@ Urbit provides a powerful and extensible platform for all kinds of app developme
2222
2323Tyler Brown Cifu Shuster (~radbur-sivmus) has worked with the Landscape team over the past few months to extract these tools into reusable Javascript packages. In this talk, he will explain how to use them to develop a client for Urbit independent of Landscape. He will cover the basic lifecycle of a client and explain how Javascript interface and state frameworks pair with Urbit's data model.
2424
25−This talk should enable anyone familiar with modern Javascript development and HTTP grammar to build an application on top of Urbit without writing any back-end code
25+This talk should enable anyone familiar with modern Javascript development and HTTP grammar to build an application on top of Urbit without writing any back-end code.
content/events/2021-04-27-bitcoin-launch.md+1
@@ -8,6 +8,7 @@ youtube = "_aRnfacZPto"
88description = "Bitcoin is coming to Urbit! With the upcoming release of the Bitcoin Wallet, you will be able to pay Urbit ships directly with BTC."
99timezone = "America/Los_Angeles"
1010starts = "2021-04-27T20:00:00.000-07:00"
11+dark = true
1112
1213[[hosts]]
1314name = "Urbit Foundation"
content/events/2021-05-13-developer-call-versioned-networking.md+1−1
@@ -1,6 +1,6 @@
11+++
22title = "Developer Call: P2P Versioned Networking"
3−ends = "2021-05-14T01:00:00.000-07:00"
3+ends = "2021-05-14T13:00:00.000-07:00"
44location = "Online Event"
55image = ""
66registration_url = "https://www.meetup.com/urbit-sf/events/278052029/"
content/events/2022-04-26-urbit-foundation-meetup-kingsnight-amsterdam.md−1
@@ -9,7 +9,6 @@ registration_url = "https://www.meetup.com/urbit-sf/events/285233312/"
99description = "The Martian way of P2P social computing"
1010dark = false
1111
12−
1312[[hosts]]
1413name = "Thomas"
1514patp = "~dalweb-donfun"
lib/constants.js+1
@@ -23,6 +23,7 @@ export const eventKeys = [
2323 "content",
2424 "dark",
2525 "timezone",
26+ "darken_image",
2627];
2728
2829export const postKeys = [
pages/ids/[id].js+1−1
@@ -6,7 +6,7 @@ import Container from "../../components/Container";
66import SingleColumn from "../../components/SingleColumn";
77import Section from "../../components/Section";
88import ob from "urbit-ob";
9−import ResourceCard from "../../components/ResourceCard";
9+import ResourceCard from "../../components/gateway/ResourceCard";
1010import GatewayHeader from "../../components/gateway/GatewayHeader";
1111import Gateway404 from "../../components/gateway/Gateway404";
1212import MetadataBlock from "../../components/gateway/MetadataBlock";
pages/index.js+1−2
@@ -11,9 +11,8 @@ import Footer from "../components/Footer";
1111import Contact from "../components/Contact";
1212import PostPreview from "../components/PostPreview";
1313import EventPreview from "../components/EventPreview";
14−import Cross from "../components/icons/Cross";
1514import TwoUp from "../components/TwoUp";
16−import BubbleLink from "../components/BubbleLink";
15+import BubbleLink from "../components/index/BubbleLink";
1716import { getAllPosts, getAllEvents, generateRealtimeDate } from "../lib/lib";
1817import { eventKeys } from "../lib/constants";
1918