Джекилл LF/CRLF проблема с Git
У меня есть папка Jekyll, в которой только производственная часть (_site
) отслеживается с помощью мерзавца. Когда я запускаю команду для обслуживания локального сайта с jekyll serve -w
файлы будут изменены на LF или CRLF в зависимости от машины, на которой я работаю: CRLF для Windows, LF для Mac. Это действительно раздражает, потому что все мои файлы внутри _site
будет совершаться каждый раз, когда я переключаю свою ОС.
Я пытался исправить это в файле конфигурации git с autocrlf = false
, но так как файлы генерируются Jekyll на более высоком уровне, похоже, это никак не повлияет.
Есть ли способ сказать Jekyll генерировать все файлы в определенном формате, LF или CRLF?
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. Если вы не можете изменить редактор.