Переменная Liquid в Jekyll frontmatter ... и использовать ее в плагине Jekyll - PullRequest
1 голос
/ 22 января 2020

Мне очень нравится возможность использовать переменные Liquid в Jekyll frontmatter через плагин jekyll-liquify :

module LiquidFilter
  def liquify(input)
    Liquid::Template.parse(input).render(@context)
  end
end

Liquid::Template.register_filter(LiquidFilter)

прекрасно работает, но я хочу go на шаг вперед и считайте размер изображения с помощью плагина 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, поэтому я понятия не имею, как это сделать, но я думаю, это не должно быть слишком сложным. Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 25 января 2020

довольно простое решение, использующее метод присвоения или захвата и ловушку или плагин ликвидирования для jekyll:

{% assign image = page.myimage | liquify %}
{% imagesize image:size %}

или

{% capture image %}{{ page.myimage | liquify }}{% endcapture %}
{% imagesize image:size %}

... просто необходимо, если вы хотите использовать переменная в frontmatter для включения изображения из другой переменной и использования плагина jekyll-image-size ... может быть полезно и для других плагинов.

https://github.com/gemfarmer/jekyll-liquify

http://acegik.net/blog/ruby/jekyll/plugins/howto-nest-liquid-template-variables-inside-yaml-front-matter-block.html

...