实际上,我碰到了问题,我无法用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
(也尝试过降价:maruku)
我猜,这真的是与Ruby相关的错误,因为当我在标题中使用列出的字符时
---
title: ä ü ß ę ł є ї л
---
它工作得很好(并且这些字符在编译页面中非常好),但是当它们被添加到页面主体中进行解析时却没有。但是,我不是Ruby开发人员,也不是能够轻松找到解决问题的地方的人。
如果不能使用这些角色,那么这会让Jekyll的使用非常有限。
答案 0 :(得分:1)
实际上,多亏了Rafal Chmiel,很清楚这是什么问题。 它是由jekyll rss-plugin引起的,它似乎不能处理其他语言而只能处理英语。
我添加了issue into github。 暂时停止使用该插件。
这对使用任何其他插件的任何其他用户都有用,这可能会导致其他一些错误。
尝试追踪 Jekyll,看看到底发生了什么:
jekyll build --trace
更新
更多调查显示插件内部的问题是Maruku markdown解析方法。实际上,它会导致错误,因为我理解rss-plugin默认使用该代码(即使在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: "український"
---
将它们包装在引号中。
此外,杰基尔的团队认为:
v1.3发布后,尝试分配编码:“utf-8” _config.yml并尝试没有HTML实体。它应该纠正自己(希望如此)。