Jekyll поддерживает несколько языков?

Собственно, я столкнулся с проблемой, что не могу локально скомпилировать сайт с помощью 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

(тоже пробовал уценку: маруку)

Я думаю, это действительно больше ошибка, связанная с Ruby, потому что, когда я использую перечисленные символы в заголовке

---
title: ä ü ß ę ł є ї л
---

он прекрасно работает (и эти символы прекрасно живут на скомпилированных страницах), но не тогда, когда они добавляются в тело страницы для анализа. Но, тем не менее, я не разработчик Ruby и не тот, кто мог бы легко найти место для решения проблемы в источниках.

Если использование таких символов невозможно, то это делает использование Jekyll довольно ограниченным.

1 ответ

На самом деле, благодаря Рафалу Чмелю, стало ясно, в чем проблема. Это было вызвано jekyll rss- плагином, который (кажется) не может иметь дело с другими языками, кроме только английского.

Я добавил вопрос в GitHub. Просто перестал использовать этот плагин на данный момент.

Это может быть полезно для любого другого пользователя, который использует любые другие плагины, которые могут вызвать некоторые другие ошибки.

Просто попробуйте отследить Джекилла, чтобы увидеть, что на самом деле происходит:

jekyll build --trace

обновлено:

Еще несколько исследований показали, что проблема внутри плагина - это метод анализа разметки Maruku. На самом деле, это вызывает ошибку, так как rss-плагин использует этот код по умолчанию, как я понимаю (даже если какой-либо другой метод markdown:... выбран в настройке Jekyll).

Я старался:

markdown: maruku

(без каких-либо плагинов) и получил точно такую ​​же проблему, которая говорит мне что-то вроде " Многоязычная поддержка Jekyll недоступна при использовании преобразования уценки maruku " в настоящий момент.


еще одно обновление:

некоторые дальнейшие исследования показали проблему с Jekyll-парсером. Причина, по которой мой "title: [not-standard-unicode-characters]" сработал, заключается в том, что мой редактор вставил спецификацию в начало файла: redcarpet затем не обрабатывает головную часть как головную часть, а просто как некоторый текст и просто генерирует текст как обычный текст.

Однако когда я удалил спецификацию, появилась новая ошибка (отличная от указанной выше, но также связанная с кодировкой):

... 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: "український"
---

оборачивая их в кавычки.

Кроме того, команда Джекилла подумала:

Как только выйдет v1.3, попробуйте назначить кодировку: "utf-8" в вашем _config.yml и попробуйте без сущностей HTML. Это должно исправить себя (надеюсь).

Другие вопросы по тегам