Jekyll использует data-src для изображений

Используя Jekyll, я пытаюсь использовать data-src вместо src для всех своих изображений.

Каков наилучший способ сделать это? Создать собственный плагин? Я не думаю, что использование include - отличный вариант...

Прямо сейчас я добавляю изображения следующим образом:

![my alt text]({{"http://example.com/myImage.gif"}})

Я видел проблемы, связанные, но ответы всегда рекомендуют использовать внешние библиотеки. Нет ли более прямого способа пойти на это?


person Alvaro    schedule 23.11.2017    source источник


Ответы (2)


Как предложил @JoostS, вы можете создать плагин, а именно пользовательский жидкий тег.

Например, используя:

<p>{% render_img http://example.com/myImage.gif "my alt text" %}</p>

Вы можете установить плагин render_img в _plugins/images.rb:

module Jekyll
  class RenderImgTag < Liquid::Tag

    def initialize(tag_name, variables, tokens)
      super
      @variables = variables.split(" ", 2)
      @url = @variables[0]
      @alt = @variables[1]
    end

    def render(context)
      "<img data-src='#{@url}' alt='#{@alt}' />"
    end
  end
end

Liquid::Template.register_tag('render_img', Jekyll::RenderImgTag)
person marcanuy    schedule 23.11.2017
comment
Спасибо. Работай. - person Fatih Hayrioğlu; 21.03.2018

Да, я думаю, что создание собственных плагинов здесь (единственное) правильное решение. Включает в себя загрязненный контент, и javascript здесь не подходит.

person JoostS    schedule 23.11.2017
comment
Что касается создания плагинов... я действительно не нахожу очень четких или прямых документов. У меня проблемы с созданием тега <img. Даже при использовании ` ‹‹-MARKUP.strip` кажется, что он отображается закодированным. - person Alvaro; 23.11.2017