0

プロダクション部分 ( _site) のみが git で追跡される Jekyll フォルダーがあります。でローカル サイトにサービスを提供するコマンドを実行するとjekyll serve -w、作業しているマシンに応じて、ファイルが LF または CRLF に変更されます。Windows の場合は CRLF、Mac の場合は LF です。_siteOSを切り替えるたびに、内部のすべてのファイルがコミットされるため、これは本当に面倒です。

を使用して git 構成ファイルでこれを修正しようとしましたautocrlf = falseが、ファイルは Jekyll によってより高いレベルで生成されるため、まったく影響がないようです。

LF または CRLF のいずれかの特定の形式ですべてのファイルを生成するように Jekyll に指示する方法はありますか?

4

1 に答える 1

1

3つの明白な解決策:

最初の解決策: Jekyll プラグイン

CR または CRLF を LF にグローバルに置き換える最も簡単な方法は、ファイルが宛先に書き込まれるときに行うことです。

このプラグインは Jekyll:Convertible.write メソッドをオーバーロードします:

module Jekyll
  module Convertible
    def write(dest)
      ### begin overloading
      # Replaces CR and CRLF by LF
      self.output = self.output.gsub(/\r\n?/, "\n")
      ### end overloading

      path = destination(dest)
      FileUtils.mkdir_p(File.dirname(path))
      File.open(path, 'wb') do |f|
        f.write(output)
      end
    end
  end
end

これを _plugins/crlf.rb に保存すると、jekyll ビルド時に自動的に実行されます。

2 番目の解決策: コード エディターを構成する

LF を使用するようにコード エディターを構成します。できない場合は、エディターを変更してください。

于 2014-09-05T12:05:29.473 に答える