【问题标题】:Jekyll LF/CRLF issue with gitgit 的 Jekyll LF/CRLF 问题
【发布时间】:2014-10-30 04:13:24
【问题描述】:

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

我尝试使用 autocrlf = false 在 git 配置文件中修复此问题,但由于文件是由 Jekyll 在更高级别生成的,因此似乎根本没有影响。

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

【问题讨论】:

    标签: git newline jekyll lf


    【解决方案1】:

    三个明显的解决方案:

    第一个解决方案: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 build 时自动运行。

    第二种解决方案:配置您的代码编辑器

    将您的代码编辑器配置为使用 LF。如果不能,请更换编辑器。

    【讨论】:

    • 不幸的是,第一个解决方案对我不起作用。运行jekyll build 无论如何都会在 Windows 上将文件格式切换为 CRLF。我想我会试试 Vagrant。
    • 我已经编辑了答案:添加了将您的代码编辑器配置为使用 LF 而不是 CRLF
    • 我最终使用了第二种解决方案并将我的编辑器设置设置为使用 Unix,从而解决了问题。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2015-04-23
    • 1970-01-01
    • 2017-08-30
    • 2014-09-05
    • 2020-10-16
    • 1970-01-01
    • 2016-05-19
    • 1970-01-01
    相关资源
    最近更新 更多