5

.less パラメータを DB に保存したいのですが、ユースケースの例として、ユーザーごとに好みに応じて色が変わることがあります。

これを行う最善の方法は、すべての .less ファイルを解析してパラメーターを取得することだと思います。ユーザーは、ユーザーに対して DB に保存するパラメーターを設定できます。less ファイルが要求されると、ハンドラー オーバーロードが DB にパラメーターを照会できます。その後、ハンドラーは、パラメーターが設定された css を出力できます。

質問: - .less ファイルからパラメーターのリストを取得するにはどうすればよいですか? - .less ファイルにパラメーター (キーと値のペア) の配列を取り、css を出力するにはどうすればよいですか?

すべて dotless フレームワークを使用しています。

4

2 に答える 2

3

返信が遅くなるかもしれませんが、データベースに保存されているユーザーに基づいてカスタム カラーを使用するという要件に似た処理を行いました。

私たちの解決策は、https://github.com/dotless/dotlessで利用できる dotless のソースにカスタム コードを追加することでした。

そのため、解析中に、置換したい部分を文字列で置換しただけです。このアプローチの唯一の欠点は、毎回ソースを再マージする必要がある新しい dotless dll の更新されたビルドを取得することです。

編集 コードスニペットの例を次に示します。

dotless.Core.Utils.HslColor hslcolor = dotless.Core.Utils.HslColor.FromRgbColor( new dotless.Core.Parser.Tree.Color( "187AAB" );
                hslcolor.Lightness = 0.93;
                var hexString = '#' + ( hslcolor.ToRgbColor().RGB.Select( i => ( ( int )i ).ToString( "X2" ) ).Aggregate( ( a, b ) => a + b ) ).ToLowerInvariant();
                var resultColor = hexString;
于 2012-06-06T12:59:13.553 に答える
2

.Net で実行している場合、 dotless を使用すると、評価前に実行するビジターになるプラグインを指定できます。これは、抽象度の低い構文ツリー内のすべてのノードにアクセスするため、すべての変数を簡単に判別できます。Dotless では、変数ファイルを生成できるように、パターンを指定することもできます。

しかし、それはおかしい..すべての変数を「マスターコピー」としてデータベースに保存することを検討し、少ないものを解析する必要がないようにすることをお勧めします。

于 2012-05-29T16:11:02.267 に答える