HUGOでサーバーにアップロードしたCSVファイルの値を参照する

  • データベース型っぽいサイトを構築する場合、単純に配列や辞書をグローバルで定義して参照するという方法もあるが
  • シンプルにデータの元となる情報を CSV で用意し、公開サーバーにアップロードすることで、直接その値を参照することができる
{{ $url := "https://sample.com/sample.csv" }}
{{ $sep := "," }}
{{ range $i, $r := getCSV $sep $url }}

  {{ $id := index $r 0 }}
  {{ $name := index $r 1 }}
  {{ $way := index $r 2 }}
  {{ $score := index $r 3 }}
  {{ $amt1 := index $r 4 }}
  {{ $amt2 := index $r 5 }}
  {{ $per := div (int $amt2) 100.0 }}
  {{ $result := mul (int $score) ($per) }}
  {{ $name_en := index $r 6 }}
  <label>
    <input type="checkbox" id="{{ $id }}" name="score" value="{{ $result }}">
    <div class="itemList">
      <div class="item_img">
        <img src="/img/foods/{{ $name_en }}.jpg" alt="{{ $name }}">
      </div>
      <div class="item_nameWrap">
        <div class="item_name">
          {{ $name }}<span class="way">({{ $way }})</span>
        </div>
        <div class="item_amount">
          <span class="amt1">{{ $amt1 }}</span>
          <span class="amt2">({{ $amt2 }}g)</span>
        </div>
      </div>
      <div class="item_score">{{ $result }}<span class="unit">μg</span></div>
    </div>
  </label>
{{ end }}