Jekyll frontmatter 中的 Liquid 变量......并在 Jekyll 插件中使用它
Liquid variable in Jekyll frontmatter ... and use it in a Jekyll plugin
我非常喜欢通过 jekyll-liquify 插件在 Jekyll frontmatter 中使用 Liquid 变量的可能性:
module LiquidFilter
def liquify(input)
Liquid::Template.parse(input).render(@context)
end
end
Liquid::Template.register_filter(LiquidFilter)
效果很好,但我想更进一步,使用插件 jekyll-image-size 从 frontmatter
中作为液体变量给出的图像中读取图像大小
image: '{{ page.myimage }}'
...所以我需要在 jekyll-image-size 插件中实现上面的解析器
...
class ImageSizeTag < Liquid::Tag
def initialize(tagName, content, tokens)
super
@content = content.strip
@tokens = tokens
end
...
我不知道 ruby 所以我不知道该怎么做,但我想应该不会太复杂。感谢您的帮助!
非常简单的解决方案,使用分配或捕获以及钩子或 jekyll 的液化插件:
{% assign image = page.myimage | liquify %}
{% imagesize image:size %}
或
{% capture image %}{{ page.myimage | liquify }}{% endcapture %}
{% imagesize image:size %}
...如果您想在 frontmatter 中使用一个变量来包含来自另一个变量的图像并使用 jekyll-image-size 插件,则需要...可能对其他插件也有用。
我非常喜欢通过 jekyll-liquify 插件在 Jekyll frontmatter 中使用 Liquid 变量的可能性:
module LiquidFilter
def liquify(input)
Liquid::Template.parse(input).render(@context)
end
end
Liquid::Template.register_filter(LiquidFilter)
效果很好,但我想更进一步,使用插件 jekyll-image-size 从 frontmatter
中作为液体变量给出的图像中读取图像大小image: '{{ page.myimage }}'
...所以我需要在 jekyll-image-size 插件中实现上面的解析器
...
class ImageSizeTag < Liquid::Tag
def initialize(tagName, content, tokens)
super
@content = content.strip
@tokens = tokens
end
...
我不知道 ruby 所以我不知道该怎么做,但我想应该不会太复杂。感谢您的帮助!
非常简单的解决方案,使用分配或捕获以及钩子或 jekyll 的液化插件:
{% assign image = page.myimage | liquify %}
{% imagesize image:size %}
或
{% capture image %}{{ page.myimage | liquify }}{% endcapture %}
{% imagesize image:size %}
...如果您想在 frontmatter 中使用一个变量来包含来自另一个变量的图像并使用 jekyll-image-size 插件,则需要...可能对其他插件也有用。