Sass-extending-sass

提供:Dev Guides
移動先:案内検索

Sassの拡張

SASSの機能を拡張して、ユーザーにさまざまなタイプの機能とカスタマイズを提供できます。 これらの機能を利用するには、Rubyの知識が必要です。

カスタムSASS関数の定義

Ruby APIを使用しながら、独自のSASS関数を定義できます。 次のコードに示すように、Rubyメソッドにカスタム関数を追加することにより、カスタム関数を追加できます-

module Sass::Script::Functions
   def reverse(string)
      assert_type string, :String
      Sass::Script::Value::String.new(string.value.reverse)
   end
   declare :reverse, [:string]
end

ご覧のコードでは、Function、declareは、関数の引数名を指定しています。 失敗した場合、関数が機能していても引数を受け入れず、任意のキーワード引数を取ります。 value_アクセサーを使用してRubyの値を取得し、_rgb、red、green、または_blue_を使用してカラーオブジェクトにアクセスできます。

キャッシュストア

SASSは解析されたドキュメントのキャッシュを保存します。キャッシュは再度解析せずに再利用できます。 SASSは*:cache_location *を使用して、キャッシュファイルをファイルシステムに書き込みます。 SASSファイルのコンパイルが高速化され、キャッシュされたファイルを削除すると、次回のコンパイル時に再び生成されます。 *:cache_store *オプションを設定して、独自のキャッシュストアを定義できます。 これにより、ファイルシステムにキャッシュファイルが書き込まれるか、キャッシュファイルがrubyプロセスまたはマシンに共有されます。 SASSは、_Sass
CacheStores :: Base_のサブクラスのインスタンスを使用して、キャッシュ結果を保存および取得します。

カスタムインポーター

SASSは_ @ import_を使用してSCSSおよびSASSファイルをインポートし、_ @ import_ルールにパスを渡して、指定されたパスの適切なパスコードを見つけます。 SASSインポーターは、ファイルシステムを使用してコードをロードし、データベースまたは異なるファイル命名スキームを使用してロードに追加します。

単一のインポーターは、単一のファイルをロードでき、ファイルシステムのパスとともに_:load_paths_配列に配置できます。 _ @ import_を使用している間、SASSはロードされたパスを探し、インポーターのパスをインポートします。 パスが見つかると、インポートされたファイルが使用されます。 ユーザーは *Sass
Importers :: Base* からインポーターを継承できます。