我有一个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。若不能,请更改编辑器。