[[请参阅问题末尾的注释,关于这是一个重复的问题。]
我有一个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 {},以便我可以在文章正文中继续使用它?
((注:这是[[0]]的副本[[not。此问题涉及需要更正的液体模板代码,而不是文章文本。)]
1]尽管
answer相同,但问题不相同。我发布这个问题时甚至不建议再问这个问题,如果确实如此,这表明有我问题的人可能不(因为我不知道)知道问这个问题另一种方式。
2)我想保持不变的不是Jekyll
代码,它是Ruby代码。我已经相应地更新了标题。3)存在另一种解决方案,不适用于其他问题。我无法添加答案,我想是因为问题被标记为重复,但这是我的问题:One
对此问题的答案是将代码包装在How to prevent jekyll code running within markdown code blocks和{% raw %}
标签中。另一个解决方案是使用Ruby构造的替代形式,例如{% endraw %}
而不是%q( )
。后者对我来说更可取,因为我在非Jekyll环境中使用了相同的markdown文本。%q{ }
中,%q{%-40s %-s} % [a[0] + %q{.rb}, a[1]]
解释为未打开的液体打开标签。因此错误。{%
将完全打印您想要的内容,而不会被Liquid解释。