Запрос вложенных параметров в Hugo

У меня есть следующая конфигурация в моем Hugo.toml:

      [[params.pricing]]
    PricingTitle = "Starter"
    PricingRate = "27"  
    ButtonCaption = "Get Early Access"
    [[features]]
        Description = "First Lorem ipsum is common text"
    [[features]]
        Description = "Second Lorem ipsum is common text"

[[params.pricing]]
    PricingTitle = "Professional"
    PricingRate = "97"
    ButtonCaption = "Get Early Access"
    [[features]]
        Description = "First Lorem ipsum is common text"
    [[features]]
        Description = "Second Lorem ipsum is common text"
    
[[params.pricing]]
    PricingTitle = "Business"
    PricingRate = "147"
    ButtonCaption = "Get Early Access"
    [[features]]
        Description = "First Lorem ipsum is common text"
    [[features]]
        Description = "Second Lorem ipsum is common text"

И когда я пытаюсь получить доступ к вложенному значению описания функции, в то время как другие значения, такие как «Скорость» и т. д., отображаются нормально, код ничего не получает, что я здесь делаю не так?

      <h2 class="section-title mt-0 text-center">Pricing</h2>
<div class="pricing-tables-wrap">
    {{ range site.Params.pricing }}
        <div class="pricing-table">
            <div class="pricing-table-inner">
                <div class="pricing-table-main">
                    <div class="pricing-table-header is-revealing">
                        <div class="pricing-table-title mt-12 mb-8">{{ .PricingTitle }}</div>
                        <div class="pricing-table-price mb-32 pb-24"><span class="pricing-table-price-currency h4">$</span><span class="pricing-table-price-amount h2">{{ .PricingRate }}</span>/mo</div>
                    </div>
                    <ul class="pricing-table-features list-reset text-xs mt-24 mb-56">
                        {{ range .features }}
                            <li class="is-revealing">
                                <span class="list-icon">
                                    <svg width="16" height="16" xmlns="http://www.w3.org/2000/svg">
                                        <path fill="#5FFAD0" fill-rule="nonzero" d="M5.6 8.4L1.6 6 0 7.6 5.6 14 16 3.6 14.4 2z"/>
                                    </svg>
                                </span>
                                <span>{{ .Description }}</span>
                            </li>    
                        {{ end }}
                    </ul>
                </div>
                <div class="pricing-table-cta is-revealing">
                    <a class="button button-primary button-shadow button-block" href="#">{{ .ButtonCaption }}</a>
                </div>
            </div>
        </div> 
    {{ end }}
</div>

Спасибо за помощь.

1 ответ

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

Чтобы решить эту проблему, вам необходимо обновить файл конфигурации. Просто замените все экземпляры[[features]]с[[params.pricing.features]]. Использование преобразователя TOML в JSON может быть полезным, поскольку оно обеспечивает более четкое представление структуры (поскольку синтаксис TOML может быть немного загроможден).

Обратите внимание: хотя отступы могут улучшить читаемость файла TOML, они не влияют на фактическую структуру данных.

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