サードパーティのスクリプトを開発しています。スクリプトが埋め込まれているページに独自のスタイルシートを追加しています。現在、スタイルはJavaScriptの長い文字列です。これはばかげていますが、スタイルリンクを追加して別のhttpリクエストを作成するよりも高速です。
Facebook SDKを見ると、ファイル名の配列であるこのようなことを行うphpスクリプトがJS_FILES
ありCSS_FILES
ます。
// all.js
foreach ($JS_FILES as $file) {
echo file_get_contents($file);
}
$css = '';
foreach ($CSS_FILES as $file) {
$css .= file_get_contents($file);
}
// css URLs are relative to facebook domains
$css = preg_replace('#url\(/#', 'url(http://static.ak.fbcdn.net/', $css);
echo 'FB.Dom.addCssRules(' . json_encode($css) . ', ["pkg"])';
そのため、cssはJSONに変換されFB.Dom.addCssRules
、ページにスタイルを追加する関数に送信されます。
JS文字列でcssを書くのはばかげています。私は自分のスタイルでSCSSを利用したい、構文を強調したい、そして合理的な環境で開発したい。
このことを実現するために、アセットパイプライン/スプロケット/チルトに接続するにはどうすればよいですか?
私はクレイジーで優れたルビー開発者ではないので、コード例は大きなプラスです。
編集:アセットパイプラインのドキュメントを確認しましたが、実際にフックする方法が見つかりませんでした。私が見る唯一のオプションは、デフォルトの変換を呼び出し、出力をJS文字列に変換して関数に送信するTranfsormクラスを作成することです。どうすればいいのかよくわかりません。.jscss
パイプラインを狂わせずにファイルを要求できるかどうかはわかりません。もう1つのオプション(非常によく似ています)は、Black Coffeeのような宝石を書くことです。これも、これをどのように実装すればよいかわかりません。