Skip to content

Commit 03f3a06

Browse files
committed
Update talks and tutorials.
1 parent 431cc9c commit 03f3a06

File tree

6 files changed

+171
-21
lines changed

6 files changed

+171
-21
lines changed

src/components/schedule/day.astro

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -487,6 +487,7 @@ const dateText = format(date, "eeee - do MMMM");
487487
}
488488

489489
.posters {
490+
text-align: center;
490491
display: none;
491492
}
492493

src/components/schedule/session.astro

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ const hasFooter = true;
195195
border: 1px solid #33333366;
196196
}
197197

198-
.session:has(.read-more[href]:not([href=""]):hover) {
198+
.session:hover {
199199
background-color: color-mix(
200200
in srgb,
201201
var(--color-body-background),
@@ -224,7 +224,6 @@ const hasFooter = true;
224224

225225
footer.has-speakers {
226226
/*border-top: 1px solid var(--color-text);*/
227-
228227
margin-top: 5px;
229228
}
230229

@@ -250,6 +249,7 @@ const hasFooter = true;
250249
}
251250

252251
.poster header {
252+
text-align:center
253253
/*background-color: var(--color-secondary);*/
254254
}
255255
</style>

src/components/schedule/speakers.astro

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,19 @@ const speakers = Astro.props.speakers
2020

2121
{
2222
speakers.map((speaker, index) => (
23-
<span>
23+
<a href={`/speaker/${speaker.id}`} class="inline">
2424
{speaker.data.name}
2525
{index < speakers.length - 1 ? ", " : ""}
26-
</span>
26+
</a>
2727
))
2828
}
2929

3030
<style>
31-
span {
32-
/*display:block;*/
33-
font-weight: 500;
31+
a:hover {
32+
text-decoration: underline;
33+
}
34+
35+
a {
36+
font-weight: 500;
3437
}
3538
</style>

src/data/links.json

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -55,23 +55,11 @@
5555
"items": [
5656
{
5757
"name": "Tutorials",
58-
"path": "/schedule/tutorial"
59-
},
60-
{
61-
"name": "Sponsor Presentations",
62-
"path": "/schedule/sponsored"
58+
"path": "/schedule/tutorials"
6359
},
6460
{
6561
"name": "Talks",
66-
"path": "/schedule/talk"
67-
},
68-
{
69-
"name": "Posters",
70-
"path": "/schedule/poster"
71-
},
72-
{
73-
"name": "Keynotes",
74-
"path": "/schedule/keynote"
62+
"path": "/schedule/talks"
7563
}
7664
]
7765
},

src/pages/schedule/talks.astro

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
---
2+
import { getCollection } from "astro:content";
3+
import Layout from "@layouts/ScheduleLayout.astro";
4+
import ScheduleDay from "@components/schedule/day.astro";
5+
import { slugify } from '@utils/content';
6+
import Headline from "@ui/Headline.astro"
7+
8+
export const getStaticPaths = async () => {
9+
const sessions = await getCollection("sessions");
10+
11+
const allTypes = Array.from(
12+
new Set(
13+
sessions
14+
.map((session) => slugify(session.data.session_type))
15+
.filter((type) => type)
16+
)
17+
).sort();
18+
return allTypes.map((type) => {
19+
return { params: { type } };
20+
});
21+
};
22+
23+
const days = await getCollection("days");
24+
25+
const allDays = Array.from(
26+
new Set(days.map((day) => day.id).filter((id) => id))
27+
).sort();
28+
29+
const visibleClass = "talk";
30+
31+
---
32+
33+
<Layout title="" description="">
34+
35+
<Headline as="h2" id=`schedule-main` title="2025 Schedule" />
36+
{
37+
days
38+
.filter((day) => {
39+
const dayOfWeek = new Date(day.id).getDay();
40+
return dayOfWeek !== 1 && dayOfWeek !== 2;
41+
})
42+
.map((day) => (
43+
<ScheduleDay dayName={day.id} />
44+
))
45+
}
46+
</Layout>
47+
<style is:global>
48+
49+
.announcements,
50+
.conference-workshop,
51+
.keynote,
52+
.panel,
53+
.poster,
54+
.sponsored,
55+
.talk,
56+
.talk-long-session,
57+
.tutorial{
58+
display:none;
59+
}
60+
</style>
61+
<script define:vars={{ visibleClass }}>
62+
const allClasses = [
63+
'announcements',
64+
'conference-workshop',
65+
'keynote',
66+
'panel',
67+
'poster',
68+
'sponsored',
69+
'talk',
70+
'talk-long-session',
71+
'tutorial'
72+
];
73+
74+
allClasses.forEach(cls => {
75+
document.querySelectorAll(`.${cls}`).forEach(el => {
76+
el.style.display = (cls === visibleClass) ? '' : 'none';
77+
});
78+
});
79+
</script>

src/pages/schedule/tutorials.astro

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
---
2+
import { getCollection } from "astro:content";
3+
import Layout from "@layouts/ScheduleLayout.astro";
4+
import ScheduleDay from "@components/schedule/day.astro";
5+
import { slugify } from '@utils/content';
6+
import Headline from "@ui/Headline.astro"
7+
8+
export const getStaticPaths = async () => {
9+
const sessions = await getCollection("sessions");
10+
11+
const allTypes = Array.from(
12+
new Set(
13+
sessions
14+
.map((session) => slugify(session.data.session_type))
15+
.filter((type) => type)
16+
)
17+
).sort();
18+
return allTypes.map((type) => {
19+
return { params: { type } };
20+
});
21+
};
22+
23+
const days = await getCollection("days");
24+
25+
const allDays = Array.from(
26+
new Set(days.map((day) => day.id).filter((id) => id))
27+
).sort();
28+
29+
const visibleClass = "tutorial";
30+
31+
---
32+
33+
<Layout title="" description="">
34+
35+
<Headline as="h2" id=`schedule-main` title="2025 Schedule" />
36+
{
37+
days
38+
.filter((day) => {
39+
const dayOfWeek = new Date(day.id).getDay();
40+
return dayOfWeek == 1 || dayOfWeek == 2;
41+
})
42+
.map((day) => (
43+
<ScheduleDay dayName={day.id} />
44+
))
45+
}
46+
</Layout>
47+
<style is:global>
48+
49+
.announcements,
50+
.conference-workshop,
51+
.keynote,
52+
.panel,
53+
.poster,
54+
.sponsored,
55+
.talk,
56+
.talk-long-session,
57+
.tutorial{
58+
display:none;
59+
}
60+
</style>
61+
<script define:vars={{ visibleClass }}>
62+
const allClasses = [
63+
'announcements',
64+
'conference-workshop',
65+
'keynote',
66+
'panel',
67+
'poster',
68+
'sponsored',
69+
'talk',
70+
'talk-long-session',
71+
'tutorial'
72+
];
73+
74+
allClasses.forEach(cls => {
75+
document.querySelectorAll(`.${cls}`).forEach(el => {
76+
el.style.display = (cls === visibleClass) ? '' : 'none';
77+
});
78+
});
79+
</script>

0 commit comments

Comments
 (0)