Джекилл 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. Если вы не можете изменить редактор.

Другие вопросы по тегам