Blume への移行
Mintlify、Docusaurus、GitBook、MkDocs、ReadMe などのドキュメントサイトを、Codex または Claude Code に移行作業を任せる 1 つのコマンドで Blume に移行します。
ドキュメントサイトを Blume らしい構成に移行するには、codemod では下せない判断が必要です。宣言されたナビゲーションのうちどれをフォルダーにするか、どのコンポーネントをディレクティブにするか、そして Blume に相当するものがないのはどれか、といった判断です。そのため blume migrate は、Blume の移行プレイブックに沿って作業するコーディングエージェントにこの作業を任せ、あなたは各編集をレビューします。
1 つのコマンドで移行する
移行するドキュメントプロジェクトのルートで実行します:
npx blume migrate fumadocs --codexpnpm dlx blume migrate fumadocs --codexyarn dlx blume migrate fumadocs --codexbunx blume migrate fumadocs --codexnubx blume migrate fumadocs --codexaube dlx blume migrate fumadocs --codexfumadocs はお使いのフレームワークに置き換えてください。Claude Code を使う場合は --codex を --claude に置き換えます。pnpm 12 は承認なしに esbuild のインストールスクリプトを実行しないため、pnpm 12 では pnpm dlx の後に --allow-build=esbuild を追加してください。エージェントはターミナル内で対話的に起動するため、すべての編集はエージェント自身の許可フローを通ります。エージェントはファイルを直接編集するため、クリーンなワーキングツリーから始め、移行全体を 1 つの diff としてレビューしてください。
移行元
移行元のフレームワークを指定してください。省略した場合は、Blume がプロジェクト内のファイルから自動的に検出します。指定したフレームワークとプロジェクトの内容が異なるように見える場合、Blume は警告を表示したうえで、指定されたフレームワークのまま処理を続行します:
| 移行元 | 検出の手がかり | ガイド |
|---|---|---|
mintlify |
docs.json または mint.json |
Mintlify からの移行 |
fumadocs |
source.config.ts、または package.json 内の fumadocs-core、fumadocs-ui、fumadocs-mdx |
Fumadocs からの移行 |
docusaurus |
docusaurus.config.* |
Docusaurus からの移行 |
starlight |
package.json 内の @astrojs/starlight |
Starlight からの移行 |
nextra |
package.json 内の nextra |
Nextra からの移行 |
vitepress |
ルートまたは docs/ 内の .vitepress/config.ts(または .mts、.js、.mjs)、または package.json 内の vitepress |
VitePress からの移行 |
vuepress |
ルートまたは docs/ 内の .vuepress/config.ts(または .js、.mjs、.yml、.toml)、vuepress.config.*、または package.json 内の vuepress(または vuepress-vite、vuepress-webpack) |
VuePress からの移行 |
docus |
package.json 内の docus(Docus 3 以降)または @nuxt-themes/docus(Docus 1)。ワークスペースではドキュメントパッケージ内で実行してください |
Docus からの移行 |
mkdocs |
mkdocs.yml、mkdocs.yaml、zensical.toml、properdocs.yml、または properdocs.yaml |
MkDocs Material からの移行 |
mdbook |
ルート、docs/、または book/ 内の book.toml |
mdBook からの移行 |
fern |
fern/docs.yml |
Fern からの移行 |
gitbook |
.gitbook.yaml、.gitbook.yml、または gitbook-docs.yaml、あるいは package.json 内の honkit または gitbook-cli。SUMMARY.md だけでは検出されません |
GitBook からの移行 |
redocly |
sidebars.yaml、または package.json 内の @redocly/realm やその他の Realm 系パッケージ。redocly.yaml だけでは検出されません |
Redocly からの移行 |
readme |
docs/、reference/、recipes/、または custom_pages/ 内の _order.yaml。rdme でアップロードしているリポジトリでは移行元の指定が必要です |
ReadMe からの移行 |
docsify |
package.json 内の docsify-cli または docsify。package.json のないサイトでは移行元の指定が必要です |
Docsify からの移行 |
jekyll |
ルートまたは docs/ 内の _config.yml。Blume が検出する他のすべての移行元の後に確認されます |
Just the Docs からの移行 |
github-wiki |
検出されません。Wiki には設定ファイルがないため、移行元を指定してください | GitHub Wiki からの移行 |
検出は、コマンドを実行したフォルダーを対象に行われます。各移行元には、プレイブック内に専用のマッピングリファレンスがあります。また、いくつかの移行元には、機械的な書き換えのためにエージェントが最初に実行する codemod も用意されているため、エージェント自身は判断が必要な作業に注力できます。これら以外で構築されたサイトも移行できます。移行元を指定せずにコマンドを実行すると、エージェントはまずリポジトリの内容を洗い出し、その後プレイブックの一般的なルールに沿って作業します。
エージェントが行うこと
エージェントは、移行元の設定の読み取りからビルドが成功するまで、プレイブックのワークフローに従って作業します:
blume.config.tsを作成します。移行元で宣言されている項目のみをマッピングし、それ以外は Blume のデフォルトに任せます。- コンテンツをファイルシステムナビゲーションに合わせて再構成し、フォルダーごとの並び順ファイル(Fumadocs の
meta.json、Nextra の_meta)をmeta.tsに変換します。 - ページを書き換えます。フロントマターを Blume のスキーマに、コールアウトコンポーネントをディレクティブに、アイコンを Lucide に変換し、スニペットはインライン化します。
- 移動するすべての URL にリダイレクトを追加し、リンク切れを防ぎます。Docsify の
#/URL はサーバーに届かないため、それらについては各 URL を新しいページへ転送する小さなスクリプトを追加します。GitHub Wiki の URL は github.com 上に残り、そこではリダイレクトを設定できないため、エージェントは各ページを新しいルートに対応付け、旧 Wiki にプッシュできるリンクスタブを用意します。 package.jsonのスクリプトをblume devとblume buildに向け、旧フレームワークの依存関係をblumeに置き換えます。blume buildとblume validateの両方が成功するまで実行を繰り返します。
最後に、移行したもの、削除したもの、近似的に対応したもの(Blume に相当する機能がないフッターリンクやナビゲーションバーのボタンなど)の概要を示すので、それぞれをどう扱うかを判断できます。
その他のエージェント
--codex または --claude を指定しない場合、コマンドは検出した移行元を報告し、プレイブック(パッケージに同梱されている blume-migrate スキル)のパスを表示して、何も変更せずに終了します。他のエージェントにはその SKILL.md を参照させるか、表示されるコマンドを使って、エージェントがスキルを探す場所にスキルをインストールしてください:
npx skills add haydenbleasel/blume --skill blume-migrate
まずは比較する
比較ページでは、Blume を各フレームワークと並べて比較し、移行でそのまま引き継がれるものと書き換えられるものを一覧にしています。