1

私はJekyllをCompassと一緒に使用しようとしています。あるコマンドラインで実行jekyll --autoしていて、別のコマンドラインで実行していcompass watchます。SASSファイルはにあり、/stylesheetsにコンパイルされ/_site/stylesheetsます。Jekyllはを無視するように構成されています/stylesheets

スタイルシートのコンパイルは最初は問題なく機能しますが、Jekyllがサイトを再生成するように変更するたびに、/_siteフォルダー全体が上書きされて/_site/stylesheetsなくなります。ソースSASSファイルが変更されていないため、Compassはそれを再生成しません。

JekyllをCompassと一緒に使用する別の方法はありますか?出力フォルダー全体を上書きせず、変更されたファイルのみを上書きするようにJekyllを構成できますか?

4

2 に答える 2

1

問題は、Jekyll を実行すると、_site ディレクトリのすべてのコンテンツが破棄されることです。これを回避する方法は、デプロイに rake を使用し、rakefile に次の内容を含めることでした。

task :generate => :clear do
    sh 'jekyll'
    sh 'compass compile'
end

次に実行します:

$ rake generate

これにより、jekyll ディレクトリが作成され、次にコンパス ファイルが配置されます。

より適切な解決策は、 compass -watch プロセス (それを実行していると仮定して) でコンパスを projectdir/css にコンパイルすることです。次に jekyll を実行すると、その css ディレクトリが _site/css に直接プルされ、問題なく完了します (ディレクトリ構造については以下を参照)。

projectdir/
    css/
    stylesheets/

_site/css に何かを入れてから jekyll を実行すると、それが削除されます。その後、compass を実行するか、コンパス ファイルをルート ディレクトリの css フォルダーに入れる必要があります。その後、jekyll はファイルを正しくコピーします。 .

于 2011-06-14T09:45:06.990 に答える
1

私のgithubページにはJekyllとCompassを使用しています。ここ: https://github.com/ardianzzz/ardianzzz.github.com

シンプルに、生成された css フォルダーをルート フォルダーに配置するだけです。Jekyll は_siteフォルダ内にファイルを生成します。

私のリポジトリでわかるように。

次のコードでCSSを呼び出すだけです

<link href = "/css/screen.css" ...

悪い英語、ごめんなさい。:)

于 2011-06-12T02:46:31.910 に答える