gpt4 book ai didi

ruby-on-rails - heredoc 中没有显示换行符

转载 作者:太空宇宙 更新时间:2023-11-03 16:31:00 28 4
gpt4 key购买 nike

我有一个 heredoc 字符串

  html =<<EOF
<span>
Hello hello 123
</span>
<a>Link1</a>
<a>Link2Link2</a>
EOF

如果我说 puts html ,它将按原样提供 html,这意味着可以使用新行。如果我调用 p html我会得到没有换行符的 html。

然而,我真正需要做的是将此 html 转换为图片,并且它应该有 换行符。这是我的做法:

kit  = IMGKit.new html, quality: 30
# using Magick::Image ......
# some code which is not important....
img.write("my_gif.gif")

除了结果 html,正如我已经说过的,没有换行符,它只有一行:

<span>Hello hello 123</span><a>Link1</a><a>Link2Link2</a>

当然,如果我加上<br />标签,一切都会解决的。但出于某种原因我无法做到这一点,我不想使用 <br />并且仍然有换行符。

这不是IMGKit的问题或 Rmagic因为我很确定。

那么我该如何实现呢?

最佳答案

我同意 IMGKit 不是问题- 它正在做它应该做的事 - 呈现 HTML。 heredoc 也没有任何问题,并且您可以使用 Ruby 的 HTML 表示法做任何神奇的事情,以便在呈现时 HTML 源代码中的文字空白(空格,制表符,换行符)变得可见。

HTML 查看器最常见的源代码空白呈现方式是将任何长度的纯空白(无论是空格、制表符、换行符还是任何组合)呈现为单个空格 -> <-在 View 中。此外,一个元素结尾和另一个元素开头之间的空白通常会被完全忽略(尽管元素本身的呈现可能会导致 View 中的布局/间距效果)。

但是,您可以这样做:

kit  = IMGKit.new html.gsub(/\n/,"<br/>"), quality: 30

并在不添加 <br/> 的情况下呈现换行符到你的 heredoc。

关于ruby-on-rails - heredoc 中没有显示换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15942701/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com