Skip to content

Commit 9913769

Browse files
committed
Create events page
1 parent 89c1e5a commit 9913769

File tree

7 files changed

+103
-7
lines changed

7 files changed

+103
-7
lines changed

src/events.njk

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
---
2+
layout: base
3+
title: Events
4+
---
5+
6+
<div class="container mx-auto mt-8 p-2">
7+
<h1 class="text-4xl font-bold mb-8">Events</h1>
8+
9+
{% include "nextEvent.njk" %}
10+
11+
<h2
12+
class="inline-block bg-black text-white text-2xl font-bold px-4 mb-2 transform -rotate-1"
13+
>
14+
Past
15+
</h2>
16+
17+
<div class="divide-y divide-black divide-solid">
18+
{% for event in events | rejectattr('hidden') %}
19+
<article class="py-4" data-past-event>
20+
<h3 class="font-bold text-2xl">{{ event.title }}</h3>
21+
<p class="text-lg">
22+
<time datetime="{{ event.date.toISOString() }}">
23+
{{ event.date | formatDateTime }}
24+
</time>
25+
</p>
26+
<p class="text-lg">
27+
{{ event.location }}
28+
</p>
29+
<p>
30+
<a href="{{ event.link }}" class="text-lg font-bold hover:underline" target="_blank" rel="noopener noreferrer">Details</a>
31+
</p>
32+
</article>
33+
{% endfor %}
34+
</div>
35+
</div>
36+
37+
{% set js %}
38+
{% include "events.js" %}
39+
{% endset %}
40+
<script type="text/javascript">
41+
{{ js | jsmin | safe }}
42+
</script>

src/globals/events.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,35 @@ module.exports = [
1212
link: 'https://www.meetup.com/JavaScriptMN/events/hmzgxrybcnblc/',
1313
location: 'Virtual',
1414
},
15+
{
16+
title: 'September Event: Show and Tell',
17+
date: new Date('2020-09-30T18:00-05:00'),
18+
link: 'https://www.meetup.com/JavaScriptMN/events/hmzgxrybcmbnc/',
19+
location: 'Virtual',
20+
},
21+
{
22+
title:
23+
'August Event: Code Championship and Recursion in the Wild – Luke Schlangen',
24+
date: new Date('2020-08-26T18:00-05:00'),
25+
link: 'https://www.meetup.com/JavaScriptMN/events/jtgdmrybclbjc/',
26+
location: 'Virtual',
27+
},
28+
{
29+
title: 'July Event: Virtual Show-and-Tell',
30+
date: new Date('2020-07-29T18:00-05:00'),
31+
link: 'https://www.meetup.com/JavaScriptMN/events/jtgdmrybckbmc/',
32+
location: 'Virtual',
33+
},
34+
{
35+
title: 'February Event: JS Frameworks and Low Code Tools w/ Tim Murphy',
36+
date: new Date('2020-02-26T18:00-06:00'),
37+
link: 'https://www.meetup.com/JavaScriptMN/events/jtgdmrybcdbjc/',
38+
location: 'WeWork Uptown',
39+
},
40+
{
41+
title: 'January Event: Short Talks',
42+
date: new Date('2020-01-29T18:00-06:00'),
43+
link: 'https://www.meetup.com/JavaScriptMN/events/jtgdmrybccbmc/',
44+
location: 'WeWork Uptown',
45+
},
1546
].sort((a, b) => b.date.getTime() - a.date.getTime());

src/globals/site.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@
1313
"path": "/",
1414
"text": "Home"
1515
},
16+
{
17+
"path": "/events/",
18+
"text": "Events"
19+
},
1620
{
1721
"path": "/sponsors/",
1822
"text": "Sponsors"

src/includes/events.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
(function () {
2+
const pastEvents = document.querySelectorAll('[data-past-event]');
3+
4+
for (const event of pastEvents) {
5+
const time = new Date(
6+
event.querySelector('time[datetime]').getAttribute('datetime')
7+
);
8+
// hide the event until the end of the day it's scheduled for
9+
time.setHours(23, 59, 59, 999);
10+
if (Date.now() < time.getTime()) {
11+
// TIL this is a thing, wow!
12+
event.outerHTML = '';
13+
}
14+
}
15+
})();

src/includes/footer.njk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
<ul aria-describedby="footer-connect">
3131
{% for link in site.connect %}
3232
<li>
33-
<a class="hover:underline" href="{{ link.href }}"
33+
<a class="hover:underline" href="{{ link.href }}" rel="noopener noreferrer"
3434
>{{ link.text }}</a
3535
>
3636
</li>

src/includes/header.njk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
class="flex-1 flex items-center justify-center sm:items-stretch sm:justify-between"
4747
>
4848
<div class="flex-shrink-0 self-center">
49-
<a href="{{ '/' | url }}" class="flex sm:hidden w-auto">
49+
<a href="{{ '/' | url }}" class="flex md:hidden w-auto">
5050
<img
5151
class="h-8"
5252
src="{{ '/jsmn-logo.svg' | url }}"
@@ -55,7 +55,7 @@
5555
</a>
5656
<a
5757
href="{{ '/' | url }}"
58-
class="hidden sm:flex items-center w-auto"
58+
class="hidden md:flex items-center w-auto"
5959
>
6060
<img
6161
class="h-8 block"

src/includes/nextEvent.njk

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
{% set event = events | rejectattr('hidden') | first %}
22

3-
<div class="mb-20">
3+
<article class="mb-20">
44
<h2
55
class="inline-block bg-black text-white text-2xl font-bold px-4 mb-2 transform -rotate-1"
66
>
7+
{% if page.url !== '/events/' | url %}
8+
<a href="{{ '/events/' | url }}">Upcoming</a>
9+
{% else %}
710
Upcoming
11+
{% endif %}
812
</h2>
913
{# next event #}
1014

@@ -25,17 +29,17 @@
2529
{{ event.location }}
2630
</p>
2731
<p>
28-
<a href="{{ event.link }}" class="text-lg font-bold hover:underline">Details &amp; RSVP</a>
32+
<a href="{{ event.link }}" class="text-lg font-bold hover:underline" target="_blank" rel="noopener noreferrer">Details &amp; RSVP</a>
2933
</p>
3034
</div>
3135
{# fallback #}
3236
<div class="bg-jsmn-yellow text-2xl font-bold p-4 hidden"
3337
id="upcoming-event-fallback">
34-
<a href="https://www.meetup.com/javascriptmn/" class="hover:underline">Check
38+
<a href="https://www.meetup.com/javascriptmn/" class="hover:underline" target="_blank" rel="noopener noreferrer">Check
3539
Meetup.com for updates</a>
3640
</div>
3741
</div>
38-
</div>
42+
</article>
3943

4044
{% set js %}
4145
{% include "nextEvent.js" %}

0 commit comments

Comments
 (0)