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 package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
"astro": "astro"
},
"dependencies": {
"@astro-community/astro-embed-youtube": "^0.5.10",
"@astrojs/check": "^0.9.5",
"@astrojs/mdx": "^4.3.7",
"@astrojs/react": "^4.4.0",
Expand Down
15 changes: 15 additions & 0 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

19 changes: 19 additions & 0 deletions src/components/VideoEmbed.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
import { YouTube } from '@astro-community/astro-embed-youtube'

interface Props {
youtubeId: string
bilibiliUrl: string
}

const { youtubeId, bilibiliUrl } = Astro.props
---

<div class="gap-4 grid grid-cols-1 md:grid-cols-2">
<YouTube id={youtubeId} class="flex-1 aspect-video" />
<iframe
src={bilibiliUrl}
allowfullscreen="true"
class="flex-1 aspect-video border-0"
></iframe>
</div>
2 changes: 2 additions & 0 deletions src/content/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ const posts = defineCollection({
status: z.enum(['draft', 'pending', 'published']),
xyzLink: z.string().url().optional(),
draftLink: z.string().url().optional(),
youtubeId: z.string().optional(),
biliUrl: z.string().optional(),
})
});
// 3. Export a single `collections` object to register your collection(s)
Expand Down
36 changes: 36 additions & 0 deletions src/content/posts/ep49.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
type: podcast-episode
status: published
slug: /posts/ep49
guid: 49
title: EP49 AsyncTalk 开播啦
subtitle: AsyncTalk 开播啦
publicationDate: 2026-01-29 11:20:00
author: AnnatarHe
season: 3
episodeNumber: 49
episodeType: full
excerpt: EP49 AsyncTalk 开播啦
url: https://www.xiaoyuzhoufm.com/episode/697ad354903a4fab4e9dc4b2
size: 0
duration: 0
explicit: false
xyzLink: https://www.xiaoyuzhoufm.com/episode/697ad354903a4fab4e9dc4b2
youtubeId: CLW-eD7qZ0o
biliUrl: "//player.bilibili.com/player.html?isOutside=true&aid=115973747121570&bvid=BV11szXBWEkT&cid=35672952727&p=1"
categories:
- ai
- programming
- video
---

### 📕 Shownotes

AsyncTalk 的视频播客节目正式开播啦~

接下来有最新的前沿 web 开发技术和 AI 探索分享哦

一起来关注吧开播啦



37 changes: 37 additions & 0 deletions src/content/posts/ep50.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
type: podcast-episode
status: published
slug: /posts/ep50
guid: 50
title: EP50 Claude Code 夯爆了
subtitle: Claude Code 夯爆了
publicationDate: 2026-01-29 11:45:00
author: AnnatarHe
season: 3
episodeNumber: 50
episodeType: full
excerpt: EP50 Claude Code 夯爆了
url: https://www.xiaoyuzhoufm.com/episode/697adad22860092c78d342aa
size: 0
duration: 0
explicit: false
xyzLink: https://www.xiaoyuzhoufm.com/episode/697adad22860092c78d342aa
youtubeId: MRjnOjxlI34
biliUrl: "//player.bilibili.com/player.html?isOutside=true&aid=115973763898690&bvid=BV12pzXBRExJ&cid=35673083091&p=1"
categories:
- ai
- programming
---

### 📕 Shownotes

AsyncTalk 本期节目来聊了 Claude Code 及其带来的巨大影响,以及如何更好地和 AI 协作

- Plan Mode 真重要
- 把 AI 当人看才能合作
- terminal 版本最靠谱
- AI 能连续工作吗
- AI 可能会作恶
- 我们要有判断力

BGM by Otologic
10 changes: 10 additions & 0 deletions src/pages/posts/[...slug].astro
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import P from "../../components/markdown/P.astro";
import type { InferGetStaticPropsType } from "astro";
import Player from "../../components/Player.astro";
import AdSense from "../../components/AdSense.astro";
import VideoEmbed from "../../components/VideoEmbed.astro";

export async function getStaticPaths() {
const posts = await getCollection("posts");
Expand Down Expand Up @@ -145,6 +146,15 @@ const imgUrl = `${Astro.site?.origin}${post.slug}-og.png`;
<Player link={post.data.xyzLink!} title={frontData.title} />
<Hr className="my-10" />

{
frontData.youtubeId && frontData.biliUrl && (
<>
<VideoEmbed youtubeId={frontData.youtubeId} bilibiliUrl={frontData.biliUrl} />
<Hr className="my-10" />
</>
)
}

<article
class="leading-loose w-full at-mdx-content at-scrollbar text-gray-100 break-all"
>
Expand Down