Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ GIT_AUTHOR_EMAIL=your-username@users.noreply.github.com
# NEXT_PUBLIC_AUTHOR_TWITCH=TwitchUsername
# NEXT_PUBLIC_AUTHOR_TWITTER=TwitterHandle
# NEXT_PUBLIC_AUTHOR_WEBSITE=https://yourwebsite.com
# NEXT_PUBLIC_AUTHOR_YOUTUBE=YouTubeHandle
# NEXT_PUBLIC_BASE_PATH=/my-repo
# NEXT_PUBLIC_BASE_URL=https://yourdomain.com
# Messaging backend selector (#266): 'supabase' (default) or 'dotnet'.
Expand Down
5 changes: 4 additions & 1 deletion public/blog/ride-the-open-source-city.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,8 +118,11 @@ If you'd rather have hands-on help on _your_ game, there's a paid lane too: live
- 🎮 **[Try the engine demo](https://scripthammer.com/game/cod-skeleton)** — the bare test level, no city.
- 🚲 **[Play the city](https://scripthammer.com/chatt/?diorama&walk)** — first person, press **B** for the bike.
- 📦 **[Clone the engine](https://github.com/TortoiseWolfe/ScriptHammer)** — MIT, asset-free, `@/lib/cod`.
- 📺 **[Watch me build it](https://twitch.tv/TurtleWolfe)** — live on Twitch.
- 📺 **[Watch me build it live](https://twitch.tv/TurtleWolfe)** — on Twitch, with the replays on [YouTube](https://youtube.com/@JonathanPohlner).
- 💳 **[See what help costs](https://scripthammer.com/pricing)** — free to Office Hours to done-for-you.
- 📅 **[Book 15 minutes](https://calendly.com/turtlewolfe/15min-1)** — bring a screenshot of what you have in mind.
- 🗺️ **[Read the brainstorm that started this](https://scripthammer.com/blog/playable-city-chattanooga)**.

Find me everywhere: [scripthammer.com](https://scripthammer.com) · [Twitch](https://twitch.tv/TurtleWolfe) · [YouTube](https://youtube.com/@JonathanPohlner) · [X](https://twitter.com/JonPohlner) · [LinkedIn](https://linkedin.com/in/pohlner) · [GitHub](https://github.com/TortoiseWolfe)

Then tell me in the comments: what's the one game in your notebook you'd build first if the boring 20% were already done?
3 changes: 3 additions & 0 deletions scripts/generate-author-config.js
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,9 @@ const authorConfig = {
twitch: process.env.NEXT_PUBLIC_AUTHOR_TWITCH
? `https://twitch.tv/${process.env.NEXT_PUBLIC_AUTHOR_TWITCH}`
: '',
youtube: process.env.NEXT_PUBLIC_AUTHOR_YOUTUBE
? `https://youtube.com/@${process.env.NEXT_PUBLIC_AUTHOR_YOUTUBE}`
: '',
website: process.env.NEXT_PUBLIC_AUTHOR_WEBSITE || '',
email: process.env.NEXT_PUBLIC_AUTHOR_EMAIL || '',
},
Expand Down
7 changes: 7 additions & 0 deletions src/app/blog/[slug]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,13 @@ async function getAuthor(id: string): Promise<Author | null> {
displayOrder: displayOrder++,
});
}
if (authorConfig.social.youtube) {
socialLinks.push({
platform: 'youtube',
url: authorConfig.social.youtube,
displayOrder: displayOrder++,
});
}

return {
id: authorConfig.id,
Expand Down
1 change: 1 addition & 0 deletions src/config/author-generated.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ export const authorConfig = {
twitter: 'https://twitter.com/JonPohlner',
linkedin: 'https://linkedin.com/in/pohlner',
twitch: 'https://twitch.tv/TurtleWolfe',
youtube: 'https://youtube.com/@JonathanPohlner',
website: '',
email: '',
},
Expand Down
4 changes: 4 additions & 0 deletions src/config/authors.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ export interface AuthorSocialLinks {
mastodon?: string;
bluesky?: string;
twitch?: string;
youtube?: string;
}

export interface AuthorPreferences {
Expand Down Expand Up @@ -137,6 +138,9 @@ const getAuthorSocialFromConfig = (): AuthorSocialLinks => {
if (authorConfigData.social.twitch) {
social.twitch = authorConfigData.social.twitch;
}
if (authorConfigData.social.youtube) {
social.youtube = authorConfigData.social.youtube;
}

return social;
};
Expand Down
6 changes: 3 additions & 3 deletions src/lib/blog/blog-data.json

Large diffs are not rendered by default.

Loading