[См. Примечание в конце вопроса о том, что это дублирующий вопрос.]
У меня есть статья в блоге Github Pages (на https://bbs -software.com / blog / 2019/04 /14 / boost-your-shell-scripting-with-ruby-and-rexe.html , источник в https://github.com/keithrbennett/keithrbennett.github.io/blob/master/blog/_posts/2019-04-14-boost-your-shell-scripting-with-ruby-and-rexe.md), который включает следующий код Ruby:
%q{%-40s %-s} % [a[0] + %q{.rb}, a[1]]
Когда я запускаю jekyll s
для локального тестирования, я получаю эту ошибку:
Liquid Exception: Liquid syntax error (line 1011): Tag '{%' was not properly terminated with regexp: /\%\}/...
Когда я изменяю текст, чтобы использовать круглые скобки вместо фигурных скобок (альтернативный Rubyсинтаксис) ошибки нет (ниже вывод git diff
):
-%q{%-40s %-s} % [a[0] + %q{.rb}, a[1]]" # Error
+%q(%-40s %-s) % [a[0] + %q(.rb), a[1]]" # Ok
Есть ли какой-нибудь способ избежать% q {}, чтобы я мог продолжать использовать его в тексте статьи?
(Примечание. Это , а не , дубликат Как исправить: исключение для жидкости: тег '{%' не был правильно завершен с помощью регулярного выражения: / \% \} /? . Эта проблема касалась жидкого шаблонного кода, который нуждался в исправлении, а не текста статьи.)
[Примечание: было заявлено, что этот вопрос является точной копией Как предотвратить запуск кода jekyll в блоках кода уценки .
1) Хотя ответ идентичен, вопрос не в этом.Я не думаю, что на этот другой вопрос даже предлагалось получить ответ, когда я разместил этот вопрос, и если это действительно так, то это доказательство того, что кто-то с моим вопросом может (как я не знал) задать вопросдругим способом.
2) Это не код Jekyll , который я хочу оставить нетронутым, это код Ruby .Я обновил название соответственно.
3) Есть альтернативное решение, которое не относится к другому вопросу.Я не могу добавить ответ, наверное, потому что вопрос помечен как дубликат, но вот мой:
Один ответ на этот вопрос заключается в переносе кода в {% raw %}
и {% endraw %}
теги.Другое решение заключается в использовании альтернативной формы конструкции Ruby, такой как %q( )
вместо %q{ }
.Последнее было предпочтительнее для меня, потому что я использовал тот же текст уценки в среде, отличной от Jekyll.