实际上,我遇到了问题,我无法使用 jekyll 在本地编译站点。当我尝试添加任何非“标准”(英语)字符时,我收到此错误(我什至不知道如何表征这些字符,因为我仍然使用包含所有这些字符的 Unicode)。
Generating... error: incompatible encoding regexp match
(UTF-8 regexp with IBM866 string). Use --trace to view backtrace
我尝试了不同语言的字母:德语、波兰语、乌克兰语/俄语 (ä ü ß ę ł є ї л),但结果始终相同 - 错误 .
我在 jekyll 配置 (_config.yml) 中有这个设置。我的 Ruby 本地版本是 1.9.3(而且我实际上只需要本地版本,因为使用预编译文件方法 - 而不是 jekyll-server)。
encoding: UTF-8
markdown: redcarpet
(也尝试过 Markdown :maruku)
我想,这确实是更多与 Ruby 相关的错误,因为当我在标题中使用列出的字符时
---
title: ä ü ß ę ł є ї л
---
它工作得很好(这些字符在编译的页面中表现得很好),但当它们被添加到页面正文中进行解析时就不行了。但是,我不是 Ruby 开发人员,也不是一个能够轻松找到源代码来解决问题的人。
如果不可能使用这些字符,那么 Jekyll 的使用就相当有限。
最佳答案
实际上,多亏了拉法尔·奇米尔 (Rafal Chmiel),问题出在哪里已经很清楚了。 这是由 jekyll rss-plugin 引起的,它(似乎)不能处理其他语言,只能处理英语。
我已添加issue into github 。 只是此刻停止使用该插件。
这对于使用任何其他插件的任何其他用户来说非常有用,这些插件可能会导致一些其他错误。
尝试追踪 Jekyll 看看到底发生了什么:
jekyll build --trace
更新:
更多调查显示插件内部的问题是 Maruku markdown 解析方法。实际上,它会导致错误,因为据我了解,rss 插件默认使用该代码(即使在 Jekyll 设置中选择了任何其他“markdown: ...”方法)。
我尝试过:
markdown: maruku
(没有任何插件)并遇到了完全相同的问题,这告诉我“使用 maruku markdown 转换时,Jekyll 的多语言支持不可用”之类的信息。
还有更新:
一些进一步的调查确实显示了实际上 Jekyll 解析器存在问题。我的“标题:[not-standard-unicode-characters]”起作用的方式是因为我的编辑器在文件开头插入了BOM:然后redcarpet不会将头部部分处理为头部部分,但就像一些文本一样,只是像平常的文本一样生成文本。
但是,当我删除 BOM 时,出现了新错误(与上面的错误不同,而且与编码相关) :
... test21.markdown: invalid byte sequence in UTF-8
... gems/jekyll-1.2.1/lib/jekyll/excerpt.rb:110:in `scan': invalid byte sequence in UTF-8 (ArgumentError)
标题文本是:
---
layout: post
title: український заголовок
---
український текст
some other text
我已将问题请求添加到Jekyll github中.
一般来说,让我好奇的是,因为我是第一个尝试使用 Jekyll 来创建不仅有标准英语内容的网站的人?!!我是吗?否则,此类错误将是奇怪的行为。没有?
更新:
发言后"with" Jekyll here ,处理多语言字符的方法是使用 HTML 实体,如下所示:
---
title: "український"
---
将它们用引号引起来。
另外,Jekyll 团队的想法是:
Once v1.3 comes out, try assigning encoding: "utf-8" in your _config.yml and trying without the HTML entities. It should correct itself (hopefully).
关于ruby - Jekyll 有多语言支持吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19253288/