Color mode

Inspector

Inspector は、Riebeckite がすでに解決した設定やコンテンツ、Plugin、Build State を確認するための機能です。

簡単に言えば、「Riebeckite から今どう見えているか」を調べるための読み取り専用ツールです。

たとえば、

  • 実際にどの設定が使われているか
  • どの Plugin が有効になっているか
  • 記事の最終的な URL は何か
  • コンテンツ同士がどうつながっているか
  • incremental build の state は正常か

といった情報を確認できます。

Diagram source
text
flowchart LR
    A["Config"]
    B["Plugins"]
    C["Content"]
    D["Content Graph"]
    E["Build State"]
 
    A --> I["Inspector"]
    B --> I
    C --> I
    D --> I
    E --> I
 
    I --> F["情報を表示するだけ"]

Inspector はこれらの情報を確認するだけで、build や設定の変更は行いません。

基本的な使い方

Inspector には、確認したい対象ごとにコマンドがあります。

コマンド 確認できるもの
riebeckite inspect config 解決済みの設定
riebeckite inspect plugins 有効になっている Plugin
riebeckite inspect content --list 公開コンテンツと URL
riebeckite inspect graph コンテンツ同士の関係
riebeckite inspect build incremental build の state

Config を確認する

sh
riebeckite inspect config

Riebeckite が実際に使用する 解決済みの config を確認します。

設定ファイルに書いた値そのものではなく、既定値なども適用された後の「Riebeckite が最終的に認識している設定」を確認したいときに使用します。

たとえば、

設定したはずなのに期待した動作にならない

という場合に、まず実際の設定値を確認できます。

Plugin を確認する

sh
riebeckite inspect plugins

現在有効になっている Plugin を確認します。

「Plugin を追加したつもりだけれど、本当に読み込まれているのか」を調べるときなどに利用できます。

Content を確認する

sh
riebeckite inspect content --list

Riebeckite が認識しているコンテンツを一覧表示します。

各 entry について、解決済みの canonical permalink を確認できます。

たとえば、

text
content/posts/hello.md

というファイルがあっても、実際の公開 URL が

text
/blog/hello/

であれば、Inspector では最終的に解決された /blog/hello/ を確認できます。

つまり、filesystem 上の場所ではなく、実際にサイトで使われる URL を確認するための情報です。

Public Location Plugin が identity metadata を提供している場合は、コンテンツ ID とその ID がどこから取得されたかも表示します。

Content Graph を確認する

sh
riebeckite inspect graph

コンテンツ同士の関係を確認します。

たとえば、

Diagram source
text
graph LR
    A["article-a"] --> B["article-b"]
    A --> C["article-c"]
    C --> B

のようなリンク関係を、Riebeckite がどのように認識しているか調べるために利用します。

リンク、backlink、graph を利用する Plugin を開発するときの確認にも使えます。

Build State を確認する

sh
riebeckite inspect build

incremental build で利用する state の状態を確認します。

正常な state が存在する場合は、その情報を表示します。

state が利用できない場合は、その理由も確認できます。

たとえば、

  • state file が存在しない
  • JSON が壊れている
  • state version が現在の Riebeckite に対応していない
  • state の構造を認識できない

といった状態です。

Inspector はこれらを修復しません。

Diagram source
text
flowchart TD
    A["inspect build"]
    B{"Build State は存在する?"}
 
    A --> B
    B -->|Yes| C{"State は有効?"}
    B -->|No| D["State がないことを表示"]
 
    C -->|Yes| E["State の情報を表示"]
    C -->|No| F["無効な理由を表示"]
 
    D --> G["終了"]
    E --> G
    F --> G

state が壊れていても、Inspector が新しい state を作ったり、既存 state を書き換えたりすることはありません。

Read-only の保証

Inspector は read-only です。

Inspector の実行によってプロジェクトの状態が変わってはいけません。

具体的には、次の処理を行いません。

  • build の開始
  • incremental state の書き込み
  • Plugin Cache の書き込み
  • asset の生成
  • artifact の生成
  • Vite / HonoX build
  • config の自動修正

まだ一度も build しておらず、確認対象の情報が存在しない場合も、Inspector が勝手に生成することはありません。

代わりに、

現在はその情報が存在しない

ことを明確に表示します。

この性質により、Inspector は開発中だけでなく CI でも安全に利用できます。

inspect / check / doctor / build の違い

Riebeckite には似た目的に見えるコマンドがありますが、それぞれ役割が異なります。

Diagram source
text
flowchart LR
    Q{"何をしたい?"}
 
    Q -->|"現在の状態を見たい"| I["inspect"]
    Q -->|"設定が正しいか確認したい"| C["check"]
    Q -->|"環境を含めて問題を調べたい"| D["doctor"]
    Q -->|"サイトを生成・更新したい"| B["build"]
 
    I --> IR["状態を変更しない"]
    C --> CR["Config / Plugin を検証"]
    D --> DR["Health を診断"]
    B --> BR["Output / State を更新"]
やりたいこと コマンド
現在の解決結果を確認する inspect
Config / Plugin が正しいか検証する check
Environment を含めて問題を診断する doctor
Site や Build State を生成・更新する build

迷った場合は、

「見るだけなら inspect、検証なら check、問題調査なら doctor、生成するなら build」

と考えると分かりやすいです。

この役割分担によって、状態を確認するだけのコマンドが cache や deployment output を意図せず変更することを防いでいます。

各コマンドの詳細は CLI、診断の仕組みについては Diagnostics、incremental state については Build System を参照してください。

History

1 changesCollapseExpand
1 + # Inspector
2 +
3 + Inspector は、Riebeckite がすでに解決した設定やコンテンツ、Plugin、Build State を確認するための機能です。
4 +
5 + 簡単に言えば、**「Riebeckite から今どう見えているか」を調べるための読み取り専用ツール**です。
6 +
7 + たとえば、
8 +
9 + - 実際にどの設定が使われているか
10 + - どの Plugin が有効になっているか
11 + - 記事の最終的な URL は何か
12 + - コンテンツ同士がどうつながっているか
13 + - incremental build の state は正常か
14 +
15 + といった情報を確認できます。
16 +
17 + ```mermaid id="qg9q71"
18 + flowchart LR
19 + A["Config"]
20 + B["Plugins"]
21 + C["Content"]
22 + D["Content Graph"]
23 + E["Build State"]
24 +
25 + A --> I["Inspector"]
26 + B --> I
27 + C --> I
28 + D --> I
29 + E --> I
30 +
31 + I --> F["情報を表示するだけ"]
32 + ```
33 +
34 + Inspector はこれらの情報を**確認するだけ**で、build や設定の変更は行いません。
35 +
36 + ## 基本的な使い方
37 +
38 + Inspector には、確認したい対象ごとにコマンドがあります。
39 +
40 + | コマンド | 確認できるもの |
41 + | --- | --- |
42 + | `riebeckite inspect config` | 解決済みの設定 |
43 + | `riebeckite inspect plugins` | 有効になっている Plugin |
44 + | `riebeckite inspect content --list` | 公開コンテンツと URL |
45 + | `riebeckite inspect graph` | コンテンツ同士の関係 |
46 + | `riebeckite inspect build` | incremental build の state |
47 +
48 + ## Config を確認する
49 +
50 + ```sh id="5zrcz3"
51 + riebeckite inspect config
52 + ```
53 +
54 + Riebeckite が実際に使用する **解決済みの config** を確認します。
55 +
56 + 設定ファイルに書いた値そのものではなく、既定値なども適用された後の「Riebeckite が最終的に認識している設定」を確認したいときに使用します。
57 +
58 + たとえば、
59 +
60 + > 設定したはずなのに期待した動作にならない
61 +
62 + という場合に、まず実際の設定値を確認できます。
63 +
64 + ## Plugin を確認する
65 +
66 + ```sh id="4g0qba"
67 + riebeckite inspect plugins
68 + ```
69 +
70 + 現在有効になっている Plugin を確認します。
71 +
72 + 「Plugin を追加したつもりだけれど、本当に読み込まれているのか」を調べるときなどに利用できます。
73 +
74 + ## Content を確認する
75 +
76 + ```sh id="v20yqo"
77 + riebeckite inspect content --list
78 + ```
79 +
80 + Riebeckite が認識しているコンテンツを一覧表示します。
81 +
82 + 各 entry について、解決済みの **canonical permalink** を確認できます。
83 +
84 + たとえば、
85 +
86 + ```text id="iz0dn3"
87 + content/posts/hello.md
88 + ```
89 +
90 + というファイルがあっても、実際の公開 URL が
91 +
92 + ```text id="ewds8n"
93 + /blog/hello/
94 + ```
95 +
96 + であれば、Inspector では最終的に解決された `/blog/hello/` を確認できます。
97 +
98 + つまり、filesystem 上の場所ではなく、**実際にサイトで使われる URL** を確認するための情報です。
99 +
100 + Public Location Plugin が identity metadata を提供している場合は、コンテンツ ID とその ID がどこから取得されたかも表示します。
101 +
102 + ## Content Graph を確認する
103 +
104 + ```sh id="91iyz5"
105 + riebeckite inspect graph
106 + ```
107 +
108 + コンテンツ同士の関係を確認します。
109 +
110 + たとえば、
111 +
112 + ```mermaid id="0smvrp"
113 + graph LR
114 + A["article-a"] --> B["article-b"]
115 + A --> C["article-c"]
116 + C --> B
117 + ```
118 +
119 + のようなリンク関係を、Riebeckite がどのように認識しているか調べるために利用します。
120 +
121 + リンク、backlink、graph を利用する Plugin を開発するときの確認にも使えます。
122 +
123 + ## Build State を確認する
124 +
125 + ```sh id="i6hsvx"
126 + riebeckite inspect build
127 + ```
128 +
129 + incremental build で利用する state の状態を確認します。
130 +
131 + 正常な state が存在する場合は、その情報を表示します。
132 +
133 + state が利用できない場合は、その理由も確認できます。
134 +
135 + たとえば、
136 +
137 + - state file が存在しない
138 + - JSON が壊れている
139 + - state version が現在の Riebeckite に対応していない
140 + - state の構造を認識できない
141 +
142 + といった状態です。
143 +
144 + Inspector はこれらを**修復しません**。
145 +
146 + ```mermaid id="25a2uw"
147 + flowchart TD
148 + A["inspect build"]
149 + B{"Build State は存在する?"}
150 +
151 + A --> B
152 + B -->|Yes| C{"State は有効?"}
153 + B -->|No| D["State がないことを表示"]
154 +
155 + C -->|Yes| E["State の情報を表示"]
156 + C -->|No| F["無効な理由を表示"]
157 +
158 + D --> G["終了"]
159 + E --> G
160 + F --> G
161 + ```
162 +
163 + state が壊れていても、Inspector が新しい state を作ったり、既存 state を書き換えたりすることはありません。
164 +
165 + # Read-only の保証
166 +
167 + Inspector は **read-only** です。
168 +
169 + Inspector の実行によってプロジェクトの状態が変わってはいけません。
170 +
171 + 具体的には、次の処理を行いません。
172 +
173 + - build の開始
174 + - incremental state の書き込み
175 + - Plugin Cache の書き込み
176 + - asset の生成
177 + - artifact の生成
178 + - Vite / HonoX build
179 + - config の自動修正
180 +
181 + まだ一度も build しておらず、確認対象の情報が存在しない場合も、Inspector が勝手に生成することはありません。
182 +
183 + 代わりに、
184 +
185 + > 現在はその情報が存在しない
186 +
187 + ことを明確に表示します。
188 +
189 + この性質により、Inspector は開発中だけでなく CI でも安全に利用できます。
190 +
191 + # `inspect` / `check` / `doctor` / `build` の違い
192 +
193 + Riebeckite には似た目的に見えるコマンドがありますが、それぞれ役割が異なります。
194 +
195 + ```mermaid id="mx8l24"
196 + flowchart LR
197 + Q{"何をしたい?"}
198 +
199 + Q -->|"現在の状態を見たい"| I["inspect"]
200 + Q -->|"設定が正しいか確認したい"| C["check"]
201 + Q -->|"環境を含めて問題を調べたい"| D["doctor"]
202 + Q -->|"サイトを生成・更新したい"| B["build"]
203 +
204 + I --> IR["状態を変更しない"]
205 + C --> CR["Config / Plugin を検証"]
206 + D --> DR["Health を診断"]
207 + B --> BR["Output / State を更新"]
208 + ```
209 +
210 + | やりたいこと | コマンド |
211 + | --- | --- |
212 + | 現在の解決結果を確認する | `inspect` |
213 + | Config / Plugin が正しいか検証する | `check` |
214 + | Environment を含めて問題を診断する | `doctor` |
215 + | Site や Build State を生成・更新する | `build` |
216 +
217 + 迷った場合は、
218 +
219 + **「見るだけなら `inspect`、検証なら `check`、問題調査なら `doctor`、生成するなら `build`」**
220 +
221 + と考えると分かりやすいです。
222 +
223 + この役割分担によって、状態を確認するだけのコマンドが cache や deployment output を意図せず変更することを防いでいます。
224 +
225 + 各コマンドの詳細は [CLI](../reference/cli.ja.md)、診断の仕組みについては [Diagnostics](./diagnostics.ja.md)、incremental state については [Build System](./build-system.ja.md) を参照してください。
226 +