Эквивалент Хьюго из PHP strpos ()

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

Итак, в моем /content/shop/product-name/index.md материале содержится:

# summary
summary: "This is the **product's** summary which will render markdown"
---
This is the first line of the full description of the product. This section of the ./index.md
page is referenced in the `single.html` file as `.Content`.|^^|This is the next part of the
.Content that I want to throw into a different nav-tab.

Затем в /layouts/shop/single.html :

   <div class="row">
     <div class="col-lg-12">
       {{ .Params.summary }}
     </div>
   </div> 
   <div class="row">
      <div class="col-lg-12">
        <nav class="product-info-tabs wc-tabs mt-5 mb-5">
          <div class="nav nav-tabs nav-fill" id="nav-tab" role="tablist">
            <a class="nav-item nav-link active" id="nav-home-tab" data-toggle="tab" href="#nav-home" role="tab"
              aria-controls="nav-home" aria-selected="true">Description</a>
            <a class="nav-item nav-link" id="nav-profile-tab" data-toggle="tab" href="#nav-profile" role="tab"
              aria-controls="nav-profile" aria-selected="false">Additional Information</a>
            <a class="nav-item nav-link" id="nav-contact-tab" data-toggle="tab" href="#nav-contact" role="tab"
              aria-controls="nav-contact" aria-selected="false">Reviews</a>
          </div>
        </nav>

        <div class="tab-content" id="nav-tabContent">
          <div class="tab-pane fade show active" id="nav-home" role="tabpanel" aria-labelledby="nav-home-tab">
            {{ .Content }}
          </div>
...

В прошлые дни в PHP я мог использовать strpos(.Content, '|^^|') и затем substr(.Content, 0, (strpos(.Content, '|^^|')) чтобы получить раздел текста. Вы также можете бросить строку в массив с настроенным пользователем разделителем split('|^^|', .Content) .

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

This is the content. This is the last line before being split.|^^|This is the next line, that would be in array[1] or the next indexed substr.

Я пытаюсь получить эти два раздела .Content на разных вкладках страницы single.html . Каждый продукт. .Content , очевидно, будет отличаться, поэтому у меня не может быть постоянного числа, чтобы использовать substr() Хьюго.

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

Благодарю.

Всего 1 ответ


Похоже, вы могли бы просто сделать:

{{ replace .Content "|^^|" "</div><div class='tab-pane fade show'>" | safeHTML}}

Который повернет

      <div class="tab-pane fade show active" id="nav-home" role="tabpanel" aria-labelledby="nav-home-tab">
        This is the content. This is the last line before being split.|^^|This is the next line, that would be in array[1] or the next indexed substr.
      </div>

в

      <div class="tab-pane fade show active" id="nav-home" role="tabpanel" aria-labelledby="nav-home-tab">
        This is the content. This is the last line before being split.
      </div>
      <div class='tab-pane fade show'>
        This is the next line, that would be in array[1] or the next indexed substr.
      </div>

Есть идеи?

10000