Hugoの復習 - ビューの書き方

Sunday, April 26, 2020

Hugoのビューの書き方を忘れてしまったので復習します。 変数宣言、ifを使った条件分岐、rangeの繰り返しあたりを復習します。

変数宣言

ビュー (例: layouts/partials/hoge.html ) で変数宣言したい場合は以下の通りです。

ソースコード

{{ $editor := "Emacs" }}
<p>{{ $editor }}</p>

出力結果

<p>Emacs</p>

Zero value

HugoはGo言語で実装しているため変数の取扱いは下記仕様に準じます。

例としては以下のとおりです。

  • 真偽値のfalse

  • 整数や浮動小数点などの0

  • 長さが0の配列

  • 空文字列 ("")

  • nil

条件分岐 - if

ソースコード

{{ $isEnabled := true }}

{{ if $isEnabled }}
  <p>有効</p>
{{ else }}
  <p>無効</p>
{{ end }}

出力結果

<p>有効</p>

比較演算子

比較演算子は下表の通りです。

演算子 意味 参考: C言語の演算子
eq イコール ==
ne ノットイコール !=
lt 小なり <
le 小なりイコール <=
gt 大なり >
ge 大なりイコール >=

{{ $num := 100 }}

{{ if eq $num 100 }}
<p>numは100と等しい</p>
{{ end }}

論理演算子

論理演算子は下表の通りです。

演算子 意味 参考: C言語の演算子
and AND &&
not NOT パイプパイプ
or OR !

{{ if and ($.IsPage) (ne $.Params.Title "") }}
<p>Title</p> 
{{ end }}

繰り返し - range

ソースコード

<!-- From https://gohugo.io/templates/lists/ -->
<ul>
<!-- Ranges through content/posts/*.md -->
{{ range .Pages }}
    <li>
        <a href="{{.Permalink}}">{{.Date.Format "2006-01-02"}} | {{.Title}}</a>
    </li>
{{ end }}
</ul>

出力結果

<!-- From https://gohugo.io/templates/lists/ -->
<ul>
    <li><a href="/posts/post-01/">Post 1</a></li>
    <li><a href="/posts/post-02/">Post 2</a></li>
</ul>

最後に

他にも次の構文があるのですがそれはまたの機会とします。

Hugoの復習Hugo

Hugo向けorgファイルのIn-Buffer Settings風の項目にブラケット付与が必須になる件

眺めるViewer3D.js Part 1: コンテキストメニュー