---
title: バージョン
description: blume version は現在のドキュメントをアーカイブ済みバージョンとして固定します。ツリーをコピーし、リンクを書き換え、ID を設定に登録します。
---

`blume version` は、[ドキュメントのバージョン](/docs/content/versioning)を作成するためのコマンドです。ID を指定すると、現在のコンテンツツリーをスナップショットとして固定し、その時点のドキュメントをそのまま配信し続けます。

```bash
blume version v1.0
```

このコマンドは次の 4 つの処理を行います。

1. **コンテンツツリーをコピーします。** コピー先は ID と同じ名前のフォルダー（`docs/v1.0/`）で、既存のスナップショットはコピーの対象から除外されます。
2. **コピー内のルート絶対リンクを書き換えます。** リンクがスナップショット内に収まるように、`/guides/x` は `/v1.0/guides/x` になります。コードブロックとインラインコードは変更されません。また、スナップショットにコピーが存在しないページ（生成された API リファレンスや、変更履歴などのリモートソース）へのリンクは、引き続き最新のページを指します。
3. **ID を登録します。** 登録先は `blume.config.ts` の `versions.archived` です。初回の作成時にはバージョン管理が有効になり、その ID をアーカイブ済みとし、最新のドキュメントに "Latest" というラベルを付けた `versions` ブロックが追加されます。設定の書き方が原因で自動編集できない場合は、警告を表示し、代わりに貼り付けるべきエントリーを出力します。
4. **実行結果を報告します。** コピーしたファイル、リンクを書き換えたページが表示されます。あわせて、アーカイブ済みバージョンは固定されていること、スナップショットを反映するには `blume dev` の再起動が必要であることも通知されます。

新しいフォルダーは、他のコンテンツと同じようにレビューしてコミットしてください。バージョンの表示方法（切り替えメニュー、アーカイブ済みページの通知、バージョンごとのラベルやバッジ）はすべて設定で制御します。詳しくは [バージョン管理](/docs/content/versioning)のページをご覧ください。

## バージョンの一覧表示 [#listing-versions]

ID を指定せずに実行すると、設定済みのバージョンが一覧表示されます。まず現在のバージョンがラベルとバッジ付きで表示され、続いてアーカイブ済みの各 ID とそのフォルダーが表示されます。初回の作成前で `versions` が設定されていない場合は、代わりにバージョンの作成方法が案内されます。

```bash
blume version
```

## フラグ [#flags]

- `--force` — 既存のスナップショットフォルダーを上書きします。このフラグがない場合、フォルダーが既に存在するとエラーになります。そのため、誤って再実行してもアーカイブ済みバージョンが上書きされることはありません。

## 実行が拒否される場合 [#when-it-refuses]

次のいずれかに該当する場合、コマンドは何も変更せずに 0 以外の終了コードで終了します。

- ID が英字で始まっていない場合、または英字、数字、ドット、ハイフン、アンダースコア以外の文字を含む場合（`1.0` ではなく `v1.0` とします。これにより、ID が[数値の並び順プレフィックス](/docs/content/navigation#ordering)と衝突することはありません）
- プロジェクトにエラー診断がある場合。壊れたツリーのスナップショットを作成すると、その不具合まで固定されてしまうためです。先に修正してください（`blume doctor` で一覧を確認できます）
- ID が既に `versions.archived` に登録されている場合
- スナップショットフォルダーが既に存在し、`--force` が指定されていない場合
