2

实际上,我遇到了问题,我无法使用 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 的使用就会非常有限。

4

1 回答 1

2

实际上,多亏了 Rafal Chmiel,问题所在才变得清晰起来。它是由jekyll rss-插件引起的,它(似乎)不能处理其他语言,只能处理英语。

我已将问题添加到 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 用于不仅有标准英文内容的网站的人吗?!!我是吗?否则,此类错误将是奇怪的行为。不?


更新:

说到这里“和” Jekyll,处理多语言字符的方法是使用HTML 实体,像这样:

---
title: "український"
---

将它们用引号括起来

此外,Jekyll 的团队认为:

一旦 v1.3 出现,尝试在您的 _config.yml 中分配 encoding: "utf-8" 并尝试不使用 HTML 实体。它应该自我纠正(希望如此)。

于 2013-10-08T21:59:17.653 回答