Github Pages Jekyll博客文章中的文本Ruby%q {}上的液体模板扼流圈

问题描述 投票:0回答:1

[[请参阅问题末尾的注释,关于这是一个重复的问题。]

我有一个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。此问题涉及需要更正的液体模板代码,而不是文章文本。)]


[注:已经指出,这个问题与How to fix: Liquid Exception: Tag '{%' was not properly terminated with regexp: /\%\}/?完全相同。

1]尽管

answer相同,但问题不相同。我发布这个问题时甚至不建议再问这个问题,如果确实如此,这表明有我问题的人可能不(因为我不知道)知道问这个问题另一种方式。

2)我想保持不变的不是

Jekyll

代码,它是Ruby代码。我已经相应地更新了标题。3)存在另一种解决方案,不适用于其他问题。我无法添加答案,我想是因为问题被标记为重复,但这是我的问题:

One

对此问题的答案是将代码包装在How to prevent jekyll code running within markdown code blocks{% raw %}标签中。另一个解决方案是使用Ruby构造的替代形式,例如{% endraw %}而不是%q( )。后者对我来说更可取,因为我在非Jekyll环境中使用了相同的markdown文本。
ruby jekyll github-pages liquid
1个回答
0
投票
%q{ }中,%q{%-40s %-s} % [a[0] + %q{.rb}, a[1]]解释为未打开的液体打开标签。因此错误。

{%

将完全打印您想要的内容,而不会被Liquid解释。
© www.soinside.com 2019 - 2024. All rights reserved.