Jekyll LF/CRLF与git的问题



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

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

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

三个显而易见的解决方案:

第一个解决方案:Jekyll插件

要用LF全局替换CR或CRLF,最简单的方法是在将文件写入目标时执行此操作。

这个插件重载了Jekyll:Convertable.write方法:

module Jekyll
  module Convertible
    def write(dest)
      ### begin overloading
      # Replaces CR and CRLF by LF
      self.output = self.output.gsub(/rn?/, "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。若不能,请更改编辑器。

相关内容

  • 没有找到相关文章

最新更新