Skip to content

feat(core,mdx): ReslideServerEmbed と埋め込み用サブパスエクスポート - #78

Merged
nisshi-dev merged 2 commits into
mainfrom
feat/server-embed
Apr 5, 2026
Merged

feat(core,mdx): ReslideServerEmbed と埋め込み用サブパスエクスポート#78
nisshi-dev merged 2 commits into
mainfrom
feat/server-embed

Conversation

@nisshi-dev

Copy link
Copy Markdown
Owner

Summary

  • ReslideServerEmbed: RSC対応の async Server Component。dataCompileResult または ReslideEmbedData を渡すだけで、内部で Client Component への受け渡しを完結させる。data が null/undefined 時はフォールバックUI(カスタマイズ可能)を表示
  • @reslide-dev/core/embed: ReslideEmbed のみを含む軽量エントリポイント。Deck, PresenterView 等がバンドルに含まれるのを防ぐ
  • @reslide-dev/core/server: ReslideServerEmbed のエントリポイント("use client" なし)
  • toEmbedProps: CompileResult / ReslideEmbedDataReslideEmbed の props 変換ユーティリティ(@reslide-dev/mdx
  • CSS テーマの composable 化: default.css のハードコード値をCSSカスタムプロパティに切り出し。dark.css / bare.css はプロパティの上書きだけに簡素化。ユーザーはプロパティを上書きするだけでカスタムテーマを作成可能

Before(ユーザー側で2ファイル必要)

// Server Component
const compiled = await compileReslide(slug);
return <SlideEmbedClient code={compiled.code} css={compiled.css} ... />;

// Client Component ("use client")
<ReslideEmbed code={code} css={css} transition={transition} ... />

After(1コンポーネントで完結)

import { ReslideServerEmbed } from "@reslide-dev/core/server";

const result = await compileMdxSlides(source, { baseUrl });
<ReslideServerEmbed data={result} sourceUrl="/slides/my-talk" />

Test plan

  • vp check — lint, format, 型チェック通過
  • vp test — 既存テスト 94件 全パス
  • ポートフォリオサイトで ReslideServerEmbed に移行して動作確認

🤖 Generated with Claude Code

…osable 化

Next.js App Router での埋め込みボイラープレートを削減するため:
- ReslideServerEmbed: RSC対応の Server Component(data null 時のフォールバック内蔵)
- @reslide-dev/core/embed: ReslideEmbed のみの軽量エントリポイント
- @reslide-dev/core/server: ReslideServerEmbed のエントリポイント
- toEmbedProps: CompileResult/ReslideEmbedData → ReslideEmbed props 変換
- CSS テーマを composable 化(カスタムプロパティベースに統一、dark/bare を簡素化)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Apr 5, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
reslide-website Ready Ready Preview, Comment Apr 5, 2026 7:22am

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@nisshi-dev
nisshi-dev merged commit 9daa8c0 into main Apr 5, 2026
3 checks passed
@nisshi-dev
nisshi-dev deleted the feat/server-embed branch April 5, 2026 07:26
@github-actions github-actions Bot mentioned this pull request Apr 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant