Hugo. Вкладки

2022-06-26 · 3 мин. для прочтения

Элемент с вкладками для Hugo.

Содержание

1 Общая информация

2 Тема Hugo Dynamic Tabs

2.1 Листинги файлов

  • Файл tabs.html (bootstrap 4):

     1<nav>
     2            <div class="nav nav-tabs" id="nav-tab" role="tablist">
     3
     4                    {{ $tabTotal := .Get "tabTotal" }} {{ $tabRightAlign
     5                    := .Get "tabRightAlign" }} {{ $tabName := .Scratch.Get
     6                    "tabName" }} {{ $tabID := .Scratch.Get "tabID" }}
     7
     8                    {{ range $i, $sequence := (seq $tabTotal) }}
     9
    10                    <a class="nav-item nav-link {{ if eq $i 0 }} active {{
    11                       end }}{{ if in $tabRightAlign (add 1 $i) }} ml-auto
    12                       {{ end }}" id="nav-{{ (index $tabID $i) }}"
    13                       data-toggle="tab" href="#{{ (index $tabID $i) }}"
    14                       role="tab" aria-controls="nav-home"
    15                       aria-selected="true">{{ (replaceRE "(\\s)" ""
    16                       (index $tabName $i)) }}</a>
    17
    18                    {{ end }}
    19
    20            </div>
    21</nav>
    22
    23<div class="tab-content" id="nav-tab-content">
    24
    25            {{ .Inner }}
    26
    27</div>
    
  • Файл tabs.html (bootstrap 5):

     1<nav>
     2            <div class="nav nav-tabs" id="nav-tab" role="tablist">
     3
     4                    {{ $tabTotal := .Get "tabTotal" }}
     5                    {{ $tabRightAlign := .Get "tabRightAlign" }}
     6                    {{ $tabName := .Scratch.Get "tabName" }}
     7                    {{ $tabID := .Scratch.Get "tabID" }}
     8
     9                    {{ range $i, $sequence := (seq $tabTotal) }}
    10
    11                    <a class="nav-link {{ if eq $i 0 }} active {{ end }}{{ if in $tabRightAlign (add 1 $i) }} ms-auto {{ end }}"
    12                       id="{{ (index $tabID $i) }}-tab" data-bs-toggle="tab" data-bs-target="#{{ (index $tabID $i) }}"
    13                       type="button" role="tab" aria-controls="nav-home" aria-selected="true">{{ (replaceRE "(\\s)" "" (index $tabName $i)) }}</a>
    14
    15                    {{ end }}
    16
    17            </div>
    18</nav>
    19
    20<div class="tab-content" id="nav-tab-content">
    21
    22            {{ .Inner }}
    23
    24</div>
    
  • Файл tab.html:

     1{{ $tabName := .Get "tabName" }}
     2{{ $tabID := delimit (shuffle (slice "a" "b" "c" "d" "e" "f")) "" }}
     3{{ .Parent.Scratch.Add "tabName" (slice $tabName) }}
     4{{ .Parent.Scratch.Add "tabID" (slice $tabID) }}
     5
     6<div class="tab-pane fade show {{ if eq .Ordinal 0 }}active {{ end }}" id="{{ $tabID }}" role="tabpanel" aria-labelledby="nav-1">
     7
     8        {{ $.Inner | markdownify }}
     9
    10</div>
    

2.2 Использование

  • Одна вкладка.
    • Код:

      1{{< tabs tabTotal="1" >}}
      2{{< tab tabName="Tab 1" >}}
      3
      4**Tab 1 Content**
      5
      6{{< /tab >}}
      7{{< /tabs >}}
      
    • Отображение:

          **Tab 1 Content**
      
  • Три вкладки. Две из них выровнены направо.
    • Код:

       1{{< tabs tabTotal="3" tabRightAlign="2" >}}
       2{{< tab tabName="Tab 1" >}}
       3
       4**Tab 1 Content**
       5
       6{{< /tab >}}
       7{{< tab tabName="Tab 2" >}}
       8
       9**Tab 2 Content**
      10
      11{{< /tab >}}
      12{{< tab tabName="Tab 3" >}}
      13
      14**Tab 3 Content**
      15
      16{{< /tab >}}
      17{{< /tabs >}}
      
    • Отображение:

          **Tab 1 Content**
      
          **Tab 2 Content**
      
          **Tab 3 Content**
      
Дмитрий Сергеевич Кулябов
Authors
Профессор кафедры теории вероятностей и кибербезопасности
Мои научные интересы включают физику, администрирование Unix и сетей.