Skip to content

Commit 8f8a093

Browse files
authored
Add missing files
1 parent 121952e commit 8f8a093

File tree

11 files changed

+613
-1
lines changed

11 files changed

+613
-1
lines changed

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2022 GitHub
3+
Copyright (c) 2025 GitHub
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

common/routes.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,6 @@ export const Y2022 = makePath('/2022')
2626

2727
export const Y2023 = makePath('/2023')
2828

29+
export const Y2023 = makePath('/2024')
30+
2931
export const NEWS = makePath("/news")
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
title: 'Maintainer Month is coming!'
3+
metaTitle: 'Maintainer Month 2025'
4+
metaDesc: 'I am so excited for maintainer month'
5+
date: '03/27'
6+
UTCStartTime: '12:00'
7+
UTCEndTime: '15:00'
8+
type: 'podcast'
9+
userName: 'cassidoo'
10+
userLink: 'https://github.com/cassidoo'
11+
linkUrl: 'https://github.com/'
12+
---
13+
14+
This is a test event because the site won't build without one <3

pages/2023/index.js

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
import { useEffect, useRef } from 'react'
2+
3+
import Head from 'next/head'
4+
5+
import { getLiteral } from '../../common/i18n'
6+
import { getDataFromMD, parseGetInvolvedData } from '../../common/api'
7+
import { getEvents, parseEvents } from '../../api/events'
8+
import * as ROUTES from '../../common/routes'
9+
10+
import Hero from '../../components/home/hero/Hero'
11+
import About from '../../components/home/about/About2022'
12+
import GetInvolved from '../../components/home/get-involved/GetInvolved2022'
13+
import Events from '../../components/home/events/Events'
14+
import AnchorNavigation from '../../components/home/anchor-navigation/AnchorNavigation'
15+
import { useBackground } from '../../contexts/BackgroundContext'
16+
17+
export default function Home({ hero, about, getInvolved, events, connection }) {
18+
const containerRef = useRef(null)
19+
20+
const { setAnimationStep } = useBackground()
21+
22+
useEffect(() => {
23+
setAnimationStep(0)
24+
// eslint-disable-next-line react-hooks/exhaustive-deps
25+
}, [])
26+
27+
return (
28+
<div>
29+
<Head>
30+
<title>{getLiteral('meta:title')}</title>
31+
<meta name="description" content={getLiteral('meta:description')} />
32+
33+
{/* <!-- Facebook Meta Tags --> */}
34+
<meta property="og:title" content={getLiteral('meta:title')} />
35+
<meta
36+
property="og:description"
37+
content={getLiteral('meta:description')}
38+
/>
39+
<meta
40+
property="og:image"
41+
content="https://maintainermonth.github.com/images/og/generic.png"
42+
/>
43+
44+
{/* <!-- Twitter Meta Tags --> */}
45+
<meta name="twitter:card" content="summary_large_image" />
46+
<meta name="twitter:title" content={getLiteral('meta:title')} />
47+
<meta
48+
name="twitter:description"
49+
content={getLiteral('meta:description')}
50+
/>
51+
<meta
52+
name="twitter:image"
53+
content="https://maintainermonth.github.com/images/og/generic.png"
54+
/>
55+
</Head>
56+
57+
<div>
58+
<AnchorNavigation containerRef={containerRef} />
59+
60+
<div ref={containerRef}>
61+
<Hero
62+
date={hero.date}
63+
title={hero.title}
64+
buttonText={hero.buttonText}
65+
buttonLink={ROUTES.SCHEDULE.getPath("2022")}
66+
/>
67+
<About title={about.title} content={about.content} />
68+
<GetInvolved
69+
title={getInvolved.title}
70+
content={getInvolved.content}
71+
examplesTitle={getInvolved.examplesTitle}
72+
examples={getInvolved.examples}
73+
/>
74+
<Events
75+
title={events.title}
76+
list={events.list}
77+
connectionTitle={connection.title}
78+
connectionButtonText={connection.buttonText}
79+
/>
80+
</div>
81+
</div>
82+
</div>
83+
)
84+
}
85+
86+
export async function getStaticProps() {
87+
const hero = getDataFromMD('content/2022/home/1-hero.md')
88+
const about = getDataFromMD('content/2022/home/2-about.md')
89+
const getInvolved = parseGetInvolvedData(
90+
getDataFromMD('content/2022/home/3-get-involved.md'),
91+
)
92+
const events = getDataFromMD('content/2022/home/4-events.md')
93+
const connection = getDataFromMD('content/2022/home/5-connection.md')
94+
95+
const eventsList = parseEvents(getEvents('2022'))
96+
97+
return {
98+
props: {
99+
hero,
100+
about,
101+
getInvolved,
102+
events: {
103+
...events,
104+
list: eventsList,
105+
},
106+
connection,
107+
},
108+
}
109+
}

pages/2023/library.js

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import { useEffect } from 'react'
2+
import Head from 'next/head'
3+
4+
import { getLiteral } from '../../common/i18n'
5+
import LibraryLinks from '../../components/library-links/LibraryLinks'
6+
import resourcesJSON from '../../content/2022/library/resources.json'
7+
8+
import { useBackground } from '../../contexts/BackgroundContext'
9+
10+
const { resources } = resourcesJSON
11+
12+
export default function Library() {
13+
const { setAnimationStep } = useBackground()
14+
15+
useEffect(() => {
16+
setAnimationStep(6)
17+
}, [setAnimationStep])
18+
19+
return (
20+
<div>
21+
<Head>
22+
<title>{getLiteral('library:title')}</title>
23+
<meta name="description" content={getLiteral('library:description')} />
24+
25+
{/* <!-- Facebook Meta Tags --> */}
26+
<meta property="og:title" content={getLiteral('library:title')} />
27+
<meta
28+
property="og:description"
29+
content={getLiteral('library:description')}
30+
/>
31+
<meta
32+
property="og:image"
33+
content="https://maintainermonth.github.com/images/og/generic.png"
34+
/>
35+
36+
{/* <!-- Twitter Meta Tags --> */}
37+
<meta name="twitter:card" content="summary_large_image" />
38+
<meta name="twitter:title" content={getLiteral('library:title')} />
39+
<meta
40+
name="twitter:description"
41+
content={getLiteral('library:description')}
42+
/>
43+
<meta
44+
name="twitter:image"
45+
content="https://maintainermonth.github.com/images/og/generic.png"
46+
/>
47+
</Head>
48+
49+
<div>
50+
<LibraryLinks links={resources} />
51+
</div>
52+
</div>
53+
)
54+
}

pages/2023/schedule/[slug].js

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
import fs from 'fs'
2+
import Head from 'next/head'
3+
4+
import { getEventBySlug, parseEvent } from '../../../api/events'
5+
import { getLiteral } from '../../../common/i18n'
6+
7+
import EventDetail from '../../../components/event-detail/EventDetail'
8+
import EventDetailWrapper from '../../../components/event-detail/EventDetailWrapper'
9+
import getOgImage from '../../../components/og-image/getOgImage'
10+
11+
export default function EventDetailPage({ event, ogImage }) {
12+
return (
13+
<>
14+
<Head>
15+
<title>
16+
{event.title} - {getLiteral('meta:title')}
17+
</title>
18+
<meta
19+
name="description"
20+
content={getLiteral('meta:event-description')}
21+
/>
22+
23+
{/* <!-- Facebook Meta Tags --> */}
24+
<meta property="og:title" content={event.title} />
25+
<meta property="og:description" content={getLiteral('share:event')} />
26+
<meta property="og:image" content={ogImage} />
27+
28+
{/* <!-- Twitter Meta Tags --> */}
29+
<meta name="twitter:card" content="summary_large_image" />
30+
<meta name="twitter:title" content={event.title} />
31+
<meta name="twitter:description" content={getLiteral('share:event')} />
32+
<meta name="twitter:image" content={ogImage} />
33+
</Head>
34+
35+
<EventDetailWrapper>
36+
<EventDetail event={event} isFullPage />
37+
</EventDetailWrapper>
38+
</>
39+
)
40+
}
41+
42+
export async function getStaticPaths() {
43+
const files = fs.readdirSync('content/2022/events')
44+
45+
const paths = files.map((fileName) => ({
46+
params: {
47+
slug: fileName.replace('.md', ''),
48+
},
49+
}))
50+
51+
return {
52+
paths,
53+
fallback: false,
54+
}
55+
}
56+
57+
export async function getStaticProps({ params: { slug } }) {
58+
const event = getEventBySlug(slug, '2022')
59+
const parsedEvent = parseEvent(event)
60+
61+
const ogImage = await getOgImage({
62+
title: parsedEvent.title,
63+
user: parsedEvent.userName,
64+
type: parsedEvent.type,
65+
})
66+
67+
return {
68+
props: {
69+
event: parsedEvent,
70+
ogImage,
71+
},
72+
}
73+
}

pages/2023/schedule/index.js

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
import { useEffect } from 'react'
2+
import Head from 'next/head'
3+
4+
import { getLiteral } from '../../../common/i18n'
5+
import { getEvents, parseEvents } from '../../../api/events'
6+
import { useBackground } from '../../../contexts/BackgroundContext'
7+
8+
import EventsList from '../../../components/events-list/EventsList'
9+
10+
export default function Schedule({ events }) {
11+
const { setAnimationStep } = useBackground()
12+
13+
useEffect(() => {
14+
setAnimationStep(6)
15+
}, [setAnimationStep])
16+
17+
return (
18+
<div>
19+
<Head>
20+
<title>
21+
{getLiteral('schedule:title')} - {getLiteral('meta:title')}
22+
</title>
23+
<meta name="description" content={getLiteral('schedule:description')} />
24+
25+
{/* <!-- Facebook Meta Tags --> */}
26+
<meta property="og:title" content={getLiteral('schedule:title')} />
27+
<meta
28+
property="og:description"
29+
content={getLiteral('schedule:description')}
30+
/>
31+
<meta
32+
property="og:image"
33+
content="https://maintainermonth.github.com/images/og/generic.png"
34+
/>
35+
36+
{/* <!-- Twitter Meta Tags --> */}
37+
<meta name="twitter:card" content="summary_large_image" />
38+
<meta name="twitter:title" content={getLiteral('schedule:title')} />
39+
<meta
40+
name="twitter:description"
41+
content={getLiteral('schedule:description')}
42+
/>
43+
<meta
44+
name="twitter:image"
45+
content="https://maintainermonth.github.com/images/og/generic.png"
46+
/>
47+
</Head>
48+
49+
<EventsList events={events} />
50+
</div>
51+
)
52+
}
53+
54+
export async function getStaticProps() {
55+
const events = parseEvents(getEvents('2022'))
56+
57+
return {
58+
props: {
59+
events,
60+
},
61+
}
62+
}

0 commit comments

Comments
 (0)