ライブラリプロファイル
計画段階です。以下の検出方針は決定済みですが、実装はまだです。
annealer は、ライブラリ(UI キットや CSS フレームワーク)固有のルール設定に対応する予定です。これはコードの分岐を増やすのではなく、既存のプロファイルの仕組みを再利用します。
- 属性グループ
- 要素の種類ごとの
layout.selfClosing - 正規化オプション
- クラスの値の順序(値の並べ替えを参照)
ライブラリプロファイルがこれらを拡張・上書きできるよう、仕組みは汎用的でデータ駆動のまま保ちます。プロファイルの合成(extends)や、タグ・コンポーネント単位の上書きが必要になる見込みです。
検出方針
パッケージ内の annealer.yaml で検出する
パッケージのルートに annealer.yaml があれば、そのパッケージはライブラリプロファイルを提供しているとみなします。判定材料はこのファイルの有無だけです。パッケージ名の規約は使わず、パッケージの中身から推測もしません。
既定では直接の依存関係のみ
走査するのはプロジェクトの直接の依存関係だけです。推移的な依存関係は、ライブラリ作者が明示的にオプトインした場合にだけ含めます。たとえば Bootstrap ベースの UI キットは、自身の annealer.yaml で Bootstrap のプロファイルを引き継ぐことを宣言できます。
依存関係ツリーの奥深くにパッケージがあるからといって、プロジェクトのマークアップがそのクラスを使っているとは限らないためです。
検出と適用を分ける
検出は候補を見つけて報告するだけです。プロファイルが適用されるのは、ユーザーが設定で明示的に指定したときだけです。
依存関係をインストール・更新しただけで annealer の出力が変わることは、決してあってはなりません。
Bootstrap
Bootstrap については、下書きのプロファイルを添えて仕組みを Bootstrap プロジェクトに提案し(v6 は開発中)、クラス順を Bootstrap 自身が持つようにする計画です。そのためには、まずプロファイル形式を安定させ、文書化する必要があります。