Жидкие шаблонные дроссели на Ruby% q {} в тексте поста в блоге Github Pages Jekyll - PullRequest
0 голосов
/ 24 сентября 2019

[См. Примечание в конце вопроса о том, что это дублирующий вопрос.]

У меня есть статья в блоге 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.

...