判定と検査
アセットは、登録と更新のたびに判定と検査を受けます。結果はリビジョンごとに残り、画面と API の両方で見られます。
結果の見方
アセット全体の結果は 3 つのどれかです。
| 結果 | 意味 |
|---|---|
合格(passed) |
すべての規格に合格しました。 |
不合格(failed) |
合格しなかった規格があります。違反の一覧に、場所と理由が出ます。 |
未検査あり(unchecked) |
不合格はありませんが、実行できなかった検査があります。合格とは扱いません。 |
結果には、検査に使った規格の版(media-contract と magic-contract)も記録します。
判定(どの媒体のアセットか)
| アセット | 判定する媒体と根拠 |
|---|---|
| 制作物 | 作るときに選んだ媒体。media-contract の媒体の一覧にあることを確かめます。 |
| 画像(PNG・JPEG・GIF・WebP) | 縦横のピクセル数が、媒体の形式(例:バナー 300×250 px)や CANVAS の寸法と一致する媒体。 |
| SVG | viewBox を持つ SVG は、SVG のサイズのまま使う媒体(ロゴ)。 |
| project フォルダ | project.json に書かれた媒体。 |
どの媒体にも当てはまらないアセットは、「特定の媒体には判定されませんでした」と表示されます。不合格ではありません。
検査する規格
| 規格 | 契約 | 内容 |
|---|---|---|
| 名前の規則 | media-contract | すべてのパスが、Magic 共通の名前の規則に合う。 |
| ファイル形式 | Asset Manager | 拡張子と中身が一致する。SVG に、スクリプト・外部参照・実体宣言がない。Office 文書にマクロがない。 |
| スキーマ | Asset Manager | JSON が、指定したスキーマ(magic://schemas/...)に合う。 |
| 媒体 | media-contract | 制作物の媒体が、媒体の一覧にある。 |
| CANVAS の寸法 | media-contract | 制作物の canvas/ の画像が、媒体の CANVAS の寸法ちょうどで描かれている。 |
| 原稿 | magic-contract | 制作物の manuscript/ の JSON が、原稿の契約(magic://schemas/manuscript/v1)の検査に合格する。項目は、媒体・形・参照・使われない項目・ID の重複・ページ数・金額・動画の時間・公開 URL。原稿の媒体が制作物の媒体と同じこと、画像や添付の src(references/ の下)が同じリビジョンにあることも確かめる。 |
| project フォルダ | magic-contract | magic://schemas/project/v2 の検査に合格する。項目は、レイアウト・スキーマ・自己完結・出所・グローバルコンポーネント・媒体プロファイル・HTML。制作物では、project.json の媒体が制作物の媒体と同じであることも確かめる。 |
名前の規則・ファイル形式・スキーマに合わないファイルは、登録や更新の時点で拒否します。そのため、保存されたアセットではこの 3 つは必ず合格し、合格した根拠として記録されます。媒体・CANVAS・原稿・project フォルダは、作業の途中で合わないことがあるので、保存したうえで不合格として記録します。
HTML の検査について
project フォルダの HTML は、Nu Html Checker で検査します。検査器を動かせない環境では html.checker_unavailable を記録し、結果は「未検査あり」になります。合格とは扱いません。
検査し直す
規格の版が上がると、同じアセットでも結果が変わることがあります。
- アセットのページの「検査し直す」で、今のリビジョンをその時点の規格でもう一度検査できます。
- 運用者は
php artisan assets:inspectで、まだ検査していないリビジョンや、古い版で検査したリビジョンをまとめて検査します。