С помощью некоторых людей здесь я собрал плагин Jekyll, который позволяет мне легко ссылаться на карту MTG из Scryfall.
Вот код плагина:
module Jekyll
class Scryfall < Liquid::Tag
include HTTParty
def initialize(tag_name, text, tokens)
super
@text = text
end
def render(context)
# Assign name to a variable and strip leading or trailing whitespace
@card_name = @text.strip
# Construct Scryfall request url
request = HTTParty.get "https://api.scryfall.com/cards/named?exact=#{CGI.escape(@card_name)}"
# Parse the JSON response
response = JSON.parse(request&.body)
# Assign the "normal" art to a variable
@card_art = response['image_uris']['normal']
# Render the card
"<img alt='#{@card_name}' src='#{@card_art}' />"
end
end
end
Liquid::Template.register_tag('card', Jekyll::Scryfall)
Вот пример API-вызова Scryfall для конкретной c карты (чтобы вы могли видеть ответ).
Scryfall запрашивает задержку в 100 мс между запросами. Так как этот плагин запускается при сборке или обновлении sh, и мои статьи будут ссылаться на этот плагин более 50 раз за пост, я хотел бы уважать это. Как я могу добавить задержку между каждым запросом?