Skip to content

Commit 2790e8c

Browse files
authored
Merge pull request #76 from until-tsukuba/add-upcomingevents
予定されているイベント一覧をトップページに表示するコンポーネントを追加
2 parents 71c22f8 + cbf0844 commit 2790e8c

File tree

3 files changed

+39
-0
lines changed

3 files changed

+39
-0
lines changed

.eleventy.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,13 @@ export default (eleventyConfig) => {
2222
eleventyConfig.addNunjucksFilter("date", function(str) {
2323
return new Date(str);
2424
});
25+
eleventyConfig.addNunjucksFilter("futureEvents", (events, limit) => {
26+
const now = new Date();
27+
return events
28+
.filter(event => new Date(event.data.dtstart) >= now)
29+
.sort((a, b) => new Date(a.data.dtstart) - new Date(b.data.dtstart))
30+
.slice(0, limit);
31+
});
2532

2633
return {
2734
dir: {
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{%- set eventLimit = eventsListLimit | default(3) %} {# デフォルト値は3 #}
2+
{%- set upcoming = collections.event | futureEvents(eventLimit) %}
3+
4+
{%- if upcoming.length > 0 %}
5+
<div>
6+
{%- for event in upcoming %}
7+
<a href="{{ event.url | htmlBaseUrl }}">
8+
<article>
9+
<h2>{{ event.data.title }}</h2>
10+
<p>{{ event.data.summary }}</p>
11+
<p>
12+
<time datetime="{{ event.data.dtstart }}">{{ event.data.dtstart }}</time>
13+
14+
<time datetime="{{ event.data.dtend }}">{{ event.data.dtend }}</time>
15+
</p>
16+
<p>場所: {{ event.data.location }}</p>
17+
</article>
18+
</a>
19+
{%- endfor %}
20+
</div>
21+
{%- else %}
22+
<div>
23+
<p>現在予定されているイベントはありません。</p>
24+
</div>
25+
{%- endif %}

src/index.html renamed to src/index.njk

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,13 @@ <h1>活動</h1>
2727
<li>サブドメイン貸し出しサービス: <a href="https://www.tsukuba.dev">tsukuba.dev</a>の運営</li>
2828
</ul>
2929
</section>
30+
<section>
31+
<h1>直近のイベント予定</h1>
32+
{%- set eventsListLimit = 3 %}
33+
{% include "components/upcoming-events.njk" %}
34+
<hr>
35+
<p><a href="{{ "/events" | htmlBaseUrl }}">全てのイベントを確認する</a>(<a href="{{ "/feed.xml" | htmlBaseUrl }}">RSS Feed</a> / <a href="{{ "/events.ics" | htmlBaseUrl }}">iCal</a>)</p>
36+
</section>
3037
<section>
3138
<h1>UNTIL.に参加するには</h1>
3239
<p>UNTIL.はDiscordを使って活動しています。UNTIL. Discordに参加するには4つの方法があります:</p>

0 commit comments

Comments
 (0)