Я пытаюсь написать свой собственный плагин Jekyll для создания API-запроса из пользовательского тега. Я дошел до создания плагина и тега basi c, но я столкнулся с ограничениями своих навыков программирования, поэтому обращаюсь к вам за помощью.
Вот мой пользовательский тег для справки:
{% card "Arbor Elf | M13" %}
Вот прогресс на моем плагине:
module Jekyll
class Scryfall < Liquid::Tag
def initialize(tag_name, text, tokens)
super
@text = text
end
def render(context)
# Store the name of the card, ie "Arbor Elf"
@card_name =
# Store the name of the set, ie "M13"
@card_set =
# Build the query
@query = "https://api.scryfall.com/cards/named?exact=#{@card_name}&set=#{@card_set}"
# Store a specific JSON property
@card_art =
# Finally we render out the result
"<img src='#{@card_art}' title='#{@card_name}' />"
end
end
end
Liquid::Template.register_tag('cards', Jekyll::Scryfall)
Для справки, вот пример запроса с использованием вышеуказанных деталей (вставьте его в браузер, чтобы увидеть ответ, который вы получите обратно)
https://api.scryfall.com/cards/named?exact=arbor+elf&set=m13
Мои первые попытки после Googling заключались в использовании регулярного выражения для разбиения @text
на |
, например, так:
@card_name = "#{@text}".split(/| */)
Вместо этого это не сработало это выводит это:
[“A”, “r”, “b”, “o”, “r”, “ “, “E”, “l”, “f”, “ “, “|”, “ “, “M”, “1”, “3”, “ “]
Я также тогда не уверен, как получить доступ и сохранить определенные c свойства в ответе JSON. В идеале, я могу сделать что-то вроде этого:
@card_art = JSONRESPONSE.image_uri.large
Я хорошо знаю, я здесь много спрашиваю, но я бы хотел попытаться заставить это работать и учиться у него.
Спасибо за чтение.