diff --git a/website/src/components/talk/Events.astro b/website/src/components/talk/Events.astro new file mode 100644 index 00000000..92c2837d --- /dev/null +++ b/website/src/components/talk/Events.astro @@ -0,0 +1,42 @@ +--- +interface Event { + date: string + location: string + name: string + online?: boolean + time: string + url?: string +} + +interface Props { + events: Event[] +} + +const { events } = Astro.props +--- + +{events && ( +
+

Events

+ +
+ +
+
+)} diff --git a/website/src/components/talk/Slides.astro b/website/src/components/talk/Slides.astro new file mode 100644 index 00000000..19710b7b --- /dev/null +++ b/website/src/components/talk/Slides.astro @@ -0,0 +1,22 @@ +--- +interface Props { + id: string + ratio?: string +} + +const { id, ratio }: Props = Astro.props +--- + +
+

Slides

+ +
+ + +
+
diff --git a/website/src/components/talk/Video.astro b/website/src/components/talk/Video.astro new file mode 100644 index 00000000..cc208156 --- /dev/null +++ b/website/src/components/talk/Video.astro @@ -0,0 +1,25 @@ +--- +interface Props { + id: string + type: string +} + +const { id, type }: Props = Astro.props +--- + +{type == "youtube" && ( +
+

Video

+ +
+ +
+
+)} diff --git a/website/src/pages/talks/[slug].astro b/website/src/pages/talks/[slug].astro index 07b05395..16fc746f 100644 --- a/website/src/pages/talks/[slug].astro +++ b/website/src/pages/talks/[slug].astro @@ -1,6 +1,9 @@ --- +import Events from '../../components/talk/Events.astro' import Layout from '../../layouts/Layout.astro' import Markdown from '../../components/Markdown.astro' +import Slides from '../../components/talk/Slides.astro' +import Video from '../../components/talk/Video.astro' export async function getStaticPaths() { const talks = await Astro.glob('../../talks/*.md') @@ -16,17 +19,8 @@ export async function getStaticPaths() { }) } -interface Event { - date: string - location: string - name: string - online?: boolean - time: string - url?: string -} - const { Content } = Astro.props.talk -const { events, title, speakerdeck, video }: { events: Event[] } = Astro.props.talk.frontmatter +const { events, speakerdeck, title, video } = Astro.props.talk.frontmatter --- @@ -35,58 +29,14 @@ const { events, title, speakerdeck, video }: { events: Event[] } = Astro.props.t - {speakerdeck && speakerdeck.id && ( -
-

Slides

- -
- - -
-
+ {speakerdeck && ( + )} - {video && video.type == "youtube" && ( -
-

Video

- -
- -
-
+ {video && ( +