Разверните массив yml с помощью Hugo Statics

Это мой первый пост на Stack Overflow, заранее спасибо за внимание. Я работаю над проектом, в котором мне нужен файл Yaml для загрузки некоторой информации в карты. Сайт сделан с Hugo и bootstrap 5. Структура генерируется, но Hugo показывает только последний массив из списка объектов, которые мне нужно показать. В чем будет проблема? Спасибо за ваше время! Надеюсь, вы сможете мне помочь.

      YML file content:

news     :
      path  : images/news.jpg
      title : Noticias
      subtitle : Lorem ipsum asibet
      text  : Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

      path  : images/news1.jpg
      title : Noticias1
      subtitle : Lorem ipsum asibet
      text  : Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.


      path  : images/news2.jpg
      title : Noticias2
      subtitle : Lorem 
      text : Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.





    {{ $data := index .Site.Data }}
    {{ with $data.news }}
    {{ range $data.news }}
    <div class="container-fluid" style="background-color: #F5EBDC">
        <div class="container mr-5 " style="background-color: #F5EBDC">
            <div class="px-0 rounded-3">
                <div class="row justify-content-center">
                    <div class="col-12 col-sm-12 col-md-12 col-lg-4 col-xl-4 col-xxl-4 scale-hover">
                        <div data-aos="fade-up" data-aos-duration="800" data-aos-mirror="true"
                            class="card aos-item m-5 card-shadow" style="background-color: #502314; border-radius: 2rem;">
                            <div  class="aos-item img-fluid card-img-top">
                                    <img src="{{ .path | relURL }}" class="d-block w-100" style="max-height: 45rem; object-fit: cover;" alt="...">
                            </div>
                            <div class="card-body">
                                <div class="container-fluid">
                                    <div class="row">
                                        <div class="col-9">
                                            {{ with .title }}
                                            <h2 class="card-title mt-1" style="color: #F5EBDC;"> {{ . }}</h2>
                                            {{ end }}
                                        </div>
                                        <div class="col-11 col-sm-4 col-md-3 col-lg-12 col-xl-4 col-xxl-2">
                                            <div class="badge text-wrap my-4 flex-end bk-color-1" style="background-color: #FF8732; color: #502314;">
                                                News <b></b>
                                            </div>
                                        </div>
                                        <div class="row">
                                            {{ with .subtitle }}
                                            <h5 class="card-subtitle mt-2" style="color: #F5EBDC;">
                                                {{ . }}
                                            </h5>
                                            {{ end }}
                                        </div>
                                    </div>
                                    <div class="row">
                                        <div class="col-12">
                                            {{ with .text }}
                                            <p class="card-text mb-4" style="color: #F5EBDC;">{{ . }}</p>
                                            {{ end }}
                                        </div>
                                </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
                <br>
        </div>
        </div>
    </div>
    {{ end }}
    {{ end }}

1 ответ

Похоже, ваш yaml уродлив. Массивы должны иметь тире или дефис для каждого элемента. Что-то типа:

      news:
  - 
    path  : images/news.jpg
    title : Noticias
    subtitle : Lorem ipsum asibet
    text  : Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

  - 
    path  : images/news1.jpg
    title : Noticias1
    subtitle : Lorem ipsum asibet
    text  : Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

  -
    path  : images/news2.jpg
    title : Noticias2
    subtitle : Lorem 
    text : Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Дополнительное обсуждение:YAML-эквивалент массива объектов в JSON

Другое дело, вы должны отказаться от использования {{ with ... }}... {{ end }}. Вы можете распечатать переменную без использования «с», например

{{ .title }}

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