diff --git a/sigpwny.com/src/components/Card.astro b/_global/components/Card.astro
similarity index 100%
rename from sigpwny.com/src/components/Card.astro
rename to _global/components/Card.astro
diff --git a/sigpwny.com/src/components/Icons/fluentui.tsx b/_global/components/Icons/fluentui.tsx
similarity index 100%
rename from sigpwny.com/src/components/Icons/fluentui.tsx
rename to _global/components/Icons/fluentui.tsx
diff --git a/sigpwny.com/src/components/Icons/index.tsx b/_global/components/Icons/index.tsx
similarity index 100%
rename from sigpwny.com/src/components/Icons/index.tsx
rename to _global/components/Icons/index.tsx
diff --git a/sigpwny.com/src/components/Profile/Avatar.astro b/_global/components/Profile/Avatar.astro
similarity index 100%
rename from sigpwny.com/src/components/Profile/Avatar.astro
rename to _global/components/Profile/Avatar.astro
diff --git a/sigpwny.com/src/components/Profile/AvatarGroup.astro b/_global/components/Profile/AvatarGroup.astro
similarity index 100%
rename from sigpwny.com/src/components/Profile/AvatarGroup.astro
rename to _global/components/Profile/AvatarGroup.astro
diff --git a/sigpwny.com/src/components/Profile/Persona.tsx b/_global/components/Profile/Persona.tsx
similarity index 100%
rename from sigpwny.com/src/components/Profile/Persona.tsx
rename to _global/components/Profile/Persona.tsx
diff --git a/sigpwny.com/src/components/Profile/PersonaGroup.astro b/_global/components/Profile/PersonaGroup.astro
similarity index 83%
rename from sigpwny.com/src/components/Profile/PersonaGroup.astro
rename to _global/components/Profile/PersonaGroup.astro
index 259cef612..51d76f39a 100644
--- a/sigpwny.com/src/components/Profile/PersonaGroup.astro
+++ b/_global/components/Profile/PersonaGroup.astro
@@ -1,7 +1,7 @@
---
-import Avatar from '@/components/Profile/Avatar.astro';
-import Persona from '@/components/Profile/Persona';
-import ProfileCard from '@/components/Profile/ProfileCard.astro';
+import Avatar from './Avatar.astro';
+import Persona from './Persona';
+import ProfileCard from './ProfileCard.astro';
const { profiles, limit } = Astro.props;
const show_count = limit && profiles.length > limit ? limit - 1 : profiles.length;
diff --git a/sigpwny.com/src/components/Profile/ProfileCard.astro b/_global/components/Profile/ProfileCard.astro
similarity index 95%
rename from sigpwny.com/src/components/Profile/ProfileCard.astro
rename to _global/components/Profile/ProfileCard.astro
index 5c47c9746..9420e8272 100644
--- a/sigpwny.com/src/components/Profile/ProfileCard.astro
+++ b/_global/components/Profile/ProfileCard.astro
@@ -1,6 +1,6 @@
---
-import Avatar from '@/components/Profile/Avatar.astro';
-import { SocialIcon, getSocialIconDisplayName } from '@/components/Icons';
+import Avatar from './Avatar.astro';
+import { SocialIcon, getSocialIconDisplayName } from '$/components/Icons';
const { profile, showFull } = Astro.props;
diff --git a/sigpwny.com/src/components/Profile/types.d.ts b/_global/components/Profile/types.d.ts
similarity index 100%
rename from sigpwny.com/src/components/Profile/types.d.ts
rename to _global/components/Profile/types.d.ts
diff --git a/_global/content/profiles/org/sigpwny/index.mdx b/_global/content/profiles/org/sigpwny/index.mdx
index 04c4a657d..56158c5a2 100644
--- a/_global/content/profiles/org/sigpwny/index.mdx
+++ b/_global/content/profiles/org/sigpwny/index.mdx
@@ -10,4 +10,6 @@ links:
- {name: "website", url: "https://sigpwny.com/"}
- {name: "github", url: "https://github.com/sigpwny"}
- {name: "twitter", url: "https://twitter.com/sigpwny"}
+card_image:
+ foreground: ./pwny8-banner-transparent.svg
---
\ No newline at end of file
diff --git a/_global/content/profiles/org/sigpwny/pwny8-banner-transparent.svg b/_global/content/profiles/org/sigpwny/pwny8-banner-transparent.svg
new file mode 100644
index 000000000..999b7d167
--- /dev/null
+++ b/_global/content/profiles/org/sigpwny/pwny8-banner-transparent.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/_global/content/profiles/org/wicys/index.mdx b/_global/content/profiles/org/wicys/index.mdx
index f198233d1..4a9b8a1b3 100644
--- a/_global/content/profiles/org/wicys/index.mdx
+++ b/_global/content/profiles/org/wicys/index.mdx
@@ -10,4 +10,6 @@ links:
- {name: "website", url: "https://wicys.github.io/"}
- {name: "instagram", url: "https://www.instagram.com/wicys.illinois/"}
- {name: "github", url: "https://github.com/wicys"}
+card_image:
+ foreground: ./wicys-illinois-single-color.svg
---
\ No newline at end of file
diff --git a/_global/content/profiles/org/wicys/wicys-illinois-single-color.svg b/_global/content/profiles/org/wicys/wicys-illinois-single-color.svg
new file mode 100644
index 000000000..4922305a0
--- /dev/null
+++ b/_global/content/profiles/org/wicys/wicys-illinois-single-color.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/sigpwny.com/src/utils/profiles.ts b/_global/utils/profiles.ts
similarity index 100%
rename from sigpwny.com/src/utils/profiles.ts
rename to _global/utils/profiles.ts
diff --git a/fallctf.com/src/components/Footer.astro b/fallctf.com/src/components/Footer.astro
index edd0ce9f0..716bf7b0e 100644
--- a/fallctf.com/src/components/Footer.astro
+++ b/fallctf.com/src/components/Footer.astro
@@ -1,3 +1,12 @@
-
- footer
-
\ No newline at end of file
+---
+import Link from '$/components/Link.astro';
+---
+
\ No newline at end of file
diff --git a/fallctf.com/src/content/config.ts b/fallctf.com/src/content/config.ts
index f14d98fc1..70285a053 100644
--- a/fallctf.com/src/content/config.ts
+++ b/fallctf.com/src/content/config.ts
@@ -1,6 +1,6 @@
import { defineCollection } from 'astro:content';
import { glob } from 'astro/loaders';
-import { EventSchema } from '$/schema';
+import { EventSchema, ProfileSchema } from '$/schema';
const events = defineCollection({
type: 'content_layer',
@@ -8,4 +8,10 @@ const events = defineCollection({
schema: (props) => EventSchema(props),
});
-export const collections = { events }
\ No newline at end of file
+const profiles = defineCollection({
+ type: 'content_layer',
+ loader: glob({ pattern: '**/*.mdx', base: '../_global/content/profiles' }),
+ schema: (props) => ProfileSchema(props),
+});
+
+export const collections = { events, profiles };
\ No newline at end of file
diff --git a/fallctf.com/src/layouts/Base.astro b/fallctf.com/src/layouts/Base.astro
index 56d0511c5..88a96f629 100644
--- a/fallctf.com/src/layouts/Base.astro
+++ b/fallctf.com/src/layouts/Base.astro
@@ -7,6 +7,7 @@ import 'katex/dist/katex.min.css';
import type { HeadProps } from '$/components/BaseHead.astro';
import BaseHead from '$/components/BaseHead.astro';
import Header from '@/components/Header.astro';
+import Footer from '@/components/Footer.astro';
const props: Omit = Astro.props;
---
@@ -15,8 +16,11 @@ const props: Omit = Astro.props;
-
-
-
+
+
+
+
+
+
\ No newline at end of file
diff --git a/fallctf.com/src/pages/2024.astro b/fallctf.com/src/pages/2024.astro
index 3f088fd64..fad004fdd 100644
--- a/fallctf.com/src/pages/2024.astro
+++ b/fallctf.com/src/pages/2024.astro
@@ -1,64 +1,68 @@
---
import Layout from '@/layouts/Event.astro';
import Link from '$/components/Link.astro';
+import Card from '$/components/Card.astro';
+import Avatar from '$/components/Profile/Avatar.astro';
import FallCTFLogo from '@/components/FallCTFLogo';
+import { getProfilesFromNames } from '$/utils/profiles';
import { getFallCTFEvents } from '@/utils/fallctf-events';
+import svg_sigpwny from '$/content/profiles/org/sigpwny/pwny8-banner-transparent.svg?raw';
+import svg_wicys from '$/content/profiles/org/wicys/wicys-illinois-single-color.svg?raw';
+
const events = (await getFallCTFEvents()).filter((event) => event.data.year === '2024');
if (events.length === 0) {
return Astro.error(404, 'Event not found');
}
-const event = events[0].data;
+const event = {
+ ...events[0].data,
+ // Add sponsor_profiles, which is a list of resolved profiles from names in sponsors
+ sponsors_profiles: events[0].data.sponsors ? (await getProfilesFromNames(events[0].data.sponsors)) : undefined,
+};
---
-
+
+
Sponsored By
+
+ {event.sponsors_profiles!.map((sponsor) => (
+
+
+ {/* If the sponsor does not have any displayable card_image, use profile picture and name instead */}
+
+ {sponsor.profile_image ? (
+
+
+
+ ) : null}
+ {sponsor.name}
+
+
+
+ ))}
+
+
+
Frequently Asked Questions
@@ -125,6 +153,17 @@ details summary::-webkit-details-marker {
Some of our sponsors will be attending in-person and will be available to talk to during the event.
+
+ I'm not from UIUC. Can I play Fall CTF?
+
Currently, Fall CTF registration is limited to UIUC students. If you are not from UIUC and wish to participate, please email hello@sigpwny.com for a manual review.
+
+
+
+
+
Organized By
+
+
+
diff --git a/sigpwny.com/src/components/CalendarSubscribe.tsx b/sigpwny.com/src/components/CalendarSubscribe.tsx
index 9515d3739..9e506acde 100644
--- a/sigpwny.com/src/components/CalendarSubscribe.tsx
+++ b/sigpwny.com/src/components/CalendarSubscribe.tsx
@@ -9,13 +9,13 @@ import {
AppleSvg,
GoogleCalendarSvg,
MicrosoftOutlookSvg
-} from '@/components/Icons';
+} from '$/components/Icons';
import {
CalendarRegular,
CalendarSyncRegular,
CheckmarkCircleFilled,
LinkRegular
-} from '@/components/Icons/fluentui';
+} from '$/components/Icons/fluentui';
export default function CalendarSubscribe(props: any) {
diff --git a/sigpwny.com/src/components/Footer.astro b/sigpwny.com/src/components/Footer.astro
index 5494dcdd5..ceb86556b 100644
--- a/sigpwny.com/src/components/Footer.astro
+++ b/sigpwny.com/src/components/Footer.astro
@@ -1,7 +1,7 @@
---
import consts from '@/consts';
import Link from '$/components/Link.astro';
-import { PwnyBanner, SocialIcon } from '@/components/Icons';
+import { PwnyBanner, SocialIcon } from '$/components/Icons';
---