0

我有一个 Jekyll 文件夹,其中只有生产部分 ( _site) 用 git 跟踪。当我运行命令为本地站点提供服务时jekyll serve -w,文件将根据我正在使用的机器更改为 LF 或 CRLF:CRLF for Windows,LF for Mac。这真的很烦人,因为_site每次我切换操作系统时都会提交我里面的所有文件。

我试图在 git config 文件中修复这个问题autocrlf = false,但是由于这些文件是由 Jekyll 在更高级别生成的,所以它似乎根本没有影响。

有没有办法告诉 Jekyll 以特定格式生成所有文件,无论是 LF 还是 CRLF ?

4

1 回答 1

1

三个明显的解决方案:

第一个解决方案: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构建时自动运行。

第二种解决方案:配置您的代码编辑器

将您的代码编辑器配置为使用 LF。如果不能,请更改编辑器。

于 2014-09-05T12:05:29.473 回答