Skip to content

Commit d35e8c3

Browse files
Unify SEO configuration and overhaul sitemap
1 parent d0c0882 commit d35e8c3

31 files changed

+776
-544
lines changed

TODO.md

Lines changed: 14 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,26 @@
1-
# CHRIS FINAL MEGA SPRINT CRUNCH DAILY GRIND SCHEDULE
1+
- Use color dropper for logo rgb
2+
- Manual visual checks on Safari iOS, and fix any issues.
3+
- Smaller font on mobile list view
24

3-
TARGET SOFT LAUNCH AUG 09.
5+
## vNext
46

5-
## Schedule
7+
- Pinch to zoom in gallery
8+
- Prettier touches like asanhoa / squares
9+
- Check content is caching right (added 1 event happening always?)
610

7-
### 9 SOFT RELEASE DAY (oktech.jp/chris-wireframe)
11+
## Public Codebase Release
812

9-
- Update logo
10-
- OG Image Styling
11-
- Manual checks on multiple browsers and devices.
12-
13-
- Standardize importing of markdown to fix that css import.
14-
- Clean up codebase, removing AI stuff.
15-
16-
- Test automated builds
17-
- Resume github pages workflow with sync script trigger
18-
- Work with Martin or whoever controls domains to do manual release
19-
20-
### THEN
21-
22-
- Pinch to zoom
23-
- Prettier touches like asanhoa
13+
- Standardize importing of markdown to fix that stray css module.
2414
- Feedback integration
15+
- Clean up codebase, removing AI stuff.
2516

26-
# Post Release Features
17+
## Later
2718

28-
- SEO test page / Keyword Stuffing
19+
- Replace extractMarkdownDescription with import step / LLM
20+
- Streamline logo style/props logic
21+
- Preprocess images on import, rotate, etc.?
2922
- Carousel for upcoming events
3023
- Tagging with LLMs and shit.
3124
- How to find us photos for hankyu etc.
32-
- Feed modal, instead of direct link
3325
- Members: with hasPage: true.
3426
- Scripts for LLM decoration ?
35-
- https://docs.astro.build/en/guides/view-transitions/
36-
- Create an issue for font loadiong strategy

src/components/Common/OKTechLogo.tsx

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { themeColorsHex } from "@/utils/og/theme-colors";
55
interface OKTechLogoProps {
66
className?: string;
77
active?: boolean;
8+
noStyle?: boolean;
89
}
910

1011
// TODO use colors picked from wintle's image
@@ -20,7 +21,7 @@ type OKTechLogoItemProps = OKTechLogoProps & {
2021
style?: React.CSSProperties;
2122
};
2223

23-
export function OKTechLogoIcon({ className, style, active }: OKTechLogoItemProps) {
24+
export function OKTechLogoIcon({ noStyle, className, style, active }: OKTechLogoItemProps) {
2425
return (
2526
<>
2627
<svg
@@ -36,21 +37,23 @@ export function OKTechLogoIcon({ className, style, active }: OKTechLogoItemProps
3637
fill="currentColor"
3738
>
3839
<defs>
39-
<style>
40-
{`
40+
{!noStyle && (
41+
<style>
42+
{`
4143
.base-responsive { fill: ${colors.BASE_LIGHT}; }
4244
4345
@media (prefers-color-scheme: dark) {
4446
.base-responsive { fill: ${colors.BASE_DARK}; }
45-
}
46-
@media (prefers-color-scheme: light) {
47-
.base-responsive { fill: ${colors.BASE_LIGHT}; }
48-
}
49-
50-
[data-theme="light"] .base-responsive { fill: currentColor !important; }
51-
[data-theme="dark"] .base-responsive { fill: currentColor !important; }
52-
`}
53-
</style>
47+
}
48+
@media (prefers-color-scheme: light) {
49+
.base-responsive { fill: ${colors.BASE_LIGHT}; }
50+
}
51+
52+
[data-theme="light"] .base-responsive { fill: currentColor !important; }
53+
[data-theme="dark"] .base-responsive { fill: currentColor !important; }
54+
`}
55+
</style>
56+
)}
5457
</defs>
5558
<path
5659
className="base-responsive"

src/components/Common/SiteMapTree.tsx

Lines changed: 0 additions & 91 deletions
This file was deleted.

src/components/Landing/GetInvolved.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { FaDiscord } from "react-icons/fa6";
2-
import { LuCalendar, LuFileText } from "react-icons/lu";
2+
import { LuCalendarPlus, LuMessageCircleCode } from "react-icons/lu";
33

44
import BlobIconGrid, { type BlobIconGridItem } from "@/components/Common/BlobIconGrid";
55

@@ -19,14 +19,14 @@ export default function GetInvolved() {
1919
type: "calendar",
2020
title: "Subscribe to Calendar",
2121
description: "Never miss an event",
22-
icon: LuCalendar,
22+
icon: LuCalendarPlus,
2323
},
2424
{
2525
type: "a",
26-
title: "Submit a Proposal",
27-
description: "Share your ideas",
28-
icon: LuFileText,
29-
href: "https://github.com/owddm/owddm.com/discussions/new?category=events",
26+
title: "Make a Presnetation",
27+
description: "Submit your talk proposal and share your ideas",
28+
icon: LuMessageCircleCode,
29+
href: "https://discord.com/channels/1034792577293094972/1034862103653257306",
3030
target: "_blank",
3131
rel: "noopener noreferrer",
3232
testId: "proposal-cta",

src/components/OG/OGEventsView.tsx

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import { twj } from "tw-to-css";
2+
3+
import { themeColorsHex } from "@/utils/og/theme-colors";
4+
5+
import OGLayout from "./OGLayout";
6+
7+
interface OGEventsViewProps {
8+
title: string;
9+
subtitle?: string;
10+
description?: string;
11+
}
12+
13+
export default function OGEventsView({ title, subtitle, description }: OGEventsViewProps) {
14+
const colors = themeColorsHex.light;
15+
16+
return (
17+
<OGLayout title={title} subtitle={subtitle}>
18+
<div style={twj("flex flex-col gap-4")}>
19+
{description && (
20+
<p
21+
style={{
22+
...twj("text-xl leading-relaxed"),
23+
color: colors.baseContent,
24+
opacity: 0.7,
25+
}}
26+
>
27+
{description}
28+
</p>
29+
)}
30+
</div>
31+
</OGLayout>
32+
);
33+
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
import Link from "@/components/Common/LinkReact";
2+
import type { Entry } from "@/utils/sitemap";
3+
4+
interface SitemapCardProps {
5+
entry: Entry;
6+
}
7+
8+
export default function SitemapCard({ entry }: SitemapCardProps) {
9+
const { href, ogImage, description, keywords, fullUrl, title } = entry;
10+
11+
if (!href) return null;
12+
13+
return (
14+
<Link
15+
href={href}
16+
className="glass-border rounded-box bg-base-100/60 hover:bg-base-100/100 block w-full overflow-hidden transition-all duration-200"
17+
data-testid={`sitemap-card-${href}`}
18+
>
19+
<div className="flex flex-col">
20+
<div className="rounded-box-inner relative overflow-hidden">
21+
<figure className="bg-base-300 aspect-video h-full w-full">
22+
{ogImage ? (
23+
<img
24+
src={ogImage}
25+
alt={`OG image for ${title}`}
26+
className="h-full w-full object-cover"
27+
loading="lazy"
28+
/>
29+
) : (
30+
<div className="flex h-full w-full items-center justify-center">
31+
<span className="text-base-content/50 text-lg font-semibold">{title}</span>
32+
</div>
33+
)}
34+
</figure>
35+
</div>
36+
<div className="m-5 mt-2 flex flex-col gap-3">
37+
<div className="text-base-content/50 truncate text-xs">{fullUrl}</div>
38+
<h3>{title}</h3>
39+
{description && <div className="text-base-content/70 text-sm">{description}</div>}
40+
{keywords && keywords.length > 0 && (
41+
<div className="-mx-2 mt-2 -mb-2 flex flex-wrap gap-1">
42+
{keywords.map((keyword) => (
43+
<span key={keyword} className="badge badge-sm">
44+
{keyword}
45+
</span>
46+
))}
47+
</div>
48+
)}
49+
</div>
50+
</div>
51+
</Link>
52+
);
53+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import SimpleSection from "@/components/Common/SimpleSection";
2+
import type { Entry } from "@/utils/sitemap";
3+
4+
import SitemapCard from "./SitemapCard";
5+
6+
interface SitemapSectionProps {
7+
title: string;
8+
entries: Entry[];
9+
}
10+
11+
export default function SitemapSection({ title, entries }: SitemapSectionProps) {
12+
if (!entries || entries.length === 0) return null;
13+
14+
return (
15+
<SimpleSection title={title} wide grid>
16+
{entries.map((entry) => (
17+
<div key={`${entry.href || entry.title}-${entry.title}`} className="w-full">
18+
<SitemapCard entry={entry} />
19+
</div>
20+
))}
21+
</SimpleSection>
22+
);
23+
}

src/components/Sitemap/SitemapSwitcher.tsx

Lines changed: 0 additions & 33 deletions
This file was deleted.

0 commit comments

Comments
 (0)