Jekyll有多语言支持吗?

时间:2013-10-08 16:30:28

标签: ruby markdown jekyll static-site

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

1 个答案:

答案 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: "&#1091;&#1082;&#1088;&#1072;&#1111;&#1085;&#1089;&#1100;&#1082;&#1080;&#1081;"
---

将它们包装在引号中

此外,杰基尔的团队认为:

  

v1.3发布后,尝试分配编码:“utf-8”   _config.yml并尝试没有HTML实体。它应该纠正自己(希望如此)。