繁体   English   中英

Jekyll LF / CRLF问题与git

[英]Jekyll LF/CRLF issue with git

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

我试图用autocrlf = false在git config文件中修复此问题,但是由于文件是Jekyll在更高级别生成的,因此似乎完全没有影响。

有没有办法告诉Jekyll以LF或CRLF的特定格式生成所有文件?

三种明显的解决方案:

第一个解决方案:Jekyll插件

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

这个插件重载了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。 如果不能,请更改编辑器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM