【发布时间】:2018-04-30 12:17:05
【问题描述】:
我们正在尝试将网站移至 Jekyll,并使用 BS4 主题。为了使其对内容管理器用户友好,我在页面布局中放置了以下内容:
<div class="container">
<div class="row">
<div class="col-md-12">
{{ content }}
</div>
</div>
</div>
但是,我想创建一个液体标签或过滤器,以允许将全角图像注入页面中间。这将关闭图像上方的三个容器div,写出图像,并在下面创建新的div,并继续写入markdown文件。即
{% fullwidth xenia-map.png %}
会在页面中间产生类似这样的东西:
</div>
</div>
</div>
<img src="input.jpg" class="img-responsive" />
<div class="container">
<div class="row">
<div class="col-md-12">
我已经能够创建一个过滤器和一个标签(类),它们将完成 80%,但是两者都不会在输出的开头写出结束标签。我刚刚得到<img> 标签。
这是我的课:
class FullWidth < Liquid::Tag
def initialize(tag_name, image, tokens)
super
@image = image.strip
end
def render(context)
"</div></div></div><img src='uploads/#{@image}' class='img-responsive'>"
end
end
Liquid::Template.register_tag('fw', FullWidth)
【问题讨论】:
-
尝试将 .html_safe 添加到您的 html 字符串周围的引号末尾
-
@DivXZero 它会为未定义的 html_safe 方法引发错误。有什么想法吗?