Создание страниц Jekyll из папки JSON

Итак, у меня есть куча рецептов коктейлей в папке, каждый из которых имеет свое имя, например, отвертку.json или для взрослых-горячих-шоколадов.json с изображением с соответствующим названием, и каждый рецепт выглядит так:

{
"name": "Adult Hot Chocolate",
"description": "Appropriately named 'adult hot chocolate', this recipe is one of the easiest and most common ways to spike your cocoa. To make it, you will simply add a shot of peppermint schnapps to your favorite hot chocolate and a delicious, warm drink is yours to enjoy.",
"github": "thesanjeevsharma",
"ingredients": [
    {
        "quantity": "2",
        "measure": "oz",
        "ingredient": "Peppermint Schnapps"
    },
    {
        "quantity": "6",
        "measure": "oz",
        "ingredient": "Hot Chocolate"
    },
    {
        "quantity": "",
        "measure": "",
        "ingredient": "Garnish: ​whipped cream"
    },
    {
        "quantity": "",
        "measure": "",
        "ingredient": "Garnish: chocolate sprinkles or shaved chocolate"
    }
],
"directions": [
    "Gather the ingredients.",
    "Pour the schnapps into a warm mug or Irish coffee glass.",
    "Fill with hot chocolate.",
    "Stir well.",
    "Optionally, top with whipped cream and chocolate sprinkles or shaved chocolate.",
    "Serve and enjoy!"
],
"image": "adult-hot-chocolate.jpg",
"keywords": [
    "chocolate",
    "peppermint",
    "schnapps"
]
}

Я хочу создать макет и случайным образом выбрать один рецепт и изображение для показа на своем веб-сайте. Я знаю, как это сделать, если бы все они были в одном большом документе YAML, но мне непонятно, как сказать Jekyll анализировать отдельные файлы, чтобы я мог сослаться на один из них случайным образом.

Другая возможность состоит в том, чтобы объединить их в один большой json, но тогда я не мог бы так же легко извлекать новые рецепты из первоисточника.

Любая помощь будет принята с благодарностью!

Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
1
0
489
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Пожалуйста, ознакомьтесь с документацией по данным jekyll.

Поэтому вам нужно создать папку _data, когда ее еще нет.

Затем скопируйте cocktail файл json во вложенную папку, например. _data/cocktails.

Чтобы прочитать список коктейлей, вам нужно создать страницу с html или уценкой.

Содержимое html может быть примерно таким

---
layout: default
title: "My Cocktails"
---

<ul>
{% for file in site.data.cocktails%}
{% assign cocktail = file[1] %} {% comment %}The assign is needed, because we have different json files!{% endcomment %}
  <li><strong>{{ cocktail.name }}</strong> - {{ cocktail.description}}</li>
{% endfor %}
</ul>

Спасибо! Я читал документацию пару раз, я просто не очень опытен, поэтому немного не понял о назначении. Что делает файл [1]? Почему это не файл [0], например. Мой гуглинг не может найти других примеров такого использования. В очередной раз благодарим за помощь.

cfn 25.12.2020 22:52

Привет. Мне нужно провести небольшое исследование, где я нашел файл[1]... Но что более важно, работает ли он у вас?

KargWare 25.12.2020 22:59

Вот пост к индексу массива, stackoverflow.com/a/56177784/10655742

KargWare 25.12.2020 23:15

Да! Спасибо! После реализации вашего ответа для главной страницы напитков, в которой перечислены все из них, я понял, что генератор страниц данных, который я использовал для своих страниц рецептов (сгенерированный из одного большого файла), также может работать с отдельными файлами, и это сработало.

cfn 26.12.2020 23:23

Не уверен, хотите ли вы взглянуть, но у меня возникла проблема, связанная с созданием страниц с использованием правильного URL-адреса: stackoverflow.com/questions/65620610/…

cfn 07.01.2021 23:15

Другие вопросы по теме